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 324219 abb78de9e86b025e5d015240b70b43d435da18d6
parent 324218 9245c2950d5544982b4a769b154043ebfb7b1783
child 324220 bc0845271a6238163be12978a15676e252353c66
push id30993
push usercbook@mozilla.com
push dateFri, 25 Nov 2016 14:40:38 +0000
treeherdermozilla-central@b982373cb0e9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgijs
bugs1147911
milestone53.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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