1 module libwasm.bindings.Navigator; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.BatteryManager; 7 import libwasm.bindings.Clipboard; 8 import libwasm.bindings.CredentialManagement; 9 import libwasm.bindings.Fetch; 10 import libwasm.bindings.Gamepad; 11 import libwasm.bindings.GamepadServiceTest; 12 import libwasm.bindings.Geolocation; 13 import libwasm.bindings.MIDIAccess; 14 import libwasm.bindings.MIDIOptions; 15 import libwasm.bindings.MediaCapabilities; 16 import libwasm.bindings.MediaDevices; 17 import libwasm.bindings.MediaKeySystemAccess; 18 import libwasm.bindings.MediaStream; 19 import libwasm.bindings.MediaStreamError; 20 import libwasm.bindings.MimeTypeArray; 21 import libwasm.bindings.NetworkInformation; 22 import libwasm.bindings.Permissions; 23 import libwasm.bindings.PluginArray; 24 import libwasm.bindings.Presentation; 25 import libwasm.bindings.ServiceWorkerContainer; 26 import libwasm.bindings.StorageManager; 27 import libwasm.bindings.TCPSocket; 28 import libwasm.bindings.VRDisplay; 29 import libwasm.bindings.VRServiceTest; 30 31 @safe: 32 nothrow: 33 34 alias MozGetUserMediaDevicesSuccessCallback = void delegate(Optional!(nsIVariant)); 35 struct Navigator { 36 nothrow: 37 JsHandle handle; 38 alias handle this; 39 this(Handle h) { 40 this.handle = JsHandle(h); 41 } 42 auto permissions()() { 43 return Permissions(Object_Getter__Handle(this.handle, "permissions")); 44 } 45 auto mimeTypes()() { 46 return MimeTypeArray(Object_Getter__Handle(this.handle, "mimeTypes")); 47 } 48 auto plugins()() { 49 return PluginArray(Object_Getter__Handle(this.handle, "plugins")); 50 } 51 string doNotTrack()() { 52 return Object_Getter__string(this.handle, "doNotTrack"); 53 } 54 auto getBattery()() { 55 return JsPromise!(BatteryManager)(Object_Getter__Handle(this.handle, "getBattery")); 56 } 57 bool vibrate()(uint duration) { 58 return Serialize_Object_VarArgCall!bool(this.handle, "vibrate", "uint", tuple(duration)); 59 } 60 bool vibrate()(scope ref Sequence!(uint) pattern) { 61 return Serialize_Object_VarArgCall!bool(this.handle, "vibrate", "Handle", tuple(cast(Handle)pattern.handle)); 62 } 63 int maxTouchPoints()() { 64 return Object_Getter__int(this.handle, "maxTouchPoints"); 65 } 66 auto mediaCapabilities()() { 67 return MediaCapabilities(Object_Getter__Handle(this.handle, "mediaCapabilities")); 68 } 69 void setVibrationPermission()(bool permitted, bool persistent /* = true */) { 70 Serialize_Object_VarArgCall!void(this.handle, "setVibrationPermission", "bool;bool", tuple(permitted, persistent)); 71 } 72 void setVibrationPermission()(bool permitted) { 73 Object_Call_bool__void(this.handle, "setVibrationPermission", permitted); 74 } 75 string oscpu()() { 76 return Object_Getter__string(this.handle, "oscpu"); 77 } 78 string vendor()() { 79 return Object_Getter__string(this.handle, "vendor"); 80 } 81 string vendorSub()() { 82 return Object_Getter__string(this.handle, "vendorSub"); 83 } 84 string productSub()() { 85 return Object_Getter__string(this.handle, "productSub"); 86 } 87 bool cookieEnabled()() { 88 return Object_Getter__bool(this.handle, "cookieEnabled"); 89 } 90 string buildID()() { 91 return Object_Getter__string(this.handle, "buildID"); 92 } 93 bool javaEnabled()() { 94 return Object_Getter__bool(this.handle, "javaEnabled"); 95 } 96 auto connection()() { 97 return NetworkInformation(Object_Getter__Handle(this.handle, "connection")); 98 } 99 auto getGamepads()() { 100 return Sequence!(Optional!(Gamepad))(Object_Getter__Handle(this.handle, "getGamepads")); 101 } 102 auto requestGamepadServiceTest()() { 103 return GamepadServiceTest(Object_Getter__Handle(this.handle, "requestGamepadServiceTest")); 104 } 105 auto getVRDisplays()() { 106 return JsPromise!(Sequence!(VRDisplay))(Object_Getter__Handle(this.handle, "getVRDisplays")); 107 } 108 auto activeVRDisplays()() { 109 return Sequence!(VRDisplay)(Object_Getter__Handle(this.handle, "activeVRDisplays")); 110 } 111 bool isWebVRContentDetected()() { 112 return Object_Getter__bool(this.handle, "isWebVRContentDetected"); 113 } 114 bool isWebVRContentPresenting()() { 115 return Object_Getter__bool(this.handle, "isWebVRContentPresenting"); 116 } 117 void requestVRPresentation()(scope ref VRDisplay display) { 118 Object_Call_Handle__void(this.handle, "requestVRPresentation", display._parent); 119 } 120 auto requestVRServiceTest()() { 121 return VRServiceTest(Object_Getter__Handle(this.handle, "requestVRServiceTest")); 122 } 123 auto requestMIDIAccess()(scope ref MIDIOptions options) { 124 return JsPromise!(MIDIAccess)(Object_Call_Handle__Handle(this.handle, "requestMIDIAccess", options.handle)); 125 } 126 auto requestMIDIAccess()() { 127 return JsPromise!(MIDIAccess)(Object_Getter__Handle(this.handle, "requestMIDIAccess")); 128 } 129 auto mediaDevices()() { 130 return MediaDevices(Object_Getter__Handle(this.handle, "mediaDevices")); 131 } 132 void mozGetUserMedia()(scope ref MediaStreamConstraints constraints, NavigatorUserMediaSuccessCallback successCallback, NavigatorUserMediaErrorCallback errorCallback) { 133 Navigator_mozGetUserMedia(this.handle, constraints.handle, successCallback, errorCallback); 134 } 135 void mozGetUserMediaDevices()(scope ref MediaStreamConstraints constraints, MozGetUserMediaDevicesSuccessCallback onsuccess, NavigatorUserMediaErrorCallback onerror, uint innerWindowID /* = 0 */, string callID /* = "" */) { 136 Navigator_mozGetUserMediaDevices(this.handle, constraints.handle, onsuccess, onerror, innerWindowID, callID); 137 } 138 void mozGetUserMediaDevices()(scope ref MediaStreamConstraints constraints, MozGetUserMediaDevicesSuccessCallback onsuccess, NavigatorUserMediaErrorCallback onerror, uint innerWindowID /* = 0 */) { 139 Navigator_mozGetUserMediaDevices_0(this.handle, constraints.handle, onsuccess, onerror, innerWindowID); 140 } 141 void mozGetUserMediaDevices()(scope ref MediaStreamConstraints constraints, MozGetUserMediaDevicesSuccessCallback onsuccess, NavigatorUserMediaErrorCallback onerror) { 142 Navigator_mozGetUserMediaDevices_1(this.handle, constraints.handle, onsuccess, onerror); 143 } 144 auto serviceWorker()() { 145 return ServiceWorkerContainer(Object_Getter__Handle(this.handle, "serviceWorker")); 146 } 147 bool sendBeacon(T1)(string url, scope auto ref Optional!(T1) data /* = no!(BodyInit) */) if (isTOrPointer!(T1, BodyInit)) { 148 return Serialize_Object_VarArgCall!bool(this.handle, "sendBeacon", "string;Optional!SumType!(Handle,Handle,Handle,Handle,string)", tuple(url, !data.empty, libwasm.sumtype.match!(((ref data.Types[0] v) => 0),((ref data.Types[1] v) => 1),((ref data.Types[2] v) => 2),((ref data.Types[3] v) => 3),((string v) => 4))(data),tuple(libwasm.sumtype.match!(((ref data.Types[0] v) => cast(Handle)v.handle),((ref data.Types[1] v) => Handle.init),((ref data.Types[2] v) => Handle.init),((ref data.Types[3] v) => Handle.init),((string v) => Handle.init))(data),libwasm.sumtype.match!(((ref data.Types[0] v) => Handle.init),((ref data.Types[1] v) => cast(Handle)v.handle),((ref data.Types[2] v) => Handle.init),((ref data.Types[3] v) => Handle.init),((string v) => Handle.init))(data),libwasm.sumtype.match!(((ref data.Types[0] v) => Handle.init),((ref data.Types[1] v) => Handle.init),((ref data.Types[2] v) => cast(Handle)v.handle),((ref data.Types[3] v) => Handle.init),((string v) => Handle.init))(data),libwasm.sumtype.match!(((ref data.Types[0] v) => Handle.init),((ref data.Types[1] v) => Handle.init),((ref data.Types[2] v) => Handle.init),((ref data.Types[3] v) => cast(Handle)v.handle),((string v) => Handle.init))(data),libwasm.sumtype.match!(((ref data.Types[0] v) => string.init),((ref data.Types[1] v) => string.init),((ref data.Types[2] v) => string.init),((ref data.Types[3] v) => string.init),((string v) => v))(data)))); 149 } 150 bool sendBeacon()(string url) { 151 return Object_Call_string__bool(this.handle, "sendBeacon", url); 152 } 153 auto presentation()() { 154 return recastOpt!(Presentation)(Object_Getter__OptionalHandle(this.handle, "presentation")); 155 } 156 auto mozTCPSocket()() { 157 return LegacyMozTCPSocket(Object_Getter__Handle(this.handle, "mozTCPSocket")); 158 } 159 auto requestMediaKeySystemAccess()(string keySystem, scope ref Sequence!(MediaKeySystemConfiguration) supportedConfigurations) { 160 return JsPromise!(MediaKeySystemAccess)(Serialize_Object_VarArgCall!Handle(this.handle, "requestMediaKeySystemAccess", "string;Handle", tuple(keySystem, cast(Handle)supportedConfigurations.handle))); 161 } 162 auto credentials()() { 163 return CredentialsContainer(Object_Getter__Handle(this.handle, "credentials")); 164 } 165 auto clipboard()() { 166 return Clipboard(Object_Getter__Handle(this.handle, "clipboard")); 167 } 168 string appCodeName()() { 169 return Object_Getter__string(this.handle, "appCodeName"); 170 } 171 string appName()() { 172 return Object_Getter__string(this.handle, "appName"); 173 } 174 string appVersion()() { 175 return Object_Getter__string(this.handle, "appVersion"); 176 } 177 string platform()() { 178 return Object_Getter__string(this.handle, "platform"); 179 } 180 string userAgent()() { 181 return Object_Getter__string(this.handle, "userAgent"); 182 } 183 string product()() { 184 return Object_Getter__string(this.handle, "product"); 185 } 186 bool taintEnabled()() { 187 return Object_Getter__bool(this.handle, "taintEnabled"); 188 } 189 Optional!(string) language()() { 190 return Object_Getter__OptionalString(this.handle, "language"); 191 } 192 auto languages()() { 193 return Sequence!(string)(Object_Getter__Handle(this.handle, "languages")); 194 } 195 bool onLine()() { 196 return Object_Getter__bool(this.handle, "onLine"); 197 } 198 void checkProtocolHandlerAllowed()(string scheme, scope ref URI handlerURI, scope ref URI documentURI) { 199 Serialize_Object_VarArgCall!void(this.handle, "checkProtocolHandlerAllowed", "string;Handle;Handle", tuple(scheme, cast(Handle)handlerURI.handle, cast(Handle)documentURI.handle)); 200 } 201 void registerProtocolHandler()(string scheme, string url, string title) { 202 Serialize_Object_VarArgCall!void(this.handle, "registerProtocolHandler", "string;string;string", tuple(scheme, url, title)); 203 } 204 void registerContentHandler()(string mimeType, string url, string title) { 205 Serialize_Object_VarArgCall!void(this.handle, "registerContentHandler", "string;string;string", tuple(mimeType, url, title)); 206 } 207 uint hardwareConcurrency()() { 208 return Object_Getter__uint(this.handle, "hardwareConcurrency"); 209 } 210 auto storage()() { 211 return StorageManager(Object_Getter__Handle(this.handle, "storage")); 212 } 213 bool webdriver()() { 214 return Object_Getter__bool(this.handle, "webdriver"); 215 } 216 auto geolocation()() { 217 return Geolocation(Object_Getter__Handle(this.handle, "geolocation")); 218 } 219 } 220 struct NavigatorAutomationInformation { 221 nothrow: 222 JsHandle handle; 223 alias handle this; 224 this(Handle h) { 225 this.handle = JsHandle(h); 226 } 227 bool webdriver()() { 228 return Object_Getter__bool(this.handle, "webdriver"); 229 } 230 } 231 struct NavigatorConcurrentHardware { 232 nothrow: 233 JsHandle handle; 234 alias handle this; 235 this(Handle h) { 236 this.handle = JsHandle(h); 237 } 238 uint hardwareConcurrency()() { 239 return Object_Getter__uint(this.handle, "hardwareConcurrency"); 240 } 241 } 242 struct NavigatorContentUtils { 243 nothrow: 244 JsHandle handle; 245 alias handle this; 246 this(Handle h) { 247 this.handle = JsHandle(h); 248 } 249 void checkProtocolHandlerAllowed()(string scheme, scope ref URI handlerURI, scope ref URI documentURI) { 250 Serialize_Object_VarArgCall!void(this.handle, "checkProtocolHandlerAllowed", "string;Handle;Handle", tuple(scheme, cast(Handle)handlerURI.handle, cast(Handle)documentURI.handle)); 251 } 252 void registerProtocolHandler()(string scheme, string url, string title) { 253 Serialize_Object_VarArgCall!void(this.handle, "registerProtocolHandler", "string;string;string", tuple(scheme, url, title)); 254 } 255 void registerContentHandler()(string mimeType, string url, string title) { 256 Serialize_Object_VarArgCall!void(this.handle, "registerContentHandler", "string;string;string", tuple(mimeType, url, title)); 257 } 258 } 259 struct NavigatorGeolocation { 260 nothrow: 261 JsHandle handle; 262 alias handle this; 263 this(Handle h) { 264 this.handle = JsHandle(h); 265 } 266 auto geolocation()() { 267 return Geolocation(Object_Getter__Handle(this.handle, "geolocation")); 268 } 269 } 270 struct NavigatorID { 271 nothrow: 272 JsHandle handle; 273 alias handle this; 274 this(Handle h) { 275 this.handle = JsHandle(h); 276 } 277 string appCodeName()() { 278 return Object_Getter__string(this.handle, "appCodeName"); 279 } 280 string appName()() { 281 return Object_Getter__string(this.handle, "appName"); 282 } 283 string appVersion()() { 284 return Object_Getter__string(this.handle, "appVersion"); 285 } 286 string platform()() { 287 return Object_Getter__string(this.handle, "platform"); 288 } 289 string userAgent()() { 290 return Object_Getter__string(this.handle, "userAgent"); 291 } 292 string product()() { 293 return Object_Getter__string(this.handle, "product"); 294 } 295 bool taintEnabled()() { 296 return Object_Getter__bool(this.handle, "taintEnabled"); 297 } 298 } 299 struct NavigatorLanguage { 300 nothrow: 301 JsHandle handle; 302 alias handle this; 303 this(Handle h) { 304 this.handle = JsHandle(h); 305 } 306 Optional!(string) language()() { 307 return Object_Getter__OptionalString(this.handle, "language"); 308 } 309 auto languages()() { 310 return Sequence!(string)(Object_Getter__Handle(this.handle, "languages")); 311 } 312 } 313 struct NavigatorOnLine { 314 nothrow: 315 JsHandle handle; 316 alias handle this; 317 this(Handle h) { 318 this.handle = JsHandle(h); 319 } 320 bool onLine()() { 321 return Object_Getter__bool(this.handle, "onLine"); 322 } 323 } 324 struct NavigatorStorage { 325 nothrow: 326 JsHandle handle; 327 alias handle this; 328 this(Handle h) { 329 this.handle = JsHandle(h); 330 } 331 auto storage()() { 332 return StorageManager(Object_Getter__Handle(this.handle, "storage")); 333 } 334 } 335 struct NavigatorStorageUtils { 336 nothrow: 337 JsHandle handle; 338 alias handle this; 339 this(Handle h) { 340 this.handle = JsHandle(h); 341 } 342 } 343 alias NavigatorUserMediaErrorCallback = void delegate(MediaStreamError); 344 alias NavigatorUserMediaSuccessCallback = void delegate(MediaStream); 345 346 347 extern (C) void Navigator_mozGetUserMedia(Handle, Handle, NavigatorUserMediaSuccessCallback, NavigatorUserMediaErrorCallback); 348 extern (C) void Navigator_mozGetUserMediaDevices(Handle, Handle, MozGetUserMediaDevicesSuccessCallback, NavigatorUserMediaErrorCallback, uint, string); 349 extern (C) void Navigator_mozGetUserMediaDevices_0(Handle, Handle, MozGetUserMediaDevicesSuccessCallback, NavigatorUserMediaErrorCallback, uint); 350 extern (C) void Navigator_mozGetUserMediaDevices_1(Handle, Handle, MozGetUserMediaDevicesSuccessCallback, NavigatorUserMediaErrorCallback);