Backed out changeset 49b9a79baf65 (bug 1483701) for brwoser-chrome failures in browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js. CLOSED TREE
authorDorel Luca <dluca@mozilla.com>
Fri, 25 Jan 2019 23:25:05 +0200
changeset 515514 f0e2ba567625f319225324410315ed9bd07ce1f4
parent 515513 4c4c607eebde77c96daaf1cef857af71e35482b3
child 515515 bf7da92f820b53dac3eb98a313f976203cfc59b6
push id1953
push userffxbld-merge
push dateMon, 11 Mar 2019 12:10:20 +0000
treeherdermozilla-release@9c35dcbaa899 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1483701
milestone66.0a1
backs out49b9a79baf65069fea7b91d3498571eac30d28d5
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
Backed out changeset 49b9a79baf65 (bug 1483701) for brwoser-chrome failures in browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js. CLOSED TREE
browser/components/extensions/test/browser/browser-common.ini
browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js
browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize_bottom.js
browser/components/extensions/test/browser/head.js
browser/components/extensions/test/browser/head_browserAction.js
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -1,15 +1,14 @@
 [DEFAULT]
 prefs =
     dom.animations-api.core.enabled=true
     dom.animations-api.timelines.enabled=true
 support-files =
   silence.ogg
-  head_browserAction.js
   head_pageAction.js
   head_sessions.js
   head_webNavigation.js
   context.html
   context_frame.html
   ctxmenu-image.png
   context_tabs_onUpdated_page.html
   context_tabs_onUpdated_iframe.html
@@ -56,18 +55,17 @@ skip-if = os == 'linux'
 [browser_ext_browserAction_pageAction_icon.js]
 [browser_ext_browserAction_pageAction_icon_permissions.js]
 [browser_ext_browserAction_popup.js]
 skip-if = (debug && os == 'linux' && bits == 32) || (os == 'win' && !debug) # Bug 1313372, win: Bug 1285500
 [browser_ext_browserAction_popup_port.js]
 [browser_ext_browserAction_popup_preload.js]
 skip-if = (os == 'win' && !debug) || (verify && debug && (os == 'mac')) # bug 1352668
 [browser_ext_browserAction_popup_resize.js]
-[browser_ext_browserAction_popup_resize_bottom.js]
-skip-if = debug # Bug 1522164
+skip-if = (os == 'mac' || os == 'win' || os == 'linux') || (verify && debug) #Bug 1482004,1483701
 [browser_ext_browserAction_simple.js]
 [browser_ext_browserAction_telemetry.js]
 [browser_ext_browserAction_theme_icons.js]
 [browser_ext_browsingData_formData.js]
 [browser_ext_browsingData_history.js]
 [browser_ext_browsingData_indexedDB.js]
 [browser_ext_browsingData_localStorage.js]
 [browser_ext_browsingData_pluginData.js]
--- a/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js
+++ b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js
@@ -1,14 +1,17 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
-Services.scriptloader.loadSubScript(new URL("head_browserAction.js", gTestPath).href,
-                                    this);
+function openPanel(extension, win = window, awaitLoad = false) {
+  clickBrowserAction(extension, win);
+
+  return awaitExtensionPanel(extension, win, awaitLoad);
+}
 
 add_task(async function testSetup() {
   Services.prefs.setBoolPref("toolkit.cosmeticAnimations.enabled", false);
 });
 
 add_task(async function testBrowserActionPopupResize() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
@@ -20,17 +23,17 @@ add_task(async function testBrowserActio
 
     files: {
       "popup.html": '<!DOCTYPE html><html><head><meta charset="utf-8"></head></html>',
     },
   });
 
   await extension.startup();
 
-  let browser = await openBrowserActionPanel(extension, undefined, true);
+  let browser = await openPanel(extension, undefined, true);
 
   async function checkSize(expected) {
     let dims = await promiseContentDimensions(browser);
 
     Assert.lessOrEqual(Math.abs(dims.window.innerHeight - expected), 1,
                        `Panel window should be ${expected}px tall (was ${dims.window.innerHeight})`);
     is(dims.body.clientHeight, dims.body.scrollHeight,
        "Panel body should be tall enough to fit its contents");
@@ -53,27 +56,267 @@ add_task(async function testBrowserActio
     300,
   ];
 
   for (let size of sizes) {
     await alterContent(browser, setSize, size);
     await checkSize(size);
   }
 
-  let popup = getBrowserActionPopup(extension);
   await closeBrowserAction(extension);
-  is(popup.state, "closed", "browserAction popup has been closed");
-
   await extension.unload();
 });
 
