Title: [95473] branches/chromium/874/Source/WebCore/loader
- Revision
- 95473
- Author
- infe...@chromium.org
- Date
- 2011-09-19 14:10:40 -0700 (Mon, 19 Sep 2011)
Log Message
Merge 95259 - Fragment navigations should interrupt a provisional load of a different document
BUG=86758
Review URL: http://codereview.chromium.org/7945015
Modified Paths
Diff
Modified: branches/chromium/874/Source/WebCore/loader/FrameLoader.cpp (95472 => 95473)
--- branches/chromium/874/Source/WebCore/loader/FrameLoader.cpp 2011-09-19 21:09:56 UTC (rev 95472)
+++ branches/chromium/874/Source/WebCore/loader/FrameLoader.cpp 2011-09-19 21:10:40 UTC (rev 95473)
@@ -2697,6 +2697,12 @@
if (!shouldContinue)
return;
+ // If we have a provisional request for a different document, a fragment scroll should cancel it.
+ if (m_provisionalDocumentLoader && !equalIgnoringFragmentIdentifier(m_provisionalDocumentLoader->request().url(), request.url())) {
+ m_provisionalDocumentLoader->stopLoading();
+ setProvisionalDocumentLoader(0);
+ }
+
bool isRedirect = m_quickRedirectComing || policyChecker()->loadType() == FrameLoadTypeRedirectWithLockedBackForwardList;
loadInSameDocument(request.url(), 0, !isRedirect);
}
Modified: branches/chromium/874/Source/WebCore/loader/HistoryController.cpp (95472 => 95473)
--- branches/chromium/874/Source/WebCore/loader/HistoryController.cpp 2011-09-19 21:09:56 UTC (rev 95472)
+++ branches/chromium/874/Source/WebCore/loader/HistoryController.cpp 2011-09-19 21:10:40 UTC (rev 95473)
@@ -524,6 +524,11 @@
if (!m_provisionalItem)
return;
+ // The provisional item may represent a different pending navigation.
+ // Don't commit it if it isn't a same document navigation.
+ if (m_currentItem && !m_currentItem->shouldDoSameDocumentNavigationTo(m_provisionalItem.get()))
+ return;
+
// Commit the provisional item.
m_frameLoadComplete = false;
m_previousItem = m_currentItem;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes