DescriptionRefactor frame navigation/detach state cleanup to be more sane.
Prior to this patch, cleaning up state for a navigating or detaching
frame was ad hoc: often times, code to do the same thing (e.g. detach
child frames) was present in multiple locations just to "be sure" that
the cleanup would happen no matter what code path was taken.
This logic has been reorganized so that the state cleanup always follows
a similar flow for both navigation and detach. There are now 4 common
steps:
1. FrameLoader::dispatchUnloadEvent()
2. Frame::detachChildren()
3. Document::prepareForDestruction()
4. FrameLoader::clear()
BUG=464764
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=193157
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=193227
Patch Set 1 #Patch Set 2 : Not sure if better or worse #Patch Set 3 : More hm #Patch Set 4 : shuffle #
Total comments: 11
Patch Set 5 : Compile fixes and an assert #Patch Set 6 : Consolidate ScriptForbiddenScope #
Total comments: 2
Patch Set 7 : Fix AXObject cache issues #Patch Set 8 : Address japhet@ comments and moar asserts #Patch Set 9 : Port comment over #
Total comments: 5
Patch Set 10 : More feedback #Patch Set 11 : Fix unit tests... again. #Patch Set 12 : Revert prepareForDestruction to be called after DocumentLoader::detachFromFrame #Patch Set 13 : Add rebaseline expectation #Patch Set 14 : Minor test cleanup #
Messages
Total messages: 25 (12 generated)
|