Bug 1409379 - Move WindowState to new wm module. r?maja_zf draft
authorAndreas Tolfsen <ato@sny.no>
Tue, 17 Oct 2017 14:20:52 +0100
changeset 681608 d4c31aadf8f43b205388409836c6099aad7463ca
parent 681450 0d9c6250f99dc4b6aa1a94f5260737d046c52b1e
child 736183 d2b5671f9619413261fc18d4fedb6a9448913aa0
push id84868
push userbmo:ato@sny.no
push dateTue, 17 Oct 2017 13:31:18 +0000
reviewersmaja_zf
bugs1409379
milestone58.0a1
Bug 1409379 - Move WindowState to new wm module. r?maja_zf The upcoming window tracking refactoring to Marionette will introduce a new testing/marionette/wm.js module. It was originally the plan to move WindowState there after it had landed, but it actually makes sense to land any dependencies before to reduce churn in the window tracking patches. MozReview-Commit-ID: EpqnTYYGcmg
testing/marionette/browser.js
testing/marionette/driver.js
testing/marionette/jar.mn
testing/marionette/wm.js
--- a/testing/marionette/browser.js
+++ b/testing/marionette/browser.js
@@ -9,16 +9,17 @@ const {utils: Cu} = Components;
 
 const {WebElementEventTarget} = Cu.import("chrome://marionette/content/dom.js", {});
 Cu.import("chrome://marionette/content/element.js");
 const {
   NoSuchWindowError,
   UnsupportedOperationError,
 } = Cu.import("chrome://marionette/content/error.js", {});
 Cu.import("chrome://marionette/content/frame.js");
+const {WindowState} = Cu.import("chrome://marionette/content/wm.js", {});
 
 this.EXPORTED_SYMBOLS = ["browser", "WindowState"];
 
 /** @namespace */
 this.browser = {};
 
 const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
@@ -446,53 +447,8 @@ browser.Windows = class extends Map {
     let wref = super.get(id);
     if (!wref) {
       throw new RangeError();
     }
     return wref.get();
   }
 
 };
-
-// TODO(ato): Move this to testing/marionette/wm.js
-// after https://bugzil.la/1311041
-/**
- * Marionette representation of the {@link ChromeWindow} window state.
- *
- * @enum {string}
- */
-this.WindowState = {
-  Maximized: "maximized",
-  Minimized: "minimized",
-  Normal: "normal",
-  Fullscreen: "fullscreen",
-
-  /**
-   * Converts {@link nsIDOMChromeWindow.windowState} to WindowState.
-   *
-   * @param {number} windowState
-   *     Attribute from {@link nsIDOMChromeWindow.windowState}.
-   *
-   * @return {WindowState}
-   *     JSON representation.
-   *
-   * @throws {TypeError}
-   *     If <var>windowState</var> was unknown.
-   */
-  from(windowState) {
-    switch (windowState) {
-      case 1:
-        return WindowState.Maximized;
-
-      case 2:
-        return WindowState.Minimized;
-
-      case 3:
-        return WindowState.Normal;
-
-      case 4:
-        return WindowState.Fullscreen;
-
-      default:
-        throw new TypeError(`Unknown window state: ${windowState}`);
-    }
-  },
-};
--- a/testing/marionette/driver.js
+++ b/testing/marionette/driver.js
@@ -11,20 +11,17 @@ Cu.import("resource://gre/modules/Log.js
 Cu.import("resource://gre/modules/Preferences.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 Cu.import("chrome://marionette/content/accessibility.js");
 Cu.import("chrome://marionette/content/addon.js");
 Cu.import("chrome://marionette/content/assert.js");
 Cu.import("chrome://marionette/content/atom.js");
-const {
-  browser,
-  WindowState,
-} = Cu.import("chrome://marionette/content/browser.js", {});
+const {browser} = Cu.import("chrome://marionette/content/browser.js", {});
 Cu.import("chrome://marionette/content/capture.js");
 Cu.import("chrome://marionette/content/cert.js");
 Cu.import("chrome://marionette/content/cookie.js");
 Cu.import("chrome://marionette/content/element.js");
 const {
   ElementNotInteractableError,
   InsecureCertificateError,
   InvalidArgumentError,
@@ -46,16 +43,17 @@ Cu.import("chrome://marionette/content/l
 Cu.import("chrome://marionette/content/modal.js");
 Cu.import("chrome://marionette/content/proxy.js");
 Cu.import("chrome://marionette/content/reftest.js");
 Cu.import("chrome://marionette/content/session.js");
 const {
   PollPromise,
   TimedPromise,
 } = Cu.import("chrome://marionette/content/sync.js", {});
+const {WindowState} = Cu.import("chrome://marionette/content/wm.js", {});
 
 Cu.importGlobalProperties(["URL"]);
 
 this.EXPORTED_SYMBOLS = ["GeckoDriver", "Context"];
 
 const APP_ID_FIREFOX = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
 
 const FRAME_SCRIPT = "chrome://marionette/content/listener.js";
--- a/testing/marionette/jar.mn
+++ b/testing/marionette/jar.mn
@@ -32,16 +32,17 @@ marionette.jar:
   content/session.js (session.js)
   content/transport.js (transport.js)
   content/packets.js (packets.js)
   content/stream-utils.js (stream-utils.js)
   content/reftest.js (reftest.js)
   content/reftest.xul (reftest.xul)
   content/dom.js (dom.js)
   content/format.js (format.js)
+  content/wm.js (wm.js)
 #ifdef ENABLE_TESTS
   content/test.xul (chrome/test.xul)
   content/test2.xul (chrome/test2.xul)
   content/test_dialog.dtd (chrome/test_dialog.dtd)
   content/test_dialog.properties (chrome/test_dialog.properties)
   content/test_dialog.xul (chrome/test_dialog.xul)
   content/test_nested_iframe.xul (chrome/test_nested_iframe.xul)
   content/test_anonymous_content.xul (chrome/test_anonymous_content.xul)
new file mode 100644
--- /dev/null
+++ b/testing/marionette/wm.js
@@ -0,0 +1,51 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+this.EXPORTED_SYMBOLS = ["WindowState"];
+
+/**
+ * Marionette representation of the {@link ChromeWindow} window state.
+ *
+ * @enum {string}
+ */
+const WindowState = {
+  Maximized: "maximized",
+  Minimized: "minimized",
+  Normal: "normal",
+  Fullscreen: "fullscreen",
+
+  /**
+   * Converts {@link nsIDOMChromeWindow.windowState} to WindowState.
+   *
+   * @param {number} windowState
+   *     Attribute from {@link nsIDOMChromeWindow.windowState}.
+   *
+   * @return {WindowState}
+   *     JSON representation.
+   *
+   * @throws {TypeError}
+   *     If <var>windowState</var> was unknown.
+   */
+  from(windowState) {
+    switch (windowState) {
+      case 1:
+        return WindowState.Maximized;
+
+      case 2:
+        return WindowState.Minimized;
+
+      case 3:
+        return WindowState.Normal;
+
+      case 4:
+        return WindowState.Fullscreen;
+
+      default:
+        throw new TypeError(`Unknown window state: ${windowState}`);
+    }
+  },
+};
+this.WindowState = WindowState;