Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
index 440f0a8f70bf33bfead5ab871e8c979e8386c600..a55f4d0157fcfccb37b42772c2211d76570f1b68 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -724,6 +724,7 @@ void FrameLoader::detachDocumentLoader(Member<DocumentLoader>& loader) |
if (!loader) |
return; |
+ FrameNavigationDisabler navigationDisabler(*m_frame); |
loader->detachFromFrame(); |
loader = nullptr; |
} |
@@ -1108,7 +1109,6 @@ bool FrameLoader::prepareForCommit() |
// At this point, the provisional document loader should not detach, because |
// then the FrameLoader would not have any attached DocumentLoaders. |
if (m_documentLoader) { |
- FrameNavigationDisabler navigationDisabler(*m_frame); |
TemporaryChange<bool> inDetachDocumentLoader(m_protectProvisionalLoader, true); |
detachDocumentLoader(m_documentLoader); |
} |
@@ -1419,10 +1419,7 @@ void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, FrameLoadType ty |
return; |
m_frame->document()->cancelParsing(); |
- if (m_provisionalDocumentLoader) { |
- FrameNavigationDisabler navigationDisabler(*m_frame); |
- detachDocumentLoader(m_provisionalDocumentLoader); |
- } |
+ detachDocumentLoader(m_provisionalDocumentLoader); |
// beforeunload fired above, and detaching a DocumentLoader can fire |
// events, which can detach this frame. |