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

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

Issue 267613003: location.replace() breaks same-document back/forward navigations. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months 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: Source/core/loader/FrameLoader.cpp
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp
index 770c73a0cb9627004e2ffd9a1cd5f8d2df2384f3..a12592f9295080a6c558b40402890b3bf787e2d8 100644
--- a/Source/core/loader/FrameLoader.cpp
+++ b/Source/core/loader/FrameLoader.cpp
@@ -257,10 +257,15 @@ void FrameLoader::setHistoryItemStateForCommit(HistoryCommitType historyCommitTy
{
if (m_provisionalItem)
m_currentItem = m_provisionalItem.release();
- if (!m_currentItem || historyCommitType == StandardCommit)
+
+ if (!m_currentItem || historyCommitType == StandardCommit) {
m_currentItem = HistoryItem::create();
- else if (!isPushOrReplaceState && m_documentLoader->url() != m_currentItem->url())
- m_currentItem->generateNewSequenceNumbers();
+ } else if (!isPushOrReplaceState && m_documentLoader->url() != m_currentItem->url()) {
+ m_currentItem->generateNewItemSequenceNumber();
+ if (!equalIgnoringFragmentIdentifier(m_documentLoader->url(), m_currentItem->url()))
+ m_currentItem->generateNewDocumentSequenceNumber();
+ }
+
m_currentItem->setURL(m_documentLoader->urlForHistory());
m_currentItem->setDocumentState(m_frame->document()->formElementsState());
m_currentItem->setTarget(m_frame->tree().uniqueName());
« no previous file with comments | « LayoutTests/fast/loader/back-after-same-document-location-replace-expected.txt ('k') | Source/core/loader/HistoryItem.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698