diff options
Diffstat (limited to 'testing/marionette/actors/MarionetteReftestParent.jsm')
-rw-r--r-- | testing/marionette/actors/MarionetteReftestParent.jsm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/testing/marionette/actors/MarionetteReftestParent.jsm b/testing/marionette/actors/MarionetteReftestParent.jsm new file mode 100644 index 0000000000..6a1a2187d8 --- /dev/null +++ b/testing/marionette/actors/MarionetteReftestParent.jsm @@ -0,0 +1,44 @@ +/* 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"); + +const EXPORTED_SYMBOLS = ["MarionetteReftestParent"]; + +/** + * Parent JSWindowActor to handle navigation for reftests relying on marionette. + */ +class MarionetteReftestParent extends JSWindowActorParent { + /** + * Wait for the expected URL to be loaded. + * + * @param {String} url + * The expected url. + * @param {Boolean} useRemote + * True if tests are running with e10s. + * @return {Boolean} true if the page is fully loaded with the expected url, + * false otherwise. + */ + async reftestWait(url, useRemote) { + try { + const isCorrectUrl = await this.sendQuery( + "MarionetteReftestParent:reftestWait", + { + url, + useRemote, + } + ); + return isCorrectUrl; + } catch (e) { + if (e.name === "AbortError") { + // If the query is aborted, the window global is being destroyed, most + // likely because a navigation happened. + return false; + } + + // Other errors should not be swallowed. + throw e; + } + } +} |