116 lines
3.1 KiB
HTML
116 lines
3.1 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script src="resources/async-stack-trace-test.js"></script>
|
|
<script>
|
|
|
|
function triggerRequestAnimationFrame() {
|
|
requestAnimationFrame(function handleAnimationFrame() {
|
|
debugger;
|
|
});
|
|
}
|
|
|
|
function triggerNestedRequestAnimationFrame() {
|
|
requestAnimationFrame(function handleAnimationFrame1() {
|
|
requestAnimationFrame(function handleAnimationFrame2() {
|
|
debugger;
|
|
});
|
|
});
|
|
}
|
|
|
|
function triggerSetTimeout() {
|
|
setTimeout(function handleTimeout() {
|
|
debugger;
|
|
});
|
|
}
|
|
|
|
function triggerNestedSetTimeout() {
|
|
setTimeout(function handleTimeout1() {
|
|
setTimeout(function handleTimeout2() {
|
|
debugger;
|
|
});
|
|
});
|
|
}
|
|
|
|
function triggerSetInterval() {
|
|
let timer = setInterval(function handleInterval() {
|
|
clearInterval(timer);
|
|
debugger;
|
|
});
|
|
}
|
|
|
|
function triggerNestedSetInterval() {
|
|
let outerTimer = setInterval(function handleInterval1() {
|
|
clearInterval(outerTimer);
|
|
let innerTimer = setInterval(function handleInterval2() {
|
|
clearInterval(innerTimer);
|
|
debugger;
|
|
});
|
|
});
|
|
}
|
|
|
|
function triggerPostMessage() {
|
|
let frame = document.createElement("iframe");
|
|
frame.srcdoc = `<script>window.parent.postMessage(42, "*");<\/script>`;
|
|
document.body.appendChild(frame);
|
|
|
|
window.addEventListener("message", function handleMessage() {
|
|
window.removeEventListener("message", handleMessage);
|
|
debugger;
|
|
});
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("AsyncStackTrace.Basic");
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.RequestAnimationFrame",
|
|
expression: "triggerRequestAnimationFrame()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.NestedRequestAnimationFrame",
|
|
expression: "triggerNestedRequestAnimationFrame()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.SetTimeout",
|
|
expression: "triggerSetTimeout()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.NestedSetTimeout",
|
|
expression: "triggerNestedSetTimeout()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.SetInterval",
|
|
expression: "triggerSetInterval()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.NestedSetInterval",
|
|
expression: "triggerNestedSetInterval()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.NestedSetInterval",
|
|
expression: "triggerNestedSetInterval()",
|
|
});
|
|
|
|
addAsyncStackTraceTestCase(suite, {
|
|
name: "AsyncStackTrace.Basic.PostMessage",
|
|
expression: "triggerPostMessage()",
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for checking that async stack traces exist when pausing in asynchronous callbacks: requestAnimationFrame, setTimeout, setInterval, and postMessage.</p>
|
|
</body>
|
|
</html>
|