1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 00:55:08 +00:00
serenity/Userland/Libraries/LibWeb/HTML/Navigator.idl
Andrew Kaster 2d5bee256e LibWeb: Re-implement HTML::Navigator using IDL
Get rid of the bespoke NavigatorObject class and use the modern IDL
strategies for creating platform objects to re-implement Navigator and
its associcated mixin interfaces. While we're here, implement it in a
way that brings WorkerNavigator up to spec :^)
2022-10-09 10:14:57 +02:00

41 lines
1.5 KiB
Text

#import <HTML/NavigatorID.idl>
#import <HTML/NavigatorLanguage.idl>
#import <HTML/NavigatorOnLine.idl>
#import <HTML/NavigatorConcurrentHardware.idl>
// https://html.spec.whatwg.org/multipage/system-state.html#navigator
[Exposed=Window]
interface Navigator {
// objects implementing this interface also implement the interfaces given below
};
// NOTE: As NavigatorContentUtils, NavigatorCookies, and NavigatorPlugins are not used in WorkerNavigator,
// we define them here.
// https://html.spec.whatwg.org/multipage/system-state.html#navigatorcontentutils
interface mixin NavigatorContentUtils {
// FIXME: [SecureContext] undefined registerProtocolHandler(DOMString scheme, USVString url);
// FIXME: [SecureContext] undefined unregisterProtocolHandler(DOMString scheme, USVString url);
};
// https://html.spec.whatwg.org/multipage/system-state.html#navigatorcookies
interface mixin NavigatorCookies {
readonly attribute boolean cookieEnabled;
};
// https://html.spec.whatwg.org/multipage/system-state.html#navigatorplugins
interface mixin NavigatorPlugins {
// FIXME: [SameObject] readonly attribute PluginArray plugins;
// FIXME: [SameObject] readonly attribute MimeTypeArray mimeTypes;
boolean javaEnabled();
readonly attribute boolean pdfViewerEnabled;
};
Navigator includes NavigatorID;
Navigator includes NavigatorLanguage;
Navigator includes NavigatorOnLine;
Navigator includes NavigatorContentUtils;
Navigator includes NavigatorCookies;
Navigator includes NavigatorPlugins;
Navigator includes NavigatorConcurrentHardware;