Bug 1147911 Part 3: Add remote type parameter to forceInitialBrowserRemote. r=gijs
authorBob Owen <bobowencode@gmail.com>
Thu, 24 Nov 2016 15:08:30 +0000
changeset 324252 abb78de9e86b025e5d015240b70b43d435da18d6
parent 324251 9245c2950d5544982b4a769b154043ebfb7b1783
child 324253 bc0845271a6238163be12978a15676e252353c66
push id24
push usermaklebus@msu.edu
push dateTue, 20 Dec 2016 03:11:33 +0000
reviewersgijs
bugs1147911
milestone53.0a1
Bug 1147911 Part 3: Add remote type parameter to forceInitialBrowserRemote. r=gijs Also change talos pageloader.js to force type to match test URLs.
browser/base/content/browser.js
testing/talos/talos/pageloader/chrome/pageloader.js
testing/talos/talos/pageloader/install.rdf
testing/talos/talos/pageloader/pageloader-signed.xpi
xpfe/appshell/nsIXULBrowserWindow.idl
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -4204,20 +4204,20 @@ var XULBrowserWindow = {
     var securityUI = gBrowser.securityUI;
     this.onSecurityChange(null, null, securityUI.state, true);
   },
 
   setJSStatus: function() {
     // unsupported
   },
 
-  forceInitialBrowserRemote: function() {
+  forceInitialBrowserRemote: function(aRemoteType) {
     let initBrowser =
       document.getAnonymousElementByAttribute(gBrowser, "anonid", "initialBrowser");
-    return initBrowser.frameLoader.tabParent;
+    gBrowser.updateBrowserRemoteness(initBrowser, true, aRemoteType, null);
   },
 
   forceInitialBrowserNonRemote: function(aOpener) {
     let initBrowser =
       document.getAnonymousElementByAttribute(gBrowser, "anonid", "initialBrowser");
     gBrowser.updateBrowserRemoteness(initBrowser, false, E10SUtils.NOT_REMOTE, aOpener);
   },
 
--- a/testing/talos/talos/pageloader/chrome/pageloader.js
+++ b/testing/talos/talos/pageloader/chrome/pageloader.js
@@ -216,41 +216,37 @@ function plInit() {
 
       gPaintWindow = browserWindow;
       // get our window out of the way
       window.resizeTo(10,10);
 
       var browserLoadFunc = function (ev) {
         browserWindow.removeEventListener('load', browserLoadFunc, true);
 
-        function firstPageCanLoadAsRemote() {
-          return E10SUtils.canLoadURIInProcess(pageUrls[0], Ci.nsIXULRuntime.PROCESS_TYPE_CONTENT);
-        }
-
         // do this half a second after load, because we need to be
         // able to resize the window and not have it get clobbered
         // by the persisted values
         setTimeout(function () {
                      // For e10s windows, since bug 1261842, the initial browser is remote unless
                      // it attempts to browse to a URI that should be non-remote (landed at bug 1047603).
                      //
-                     // However, when it loads such URI and reinitializes as non-remote, we lose the
-                     // load listener and the injected tpRecordTime.
-                     //
-                     // The preferred pageloader behaviour in e10s is to run the pages as as remote,
-                     // so if the page can load as remote, we will load it as remote.
+                     // However, when it loads a URI that requires a different remote type,
+                     // we lose the load listener and the injected tpRecordTime.remote,
                      //
                      // It also probably means that per test (or, in fact, per pageloader browser
                      // instance which adds the load listener and injects tpRecordTime), all the
                      // pages should be able to load in the same mode as the initial page - due
                      // to this reinitialization on the switch.
                      if (browserWindow.gMultiProcessBrowser) {
-                       if (!firstPageCanLoadAsRemote())
+                       let remoteType = E10SUtils.getRemoteTypeForURI(pageUrls[0], true);
+                       if (remoteType) {
+                         browserWindow.XULBrowserWindow.forceInitialBrowserRemote(remoteType);
+                       } else {
                          browserWindow.XULBrowserWindow.forceInitialBrowserNonRemote(null);
-                       // Implicit else: initial browser in e10s is remote by default.
+                       }
                      }
 
                      browserWindow.resizeTo(winWidth, winHeight);
                      browserWindow.moveTo(0, 0);
                      browserWindow.focus();
 
                      content = browserWindow.getBrowser();
                      gUseE10S = !gDisableE10S || (plPageFlags() & EXECUTE_SCROLL_TEST) ||
--- a/testing/talos/talos/pageloader/install.rdf
+++ b/testing/talos/talos/pageloader/install.rdf
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
     <em:id>pageloader@mozilla.org</em:id>
-    <em:version>1.0.13</em:version>
+    <em:version>1.0.15</em:version>
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>44.0</em:minVersion>
         <em:maxVersion>*</em:maxVersion>
       </Description>
     </em:targetApplication>
     <!-- Front End MetaData -->
index 49b7752f18ed24077ef56498196b8f79d9f8544f..ab505b5abf1ef3983b3a5852dff9a84d9ffa6c8d
GIT binary patch
literal 30900
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
--- a/xpfe/appshell/nsIXULBrowserWindow.idl
+++ b/xpfe/appshell/nsIXULBrowserWindow.idl
@@ -38,22 +38,21 @@ interface nsIXULBrowserWindow : nsISuppo
    * Determines the appropriate target for a link.
    */
   AString onBeforeLinkTraversal(in AString originalTarget,
                                 in nsIURI linkURI,
                                 in nsIDOMNode linkNode,
                                 in boolean isAppTab);
 
   /**
-   * Find the initial browser of the window and set its remote attribute.
-   * This can be used to ensure that there is a remote browser in a new
-   * window when it first spawns.
-   *
+   * Find the initial browser of the window and set its remote attributes.
+   * This can be used to ensure that there is a browser in a new window of the
+   * correct type when it first spawns.
    */
-  nsITabParent forceInitialBrowserRemote();
+  void forceInitialBrowserRemote(in AString aRemoteType);
   void forceInitialBrowserNonRemote(in mozIDOMWindowProxy openerWindow);
 
   /**
    * Determines whether a load should continue.
    *
    * @param aDocShell
    *        The docshell performing the load.
    * @param aURI