LibWeb: Implement Navigator.serviceWorker

This currently returns a stubbed `ServiceWorkerContainer` object.
This commit is contained in:
Tim Ledbetter 2024-08-22 18:09:35 +01:00 committed by Andreas Kling
commit f3405b6eb2
Notes: github-actions[bot] 2024-08-25 10:54:02 +00:00
3 changed files with 18 additions and 0 deletions

View file

@ -12,6 +12,7 @@
#include <LibWeb/Clipboard/Clipboard.h>
#include <LibWeb/HTML/Navigator.h>
#include <LibWeb/HTML/Scripting/Environments.h>
#include <LibWeb/HTML/ServiceWorkerContainer.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/Loader/ResourceLoader.h>
#include <LibWeb/Page/Page.h>
@ -64,6 +65,7 @@ void Navigator::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_plugin_array);
visitor.visit(m_clipboard);
visitor.visit(m_user_activation);
visitor.visit(m_service_worker_container);
}
JS::NonnullGCPtr<MimeTypeArray> Navigator::mime_types()
@ -113,4 +115,11 @@ Optional<FlyString> Navigator::do_not_track() const
return {};
}
JS::NonnullGCPtr<ServiceWorkerContainer> Navigator::service_worker()
{
if (!m_service_worker_container)
m_service_worker_container = heap().allocate<ServiceWorkerContainer>(realm(), realm());
return *m_service_worker_container;
}
}