+async function testPopupSize(standardsMode, browserWin = window, arrowSide = "top") {
+  let docType = standardsMode ? "<!DOCTYPE html>" : "";
+
+  let extension = ExtensionTestUtils.loadExtension({
+    manifest: {
+      "browser_action": {
+        "default_popup": "popup.html",
+        "browser_style": false,
+      },
+    },
+
+    files: {
+      "popup.html": `${docType}
+        <html>
+          <head>
+            <meta charset="utf-8">
+            <style type="text/css">
+              body > span {
+                display: inline-block;
+                width: 10px;
+                height: 150px;
+                border: 2px solid black;
+              }
+              .big > span {
+                width: 300px;
+                height: 100px;
+              }
+              .bigger > span {
+                width: 150px;
+                height: 150px;
+              }
+              .huge > span {
+                height: ${2 * screen.height}px;
+              }
+            </style>
+          </head>
+          <body>
+            <span></span>
+            <span></span>
+            <span></span>
+            <span></span>
+          </body>
+        </html>`,
+    },
+  });
+
+  await extension.startup();
+
+  if (arrowSide == "top") {
+    // Test the standalone panel for a toolbar button.
+    let browser = await openPanel(extension, browserWin, true);
+
+    let dims = await promiseContentDimensions(browser);
+
+    is(dims.isStandards, standardsMode, "Document has the expected compat mode");
+
+    let {innerWidth, innerHeight} = dims.window;
+
+    dims = await alterContent(browser, () => {
+      content.document.body.classList.add("bigger");
+    });
+
+    let win = dims.window;
+    is(win.innerHeight, innerHeight, "Window height should not change");
+    ok(win.innerWidth > innerWidth, `Window width should increase (${win.innerWidth} > ${innerWidth})`);
+
+
+    dims = await alterContent(browser, () => {
+      content.document.body.classList.remove("bigger");
+    });
+
+    win = dims.window;
+    is(win.innerHeight, innerHeight, "Window height should not change");
+
+    // The getContentSize calculation is not always reliable to single-pixel
+    // precision.
+    ok(Math.abs(win.innerWidth - innerWidth) <= 1,
+       `Window width should return to approximately its original value (${win.innerWidth} ~= ${innerWidth})`);
+
+    await closeBrowserAction(extension, browserWin);
+  }
+
+
+  // Test the PanelUI panel for a menu panel button.
+  let widget = getBrowserActionWidget(extension);
+  CustomizableUI.addWidgetToArea(widget.id, getCustomizableUIPanelID());
+
+  let panel = browserWin.PanelUI.overflowPanel;
+  panel.setAttribute("animate", "false");
+
+  let panelMultiView = panel.firstElementChild;
+  let widgetId = makeWidgetId(extension.id);
+  // The 'ViewShown' event is the only way to correctly determine when the extensions'
+  // panelview has finished transitioning and is fully in view.
+  let shownPromise = BrowserTestUtils.waitForEvent(panelMultiView, "ViewShown",
+                                                   e => (e.originalTarget.id || "").includes(widgetId));
+  let browser = await openPanel(extension, browserWin);
+  let origPanelRect = panel.getBoundingClientRect();
+
+  // Check that the panel is still positioned as expected.
+  let checkPanelPosition = () => {
+    is(panel.getAttribute("side"), arrowSide, "Panel arrow is positioned as expected");
+
+    let panelRect = panel.getBoundingClientRect();
+    if (arrowSide == "top") {
+      is(panelRect.top, origPanelRect.top, "Panel has not moved downwards");
+      ok(panelRect.bottom >= origPanelRect.bottom, `Panel has not shrunk from original size (${panelRect.bottom} >= ${origPanelRect.bottom})`);
+
+      let screenBottom = browserWin.screen.availTop + browserWin.screen.availHeight;
+      let panelBottom = browserWin.mozInnerScreenY + panelRect.bottom;
+      ok(Math.round(panelBottom) <= screenBottom, `Bottom of popup should be on-screen. (${panelBottom} <= ${screenBottom})`);
+    } else {
+      is(panelRect.bottom, origPanelRect.bottom, "Panel has not moved upwards");
+      ok(panelRect.top <= origPanelRect.top, `Panel has not shrunk from original size (${panelRect.top} <= ${origPanelRect.top})`);
+
+      let panelTop = browserWin.mozInnerScreenY + panelRect.top;
+      ok(panelTop >= browserWin.screen.availTop, `Top of popup should be on-screen. (${panelTop} >= ${browserWin.screen.availTop})`);
+    }
+  };
+
+  await awaitBrowserLoaded(browser);
+  await shownPromise;
+
+  // Wait long enough to make sure the initial resize debouncing timer has
+  // expired.
+  await delay(500);
+
+  let dims = await promiseContentDimensions(browser);
+
+  is(dims.isStandards, standardsMode, "Document has the expected compat mode");
+
+  // If the browser's preferred height is smaller than the initial height of the
+  // panel, then it will still take up the full available vertical space. Even
+  // so, we need to check that we've gotten the preferred height calculation
+  // correct, so check that explicitly.
+  let getHeight = () => parseFloat(browser.style.height);
+
+  let {innerWidth, innerHeight} = dims.window;
+  let height = getHeight();
+
+
+  let setClass = className => {
+    content.document.body.className = className;
+  };
+
+  info("Increase body children's width. " +
+       "Expect them to wrap, and the frame to grow vertically rather than widen.");
+
+  dims = await alterContent(browser, setClass, "big");
+  let win = dims.window;
+
+  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
+
+  is(win.innerWidth, innerWidth, "Window width should not change");
+  ok(win.innerHeight >= innerHeight, `Window height should increase (${win.innerHeight} >= ${innerHeight})`);
+  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
+
+  checkPanelPosition();
+
+
+  info("Increase body children's width and height. " +
+       "Expect them to wrap, and the frame to grow vertically rather than widen.");
+
+  dims = await alterContent(browser, setClass, "bigger");
+  win = dims.window;
+
+  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
+
+  is(win.innerWidth, innerWidth, "Window width should not change");
+  ok(win.innerHeight >= innerHeight, `Window height should increase (${win.innerHeight} >= ${innerHeight})`);
+  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
+
+  checkPanelPosition();
+
+
+  info("Increase body height beyond the height of the screen. " +
+       "Expect the panel to grow to accommodate, but not larger than the height of the screen.");
+
+  dims = await alterContent(browser, setClass, "huge");
+  win = dims.window;
+
+  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
+
+  is(win.innerWidth, innerWidth, "Window width should not change");
+  ok(win.innerHeight > innerHeight, `Window height should increase (${win.innerHeight} > ${innerHeight})`);
+  // Commented out check for the window height here which mysteriously breaks
+  // on infra but not locally. bug 1396843 covers re-enabling this.
+  // ok(win.innerHeight < screen.height, `Window height be less than the screen height (${win.innerHeight} < ${screen.height})`);
+  ok(win.scrollMaxY > 0, `Document should be vertically scrollable (${win.scrollMaxY} > 0)`);
+
+  checkPanelPosition();
+
+
+  info("Restore original styling. Expect original dimensions.");
+  dims = await alterContent(browser, setClass, "");
+  win = dims.window;
+
+  is(getHeight(), height, "Browser height should return to its original value");
+
+  is(win.innerWidth, innerWidth, "Window width should not change");
+  is(win.innerHeight, innerHeight, "Window height should return to its original value");
+  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
+
+  checkPanelPosition();
+
+  await closeBrowserAction(extension, browserWin);
+
+  await extension.unload();
+}
 
 add_task(async function testBrowserActionMenuResizeStandards() {
   await testPopupSize(true);
 });
 
 add_task(async function testBrowserActionMenuResizeQuirks() {
   await testPopupSize(false);
 });
 
