summaryrefslogtreecommitdiffstats
path: root/remote/shared/messagehandler/test/browser/browser_windowglobal_to_root.js
blob: 57629e5485643fda228100c619c0374fd41644ff (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
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

const { RootMessageHandler } = ChromeUtils.importESModule(
  "chrome://remote/content/shared/messagehandler/RootMessageHandler.sys.mjs"
);

add_task(async function test_windowGlobal_to_root_command() {
  // Navigate to a page to make sure that the windowglobal modules run in a
  // different process than the root module.
  const tab = BrowserTestUtils.addTab(
    gBrowser,
    "https://example.com/document-builder.sjs?html=tab"
  );
  await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
  const browsingContextId = tab.linkedBrowser.browsingContext.id;

  const rootMessageHandler = createRootMessageHandler(
    "session-id-windowglobal-to-rootModule"
  );

  for (const commandName of [
    "testHandleCommandToRoot",
    "testSendRootCommand",
  ]) {
    const valueFromRoot = await rootMessageHandler.handleCommand({
      moduleName: "windowglobaltoroot",
      commandName,
      destination: {
        type: WindowGlobalMessageHandler.type,
        id: browsingContextId,
      },
    });

    is(
      valueFromRoot,
      "root-value-called-from-windowglobal",
      "Retrieved the expected value from windowglobaltoroot using " +
        commandName
    );
  }

  rootMessageHandler.destroy();
  gBrowser.removeTab(tab);
});