Backed out 7 changesets (bug 1580565) for browser_entry_point_telemetry.js failures CLOSED TREE
Backed out changeset 12a4f3de76a8 (bug 1580565) Backed out changeset 81d537df2dc1 (bug 1580565) Backed out changeset b182e872c9d4 (bug 1580565) Backed out changeset 0b4595b2c153 (bug 1580565) Backed out changeset 4363e3a3d799 (bug 1580565) Backed out changeset cbb14b2c7b33 (bug 1580565) Backed out changeset 46b251848297 (bug 1580565)
This commit is contained in:
@@ -7145,6 +7145,12 @@ nsresult nsDocShell::RestoreFromHistory() {
|
||||
// Order the mContentViewer setup just like Embed does.
|
||||
mContentViewer = nullptr;
|
||||
|
||||
if (!mWillChangeProcess) {
|
||||
// Move the browsing context's children to the cache. If we're
|
||||
// detaching them, we'll detach them from there.
|
||||
mBrowsingContext->CacheChildren();
|
||||
}
|
||||
|
||||
// Now that we're about to switch documents, forget all of our children.
|
||||
// Note that we cached them as needed up in CaptureState above.
|
||||
DestroyChildren();
|
||||
@@ -7263,6 +7269,7 @@ nsresult nsDocShell::RestoreFromHistory() {
|
||||
// <head> is parsed.
|
||||
document->NotifyPossibleTitleChange(false);
|
||||
|
||||
BrowsingContext::Children contexts(childShells.Count());
|
||||
// Now we simulate appending child docshells for subframes.
|
||||
for (i = 0; i < childShells.Count(); ++i) {
|
||||
nsIDocShellTreeItem* childItem = childShells.ObjectAt(i);
|
||||
@@ -7299,6 +7306,8 @@ nsresult nsDocShell::RestoreFromHistory() {
|
||||
// child inherits our mPrivateBrowsingId, which is what we want.
|
||||
AddChild(childItem);
|
||||
|
||||
contexts.AppendElement(childShell->GetBrowsingContext());
|
||||
|
||||
childShell->SetAllowJavascript(allowJavascript);
|
||||
childShell->SetAllowMetaRedirects(allowRedirects);
|
||||
childShell->SetAllowSubframes(allowSubframes);
|
||||
@@ -7314,6 +7323,10 @@ nsresult nsDocShell::RestoreFromHistory() {
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
if (!contexts.IsEmpty()) {
|
||||
mBrowsingContext->RestoreChildren(std::move(contexts));
|
||||
}
|
||||
|
||||
// Make sure to restore the window state after adding the child shells back
|
||||
// to the tree. This is necessary for Thaw() and Resume() to propagate
|
||||
// properly.
|
||||
@@ -7866,6 +7879,10 @@ nsresult nsDocShell::SetupNewViewer(nsIContentViewer* aNewViewer,
|
||||
|
||||
mContentViewer = nullptr;
|
||||
|
||||
// Move the browsing ontext's children to the cache. If we're
|
||||
// detaching them, we'll detach them from there.
|
||||
mBrowsingContext->CacheChildren();
|
||||
|
||||
// Now that we're about to switch documents, forget all of our children.
|
||||
// Note that we cached them as needed up in CaptureState above.
|
||||
DestroyChildren();
|
||||
|
||||
Reference in New Issue
Block a user