summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js')
-rw-r--r--toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js
new file mode 100644
index 0000000000..e813b46ca0
--- /dev/null
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_in_background.js
@@ -0,0 +1,43 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+const server = createHttpServer({ hosts: ["example.com"] });
+server.registerPathHandler("/dummyFrame", (request, response) => {
+ response.setStatusLine(request.httpVersion, 200, "OK");
+ response.setHeader("Content-Type", "text/html; charset=utf-8", false);
+ response.write("");
+});
+
+add_task(async function content_script_in_background_frame() {
+ async function background() {
+ const FRAME_URL = "http://example.com:8888/dummyFrame";
+ await browser.contentScripts.register({
+ matches: ["http://example.com/dummyFrame"],
+ js: [{ file: "contentscript.js" }],
+ allFrames: true,
+ });
+
+ let f = document.createElement("iframe");
+ f.src = FRAME_URL;
+ document.body.appendChild(f);
+ }
+
+ function contentScript() {
+ browser.test.log(`Running content script at ${document.URL}`);
+ browser.test.sendMessage("done_in_content_script");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["http://example.com/*"],
+ },
+ files: {
+ "contentscript.js": contentScript,
+ },
+ background,
+ });
+ await extension.startup();
+ await extension.awaitMessage("done_in_content_script");
+ await extension.unload();
+});