mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-31 05:09:12 +00:00
LibWeb: Add WorkerNavigator.serviceWorker API
This simply adds a ServiceWorkerContainer object to the WorkerNavigator.
This commit is contained in:
parent
7c953552b7
commit
2667726b74
Notes:
github-actions[bot]
2024-09-07 09:40:15 +00:00
Author: https://github.com/ADKaster
Commit: 2667726b74
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1293
Reviewed-by: https://github.com/awesomekling
3 changed files with 16 additions and 0 deletions
|
@ -37,6 +37,7 @@ void WorkerNavigator::visit_edges(Cell::Visitor& visitor)
|
||||||
{
|
{
|
||||||
Base::visit_edges(visitor);
|
Base::visit_edges(visitor);
|
||||||
visitor.visit(m_media_capabilities);
|
visitor.visit(m_media_capabilities);
|
||||||
|
visitor.visit(m_service_worker_container);
|
||||||
}
|
}
|
||||||
|
|
||||||
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> WorkerNavigator::media_capabilities()
|
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> WorkerNavigator::media_capabilities()
|
||||||
|
@ -46,4 +47,11 @@ JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> WorkerNavigator::media
|
||||||
return *m_media_capabilities;
|
return *m_media_capabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JS::NonnullGCPtr<ServiceWorkerContainer> WorkerNavigator::service_worker()
|
||||||
|
{
|
||||||
|
if (!m_service_worker_container)
|
||||||
|
m_service_worker_container = heap().allocate<ServiceWorkerContainer>(realm(), realm());
|
||||||
|
return *m_service_worker_container;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <LibWeb/HTML/NavigatorID.h>
|
#include <LibWeb/HTML/NavigatorID.h>
|
||||||
#include <LibWeb/HTML/NavigatorLanguage.h>
|
#include <LibWeb/HTML/NavigatorLanguage.h>
|
||||||
#include <LibWeb/HTML/NavigatorOnLine.h>
|
#include <LibWeb/HTML/NavigatorOnLine.h>
|
||||||
|
#include <LibWeb/HTML/ServiceWorkerContainer.h>
|
||||||
#include <LibWeb/MediaCapabilitiesAPI/MediaCapabilities.h>
|
#include <LibWeb/MediaCapabilitiesAPI/MediaCapabilities.h>
|
||||||
#include <LibWeb/StorageAPI/NavigatorStorage.h>
|
#include <LibWeb/StorageAPI/NavigatorStorage.h>
|
||||||
|
|
||||||
|
@ -29,6 +30,8 @@ class WorkerNavigator : public Bindings::PlatformObject
|
||||||
public:
|
public:
|
||||||
[[nodiscard]] static JS::NonnullGCPtr<WorkerNavigator> create(WorkerGlobalScope&);
|
[[nodiscard]] static JS::NonnullGCPtr<WorkerNavigator> create(WorkerGlobalScope&);
|
||||||
|
|
||||||
|
JS::NonnullGCPtr<ServiceWorkerContainer> service_worker();
|
||||||
|
|
||||||
virtual ~WorkerNavigator() override;
|
virtual ~WorkerNavigator() override;
|
||||||
|
|
||||||
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> media_capabilities();
|
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> media_capabilities();
|
||||||
|
@ -44,6 +47,8 @@ private:
|
||||||
|
|
||||||
// https://w3c.github.io/media-capabilities/#dom-workernavigator-mediacapabilities
|
// https://w3c.github.io/media-capabilities/#dom-workernavigator-mediacapabilities
|
||||||
JS::GCPtr<MediaCapabilitiesAPI::MediaCapabilities> m_media_capabilities;
|
JS::GCPtr<MediaCapabilitiesAPI::MediaCapabilities> m_media_capabilities;
|
||||||
|
|
||||||
|
JS::GCPtr<ServiceWorkerContainer> m_service_worker_container;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,9 @@
|
||||||
interface WorkerNavigator {
|
interface WorkerNavigator {
|
||||||
// https://w3c.github.io/media-capabilities/#dom-workernavigator-mediacapabilities
|
// https://w3c.github.io/media-capabilities/#dom-workernavigator-mediacapabilities
|
||||||
[SameObject] readonly attribute MediaCapabilities mediaCapabilities;
|
[SameObject] readonly attribute MediaCapabilities mediaCapabilities;
|
||||||
|
|
||||||
|
// https://w3c.github.io/ServiceWorker/#navigator-serviceworker
|
||||||
|
[SecureContext, SameObject] readonly attribute ServiceWorkerContainer serviceWorker;
|
||||||
};
|
};
|
||||||
|
|
||||||
WorkerNavigator includes NavigatorID;
|
WorkerNavigator includes NavigatorID;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue