diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /mobile/android/tests/browser/chrome/head.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'mobile/android/tests/browser/chrome/head.js')
-rw-r--r-- | mobile/android/tests/browser/chrome/head.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mobile/android/tests/browser/chrome/head.js b/mobile/android/tests/browser/chrome/head.js new file mode 100644 index 000000000..0ac8ed010 --- /dev/null +++ b/mobile/android/tests/browser/chrome/head.js @@ -0,0 +1,72 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +function fuzzyEquals(a, b) { + return (Math.abs(a - b) < 1e-6); +} + +function promiseBrowserEvent(browser, eventType) { + return new Promise((resolve) => { + function handle(event) { + // Since we'll be redirecting, don't make assumptions about the given URL and the loaded URL + if (event.target != browser.contentDocument || event.target.location.href == "about:blank") { + info("Skipping spurious '" + eventType + "' event" + " for " + event.target.location.href); + return; + } + info("Received event " + eventType + " from browser"); + browser.removeEventListener(eventType, handle, true); + resolve(event); + } + + browser.addEventListener(eventType, handle, true); + info("Now waiting for " + eventType + " event from browser"); + }); +} + +function promiseTabEvent(container, eventType) { + return new Promise((resolve) => { + function handle(event) { + info("Received event " + eventType + " from container"); + container.removeEventListener(eventType, handle, true); + resolve(event); + } + + container.addEventListener(eventType, handle, true); + info("Now waiting for " + eventType + " event from container"); + }); +} + +function promiseNotification(topic) { + Cu.import("resource://gre/modules/Services.jsm"); + + return new Promise((resolve, reject) => { + function observe(subject, topic, data) { + info("Received " + topic + " notification from Gecko"); + Services.obs.removeObserver(observe, topic); + resolve(); + } + Services.obs.addObserver(observe, topic, false); + info("Now waiting for " + topic + " notification from Gecko"); + }); +} + +function promiseLinkVisit(url) { + Cu.import("resource://gre/modules/Services.jsm"); + + var topic = "link-visited"; + return new Promise((resolve, reject) => { + function observe(subject, topic, data) { + info("Received " + topic + " notification from Gecko"); + var uri = subject.QueryInterface(Ci.nsIURI); + if (uri.spec != url) { + info("Visited URL " + uri.spec + " is not desired URL " + url + "; ignoring."); + return; + } + info("Visited URL " + uri.spec + " is desired URL " + url); + Services.obs.removeObserver(observe, topic); + resolve(); + }; + Services.obs.addObserver(observe, topic, false); + info("Now waiting for " + topic + " notification from Gecko with URL " + url); + }); +} |