LibJS+LibWeb: Set [[CanBlock]] false to Agent for window agent

similar-origin window agents have the [[CanBlock]] flag set to false.
Achieve this by hooking up JS's concept with an agent to HTML::Agent.
For now, this is only hooked up to the similar-origin window agent
case but should be extended to the other agent types in the future.
This commit is contained in:
Shannon Booth 2025-04-20 16:49:34 +12:00 committed by Tim Flynn
commit e124ef52ee
Notes: github-actions[bot] 2025-04-22 15:52:53 +00:00
16 changed files with 106 additions and 44 deletions

View file

@ -373,8 +373,10 @@ static ErrorOr<TestMetadata, String> extract_metadata(StringView source)
metadata.harness_files.append(async_include);
metadata.is_async = true;
} else if (flag == "CanBlockIsFalse"sv) {
if (JS::agent_can_suspend())
metadata.skip_test = SkipTest::Yes;
// NOTE: This should only be skipped if AgentCanSuspend is set to true. This is currently always the case.
// Ideally we would check that, but we don't have the VM by this stage. So for now, we rely on that
// assumption.
metadata.skip_test = SkipTest::Yes;
}
}
} else if (line.starts_with("includes:"sv)) {