Index: Source/core/loader/FrameLoader.cpp |
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp |
index f5fb5b154a7023794214f4516d996c25b347ad88..3caaa717e05c1ab5559bf8ecf510b2f5a463c4aa 100644 |
--- a/Source/core/loader/FrameLoader.cpp |
+++ b/Source/core/loader/FrameLoader.cpp |
@@ -1288,13 +1288,13 @@ void FrameLoader::loadWithNavigationAction(const NavigationAction& action, Frame |
return; |
} |
- // A new navigation is in progress, so don't clear the history's provisional item. |
- stopAllLoaders(); |
- |
- // <rdar://problem/6250856> - In certain circumstances on pages with multiple frames, stopAllLoaders() |
- // might detach the current FrameLoader, in which case we should bail on this newly defunct load. |
- if (!m_frame->page() || !m_policyDocumentLoader) |
Nate Chapin
2014/05/20 17:47:09
I don't think that removing this early return is s
mkosiba (inactive)
2014/05/20 19:06:10
I will leave the check in. If I wanted to hit this
Nate Chapin
2014/05/20 19:16:06
In terms of repro, I have never actually seen a re
|
- return; |
+ if (m_provisionalDocumentLoader) { |
+ m_provisionalDocumentLoader->stopLoading(); |
+ if (m_provisionalDocumentLoader) |
+ m_provisionalDocumentLoader->detachFromFrame(); |
+ m_provisionalDocumentLoader = nullptr; |
+ } |
+ m_checkTimer.stop(); |
if (isLoadingMainFrame()) |
m_frame->page()->inspectorController().resume(); |
@@ -1308,12 +1308,14 @@ void FrameLoader::loadWithNavigationAction(const NavigationAction& action, Frame |
m_client->dispatchWillSubmitForm(formState->form()); |
m_progressTracker->progressStarted(); |
+ |
Nate Chapin
2014/05/20 17:47:09
Any reason for the extra newlines here and below?
mkosiba (inactive)
2014/05/20 19:06:10
Done.
|
if (m_provisionalDocumentLoader->isClientRedirect()) |
m_provisionalDocumentLoader->appendRedirect(m_frame->document()->url()); |
m_provisionalDocumentLoader->appendRedirect(m_provisionalDocumentLoader->request().url()); |
m_client->dispatchDidStartProvisionalLoad(); |
ASSERT(m_provisionalDocumentLoader); |
m_provisionalDocumentLoader->startLoadingMainResource(); |
+ |
} |
void FrameLoader::applyUserAgent(ResourceRequest& request) |