summaryrefslogtreecommitdiffstats
path: root/dom/base/test/browser_messagemanager_targetframeloader.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/browser_messagemanager_targetframeloader.js')
-rw-r--r--dom/base/test/browser_messagemanager_targetframeloader.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/dom/base/test/browser_messagemanager_targetframeloader.js b/dom/base/test/browser_messagemanager_targetframeloader.js
new file mode 100644
index 0000000000..e44c95fda0
--- /dev/null
+++ b/dom/base/test/browser_messagemanager_targetframeloader.js
@@ -0,0 +1,41 @@
+function frameScript() {
+ sendSyncMessage("Test:Message");
+ sendAsyncMessage("Test:Message");
+ sendAsyncMessage("Test:Done");
+}
+
+function test() {
+ waitForExplicitFinish();
+
+ var newTab = BrowserTestUtils.addTab(gBrowser, "about:blank");
+ gBrowser.selectedTab = newTab;
+
+ let browser = newTab.linkedBrowser;
+ let frameLoader = browser.frameLoader;
+ Assert.notStrictEqual(frameLoader, null, "frameLoader looks okay");
+
+ browser.messageManager.loadFrameScript(
+ "data:,(" + frameScript.toString() + ")()",
+ false
+ );
+
+ browser.messageManager.addMessageListener("Test:Message", msg => {
+ Assert.strictEqual(msg.target, browser, "<browser> is correct");
+ Assert.strictEqual(
+ msg.targetFrameLoader,
+ frameLoader,
+ "frameLoader is correct"
+ );
+ Assert.strictEqual(
+ browser.frameLoader,
+ msg.targetFrameLoader,
+ "browser frameloader is correct"
+ );
+ });
+
+ browser.messageManager.addMessageListener("Test:Done", () => {
+ info("Finished");
+ gBrowser.removeCurrentTab();
+ finish();
+ });
+}