summaryrefslogtreecommitdiffstats
path: root/devtools/client/responsive/test/browser/browser_tab_remoteness_change.js
blob: 9a445b6fd67aa7a4611e259da0da060e7167c6d0 (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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// Verify Fission-enabled RDM remains open when tab changes remoteness.

const { PromiseTestUtils } = ChromeUtils.importESModule(
  "resource://testing-common/PromiseTestUtils.sys.mjs"
);
PromiseTestUtils.allowMatchingRejectionsGlobally(
  /Permission denied to access property "document" on cross-origin object/
);

const Types = require("resource://devtools/client/responsive/types.js");

const TEST_URL = "http://example.com/";

addRDMTask(
  null,
  async function () {
    const tab = await addTab(TEST_URL);

    const { ui } = await openRDM(tab);
    const { store } = ui.toolWindow;
    await waitUntilState(
      store,
      state =>
        state.viewports.length == 1 &&
        state.devices.listState == Types.loadableState.LOADED
    );

    // Load URL that requires the main process, forcing a remoteness flip
    await navigateTo("about:robots");

    // Bug 1625501: RDM will remain open when the embedded browser UI is enabled.
    is(ui.destroyed, false, "RDM is still open.");

    info("Close RDM");
    await closeRDM(tab);

    await removeTab(tab);
  },
  { onlyPrefAndTask: true }
);