summaryrefslogtreecommitdiffstats
path: root/devtools/server/tests/browser/browser_timeline_iframes.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/server/tests/browser/browser_timeline_iframes.js')
-rw-r--r--devtools/server/tests/browser/browser_timeline_iframes.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/devtools/server/tests/browser/browser_timeline_iframes.js b/devtools/server/tests/browser/browser_timeline_iframes.js
new file mode 100644
index 000000000..60728873f
--- /dev/null
+++ b/devtools/server/tests/browser/browser_timeline_iframes.js
@@ -0,0 +1,41 @@
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test the timeline front receives markers events for operations that occur in
+// iframes.
+
+const {TimelineFront} = require("devtools/shared/fronts/timeline");
+
+add_task(function* () {
+ let browser = yield addTab(MAIN_DOMAIN + "timeline-iframe-parent.html");
+ let doc = browser.contentDocument;
+
+ initDebuggerServer();
+ let client = new DebuggerClient(DebuggerServer.connectPipe());
+ let form = yield connectDebuggerClient(client);
+ let front = TimelineFront(client, form);
+
+ info("Start timeline marker recording");
+ yield front.start({ withMarkers: true });
+
+ // Check that we get markers for a few iterations of the timer that runs in
+ // the child frame.
+ for (let i = 0; i < 3; i++) {
+ yield wait(300); // That's the time the child frame waits before changing styles.
+ let markers = yield once(front, "markers");
+ ok(markers.length, "Markers were received for operations in the child frame");
+ }
+
+ info("Stop timeline marker recording");
+ yield front.stop();
+ yield client.close();
+ gBrowser.removeCurrentTab();
+});
+
+function wait(ms) {
+ return new Promise(resolve =>
+ setTimeout(resolve, ms));
+}