+// Test that we still make reasonable maximum size calculations when the window
+// is close enough to the bottom of the screen that the menu panel opens above,
+// rather than below, its button.
+add_task(async function testBrowserActionMenuResizeBottomArrow() {
+  const WIDTH = 800;
+  const HEIGHT = 80;
+
+  let left = screen.availLeft + screen.availWidth - WIDTH;
+  let top = screen.availTop + screen.availHeight - HEIGHT;
+
+  let win = await BrowserTestUtils.openNewBrowserWindow();
+
+  win.resizeTo(WIDTH, HEIGHT);
+
+  // Sometimes we run into problems on Linux with resizing being asynchronous
+  // and window managers not allowing us to move the window so that any part of
+  // it is off-screen, so we need to try more than once.
+  for (let i = 0; i < 20; i++) {
+    win.moveTo(left, top);
+
+    if (win.screenX == left && win.screenY == top) {
+      break;
+    }
+
+    await delay(100);
+  }
+
+  await SimpleTest.promiseFocus(win);
+
+  await testPopupSize(true, win, "bottom");
+
+  await BrowserTestUtils.closeWindow(win);
+});
+
 add_task(async function testTeardown() {
   Services.prefs.clearUserPref("toolkit.cosmeticAnimations.enabled");
 });
deleted file mode 100644
--- a/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize_bottom.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-Services.scriptloader.loadSubScript(new URL("head_browserAction.js", gTestPath).href,
-                                    this);
-
-add_task(async function testSetup() {
-  Services.prefs.setBoolPref("toolkit.cosmeticAnimations.enabled", false);
-});
-
-// Test that we still make reasonable maximum size calculations when the window
-// is close enough to the bottom of the screen that the menu panel opens above,
-// rather than below, its button.
-add_task(async function testBrowserActionMenuResizeBottomArrow() {
-  const WIDTH = 800;
-  const HEIGHT = 80;
-
-  let left = screen.availLeft + screen.availWidth - WIDTH;
-  let top = screen.availTop + screen.availHeight - HEIGHT;
-
-  let win = await BrowserTestUtils.openNewBrowserWindow();
-
-  win.resizeTo(WIDTH, HEIGHT);
-
-  // Sometimes we run into problems on Linux with resizing being asynchronous
-  // and window managers not allowing us to move the window so that any part of
-  // it is off-screen, so we need to try more than once.
-  for (let i = 0; i < 20; i++) {
-    win.moveTo(left, top);
-
-    if (win.screenX == left && win.screenY == top) {
-      break;
-    }
-
-    await delay(100);
-  }
-
-  await SimpleTest.promiseFocus(win);
-
-  await testPopupSize(true, win, "bottom");
-
-  await BrowserTestUtils.closeWindow(win);
-});
-
-add_task(async function testTeardown() {
-  Services.prefs.clearUserPref("toolkit.cosmeticAnimations.enabled");
-});
--- a/browser/components/extensions/test/browser/head.js
+++ b/browser/components/extensions/test/browser/head.js
@@ -1,17 +1,16 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
 /* exported CustomizableUI makeWidgetId focusWindow forceGC
  *          getBrowserActionWidget
  *          clickBrowserAction clickPageAction
  *          getBrowserActionPopup getPageActionPopup getPageActionButton
- *          openBrowserActionPanel
  *          closeBrowserAction closePageAction
  *          promisePopupShown promisePopupHidden
  *          toggleBookmarksToolbar
  *          openContextMenu closeContextMenu
  *          openContextMenuInSidebar openContextMenuInPopup
  *          openExtensionContextMenu closeExtensionContextMenu
  *          openActionContextMenu openSubmenu closeActionContextMenu
  *          openTabContextMenu closeTabContextMenu
@@ -284,22 +283,16 @@ function closeBrowserAction(extension, w
   let group = getBrowserActionWidget(extension);
 
   let node = win.document.getElementById(group.viewId);
   CustomizableUI.hidePanelForNode(node);
 
   return Promise.resolve();
 }
 
-function openBrowserActionPanel(extension, win = window, awaitLoad = false) {
-  clickBrowserAction(extension, win);
-
-  return awaitExtensionPanel(extension, win, awaitLoad);
-}
-
 async function toggleBookmarksToolbar(visible = true) {
   let bookmarksToolbar = document.getElementById("PersonalToolbar");
   let transitionPromise =
     BrowserTestUtils.waitForEvent(bookmarksToolbar, "transitionend",
                                   e => e.propertyName == "max-height");
 
   setToolbarVisibility(bookmarksToolbar, visible);
   await transitionPromise;
deleted file mode 100644
--- a/browser/components/extensions/test/browser/head_browserAction.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-/* exported testPopupSize */
-
-// This file is imported into the same scope as head.js.
-
-/* import-globals-from head.js */
-
-// A test helper that retrives an old and new value after a given delay
-// and then check that calls an `isCompleted` callback to check that
-// the value has reached the expected value.
-function waitUntilValue({getValue, isCompleted, message, delay: delayTime}) {
-  return BrowserTestUtils.waitForCondition(async () => {
-    const oldVal = await getValue();
-    await delay(delayTime);
-    const newVal = await getValue();
-
-    return isCompleted(oldVal, newVal);
-  }, message);
-}
-
-async function testPopupSize(standardsMode, browserWin = window, arrowSide = "top") {
-  let docType = standardsMode ? "<!DOCTYPE html>" : "";
-
-  let extension = ExtensionTestUtils.loadExtension({
-    manifest: {
-      "browser_action": {
-        "default_popup": "popup.html",
-        "browser_style": false,
-      },
-    },
-
-    files: {
-      "popup.html": `${docType}
-        <html>
-          <head>
-            <meta charset="utf-8">
-            <style type="text/css">
-              body > span {
-                display: inline-block;
-                width: 10px;
-                height: 150px;
-                border: 2px solid black;
-              }
-              .big > span {
-                width: 300px;
-                height: 100px;
-              }
-              .bigger > span {
-                width: 150px;
-                height: 150px;
-              }
-              .huge > span {
-                height: ${2 * screen.height}px;
-              }
-            </style>
-          </head>
-          <body>
-            <span></span>
-            <span></span>
-            <span></span>
-            <span></span>
-          </body>
-        </html>`,
-    },
-  });
-
-  await extension.startup();
-
-  if (arrowSide == "top") {
-    // Test the standalone panel for a toolbar button.
-    let browser = await openBrowserActionPanel(extension, browserWin, true);
-
-    let dims = await promiseContentDimensions(browser);
-
-    is(dims.isStandards, standardsMode, "Document has the expected compat mode");
-
-    let {innerWidth, innerHeight} = dims.window;
-
-    dims = await alterContent(browser, () => {
-      content.document.body.classList.add("bigger");
-    });
-
-    let win = dims.window;
-    is(win.innerHeight, innerHeight, "Window height should not change");
-    ok(win.innerWidth > innerWidth, `Window width should increase (${win.innerWidth} > ${innerWidth})`);
-
-
-    dims = await alterContent(browser, () => {
-      content.document.body.classList.remove("bigger");
-    });
-
-    win = dims.window;
-    is(win.innerHeight, innerHeight, "Window height should not change");
-
-    // The getContentSize calculation is not always reliable to single-pixel
-    // precision.
-    ok(Math.abs(win.innerWidth - innerWidth) <= 1,
-       `Window width should return to approximately its original value (${win.innerWidth} ~= ${innerWidth})`);
-
-    await closeBrowserAction(extension, browserWin);
-  }
-
-
-  // Test the PanelUI panel for a menu panel button.
-  let widget = getBrowserActionWidget(extension);
-  CustomizableUI.addWidgetToArea(widget.id, getCustomizableUIPanelID());
-
-  let panel = browserWin.PanelUI.overflowPanel;
-  panel.setAttribute("animate", "false");
-
-  let panelMultiView = panel.firstElementChild;
-  let widgetId = makeWidgetId(extension.id);
-  // The 'ViewShown' event is the only way to correctly determine when the extensions'
-  // panelview has finished transitioning and is fully in view.
-  let shownPromise = BrowserTestUtils.waitForEvent(panelMultiView, "ViewShown",
-                                                   e => (e.originalTarget.id || "").includes(widgetId));
-  let browser = await openBrowserActionPanel(extension, browserWin);
-
-  // Wait long enough to make sure the initial popup positioning has been completed.
-  await waitUntilValue({
-    getValue: () => panel.getBoundingClientRect().top,
-    isCompleted: (oldVal, newVal) => {
-      // Wait for the popup positioning to be started and the value stable.
-      return newVal !== 0 && oldVal === newVal;
-    },
-    message: "Wait the popup opening to be completed",
-    delay: 500,
-  });
-
-  let origPanelRect = panel.getBoundingClientRect();
-
-  // Check that the panel is still positioned as expected.
-  let checkPanelPosition = () => {
-    is(panel.getAttribute("side"), arrowSide, "Panel arrow is positioned as expected");
-
-    let panelRect = panel.getBoundingClientRect();
-    if (arrowSide == "top") {
-      is(panelRect.top, origPanelRect.top, "Panel has not moved downwards");
-      ok(panelRect.bottom >= origPanelRect.bottom, `Panel has not shrunk from original size (${panelRect.bottom} >= ${origPanelRect.bottom})`);
-
-      let screenBottom = browserWin.screen.availTop + browserWin.screen.availHeight;
-      let panelBottom = browserWin.mozInnerScreenY + panelRect.bottom;
-      ok(Math.round(panelBottom) <= screenBottom, `Bottom of popup should be on-screen. (${panelBottom} <= ${screenBottom})`);
-    } else {
-      is(panelRect.bottom, origPanelRect.bottom, "Panel has not moved upwards");
-      ok(panelRect.top <= origPanelRect.top, `Panel has not shrunk from original size (${panelRect.top} <= ${origPanelRect.top})`);
-
-      let panelTop = browserWin.mozInnerScreenY + panelRect.top;
-      ok(panelTop >= browserWin.screen.availTop, `Top of popup should be on-screen. (${panelTop} >= ${browserWin.screen.availTop})`);
-    }
-  };
-
-  await awaitBrowserLoaded(browser);
-  await shownPromise;
-
-  // Wait long enough to make sure the initial resize debouncing timer has
-  // expired.
-  await waitUntilValue({
-    getValue: () => promiseContentDimensions(browser),
-    isCompleted: (oldDims, newDims) => {
-      return oldDims.window.innerWidth === newDims.window.innerWidth &&
-        oldDims.window.innerHeight === newDims.window.innerHeight;
-    },
-    message: "Wait the popup resize to be completed",
-    delay: 500,
-  });
-
-  let dims = await promiseContentDimensions(browser);
-
-  is(dims.isStandards, standardsMode, "Document has the expected compat mode");
-
-  // If the browser's preferred height is smaller than the initial height of the
-  // panel, then it will still take up the full available vertical space. Even
-  // so, we need to check that we've gotten the preferred height calculation
-  // correct, so check that explicitly.
-  let getHeight = () => parseFloat(browser.style.height);
-
-  let {innerWidth, innerHeight} = dims.window;
-  let height = getHeight();
-
-  let setClass = className => {
-    content.document.body.className = className;
-  };
-
-  info("Increase body children's width. " +
-       "Expect them to wrap, and the frame to grow vertically rather than widen.");
-
-  dims = await alterContent(browser, setClass, "big");
-  let win = dims.window;
-
-  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
-
-  is(win.innerWidth, innerWidth, "Window width should not change");
-  ok(win.innerHeight >= innerHeight, `Window height should increase (${win.innerHeight} >= ${innerHeight})`);
-  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
-
-  checkPanelPosition();
-
-
-  info("Increase body children's width and height. " +
-       "Expect them to wrap, and the frame to grow vertically rather than widen.");
-
-  dims = await alterContent(browser, setClass, "bigger");
-  win = dims.window;
-
-  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
-
-  is(win.innerWidth, innerWidth, "Window width should not change");
-  ok(win.innerHeight >= innerHeight, `Window height should increase (${win.innerHeight} >= ${innerHeight})`);
-  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
-
-  checkPanelPosition();
-
-
-  info("Increase body height beyond the height of the screen. " +
-       "Expect the panel to grow to accommodate, but not larger than the height of the screen.");
-
-  dims = await alterContent(browser, setClass, "huge");
-  win = dims.window;
-
-  ok(getHeight() > height, `Browser height should increase (${getHeight()} > ${height})`);
-
-  is(win.innerWidth, innerWidth, "Window width should not change");
-  ok(win.innerHeight > innerHeight, `Window height should increase (${win.innerHeight} > ${innerHeight})`);
-  // Commented out check for the window height here which mysteriously breaks
-  // on infra but not locally. bug 1396843 covers re-enabling this.
-  // ok(win.innerHeight < screen.height, `Window height be less than the screen height (${win.innerHeight} < ${screen.height})`);
-  ok(win.scrollMaxY > 0, `Document should be vertically scrollable (${win.scrollMaxY} > 0)`);
-
-  checkPanelPosition();
-
-
-  info("Restore original styling. Expect original dimensions.");
-  dims = await alterContent(browser, setClass, "");
-  win = dims.window;
-
-  is(getHeight(), height, "Browser height should return to its original value");
-
-  is(win.innerWidth, innerWidth, "Window width should not change");
-  is(win.innerHeight, innerHeight, "Window height should return to its original value");
-  Assert.lessOrEqual(win.scrollMaxY, 1, "Document should not be vertically scrollable");
-
-  checkPanelPosition();
-
-  await closeBrowserAction(extension, browserWin);
-
-  await extension.unload();
-}