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 e664eb27cae54417d51390f29bb50218095ea927..25cd699d5490e2a9c52b5b334921aef234feb68f 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -1174,7 +1174,6 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest, |
shouldPerformFragmentNavigation(request.form(), |
request.resourceRequest().httpMethod(), |
newLoadType, url); |
- |
// Perform same document navigation. |
if (sameDocumentHistoryNavigation || sameDocumentNavigation) { |
DCHECK(historyItem || !sameDocumentHistoryNavigation); |
@@ -1193,6 +1192,14 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest, |
return; |
} |
+ // PlzNavigate |
+ // If the loader classifies this navigation as a different document navigation |
+ // while the browser intended the navigation to be same-document, it means |
+ // that a different navigation must have committed while the IPC was sent. |
+ // This navigation is no more same-document. The navigation is simply dropped. |
+ if (request.resourceRequest().isSameDocumentNavigation()) |
+ return; |
+ |
startLoad(request, newLoadType, policy); |
} |