Bug 1397365: Part 4 - Remove nodefaultsrc from <browser> elements moved from another process. r?kmag
MozReview-Commit-ID: FsgwFBQVnuH
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1262,17 +1262,17 @@ var gBrowserInit = {
remoteType = linkedBrowser.remoteType;
isRemote = remoteType != E10SUtils.NOT_REMOTE;
sameProcessAsFrameLoader = linkedBrowser.frameLoader;
}
}
gBrowser.updateBrowserRemoteness(initBrowser, isRemote, {
remoteType, sameProcessAsFrameLoader
- });
+ }, true);
},
onLoad() {
gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver);
Services.obs.addObserver(gPluginHandler.NPAPIPluginCrashed, "plugin-crashed");
window.addEventListener("AppCommand", HandleAppCommandEvent, true);
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -1862,16 +1862,17 @@
}
]]></body>
</method>
<method name="updateBrowserRemoteness">
<parameter name="aBrowser"/>
<parameter name="aShouldBeRemote"/>
<parameter name="aOptions"/>
+ <parameter name="keepNoDefaultSrcInInitialBrowser"/>
<body>
<![CDATA[
aOptions = aOptions || {};
let isRemote = aBrowser.getAttribute("remote") == "true";
if (!gMultiProcessBrowser && aShouldBeRemote) {
throw new Error("Cannot switch to remote browser in a window " +
"without the remote tabs load context.");
@@ -1957,16 +1958,25 @@
}
if (aOptions.opener) {
// Set the opener window on the browser, such that when the frame
// loader is created the opener is set correctly.
aBrowser.presetOpenerWindow(aOptions.opener);
}
+ // This is a temporarily solution preventing
+ // onXULFrameLoadederCreated being called before
+ // messageManager is ready.
+ // See bug 1397365 for details.
+ if (!keepNoDefaultSrcInInitialBrowser &&
+ aBrowser.getAttribute("anonid") === "initialBrowser") {
+ aBrowser.removeAttribute("nodefaultsrc");
+ }
+
parent.appendChild(aBrowser);
aBrowser.userTypedValue = oldUserTypedValue;
if (hadStartedLoad) {
aBrowser.urlbarChangeTracker.startedLoad();
}
aBrowser.droppedLinkHandler = droppedLinkHandler;