summaryrefslogtreecommitdiffstats
path: root/dom/ipc/tests/browser_layers_unloaded_while_interruptingJS.js
blob: be176dd10123aa9c38fca9b52c651b1faf041cdf (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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

add_task(async function test_check_layers_cleared() {
  let initialTab = gBrowser.selectedTab;
  await BrowserTestUtils.withNewTab("about:blank", async browser => {
    await ContentTask.spawn(browser, null, () => {
      return new Promise(resolve => {
        content.requestAnimationFrame(() => {
          content.setTimeout(
            "let start = performance.now(); while (performance.now() < start + 5000);"
          );
          resolve();
        });
      });
    });
    let layersCleared = BrowserTestUtils.waitForEvent(
      window,
      "MozLayerTreeCleared"
    );
    let startWaiting = performance.now();
    await BrowserTestUtils.switchTab(gBrowser, initialTab);
    await layersCleared;
    ok(
      performance.now() < startWaiting + 2000,
      "MozLayerTreeCleared should be dispatched while the script is still running"
    );
  });
});