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

@ -17,14 +17,6 @@
namespace Web::Bindings {
struct WebEngineCustomData final : public JS::VM::CustomData {
virtual ~WebEngineCustomData() override = default;
virtual void spin_event_loop_until(GC::Root<GC::Function<bool()>> goal_condition) override;
HTML::Agent agent;
};
struct WebEngineCustomJobCallbackData final : public JS::JobCallback::CustomData {
WebEngineCustomJobCallbackData(JS::Realm& incumbent_realm, OwnPtr<JS::ExecutionContext> active_script_context)
: incumbent_realm(incumbent_realm)