LibWeb: Change backup imcumbent stack to hold Realm instead of Settings

This is a bit of a chonkier commit as it results in both:

clean_up_after_running_callback and prepare_to_run_callback being
changed to accept a realm instead of an environment settings object,
which has a bunch of fallout, particuarly for IDL abstract operations.
This commit is contained in:
Shannon Booth 2024-10-21 20:54:39 +13:00 committed by Andrew Kaster
parent 8dffd8e7d6
commit d7023f5f45
Notes: github-actions[bot] 2024-11-01 19:16:12 +00:00
10 changed files with 114 additions and 117 deletions

View file

@ -46,7 +46,7 @@ void EventLoop::visit_edges(Visitor& visitor)
visitor.visit(m_task_queue);
visitor.visit(m_microtask_queue);
visitor.visit(m_currently_running_task);
visitor.visit(m_backup_incumbent_settings_object_stack);
visitor.visit(m_backup_incumbent_realm_stack);
visitor.visit(m_rendering_task_function);
visitor.visit(m_system_event_loop_timer);
}
@ -538,19 +538,19 @@ void EventLoop::unregister_document(Badge<DOM::Document>, DOM::Document& documen
VERIFY(did_remove);
}
void EventLoop::push_onto_backup_incumbent_settings_object_stack(Badge<EnvironmentSettingsObject>, EnvironmentSettingsObject& environment_settings_object)
void EventLoop::push_onto_backup_incumbent_realm_stack(JS::Realm& realm)
{
m_backup_incumbent_settings_object_stack.append(environment_settings_object);
m_backup_incumbent_realm_stack.append(realm);
}
void EventLoop::pop_backup_incumbent_settings_object_stack(Badge<EnvironmentSettingsObject>)
void EventLoop::pop_backup_incumbent_realm_stack()
{
m_backup_incumbent_settings_object_stack.take_last();
m_backup_incumbent_realm_stack.take_last();
}
EnvironmentSettingsObject& EventLoop::top_of_backup_incumbent_settings_object_stack()
JS::Realm& EventLoop::top_of_backup_incumbent_realm_stack()
{
return m_backup_incumbent_settings_object_stack.last();
return m_backup_incumbent_realm_stack.last();
}
void EventLoop::register_environment_settings_object(Badge<EnvironmentSettingsObject>, EnvironmentSettingsObject& environment_settings_object)