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);