summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js')
-rw-r--r--devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js b/devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js
index bfa2447474..29335af768 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg-javascript-tracer.js
@@ -12,6 +12,19 @@ add_task(async function () {
const dbg = await initDebugger("doc-scripts.html");
+ // Add an iframe before starting the tracer to later check for key event on it
+ const preExistingIframeBrowsingContext = await SpecialPowers.spawn(
+ gBrowser.selectedBrowser,
+ [],
+ async function () {
+ const iframe = content.document.createElement("iframe");
+ iframe.src = `data:text/html,<input type="text" value="pre existing iframe" onkeydown="console.log('keydown')" />`;
+ content.document.body.appendChild(iframe);
+ await new Promise(resolve => (iframe.onload = resolve));
+ return iframe.contentWindow.browsingContext;
+ }
+ );
+
info("Enable the tracing");
await clickElement(dbg, "trace");
@@ -55,6 +68,38 @@ add_task(async function () {
await hasConsoleMessage(dbg, "DOM | click");
await hasConsoleMessage(dbg, "λ simple");
+ const iframeBrowsingContext = await SpecialPowers.spawn(
+ gBrowser.selectedBrowser,
+ [],
+ async function () {
+ const iframe = content.document.createElement("iframe");
+ iframe.src = `data:text/html,<input type="text" value="new iframe" onkeypress="console.log('keypress')" />`;
+ content.document.body.appendChild(iframe);
+ await new Promise(resolve => (iframe.onload = resolve));
+ iframe.contentWindow.document.querySelector("input").focus();
+ return iframe.contentWindow.browsingContext;
+ }
+ );
+
+ await BrowserTestUtils.synthesizeKey("x", {}, iframeBrowsingContext);
+ await hasConsoleMessage(dbg, "DOM | keypress");
+ await hasConsoleMessage(dbg, "λ onkeypress");
+
+ await SpecialPowers.spawn(
+ preExistingIframeBrowsingContext,
+ [],
+ async function () {
+ content.document.querySelector("input").focus();
+ }
+ );
+ await BrowserTestUtils.synthesizeKey(
+ "x",
+ {},
+ preExistingIframeBrowsingContext
+ );
+ await hasConsoleMessage(dbg, "DOM | keydown");
+ await hasConsoleMessage(dbg, "λ onkeydown");
+
// Test Blackboxing
info("Clear the console from previous traces");
const { hud } = await dbg.toolbox.getPanel("webconsole");