Remove document protection before comparing#48
Merged
Conversation
Word.CompareDocuments blocks indefinitely on a document with enforced
editing protection: Word waits on a "remove protection to compare the
documents" prompt that DisplayAlerts cannot suppress. Because Launch
only sets word.Visible after the compare, this leaves WINWORD.EXE alive
with no visible window.
Word.Open now strips protection from each in-memory copy before the
compare. The documents are opened ReadOnly and never saved, so the
files on disk are untouched. The empty-password Unprotect overload
throws rather than showing its own blocking prompt, so a password-
protected input surfaces as a logged failure instead of another hang.
Also fixes two pre-existing test-suite issues that this surfaced:
- SourceDocumentsVisibleTests leaked a WINWORD process (unreleased
child-document COM references prevented Quit from reaping it); it now
tracks and kills the process it spawns.
- The process-counting ProcessCleanupTests ran in parallel with the
Word-spawning tests and observed their processes; the Word-touching
classes now share [NotInParallel("MicrosoftWord")].
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Word.CompareDocuments blocks indefinitely on a document with enforced editing protection: Word waits on a "remove protection to compare the documents" prompt that DisplayAlerts cannot suppress. Because Launch only sets word.Visible after the compare, this leaves WINWORD.EXE alive with no visible window.
Word.Open now strips protection from each in-memory copy before the compare. The documents are opened ReadOnly and never saved, so the files on disk are untouched. The empty-password Unprotect overload throws rather than showing its own blocking prompt, so a password- protected input surfaces as a logged failure instead of another hang.
Also fixes two pre-existing test-suite issues that this surfaced: