Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(475)

Unified Diff: third_party/WebKit/Source/core/loader/FrameLoader.cpp

Issue 2475693002: Do not reset NavigationHandle when navigating same-page (Closed)
Patch Set: Addressed comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 23c0121c422682de09655ce209a4a58600b7aa4c..1dc55e367af0d1993f8420c0b5baabb4e7b1fd77 100644
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
@@ -799,7 +799,9 @@ void FrameLoader::updateForSameDocumentNavigation(
// Generate start and stop notifications only when loader is completed so that
// we don't fire them for fragment redirection that happens in window.onload
// handler. See https://bugs.webkit.org/show_bug.cgi?id=31838
- if (m_frame->document()->loadEventFinished())
+ // Do not fire the notifications if the frame is concurrently navigating away
+ // from the document, since a new document is already loading.
+ if (m_frame->document()->loadEventFinished() && !m_provisionalDocumentLoader)
client()->didStartLoading(NavigationWithinSameDocument);
HistoryCommitType historyCommitType = loadTypeToCommitType(type);
@@ -822,7 +824,7 @@ void FrameLoader::updateForSameDocumentNavigation(
client()->dispatchDidNavigateWithinPage(
m_currentItem.get(), historyCommitType, !!initiatingDocument);
client()->dispatchDidReceiveTitle(m_frame->document()->title());
- if (m_frame->document()->loadEventFinished())
+ if (m_frame->document()->loadEventFinished() && !m_provisionalDocumentLoader)
client()->didStopLoading();
}

Powered by Google App Engine
This is Rietveld 408576698