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.js36
1 files changed, 36 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..62c8482add
--- /dev/null
+++ b/dom/base/test/browser_messagemanager_targetframeloader.js
@@ -0,0 +1,36 @@
+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;
+ ok(frameLoader !== null, "frameLoader looks okay");
+
+ browser.messageManager.loadFrameScript(
+ "data:,(" + frameScript.toString() + ")()",
+ false
+ );
+
+ browser.messageManager.addMessageListener("Test:Message", msg => {
+ ok(msg.target === browser, "<browser> is correct");
+ ok(msg.targetFrameLoader === frameLoader, "frameLoader is correct");
+ ok(
+ browser.frameLoader === msg.targetFrameLoader,
+ "browser frameloader is correct"
+ );
+ });
+
+ browser.messageManager.addMessageListener("Test:Done", () => {
+ info("Finished");
+ gBrowser.removeCurrentTab();
+ finish();
+ });
+}