1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 10:37:45 +00:00

LibWeb: Generate exposed Window/Worker interfaces as lazy objects

We now lazily create these instances on-demand rather than all at once
when a Window/Worker object is created.
This commit is contained in:
Timothy Flynn 2023-01-10 07:32:24 -05:00 committed by Andreas Kling
parent 3deb8e322f
commit 6e93d89ee3
4 changed files with 15 additions and 37 deletions

View file

@ -387,7 +387,7 @@ JS::VM& main_thread_vm()
JS::DeferGC defer_gc(root_realm->heap());
auto object = JS::Object::create(*root_realm, nullptr);
root_realm->set_global_object(object, object);
add_window_exposed_interfaces(*object, *root_realm);
add_window_exposed_interfaces(*object);
vm->push_execution_context(*custom_data.root_execution_context);
}

View file

@ -35,7 +35,7 @@ public:
realm->set_host_defined(move(host_defined));
// FIXME: Shared workers should use the shared worker method
Bindings::add_dedicated_worker_exposed_interfaces(realm->global_object(), *realm);
Bindings::add_dedicated_worker_exposed_interfaces(realm->global_object());
return settings_object;
}

View file

@ -1061,7 +1061,7 @@ HTML::BrowsingContext* Window::browsing_context()
void Window::initialize_web_interfaces(Badge<WindowEnvironmentSettingsObject>)
{
auto& realm = this->realm();
add_window_exposed_interfaces(*this, realm);
add_window_exposed_interfaces(*this);
Object::set_prototype(&Bindings::ensure_web_prototype<Bindings::WindowPrototype>(realm, "Window"));