Bug 1299334 - Save and restore relatedBrowser around the XBL binding being torn down and restored.
MozReview-Commit-ID: 4LLuzk34ZUt
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -1607,23 +1607,30 @@
listener.destroy();
let oldUserTypedValue = aBrowser.userTypedValue;
let hadStartedLoad = aBrowser.didStartLoadSinceLastUserTyping();
// Make sure the browser is destroyed so it unregisters from observer notifications
aBrowser.destroy();
- // Make sure to restore the original droppedLinkHandler.
+ // Make sure to restore the original droppedLinkHandler and
+ // relatedBrowser.
let droppedLinkHandler = aBrowser.droppedLinkHandler;
+ let relatedBrowser = aBrowser.relatedBrowser;
// Change the "remote" attribute.
let parent = aBrowser.parentNode;
parent.removeChild(aBrowser);
aBrowser.setAttribute("remote", aShouldBeRemote ? "true" : "false");
+
+ // NB: This works with the hack in the browser constructor that
+ // turns this normal property into a field.
+ aBrowser.relatedBrowser = relatedBrowser;
+
parent.appendChild(aBrowser);
aBrowser.userTypedValue = oldUserTypedValue;
if (hadStartedLoad) {
aBrowser.urlbarChangeTracker.startedLoad();
}
aBrowser.droppedLinkHandler = droppedLinkHandler;