summaryrefslogtreecommitdiffstats
path: root/devtools/client/performance/test/helpers/dom-utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/performance/test/helpers/dom-utils.js')
-rw-r--r--devtools/client/performance/test/helpers/dom-utils.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/devtools/client/performance/test/helpers/dom-utils.js b/devtools/client/performance/test/helpers/dom-utils.js
new file mode 100644
index 000000000..559b2b8d8
--- /dev/null
+++ b/devtools/client/performance/test/helpers/dom-utils.js
@@ -0,0 +1,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;
+};