Bug 1688712, when replacing a LoadingSessionHistoryInfo, initialize member variables using values from the old object, r=annyG

Differential Revision: https://phabricator.services.mozilla.com/D117362
This commit is contained in:
Olli Pettay 2021-06-16 10:31:56 +00:00
Родитель a22ca7007a
Коммит e74620fbda
4 изменённых файлов: 12 добавлений и 8 удалений

Просмотреть файл

@ -522,8 +522,7 @@ CanonicalBrowsingContext::ReplaceLoadingSessionHistoryEntryForLoad(
}
loadingEntry->SetDocshellID(GetHistoryID());
loadingEntry->SetIsDynamicallyAdded(CreatedDynamically());
return MakeUnique<LoadingSessionHistoryInfo>(loadingEntry,
aInfo->mLoadId);
return MakeUnique<LoadingSessionHistoryInfo>(loadingEntry, aInfo);
}
}
return nullptr;

Просмотреть файл

@ -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<nsDocShellLoadState>

Просмотреть файл

@ -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<nsDocShellLoadState> CreateLoadInfo() const;

Просмотреть файл

@ -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]