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

@ -186,7 +186,7 @@ static ThrowCompletionOr<Value> do_wait(VM& vm, WaitMode mode, TypedArrayBase& t
timeout = max(timeout_number.as_double(), 0.0);
// 10. If mode is sync and AgentCanSuspend() is false, throw a TypeError exception.
if (mode == WaitMode::Sync && !agent_can_suspend())
if (mode == WaitMode::Sync && !agent_can_suspend(vm))
return vm.throw_completion<TypeError>(ErrorType::AgentCannotSuspend);
// FIXME: Implement the remaining steps when we support SharedArrayBuffer.