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
--- 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;