LibWeb: Implement NavigatorStorage mixin interface

Co-authored-by: Tim Flynn <trflynn89@serenityos.org>
This commit is contained in:
Jamie Mansfield 2024-08-13 20:56:19 +01:00 committed by Tim Flynn
commit e3b3041a0c
Notes: github-actions[bot] 2024-08-16 15:23:10 +00:00
12 changed files with 93 additions and 3 deletions

View file

@ -17,6 +17,7 @@
#include <LibWeb/HTML/WorkerGlobalScope.h>
#include <LibWeb/Page/Page.h>
#include <LibWeb/SecureContexts/AbstractOperations.h>
#include <LibWeb/StorageAPI/StorageManager.h>
namespace Web::HTML {
@ -56,6 +57,7 @@ void EnvironmentSettingsObject::visit_edges(Cell::Visitor& visitor)
visitor.ignore(m_outstanding_rejected_promises_weak_set);
m_realm_execution_context->visit_edges(visitor);
visitor.visit(m_fetch_group);
visitor.visit(m_storage_manager);
}
JS::ExecutionContext& EnvironmentSettingsObject::realm_execution_context()
@ -517,4 +519,11 @@ SerializedEnvironmentSettingsObject EnvironmentSettingsObject::serialize()
return object;
}
JS::NonnullGCPtr<StorageAPI::StorageManager> EnvironmentSettingsObject::storage_manager()
{
if (!m_storage_manager)
m_storage_manager = realm().heap().allocate<StorageAPI::StorageManager>(realm(), realm());
return *m_storage_manager;
}
}