Serenity Operating System
1/*
2 * Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <LibWeb/Bindings/PlatformObject.h>
10#include <LibWeb/HTML/NavigatorConcurrentHardware.h>
11#include <LibWeb/HTML/NavigatorID.h>
12#include <LibWeb/HTML/NavigatorLanguage.h>
13#include <LibWeb/HTML/NavigatorOnLine.h>
14
15namespace Web::HTML {
16
17class WorkerNavigator : public Bindings::PlatformObject
18 , public NavigatorConcurrentHardwareMixin
19 , public NavigatorIDMixin
20 , public NavigatorLanguageMixin
21 , public NavigatorOnLineMixin {
22 WEB_PLATFORM_OBJECT(WorkerNavigator, Bindings::PlatformObject);
23
24public:
25 static WebIDL::ExceptionOr<JS::NonnullGCPtr<WorkerNavigator>> create(WorkerGlobalScope&);
26
27 virtual ~WorkerNavigator() override;
28
29private:
30 explicit WorkerNavigator(WorkerGlobalScope&);
31
32 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
33};
34
35}