/* * Copyright (c) 2022, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::HTML { class Navigator : public Bindings::PlatformObject , public NavigatorConcurrentHardwareMixin , public NavigatorIDMixin , public NavigatorLanguageMixin , public NavigatorOnLineMixin { WEB_PLATFORM_OBJECT(Navigator, Bindings::PlatformObject); public: static JS::NonnullGCPtr create(JS::Realm&); // FIXME: Implement NavigatorContentUtilsMixin // NavigatorCookies // FIXME: Hook up to Agent level state // https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-cookieenabled bool cookie_enabled() const { return true; } // NavigatorPlugins // FIXME: Actually support pdf viewing // https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-javaenabled bool java_enabled() const { return false; } // https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-pdfviewerenabled bool pdf_viewer_enabled() const { return false; } bool webdriver() const; virtual ~Navigator() override; private: explicit Navigator(JS::Realm&); }; }