summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/browser/browser_ext_webRequest_redirect_mozextension.js
blob: 674a10a5ef4d1e4f59fd94ff33233fa65621d692 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"use strict";

// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1573456
add_task(async function test_mozextension_page_loaded_in_extension_process() {
  let extension = ExtensionTestUtils.loadExtension({
    manifest: {
      permissions: [
        "webRequest",
        "webRequestBlocking",
        "https://example.com/*",
      ],
      web_accessible_resources: ["test.html"],
    },
    files: {
      "test.html": '<!DOCTYPE html><script src="test.js"></script>',
      "test.js": () => {
        browser.test.assertTrue(
          browser.webRequest,
          "webRequest API should be available"
        );

        browser.test.sendMessage("test_done");
      },
    },
    background: () => {
      browser.webRequest.onBeforeRequest.addListener(
        () => {
          return {
            redirectUrl: browser.runtime.getURL("test.html"),
          };
        },
        { urls: ["*://*/redir"] },
        ["blocking"]
      );
    },
  });
  await extension.startup();

  let tab = await BrowserTestUtils.openNewForegroundTab(
    gBrowser,
    "https://example.com/redir"
  );

  await extension.awaitMessage("test_done");

  await extension.unload();
  BrowserTestUtils.removeTab(tab);
});