Bug 1439875: Fix extension windows. r?kmag draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Thu, 22 Feb 2018 10:39:04 +0100
changeset 759695 6471127e9c141dfadaf16d0dceccd475da3a6a51
parent 759694 547b8f3a4f1fb94833a8dcb9c7b92d135141808d
child 759696 fa6795753393fc7ba3cf255a224810b16c129e8a
push id100434
push userbmo:emilio@crisal.io
push dateMon, 26 Feb 2018 13:12:59 +0000
reviewerskmag
bugs1439875
milestone60.0a1
Bug 1439875: Fix extension windows. r?kmag Now we're loading the sizemode attribute earlier, doing this on load stops working. MozReview-Commit-ID: ToiJiYrvFw
browser/components/extensions/ext-windows.js
browser/components/extensions/test/browser/browser_ext_windows_create.js
--- a/browser/components/extensions/ext-windows.js
+++ b/browser/components/extensions/ext-windows.js
@@ -172,24 +172,20 @@ this.windows = class extends ExtensionAP
 
           let win = windowManager.getWrapper(window);
           win.updateGeometry(createData);
 
           // TODO: focused, type
 
           return new Promise(resolve => {
             window.addEventListener("load", function() {
-              if (["maximized", "normal"].includes(createData.state)) {
-                window.document.documentElement.setAttribute("sizemode", createData.state);
-              }
               resolve(promiseObserved("browser-delayed-startup-finished", win => win == window));
             }, {once: true});
           }).then(() => {
-            // Some states only work after delayed-startup-finished
-            if (["minimized", "fullscreen", "docked"].includes(createData.state)) {
+            if (["minimized", "fullscreen", "docked", "normal", "maximized"].includes(createData.state)) {
               win.state = createData.state;
             }
             if (allowScriptsToClose) {
               for (let {linkedBrowser} of window.gBrowser.tabs) {
                 onXULFrameLoaderCreated({target: linkedBrowser});
                 // eslint-disable-next-line mozilla/balanced-listeners
                 linkedBrowser.addEventListener("XULFrameLoaderCreated", onXULFrameLoaderCreated);
               }
--- a/browser/components/extensions/test/browser/browser_ext_windows_create.js
+++ b/browser/components/extensions/test/browser/browser_ext_windows_create.js
@@ -98,17 +98,17 @@ add_task(async function testWindowCreate
 
   extension.onMessage("check-window", expected => {
     if (expected.state != null) {
       let {windowState} = latestWindow;
       if (latestWindow.fullScreen) {
         windowState = latestWindow.STATE_FULLSCREEN;
       }
 
-      if (expected.state == "STATE_NORMAL" && AppConstants.platform == "macosx") {
+      if (expected.state == "STATE_NORMAL") {
         ok(windowState == window.STATE_NORMAL || windowState == window.STATE_MAXIMIZED,
            `Expected windowState (currently ${windowState}) to be STATE_NORMAL but will accept STATE_MAXIMIZED`);
       } else {
         is(windowState, window[expected.state],
            `Expected window state to be ${expected.state}`);
       }
     }
     if (expected.hiddenChrome) {