diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp index 3bfb9d6e6511..c82c8569d89f 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -522,8 +522,7 @@ CanonicalBrowsingContext::ReplaceLoadingSessionHistoryEntryForLoad( } loadingEntry->SetDocshellID(GetHistoryID()); loadingEntry->SetIsDynamicallyAdded(CreatedDynamically()); - return MakeUnique(loadingEntry, - aInfo->mLoadId); + return MakeUnique(loadingEntry, aInfo); } } return nullptr; diff --git a/docshell/shistory/SessionHistoryEntry.cpp b/docshell/shistory/SessionHistoryEntry.cpp index 988e8bbce7bc..6da4b84b80ef 100644 --- a/docshell/shistory/SessionHistoryEntry.cpp +++ b/docshell/shistory/SessionHistoryEntry.cpp @@ -344,10 +344,15 @@ LoadingSessionHistoryInfo::LoadingSessionHistoryInfo( } LoadingSessionHistoryInfo::LoadingSessionHistoryInfo( - SessionHistoryEntry* aEntry, uint64_t aLoadId) - : mInfo(aEntry->Info()), mLoadId(aLoadId) { + SessionHistoryEntry* aEntry, LoadingSessionHistoryInfo* aInfo) + : mInfo(aEntry->Info()), + mLoadId(aInfo->mLoadId), + mLoadIsFromSessionHistory(aInfo->mLoadIsFromSessionHistory), + mRequestedIndex(aInfo->mRequestedIndex), + mSessionHistoryLength(aInfo->mSessionHistoryLength), + mLoadingCurrentActiveEntry(aInfo->mLoadingCurrentActiveEntry) { MOZ_ASSERT(SessionHistoryEntry::sLoadIdToEntry && - SessionHistoryEntry::sLoadIdToEntry->Get(aLoadId) == aEntry); + SessionHistoryEntry::sLoadIdToEntry->Get(mLoadId) == aEntry); } already_AddRefed diff --git a/docshell/shistory/SessionHistoryEntry.h b/docshell/shistory/SessionHistoryEntry.h index faf5489a43d9..8df3586be02a 100644 --- a/docshell/shistory/SessionHistoryEntry.h +++ b/docshell/shistory/SessionHistoryEntry.h @@ -213,7 +213,9 @@ class SessionHistoryInfo { struct LoadingSessionHistoryInfo { LoadingSessionHistoryInfo() = default; explicit LoadingSessionHistoryInfo(SessionHistoryEntry* aEntry); - LoadingSessionHistoryInfo(SessionHistoryEntry* aEntry, uint64_t aLoadId); + // Initializes mInfo using aEntry and otherwise copies the values from aInfo. + LoadingSessionHistoryInfo(SessionHistoryEntry* aEntry, + LoadingSessionHistoryInfo* aInfo); already_AddRefed CreateLoadInfo() const; diff --git a/docshell/test/navigation/mochitest.ini b/docshell/test/navigation/mochitest.ini index 3a9b993777fc..42e1d46bc98f 100644 --- a/docshell/test/navigation/mochitest.ini +++ b/docshell/test/navigation/mochitest.ini @@ -144,8 +144,6 @@ support-files = file_sessionhistory_iframe_removal.html [test_scrollRestoration.html] [test_bug1609475.html] [test_bug1300461.html] -skip-if = - fission # Bug 1688712 [test_bug1326251.html] skip-if = toolkit == 'android' || sessionHistoryInParent # It relies on the bfcache [test_bug1379762.html]