| 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"))
|
|
|