Index: Source/core/loader/FrameLoader.cpp |
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp |
index 2f3d4e2b29a3d37a647706ce190c7b7291519575..1813ddbae644fa52076f5a026bc876095675b4d0 100644 |
--- a/Source/core/loader/FrameLoader.cpp |
+++ b/Source/core/loader/FrameLoader.cpp |
@@ -763,7 +763,7 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest) |
const KURL& url = request.resourceRequest().url(); |
if (!action.shouldOpenInNewWindow() && shouldPerformFragmentNavigation(request.formState(), request.resourceRequest().httpMethod(), newLoadType, url)) { |
m_documentLoader->setTriggeringAction(action); |
- loadInSameDocument(url, nullptr, newLoadType == FrameLoadTypeStandard ? UpdateBackForwardList : DoNotUpdateBackForwardList, request.clientRedirect()); |
+ loadInSameDocument(url, nullptr, newLoadType == FrameLoadTypeStandard && !shouldTreatURLAsSameAsCurrent(url) ? UpdateBackForwardList : DoNotUpdateBackForwardList, request.clientRedirect()); |
return; |
} |
bool sameURL = url == m_documentLoader->urlForHistory(); |
@@ -1401,6 +1401,11 @@ bool FrameLoader::shouldInterruptLoadForXFrameOptions(const String& content, con |
} |
} |
+bool FrameLoader::shouldTreatURLAsSameAsCurrent(const KURL& url) const |
+{ |
+ return m_currentItem && url == m_currentItem->url(); |
+} |
+ |
bool FrameLoader::shouldTreatURLAsSrcdocDocument(const KURL& url) const |
{ |
if (!equalIgnoringCase(url.string(), "about:srcdoc")) |