summaryrefslogtreecommitdiffstats
path: root/devtools/client/performance/test/helpers/dom-utils.js
blob: 559b2b8d8b58012e324a8c746104912187329ba1 (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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

const Services = require("Services");
const { waitForMozAfterPaint } = require("devtools/client/performance/test/helpers/wait-utils");

/**
 * Checks if a DOM node is considered visible.
 */
exports.isVisible = (element) => {
  return !element.classList.contains("hidden") && !element.hidden;
};

/**
 * Appends the provided element to the provided parent node. If run in e10s
 * mode, will also wait for MozAfterPaint to make sure the tab is rendered.
 * Should be reviewed if Bug 1240509 lands.
 */
exports.appendAndWaitForPaint = function (parent, element) {
  let isE10s = Services.appinfo.browserTabsRemoteAutostart;
  if (isE10s) {
    let win = parent.ownerDocument.defaultView;
    let onMozAfterPaint = waitForMozAfterPaint(win);
    parent.appendChild(element);
    return onMozAfterPaint;
  }
  parent.appendChild(element);
  return null;
};