DescriptionDon't allow navigations in Document::detach.
When navigating to a javascript: URL, Blink detaches the original
Document. This process may detach plugin elements, causing a nested
message loop to run.
Document::detach() creates a ScriptForbiddenScope to prevent script from
breaking invariants. Since plugins were detached synchronously, any
script trying to execute in the nested message loop would be blocked.
However, the fix for https://crbug.com/524120 defers plugin updates to
happen outside the ScriptForbiddenScope. Thus, it is now possible to
attach a *new* Document with a synchronous navigation while the old
Document is being detached.
BUG=546545
Committed: https://crrev.com/66ad73d642b9cf824f4b1f300811ed1ee6963da7
Cr-Commit-Position: refs/heads/master@{#360190}
Patch Set 1 #Patch Set 2 : Approach #2 #Patch Set 3 : Approach #2 #Patch Set 4 : Approach #3 #
Total comments: 3
Patch Set 5 : Does not work #Patch Set 6 : another version #Patch Set 7 : Revert //chrome changes #Patch Set 8 : Actually initialize new member (how did this work?) #Patch Set 9 : more private #Patch Set 10 : Revert change that is clearly not going to work #Patch Set 11 : Constify #Patch Set 12 : More comments #
Messages
Total messages: 29 (12 generated)
|