electron_sys/interface/
web_preferences.rs

1use crate::{class::Session, interface::DefaultFontFamily};
2use js_sys::JsString;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6#[derive(Clone, Debug, Default)]
7pub struct WebPreferences {
8    accessible_title: Option<JsString>,
9    additional_arguments: Option<Box<[JsValue]>>,
10    affinity: Option<JsString>,
11    allow_running_insecure_content: Option<bool>,
12    autoplay_policy: Option<JsString>,
13    background_throttling: Option<bool>,
14    context_isolation: Option<bool>,
15    default_encoding: Option<JsString>,
16    default_font_family: Option<DefaultFontFamily>,
17    default_font_size: Option<u32>,
18    default_monospace_font_size: Option<u32>,
19    dev_tools: Option<bool>,
20    disable_blink_features: Option<JsString>,
21    disable_html_fullscreen_window_resize: Option<bool>,
22    enable_blink_features: Option<JsString>,
23    enable_remote_module: Option<bool>,
24    experimental_features: Option<bool>,
25    images: Option<bool>,
26    javascript: Option<bool>,
27    minimum_font_size: Option<u32>,
28    native_window_open: Option<bool>,
29    navigate_on_drag_drop: Option<bool>,
30    node_integration_in_sub_frames: Option<bool>,
31    node_integration_in_worker: Option<bool>,
32    node_integration: Option<bool>,
33    offscreen: Option<bool>,
34    partition: Option<JsString>,
35    plugins: Option<bool>,
36    preload: Option<JsString>,
37    safe_dialogs_message: Option<JsString>,
38    safe_dialogs: Option<bool>,
39    sandbox: Option<bool>,
40    scroll_bounce: Option<bool>,
41    session: Option<Session>,
42    spellcheck: Option<bool>,
43    text_areas_are_resizable: Option<bool>,
44    web_security: Option<bool>,
45    webgl: Option<bool>,
46    webview_tag: Option<bool>,
47    zoom_factor: Option<f32>,
48}
49
50#[wasm_bindgen]
51impl WebPreferences {
52    #[allow(clippy::too_many_arguments)]
53    #[wasm_bindgen(constructor)]
54    pub fn new_with_values(
55        accessible_title: Option<JsString>,
56        additional_arguments: Option<Box<[JsValue]>>,
57        affinity: Option<JsString>,
58        allow_running_insecure_content: Option<bool>,
59        autoplay_policy: Option<JsString>,
60        background_throttling: Option<bool>,
61        context_isolation: Option<bool>,
62        default_encoding: Option<JsString>,
63        default_font_family: Option<DefaultFontFamily>,
64        default_font_size: Option<u32>,
65        default_monospace_font_size: Option<u32>,
66        dev_tools: Option<bool>,
67        disable_blink_features: Option<JsString>,
68        disable_html_fullscreen_window_resize: Option<bool>,
69        enable_blink_features: Option<JsString>,
70        enable_remote_module: Option<bool>,
71        experimental_features: Option<bool>,
72        images: Option<bool>,
73        javascript: Option<bool>,
74        minimum_font_size: Option<u32>,
75        native_window_open: Option<bool>,
76        navigate_on_drag_drop: Option<bool>,
77        node_integration_in_sub_frames: Option<bool>,
78        node_integration_in_worker: Option<bool>,
79        node_integration: Option<bool>,
80        offscreen: Option<bool>,
81        partition: Option<JsString>,
82        plugins: Option<bool>,
83        preload: Option<JsString>,
84        safe_dialogs_message: Option<JsString>,
85        safe_dialogs: Option<bool>,
86        sandbox: Option<bool>,
87        scroll_bounce: Option<bool>,
88        session: Option<Session>,
89        spellcheck: Option<bool>,
90        text_areas_are_resizable: Option<bool>,
91        web_security: Option<bool>,
92        webgl: Option<bool>,
93        webview_tag: Option<bool>,
94        zoom_factor: Option<f32>,
95    ) -> WebPreferences {
96        WebPreferences {
97            accessible_title,
98            additional_arguments,
99            affinity,
100            allow_running_insecure_content,
101            autoplay_policy,
102            background_throttling,
103            context_isolation,
104            default_encoding,
105            default_font_family,
106            default_font_size,
107            default_monospace_font_size,
108            dev_tools,
109            disable_blink_features,
110            disable_html_fullscreen_window_resize,
111            enable_blink_features,
112            enable_remote_module,
113            experimental_features,
114            images,
115            javascript,
116            minimum_font_size,
117            native_window_open,
118            navigate_on_drag_drop,
119            node_integration_in_sub_frames,
120            node_integration_in_worker,
121            node_integration,
122            offscreen,
123            partition,
124            plugins,
125            preload,
126            safe_dialogs_message,
127            safe_dialogs,
128            sandbox,
129            scroll_bounce,
130            session,
131            spellcheck,
132            text_areas_are_resizable,
133            web_security,
134            webgl,
135            webview_tag,
136            zoom_factor,
137        }
138    }
139
140    #[wasm_bindgen(getter, js_name = "accessibleTitle")]
141    pub fn accessible_title(&self) -> Option<JsString> {
142        self.accessible_title.clone()
143    }
144
145    #[wasm_bindgen(setter)]
146    pub fn set_accessible_title(&mut self, value: Option<JsString>) {
147        self.accessible_title = value;
148    }
149
150    #[wasm_bindgen(getter, js_name = "additionalArguments")]
151    pub fn additional_arguments(&self) -> Option<Box<[JsValue]>> {
152        self.additional_arguments.clone()
153    }
154
155    #[wasm_bindgen(setter)]
156    pub fn set_additional_arguments(&mut self, value: Option<Box<[JsValue]>>) {
157        self.additional_arguments = value;
158    }
159
160    #[wasm_bindgen(getter)]
161    pub fn affinity(&self) -> Option<JsString> {
162        self.affinity.clone()
163    }
164
165    #[wasm_bindgen(setter)]
166    pub fn set_affinity(&mut self, value: Option<JsString>) {
167        self.affinity = value;
168    }
169
170    #[wasm_bindgen(getter, js_name = "allowRunningInsecureContent")]
171    pub fn allow_running_insecure_content(&self) -> Option<bool> {
172        self.allow_running_insecure_content
173    }
174
175    #[wasm_bindgen(setter)]
176    pub fn set_allow_running_insecure_content(&mut self, value: Option<bool>) {
177        self.allow_running_insecure_content = value;
178    }
179
180    #[wasm_bindgen(getter, js_name = "autoplayPolicy")]
181    pub fn autoplay_policy(&self) -> Option<JsString> {
182        self.autoplay_policy.clone()
183    }
184
185    #[wasm_bindgen(setter)]
186    pub fn set_autoplay_policy(&mut self, value: Option<JsString>) {
187        self.autoplay_policy = value;
188    }
189
190    #[wasm_bindgen(getter, js_name = "backgroundThrottling")]
191    pub fn background_throttling(&self) -> Option<bool> {
192        self.background_throttling
193    }
194
195    #[wasm_bindgen(setter)]
196    pub fn set_background_throttling(&mut self, value: Option<bool>) {
197        self.background_throttling = value;
198    }
199
200    #[wasm_bindgen(getter, js_name = "contextIsolation")]
201    pub fn context_isolation(&self) -> Option<bool> {
202        self.context_isolation
203    }
204
205    #[wasm_bindgen(setter)]
206    pub fn set_context_isolation(&mut self, value: Option<bool>) {
207        self.context_isolation = value;
208    }
209
210    #[wasm_bindgen(getter, js_name = "defaultEncoding")]
211    pub fn default_encoding(&self) -> Option<JsString> {
212        self.default_encoding.clone()
213    }
214
215    #[wasm_bindgen(setter)]
216    pub fn set_default_encoding(&mut self, value: Option<JsString>) {
217        self.default_encoding = value;
218    }
219
220    #[wasm_bindgen(getter, js_name = "defaultFontFamily")]
221    pub fn default_font_family(&self) -> Option<DefaultFontFamily> {
222        self.default_font_family.clone()
223    }
224
225    #[wasm_bindgen(setter)]
226    pub fn set_default_font_family(&mut self, value: Option<DefaultFontFamily>) {
227        self.default_font_family = value;
228    }
229
230    #[wasm_bindgen(getter, js_name = "defaultFontSize")]
231    pub fn default_font_size(&self) -> Option<u32> {
232        self.default_font_size
233    }
234
235    #[wasm_bindgen(setter)]
236    pub fn set_default_font_size(&mut self, value: Option<u32>) {
237        self.default_font_size = value;
238    }
239
240    #[wasm_bindgen(getter, js_name = "defaultMonospaceFontSize")]
241    pub fn default_monospace_font_size(&self) -> Option<u32> {
242        self.default_monospace_font_size
243    }
244
245    #[wasm_bindgen(setter)]
246    pub fn set_default_monospace_font_size(&mut self, value: Option<u32>) {
247        self.default_monospace_font_size = value;
248    }
249
250    #[wasm_bindgen(getter, js_name = "devTools")]
251    pub fn dev_tools(&self) -> Option<bool> {
252        self.dev_tools
253    }
254
255    #[wasm_bindgen(setter)]
256    pub fn set_dev_tools(&mut self, value: Option<bool>) {
257        self.dev_tools = value;
258    }
259
260    #[wasm_bindgen(getter, js_name = "disableBlinkFeatures")]
261    pub fn disable_blink_features(&self) -> Option<JsString> {
262        self.disable_blink_features.clone()
263    }
264
265    #[wasm_bindgen(setter)]
266    pub fn set_disable_blink_features(&mut self, value: Option<JsString>) {
267        self.disable_blink_features = value;
268    }
269
270    #[wasm_bindgen(getter, js_name = "disableHtmlFullscreenWindowResize")]
271    pub fn disable_html_fullscreen_window_resize(&self) -> Option<bool> {
272        self.disable_html_fullscreen_window_resize
273    }
274
275    #[wasm_bindgen(setter)]
276    pub fn set_disable_html_fullscreen_window_resize(&mut self, value: Option<bool>) {
277        self.disable_html_fullscreen_window_resize = value;
278    }
279
280    #[wasm_bindgen(getter, js_name = "enableBlinkFeatures")]
281    pub fn enable_blink_features(&self) -> Option<JsString> {
282        self.enable_blink_features.clone()
283    }
284
285    #[wasm_bindgen(setter)]
286    pub fn set_enable_blink_features(&mut self, value: Option<JsString>) {
287        self.enable_blink_features = value;
288    }
289
290    #[wasm_bindgen(getter, js_name = "enableRemoteModule")]
291    pub fn enable_remote_module(&self) -> Option<bool> {
292        self.enable_remote_module
293    }
294
295    #[wasm_bindgen(setter)]
296    pub fn set_enable_remote_module(&mut self, value: Option<bool>) {
297        self.enable_remote_module = value;
298    }
299
300    #[wasm_bindgen(getter, js_name = "experimentalFeatures")]
301    pub fn experimental_features(&self) -> Option<bool> {
302        self.experimental_features
303    }
304
305    #[wasm_bindgen(setter)]
306    pub fn set_experimental_features(&mut self, value: Option<bool>) {
307        self.experimental_features = value;
308    }
309
310    #[wasm_bindgen(getter)]
311    pub fn images(&self) -> Option<bool> {
312        self.images
313    }
314
315    #[wasm_bindgen(setter)]
316    pub fn set_images(&mut self, value: Option<bool>) {
317        self.images = value;
318    }
319
320    #[wasm_bindgen(getter)]
321    pub fn javascript(&self) -> Option<bool> {
322        self.javascript
323    }
324
325    #[wasm_bindgen(setter)]
326    pub fn set_javascript(&mut self, value: Option<bool>) {
327        self.javascript = value;
328    }
329
330    #[wasm_bindgen(getter, js_name = "minimumFontSize")]
331    pub fn minimum_font_size(&self) -> Option<u32> {
332        self.minimum_font_size
333    }
334
335    #[wasm_bindgen(setter)]
336    pub fn set_minimum_font_size(&mut self, value: Option<u32>) {
337        self.minimum_font_size = value;
338    }
339
340    #[wasm_bindgen(getter, js_name = "nativeWindowOpen")]
341    pub fn native_window_open(&self) -> Option<bool> {
342        self.native_window_open
343    }
344
345    #[wasm_bindgen(setter)]
346    pub fn set_native_window_open(&mut self, value: Option<bool>) {
347        self.native_window_open = value;
348    }
349
350    #[wasm_bindgen(getter, js_name = "navigateOnDragDrop")]
351    pub fn navigate_on_drag_drop(&self) -> Option<bool> {
352        self.navigate_on_drag_drop
353    }
354
355    #[wasm_bindgen(setter)]
356    pub fn set_navigate_on_drag_drop(&mut self, value: Option<bool>) {
357        self.navigate_on_drag_drop = value;
358    }
359
360    #[wasm_bindgen(getter, js_name = "nodeIntegrationInSubFrames")]
361    pub fn node_integration_in_sub_frames(&self) -> Option<bool> {
362        self.node_integration_in_sub_frames
363    }
364
365    #[wasm_bindgen(setter)]
366    pub fn set_node_integration_in_sub_frames(&mut self, value: Option<bool>) {
367        self.node_integration_in_sub_frames = value;
368    }
369
370    #[wasm_bindgen(getter, js_name = "nodeIntegrationInWorker")]
371    pub fn node_integration_in_worker(&self) -> Option<bool> {
372        self.node_integration_in_worker
373    }
374
375    #[wasm_bindgen(setter)]
376    pub fn set_node_integration_in_worker(&mut self, value: Option<bool>) {
377        self.node_integration_in_worker = value;
378    }
379
380    #[wasm_bindgen(getter, js_name = "nodeIntegration")]
381    pub fn node_integration(&self) -> Option<bool> {
382        self.node_integration
383    }
384
385    #[wasm_bindgen(setter)]
386    pub fn set_node_integration(&mut self, value: Option<bool>) {
387        self.node_integration = value;
388    }
389
390    #[wasm_bindgen(getter)]
391    pub fn offscreen(&self) -> Option<bool> {
392        self.offscreen
393    }
394
395    #[wasm_bindgen(setter)]
396    pub fn set_offscreen(&mut self, value: Option<bool>) {
397        self.offscreen = value;
398    }
399
400    #[wasm_bindgen(getter)]
401    pub fn partition(&self) -> Option<JsString> {
402        self.partition.clone()
403    }
404
405    #[wasm_bindgen(setter)]
406    pub fn set_partition(&mut self, value: Option<JsString>) {
407        self.partition = value;
408    }
409
410    #[wasm_bindgen(getter)]
411    pub fn plugins(&self) -> Option<bool> {
412        self.plugins
413    }
414
415    #[wasm_bindgen(setter)]
416    pub fn set_plugins(&mut self, value: Option<bool>) {
417        self.plugins = value;
418    }
419
420    #[wasm_bindgen(getter)]
421    pub fn preload(&self) -> Option<JsString> {
422        self.preload.clone()
423    }
424
425    #[wasm_bindgen(setter)]
426    pub fn set_preload(&mut self, value: Option<JsString>) {
427        self.preload = value;
428    }
429
430    #[wasm_bindgen(getter, js_name = "safeDialogsMessage")]
431    pub fn safe_dialogs_message(&self) -> Option<JsString> {
432        self.safe_dialogs_message.clone()
433    }
434
435    #[wasm_bindgen(setter)]
436    pub fn set_safe_dialogs_message(&mut self, value: Option<JsString>) {
437        self.safe_dialogs_message = value;
438    }
439
440    #[wasm_bindgen(getter, js_name = "safeDialogs")]
441    pub fn safe_dialogs(&self) -> Option<bool> {
442        self.safe_dialogs
443    }
444
445    #[wasm_bindgen(setter)]
446    pub fn set_safe_dialogs(&mut self, value: Option<bool>) {
447        self.safe_dialogs = value;
448    }
449
450    #[wasm_bindgen(getter)]
451    pub fn sandbox(&self) -> Option<bool> {
452        self.sandbox
453    }
454
455    #[wasm_bindgen(setter)]
456    pub fn set_sandbox(&mut self, value: Option<bool>) {
457        self.sandbox = value;
458    }
459
460    #[wasm_bindgen(getter, js_name = "scrollBounce")]
461    pub fn scroll_bounce(&self) -> Option<bool> {
462        self.scroll_bounce
463    }
464
465    #[wasm_bindgen(setter)]
466    pub fn set_scroll_bounce(&mut self, value: Option<bool>) {
467        self.scroll_bounce = value;
468    }
469
470    #[wasm_bindgen(getter)]
471    pub fn session(&self) -> Option<Session> {
472        self.session.clone()
473    }
474
475    #[wasm_bindgen(setter)]
476    pub fn set_session(&mut self, value: Option<Session>) {
477        self.session = value;
478    }
479
480    #[wasm_bindgen(getter)]
481    pub fn spellcheck(&self) -> Option<bool> {
482        self.spellcheck
483    }
484
485    #[wasm_bindgen(setter)]
486    pub fn set_spellcheck(&mut self, value: Option<bool>) {
487        self.spellcheck = value;
488    }
489
490    #[wasm_bindgen(getter, js_name = "textAreasAreResizable")]
491    pub fn text_areas_are_resizable(&self) -> Option<bool> {
492        self.text_areas_are_resizable
493    }
494
495    #[wasm_bindgen(setter)]
496    pub fn set_text_areas_are_resizable(&mut self, value: Option<bool>) {
497        self.text_areas_are_resizable = value;
498    }
499
500    #[wasm_bindgen(getter, js_name = "webSecurity")]
501    pub fn web_security(&self) -> Option<bool> {
502        self.web_security
503    }
504
505    #[wasm_bindgen(setter)]
506    pub fn set_web_security(&mut self, value: Option<bool>) {
507        self.web_security = value;
508    }
509
510    #[wasm_bindgen(getter)]
511    pub fn webgl(&self) -> Option<bool> {
512        self.webgl
513    }
514
515    #[wasm_bindgen(setter)]
516    pub fn set_webgl(&mut self, value: Option<bool>) {
517        self.webgl = value;
518    }
519
520    #[wasm_bindgen(getter, js_name = "webviewTag")]
521    pub fn webview_tag(&self) -> Option<bool> {
522        self.webview_tag
523    }
524
525    #[wasm_bindgen(setter)]
526    pub fn set_webview_tag(&mut self, value: Option<bool>) {
527        self.webview_tag = value;
528    }
529
530    #[wasm_bindgen(getter, js_name = "zoomFactor")]
531    pub fn zoom_factor(&self) -> Option<f32> {
532        self.zoom_factor
533    }
534
535    #[wasm_bindgen(setter)]
536    pub fn set_zoom_factor(&mut self, value: Option<f32>) {
537        self.zoom_factor = value;
538    }
539}