54 lines
1.9 KiB
HTML
54 lines
1.9 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
|
|
<script>
|
|
|
|
function createFrame()
|
|
{
|
|
let iframe = document.createElement("iframe");
|
|
iframe.src = "data:text/html,<p>No JavaScript.</p>";
|
|
document.body.appendChild(iframe);
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = ProtocolTest.createAsyncSuite("Runtime.executionContextCreated.ContextWithoutScript");
|
|
|
|
suite.addTestCase({
|
|
name: "Runtime.executionContextCreated.ContextWithoutScript.SubFrame",
|
|
description: "Test that Runtime.executionContextCreated event is fired when a new iframe is added to the page and its document doesn't have any JavaScript.",
|
|
async test() {
|
|
await InspectorProtocol.awaitCommand({method: "Page.enable"});
|
|
await InspectorProtocol.awaitCommand({method: "Runtime.enable"});
|
|
|
|
let [executionContextCreatedEvent] = await Promise.all([
|
|
InspectorProtocol.awaitEvent({event: "Runtime.executionContextCreated"}),
|
|
InspectorProtocol.awaitCommand({
|
|
method: "Runtime.evaluate",
|
|
params: {expression: `createFrame()`}
|
|
})
|
|
]);
|
|
|
|
ProtocolTest.pass("Should receive Runtime.executionContextCreated notification.");
|
|
|
|
let evaluateResult = await InspectorProtocol.awaitCommand({
|
|
method: "Runtime.evaluate",
|
|
params: {
|
|
contextId: executionContextCreatedEvent.params.context.id,
|
|
expression: `document.body.textContent`
|
|
}
|
|
});
|
|
|
|
ProtocolTest.expectEqual(evaluateResult.result.value, "No JavaScript.", "Should be able to evaluate in subframe.");
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Test that Runtime.executionContextCreated event is fired even for pages without JavaScript.</p>
|
|
</body>
|
|
</html>
|