Skip to main content

webkit6/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from webkit-gir-files
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9/// Enum values representing the authentication scheme.
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "WebKitAuthenticationScheme")]
13pub enum AuthenticationScheme {
14    /// The default authentication scheme of WebKit.
15    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_DEFAULT")]
16    Default,
17    /// Basic authentication scheme as defined in RFC 2617.
18    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_HTTP_BASIC")]
19    HttpBasic,
20    /// Digest authentication scheme as defined in RFC 2617.
21    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_HTTP_DIGEST")]
22    HttpDigest,
23    /// HTML Form authentication.
24    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_HTML_FORM")]
25    HtmlForm,
26    /// NTLM Microsoft proprietary authentication scheme.
27    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_NTLM")]
28    Ntlm,
29    /// Negotiate (or SPNEGO) authentication scheme as defined in RFC 4559.
30    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_NEGOTIATE")]
31    Negotiate,
32    /// Client Certificate Authentication (see RFC 2246).
33    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_REQUESTED")]
34    ClientCertificateRequested,
35    /// Server Trust Authentication.
36    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_SERVER_TRUST_EVALUATION_REQUESTED")]
37    ServerTrustEvaluationRequested,
38    /// Client certificate PIN required for use. Since: 2.34
39    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_PIN_REQUESTED")]
40    ClientCertificatePinRequested,
41    /// Authentication scheme unknown.
42    #[doc(alias = "WEBKIT_AUTHENTICATION_SCHEME_UNKNOWN")]
43    Unknown,
44    #[doc(hidden)]
45    __Unknown(i32),
46}
47
48#[doc(hidden)]
49impl IntoGlib for AuthenticationScheme {
50    type GlibType = ffi::WebKitAuthenticationScheme;
51
52    #[inline]
53    fn into_glib(self) -> ffi::WebKitAuthenticationScheme {
54        match self {
55            Self::Default => ffi::WEBKIT_AUTHENTICATION_SCHEME_DEFAULT,
56            Self::HttpBasic => ffi::WEBKIT_AUTHENTICATION_SCHEME_HTTP_BASIC,
57            Self::HttpDigest => ffi::WEBKIT_AUTHENTICATION_SCHEME_HTTP_DIGEST,
58            Self::HtmlForm => ffi::WEBKIT_AUTHENTICATION_SCHEME_HTML_FORM,
59            Self::Ntlm => ffi::WEBKIT_AUTHENTICATION_SCHEME_NTLM,
60            Self::Negotiate => ffi::WEBKIT_AUTHENTICATION_SCHEME_NEGOTIATE,
61            Self::ClientCertificateRequested => {
62                ffi::WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_REQUESTED
63            }
64            Self::ServerTrustEvaluationRequested => {
65                ffi::WEBKIT_AUTHENTICATION_SCHEME_SERVER_TRUST_EVALUATION_REQUESTED
66            }
67            Self::ClientCertificatePinRequested => {
68                ffi::WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_PIN_REQUESTED
69            }
70            Self::Unknown => ffi::WEBKIT_AUTHENTICATION_SCHEME_UNKNOWN,
71            Self::__Unknown(value) => value,
72        }
73    }
74}
75
76#[doc(hidden)]
77impl FromGlib<ffi::WebKitAuthenticationScheme> for AuthenticationScheme {
78    #[inline]
79    unsafe fn from_glib(value: ffi::WebKitAuthenticationScheme) -> Self {
80        skip_assert_initialized!();
81
82        match value {
83            ffi::WEBKIT_AUTHENTICATION_SCHEME_DEFAULT => Self::Default,
84            ffi::WEBKIT_AUTHENTICATION_SCHEME_HTTP_BASIC => Self::HttpBasic,
85            ffi::WEBKIT_AUTHENTICATION_SCHEME_HTTP_DIGEST => Self::HttpDigest,
86            ffi::WEBKIT_AUTHENTICATION_SCHEME_HTML_FORM => Self::HtmlForm,
87            ffi::WEBKIT_AUTHENTICATION_SCHEME_NTLM => Self::Ntlm,
88            ffi::WEBKIT_AUTHENTICATION_SCHEME_NEGOTIATE => Self::Negotiate,
89            ffi::WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_REQUESTED => {
90                Self::ClientCertificateRequested
91            }
92            ffi::WEBKIT_AUTHENTICATION_SCHEME_SERVER_TRUST_EVALUATION_REQUESTED => {
93                Self::ServerTrustEvaluationRequested
94            }
95            ffi::WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_PIN_REQUESTED => {
96                Self::ClientCertificatePinRequested
97            }
98            ffi::WEBKIT_AUTHENTICATION_SCHEME_UNKNOWN => Self::Unknown,
99            value => Self::__Unknown(value),
100        }
101    }
102}
103
104impl StaticType for AuthenticationScheme {
105    #[inline]
106    #[doc(alias = "webkit_authentication_scheme_get_type")]
107    fn static_type() -> glib::Type {
108        unsafe { from_glib(ffi::webkit_authentication_scheme_get_type()) }
109    }
110}
111
112impl glib::HasParamSpec for AuthenticationScheme {
113    type ParamSpec = glib::ParamSpecEnum;
114    type SetValue = Self;
115    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
116
117    fn param_spec_builder() -> Self::BuilderFn {
118        Self::ParamSpec::builder_with_default
119    }
120}
121
122impl glib::value::ValueType for AuthenticationScheme {
123    type Type = Self;
124}
125
126unsafe impl<'a> glib::value::FromValue<'a> for AuthenticationScheme {
127    type Checker = glib::value::GenericValueTypeChecker<Self>;
128
129    #[inline]
130    unsafe fn from_value(value: &'a glib::Value) -> Self {
131        skip_assert_initialized!();
132        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
133    }
134}
135
136impl ToValue for AuthenticationScheme {
137    #[inline]
138    fn to_value(&self) -> glib::Value {
139        let mut value = glib::Value::for_value_type::<Self>();
140        unsafe {
141            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
142        }
143        value
144    }
145
146    #[inline]
147    fn value_type(&self) -> glib::Type {
148        Self::static_type()
149    }
150}
151
152impl From<AuthenticationScheme> for glib::Value {
153    #[inline]
154    fn from(v: AuthenticationScheme) -> Self {
155        skip_assert_initialized!();
156        ToValue::to_value(&v)
157    }
158}
159
160/// Enum values used for determining the automation browsing context presentation.
161#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
162#[non_exhaustive]
163#[doc(alias = "WebKitAutomationBrowsingContextPresentation")]
164pub enum AutomationBrowsingContextPresentation {
165    /// a window
166    #[doc(alias = "WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_WINDOW")]
167    Window,
168    /// a tab
169    #[doc(alias = "WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_TAB")]
170    Tab,
171    #[doc(hidden)]
172    __Unknown(i32),
173}
174
175#[doc(hidden)]
176impl IntoGlib for AutomationBrowsingContextPresentation {
177    type GlibType = ffi::WebKitAutomationBrowsingContextPresentation;
178
179    #[inline]
180    fn into_glib(self) -> ffi::WebKitAutomationBrowsingContextPresentation {
181        match self {
182            Self::Window => ffi::WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_WINDOW,
183            Self::Tab => ffi::WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_TAB,
184            Self::__Unknown(value) => value,
185        }
186    }
187}
188
189#[doc(hidden)]
190impl FromGlib<ffi::WebKitAutomationBrowsingContextPresentation>
191    for AutomationBrowsingContextPresentation
192{
193    #[inline]
194    unsafe fn from_glib(value: ffi::WebKitAutomationBrowsingContextPresentation) -> Self {
195        skip_assert_initialized!();
196
197        match value {
198            ffi::WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_WINDOW => Self::Window,
199            ffi::WEBKIT_AUTOMATION_BROWSING_CONTEXT_PRESENTATION_TAB => Self::Tab,
200            value => Self::__Unknown(value),
201        }
202    }
203}
204
205impl StaticType for AutomationBrowsingContextPresentation {
206    #[inline]
207    #[doc(alias = "webkit_automation_browsing_context_presentation_get_type")]
208    fn static_type() -> glib::Type {
209        unsafe { from_glib(ffi::webkit_automation_browsing_context_presentation_get_type()) }
210    }
211}
212
213impl glib::HasParamSpec for AutomationBrowsingContextPresentation {
214    type ParamSpec = glib::ParamSpecEnum;
215    type SetValue = Self;
216    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
217
218    fn param_spec_builder() -> Self::BuilderFn {
219        Self::ParamSpec::builder_with_default
220    }
221}
222
223impl glib::value::ValueType for AutomationBrowsingContextPresentation {
224    type Type = Self;
225}
226
227unsafe impl<'a> glib::value::FromValue<'a> for AutomationBrowsingContextPresentation {
228    type Checker = glib::value::GenericValueTypeChecker<Self>;
229
230    #[inline]
231    unsafe fn from_value(value: &'a glib::Value) -> Self {
232        skip_assert_initialized!();
233        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
234    }
235}
236
237impl ToValue for AutomationBrowsingContextPresentation {
238    #[inline]
239    fn to_value(&self) -> glib::Value {
240        let mut value = glib::Value::for_value_type::<Self>();
241        unsafe {
242            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
243        }
244        value
245    }
246
247    #[inline]
248    fn value_type(&self) -> glib::Type {
249        Self::static_type()
250    }
251}
252
253impl From<AutomationBrowsingContextPresentation> for glib::Value {
254    #[inline]
255    fn from(v: AutomationBrowsingContextPresentation) -> Self {
256        skip_assert_initialized!();
257        ToValue::to_value(&v)
258    }
259}
260
261/// Enum values used to specify autoplay policies.
262#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
263#[non_exhaustive]
264#[doc(alias = "WebKitAutoplayPolicy")]
265pub enum AutoplayPolicy {
266    /// Do not restrict autoplay.
267    #[doc(alias = "WEBKIT_AUTOPLAY_ALLOW")]
268    Allow,
269    /// Allow videos to autoplay if
270    ///  they have no audio track, or if their audio track is muted.
271    #[doc(alias = "WEBKIT_AUTOPLAY_ALLOW_WITHOUT_SOUND")]
272    AllowWithoutSound,
273    /// Never allow autoplay.
274    #[doc(alias = "WEBKIT_AUTOPLAY_DENY")]
275    Deny,
276    #[doc(hidden)]
277    __Unknown(i32),
278}
279
280#[doc(hidden)]
281impl IntoGlib for AutoplayPolicy {
282    type GlibType = ffi::WebKitAutoplayPolicy;
283
284    #[inline]
285    fn into_glib(self) -> ffi::WebKitAutoplayPolicy {
286        match self {
287            Self::Allow => ffi::WEBKIT_AUTOPLAY_ALLOW,
288            Self::AllowWithoutSound => ffi::WEBKIT_AUTOPLAY_ALLOW_WITHOUT_SOUND,
289            Self::Deny => ffi::WEBKIT_AUTOPLAY_DENY,
290            Self::__Unknown(value) => value,
291        }
292    }
293}
294
295#[doc(hidden)]
296impl FromGlib<ffi::WebKitAutoplayPolicy> for AutoplayPolicy {
297    #[inline]
298    unsafe fn from_glib(value: ffi::WebKitAutoplayPolicy) -> Self {
299        skip_assert_initialized!();
300
301        match value {
302            ffi::WEBKIT_AUTOPLAY_ALLOW => Self::Allow,
303            ffi::WEBKIT_AUTOPLAY_ALLOW_WITHOUT_SOUND => Self::AllowWithoutSound,
304            ffi::WEBKIT_AUTOPLAY_DENY => Self::Deny,
305            value => Self::__Unknown(value),
306        }
307    }
308}
309
310impl StaticType for AutoplayPolicy {
311    #[inline]
312    #[doc(alias = "webkit_autoplay_policy_get_type")]
313    fn static_type() -> glib::Type {
314        unsafe { from_glib(ffi::webkit_autoplay_policy_get_type()) }
315    }
316}
317
318impl glib::HasParamSpec for AutoplayPolicy {
319    type ParamSpec = glib::ParamSpecEnum;
320    type SetValue = Self;
321    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
322
323    fn param_spec_builder() -> Self::BuilderFn {
324        Self::ParamSpec::builder_with_default
325    }
326}
327
328impl glib::value::ValueType for AutoplayPolicy {
329    type Type = Self;
330}
331
332unsafe impl<'a> glib::value::FromValue<'a> for AutoplayPolicy {
333    type Checker = glib::value::GenericValueTypeChecker<Self>;
334
335    #[inline]
336    unsafe fn from_value(value: &'a glib::Value) -> Self {
337        skip_assert_initialized!();
338        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
339    }
340}
341
342impl ToValue for AutoplayPolicy {
343    #[inline]
344    fn to_value(&self) -> glib::Value {
345        let mut value = glib::Value::for_value_type::<Self>();
346        unsafe {
347            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
348        }
349        value
350    }
351
352    #[inline]
353    fn value_type(&self) -> glib::Type {
354        Self::static_type()
355    }
356}
357
358impl From<AutoplayPolicy> for glib::Value {
359    #[inline]
360    fn from(v: AutoplayPolicy) -> Self {
361        skip_assert_initialized!();
362        ToValue::to_value(&v)
363    }
364}
365
366/// Enum values used for determining the [`WebContext`][crate::WebContext] cache model.
367#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
368#[non_exhaustive]
369#[doc(alias = "WebKitCacheModel")]
370pub enum CacheModel {
371    /// Disable the cache completely, which
372    ///  substantially reduces memory usage. Useful for applications that only
373    ///  access a single local file, with no navigation to other pages. No remote
374    ///  resources will be cached.
375    #[doc(alias = "WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER")]
376    DocumentViewer,
377    /// Improve document load speed substantially
378    ///  by caching a very large number of resources and previously viewed content.
379    #[doc(alias = "WEBKIT_CACHE_MODEL_WEB_BROWSER")]
380    WebBrowser,
381    /// A cache model optimized for viewing
382    ///  a series of local files -- for example, a documentation viewer or a website
383    ///  designer. WebKit will cache a moderate number of resources.
384    #[doc(alias = "WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER")]
385    DocumentBrowser,
386    #[doc(hidden)]
387    __Unknown(i32),
388}
389
390#[doc(hidden)]
391impl IntoGlib for CacheModel {
392    type GlibType = ffi::WebKitCacheModel;
393
394    #[inline]
395    fn into_glib(self) -> ffi::WebKitCacheModel {
396        match self {
397            Self::DocumentViewer => ffi::WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER,
398            Self::WebBrowser => ffi::WEBKIT_CACHE_MODEL_WEB_BROWSER,
399            Self::DocumentBrowser => ffi::WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER,
400            Self::__Unknown(value) => value,
401        }
402    }
403}
404
405#[doc(hidden)]
406impl FromGlib<ffi::WebKitCacheModel> for CacheModel {
407    #[inline]
408    unsafe fn from_glib(value: ffi::WebKitCacheModel) -> Self {
409        skip_assert_initialized!();
410
411        match value {
412            ffi::WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER => Self::DocumentViewer,
413            ffi::WEBKIT_CACHE_MODEL_WEB_BROWSER => Self::WebBrowser,
414            ffi::WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER => Self::DocumentBrowser,
415            value => Self::__Unknown(value),
416        }
417    }
418}
419
420impl StaticType for CacheModel {
421    #[inline]
422    #[doc(alias = "webkit_cache_model_get_type")]
423    fn static_type() -> glib::Type {
424        unsafe { from_glib(ffi::webkit_cache_model_get_type()) }
425    }
426}
427
428impl glib::HasParamSpec for CacheModel {
429    type ParamSpec = glib::ParamSpecEnum;
430    type SetValue = Self;
431    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
432
433    fn param_spec_builder() -> Self::BuilderFn {
434        Self::ParamSpec::builder_with_default
435    }
436}
437
438impl glib::value::ValueType for CacheModel {
439    type Type = Self;
440}
441
442unsafe impl<'a> glib::value::FromValue<'a> for CacheModel {
443    type Checker = glib::value::GenericValueTypeChecker<Self>;
444
445    #[inline]
446    unsafe fn from_value(value: &'a glib::Value) -> Self {
447        skip_assert_initialized!();
448        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
449    }
450}
451
452impl ToValue for CacheModel {
453    #[inline]
454    fn to_value(&self) -> glib::Value {
455        let mut value = glib::Value::for_value_type::<Self>();
456        unsafe {
457            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
458        }
459        value
460    }
461
462    #[inline]
463    fn value_type(&self) -> glib::Type {
464        Self::static_type()
465    }
466}
467
468impl From<CacheModel> for glib::Value {
469    #[inline]
470    fn from(v: CacheModel) -> Self {
471        skip_assert_initialized!();
472        ToValue::to_value(&v)
473    }
474}
475
476/// Enum values used to denote the stock actions for
477/// [`ContextMenuItem`][crate::ContextMenuItem]<!-- -->s
478#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
479#[non_exhaustive]
480#[doc(alias = "WebKitContextMenuAction")]
481pub enum ContextMenuAction {
482    /// No action, used by separator menu items.
483    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION")]
484    NoAction,
485    /// Open current link.
486    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK")]
487    OpenLink,
488    /// Open current link in a new window.
489    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW")]
490    OpenLinkInNewWindow,
491    /// Download link destination.
492    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK")]
493    DownloadLinkToDisk,
494    /// Copy link location to the clipboard.
495    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD")]
496    CopyLinkToClipboard,
497    /// Open current image in a new window.
498    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW")]
499    OpenImageInNewWindow,
500    /// Download current image.
501    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK")]
502    DownloadImageToDisk,
503    /// Copy current image to the clipboard.
504    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD")]
505    CopyImageToClipboard,
506    /// Copy current image location to the clipboard.
507    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD")]
508    CopyImageUrlToClipboard,
509    /// Open current frame in a new window.
510    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW")]
511    OpenFrameInNewWindow,
512    /// Load the previous history item.
513    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_GO_BACK")]
514    GoBack,
515    /// Load the next history item.
516    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD")]
517    GoForward,
518    /// Stop any ongoing loading operation.
519    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_STOP")]
520    Stop,
521    /// Reload the contents of current view.
522    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_RELOAD")]
523    Reload,
524    /// Copy current selection the clipboard.
525    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY")]
526    Copy,
527    /// Cut current selection to the clipboard.
528    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_CUT")]
529    Cut,
530    /// Paste clipboard contents.
531    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_PASTE")]
532    Paste,
533    /// Delete current selection.
534    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_DELETE")]
535    Delete,
536    /// Select all text.
537    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL")]
538    SelectAll,
539    /// Input methods menu.
540    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS")]
541    InputMethods,
542    /// Unicode menu.
543    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_UNICODE")]
544    Unicode,
545    /// A proposed replacement for a misspelled word.
546    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS")]
547    SpellingGuess,
548    /// An indicator that spellchecking found no proposed replacements.
549    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND")]
550    NoGuessesFound,
551    /// Causes the spellchecker to ignore the word for this session.
552    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING")]
553    IgnoreSpelling,
554    /// Causes the spellchecker to add the word to the dictionary.
555    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING")]
556    LearnSpelling,
557    /// Ignore grammar.
558    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR")]
559    IgnoreGrammar,
560    /// Font options menu.
561    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU")]
562    FontMenu,
563    /// Bold.
564    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_BOLD")]
565    Bold,
566    /// Italic.
567    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_ITALIC")]
568    Italic,
569    /// Underline.
570    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE")]
571    Underline,
572    /// Outline.
573    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OUTLINE")]
574    Outline,
575    /// Open current element in the inspector.
576    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT")]
577    InspectElement,
578    /// Open current video element in a new window.
579    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW")]
580    OpenVideoInNewWindow,
581    /// Open current audio element in a new window.
582    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW")]
583    OpenAudioInNewWindow,
584    /// Copy video link location in to the clipboard.
585    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD")]
586    CopyVideoLinkToClipboard,
587    /// Copy audio link location in to the clipboard.
588    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD")]
589    CopyAudioLinkToClipboard,
590    /// Enable or disable media controls.
591    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS")]
592    ToggleMediaControls,
593    /// Enable or disable media loop.
594    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP")]
595    ToggleMediaLoop,
596    /// Show current video element in fullscreen mode.
597    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN")]
598    EnterVideoFullscreen,
599    /// Play current media element.
600    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY")]
601    MediaPlay,
602    /// Pause current media element.
603    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE")]
604    MediaPause,
605    /// Mute current media element.
606    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE")]
607    MediaMute,
608    /// Download video to disk. Since 2.2
609    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK")]
610    DownloadVideoToDisk,
611    /// Download audio to disk. Since 2.2
612    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK")]
613    DownloadAudioToDisk,
614    /// Insert an emoji. Since 2.26
615    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_INSERT_EMOJI")]
616    InsertEmoji,
617    /// Paste clipboard contents as plain text. Since 2.30
618    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_PASTE_AS_PLAIN_TEXT")]
619    PasteAsPlainText,
620    /// Custom action defined by applications.
621    #[doc(alias = "WEBKIT_CONTEXT_MENU_ACTION_CUSTOM")]
622    Custom,
623    #[doc(hidden)]
624    __Unknown(i32),
625}
626
627#[doc(hidden)]
628impl IntoGlib for ContextMenuAction {
629    type GlibType = ffi::WebKitContextMenuAction;
630
631    fn into_glib(self) -> ffi::WebKitContextMenuAction {
632        match self {
633            Self::NoAction => ffi::WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION,
634            Self::OpenLink => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK,
635            Self::OpenLinkInNewWindow => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW,
636            Self::DownloadLinkToDisk => ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK,
637            Self::CopyLinkToClipboard => ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD,
638            Self::OpenImageInNewWindow => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW,
639            Self::DownloadImageToDisk => ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK,
640            Self::CopyImageToClipboard => ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD,
641            Self::CopyImageUrlToClipboard => {
642                ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD
643            }
644            Self::OpenFrameInNewWindow => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW,
645            Self::GoBack => ffi::WEBKIT_CONTEXT_MENU_ACTION_GO_BACK,
646            Self::GoForward => ffi::WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD,
647            Self::Stop => ffi::WEBKIT_CONTEXT_MENU_ACTION_STOP,
648            Self::Reload => ffi::WEBKIT_CONTEXT_MENU_ACTION_RELOAD,
649            Self::Copy => ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY,
650            Self::Cut => ffi::WEBKIT_CONTEXT_MENU_ACTION_CUT,
651            Self::Paste => ffi::WEBKIT_CONTEXT_MENU_ACTION_PASTE,
652            Self::Delete => ffi::WEBKIT_CONTEXT_MENU_ACTION_DELETE,
653            Self::SelectAll => ffi::WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL,
654            Self::InputMethods => ffi::WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS,
655            Self::Unicode => ffi::WEBKIT_CONTEXT_MENU_ACTION_UNICODE,
656            Self::SpellingGuess => ffi::WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS,
657            Self::NoGuessesFound => ffi::WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND,
658            Self::IgnoreSpelling => ffi::WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING,
659            Self::LearnSpelling => ffi::WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING,
660            Self::IgnoreGrammar => ffi::WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR,
661            Self::FontMenu => ffi::WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU,
662            Self::Bold => ffi::WEBKIT_CONTEXT_MENU_ACTION_BOLD,
663            Self::Italic => ffi::WEBKIT_CONTEXT_MENU_ACTION_ITALIC,
664            Self::Underline => ffi::WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE,
665            Self::Outline => ffi::WEBKIT_CONTEXT_MENU_ACTION_OUTLINE,
666            Self::InspectElement => ffi::WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT,
667            Self::OpenVideoInNewWindow => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW,
668            Self::OpenAudioInNewWindow => ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW,
669            Self::CopyVideoLinkToClipboard => {
670                ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD
671            }
672            Self::CopyAudioLinkToClipboard => {
673                ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD
674            }
675            Self::ToggleMediaControls => ffi::WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS,
676            Self::ToggleMediaLoop => ffi::WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP,
677            Self::EnterVideoFullscreen => ffi::WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN,
678            Self::MediaPlay => ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY,
679            Self::MediaPause => ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE,
680            Self::MediaMute => ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE,
681            Self::DownloadVideoToDisk => ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK,
682            Self::DownloadAudioToDisk => ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK,
683            Self::InsertEmoji => ffi::WEBKIT_CONTEXT_MENU_ACTION_INSERT_EMOJI,
684            Self::PasteAsPlainText => ffi::WEBKIT_CONTEXT_MENU_ACTION_PASTE_AS_PLAIN_TEXT,
685            Self::Custom => ffi::WEBKIT_CONTEXT_MENU_ACTION_CUSTOM,
686            Self::__Unknown(value) => value,
687        }
688    }
689}
690
691#[doc(hidden)]
692impl FromGlib<ffi::WebKitContextMenuAction> for ContextMenuAction {
693    unsafe fn from_glib(value: ffi::WebKitContextMenuAction) -> Self {
694        skip_assert_initialized!();
695
696        match value {
697            ffi::WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION => Self::NoAction,
698            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK => Self::OpenLink,
699            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW => Self::OpenLinkInNewWindow,
700            ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK => Self::DownloadLinkToDisk,
701            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD => Self::CopyLinkToClipboard,
702            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW => Self::OpenImageInNewWindow,
703            ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK => Self::DownloadImageToDisk,
704            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD => Self::CopyImageToClipboard,
705            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD => {
706                Self::CopyImageUrlToClipboard
707            }
708            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW => Self::OpenFrameInNewWindow,
709            ffi::WEBKIT_CONTEXT_MENU_ACTION_GO_BACK => Self::GoBack,
710            ffi::WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD => Self::GoForward,
711            ffi::WEBKIT_CONTEXT_MENU_ACTION_STOP => Self::Stop,
712            ffi::WEBKIT_CONTEXT_MENU_ACTION_RELOAD => Self::Reload,
713            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY => Self::Copy,
714            ffi::WEBKIT_CONTEXT_MENU_ACTION_CUT => Self::Cut,
715            ffi::WEBKIT_CONTEXT_MENU_ACTION_PASTE => Self::Paste,
716            ffi::WEBKIT_CONTEXT_MENU_ACTION_DELETE => Self::Delete,
717            ffi::WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL => Self::SelectAll,
718            ffi::WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS => Self::InputMethods,
719            ffi::WEBKIT_CONTEXT_MENU_ACTION_UNICODE => Self::Unicode,
720            ffi::WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS => Self::SpellingGuess,
721            ffi::WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND => Self::NoGuessesFound,
722            ffi::WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING => Self::IgnoreSpelling,
723            ffi::WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING => Self::LearnSpelling,
724            ffi::WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR => Self::IgnoreGrammar,
725            ffi::WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU => Self::FontMenu,
726            ffi::WEBKIT_CONTEXT_MENU_ACTION_BOLD => Self::Bold,
727            ffi::WEBKIT_CONTEXT_MENU_ACTION_ITALIC => Self::Italic,
728            ffi::WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE => Self::Underline,
729            ffi::WEBKIT_CONTEXT_MENU_ACTION_OUTLINE => Self::Outline,
730            ffi::WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT => Self::InspectElement,
731            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW => Self::OpenVideoInNewWindow,
732            ffi::WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW => Self::OpenAudioInNewWindow,
733            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD => {
734                Self::CopyVideoLinkToClipboard
735            }
736            ffi::WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD => {
737                Self::CopyAudioLinkToClipboard
738            }
739            ffi::WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS => Self::ToggleMediaControls,
740            ffi::WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP => Self::ToggleMediaLoop,
741            ffi::WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN => Self::EnterVideoFullscreen,
742            ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY => Self::MediaPlay,
743            ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE => Self::MediaPause,
744            ffi::WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE => Self::MediaMute,
745            ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK => Self::DownloadVideoToDisk,
746            ffi::WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK => Self::DownloadAudioToDisk,
747            ffi::WEBKIT_CONTEXT_MENU_ACTION_INSERT_EMOJI => Self::InsertEmoji,
748            ffi::WEBKIT_CONTEXT_MENU_ACTION_PASTE_AS_PLAIN_TEXT => Self::PasteAsPlainText,
749            ffi::WEBKIT_CONTEXT_MENU_ACTION_CUSTOM => Self::Custom,
750            value => Self::__Unknown(value),
751        }
752    }
753}
754
755impl StaticType for ContextMenuAction {
756    #[inline]
757    #[doc(alias = "webkit_context_menu_action_get_type")]
758    fn static_type() -> glib::Type {
759        unsafe { from_glib(ffi::webkit_context_menu_action_get_type()) }
760    }
761}
762
763impl glib::HasParamSpec for ContextMenuAction {
764    type ParamSpec = glib::ParamSpecEnum;
765    type SetValue = Self;
766    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
767
768    fn param_spec_builder() -> Self::BuilderFn {
769        Self::ParamSpec::builder_with_default
770    }
771}
772
773impl glib::value::ValueType for ContextMenuAction {
774    type Type = Self;
775}
776
777unsafe impl<'a> glib::value::FromValue<'a> for ContextMenuAction {
778    type Checker = glib::value::GenericValueTypeChecker<Self>;
779
780    #[inline]
781    unsafe fn from_value(value: &'a glib::Value) -> Self {
782        skip_assert_initialized!();
783        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
784    }
785}
786
787impl ToValue for ContextMenuAction {
788    #[inline]
789    fn to_value(&self) -> glib::Value {
790        let mut value = glib::Value::for_value_type::<Self>();
791        unsafe {
792            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
793        }
794        value
795    }
796
797    #[inline]
798    fn value_type(&self) -> glib::Type {
799        Self::static_type()
800    }
801}
802
803impl From<ContextMenuAction> for glib::Value {
804    #[inline]
805    fn from(v: ContextMenuAction) -> Self {
806        skip_assert_initialized!();
807        ToValue::to_value(&v)
808    }
809}
810
811/// Enum values used to denote the cookie acceptance policies.
812#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
813#[non_exhaustive]
814#[doc(alias = "WebKitCookieAcceptPolicy")]
815pub enum CookieAcceptPolicy {
816    /// Accept all cookies unconditionally.
817    #[doc(alias = "WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS")]
818    Always,
819    /// Reject all cookies unconditionally.
820    #[doc(alias = "WEBKIT_COOKIE_POLICY_ACCEPT_NEVER")]
821    Never,
822    /// Accept only cookies set by the main document loaded.
823    #[doc(alias = "WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY")]
824    NoThirdParty,
825    #[doc(hidden)]
826    __Unknown(i32),
827}
828
829#[doc(hidden)]
830impl IntoGlib for CookieAcceptPolicy {
831    type GlibType = ffi::WebKitCookieAcceptPolicy;
832
833    #[inline]
834    fn into_glib(self) -> ffi::WebKitCookieAcceptPolicy {
835        match self {
836            Self::Always => ffi::WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS,
837            Self::Never => ffi::WEBKIT_COOKIE_POLICY_ACCEPT_NEVER,
838            Self::NoThirdParty => ffi::WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY,
839            Self::__Unknown(value) => value,
840        }
841    }
842}
843
844#[doc(hidden)]
845impl FromGlib<ffi::WebKitCookieAcceptPolicy> for CookieAcceptPolicy {
846    #[inline]
847    unsafe fn from_glib(value: ffi::WebKitCookieAcceptPolicy) -> Self {
848        skip_assert_initialized!();
849
850        match value {
851            ffi::WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS => Self::Always,
852            ffi::WEBKIT_COOKIE_POLICY_ACCEPT_NEVER => Self::Never,
853            ffi::WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY => Self::NoThirdParty,
854            value => Self::__Unknown(value),
855        }
856    }
857}
858
859impl StaticType for CookieAcceptPolicy {
860    #[inline]
861    #[doc(alias = "webkit_cookie_accept_policy_get_type")]
862    fn static_type() -> glib::Type {
863        unsafe { from_glib(ffi::webkit_cookie_accept_policy_get_type()) }
864    }
865}
866
867impl glib::HasParamSpec for CookieAcceptPolicy {
868    type ParamSpec = glib::ParamSpecEnum;
869    type SetValue = Self;
870    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
871
872    fn param_spec_builder() -> Self::BuilderFn {
873        Self::ParamSpec::builder_with_default
874    }
875}
876
877impl glib::value::ValueType for CookieAcceptPolicy {
878    type Type = Self;
879}
880
881unsafe impl<'a> glib::value::FromValue<'a> for CookieAcceptPolicy {
882    type Checker = glib::value::GenericValueTypeChecker<Self>;
883
884    #[inline]
885    unsafe fn from_value(value: &'a glib::Value) -> Self {
886        skip_assert_initialized!();
887        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
888    }
889}
890
891impl ToValue for CookieAcceptPolicy {
892    #[inline]
893    fn to_value(&self) -> glib::Value {
894        let mut value = glib::Value::for_value_type::<Self>();
895        unsafe {
896            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
897        }
898        value
899    }
900
901    #[inline]
902    fn value_type(&self) -> glib::Type {
903        Self::static_type()
904    }
905}
906
907impl From<CookieAcceptPolicy> for glib::Value {
908    #[inline]
909    fn from(v: CookieAcceptPolicy) -> Self {
910        skip_assert_initialized!();
911        ToValue::to_value(&v)
912    }
913}
914
915/// Enum values used to denote the cookie persistent storage types.
916#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
917#[non_exhaustive]
918#[doc(alias = "WebKitCookiePersistentStorage")]
919pub enum CookiePersistentStorage {
920    /// Cookies are stored in a text
921    ///  file in the Mozilla "cookies.txt" format.
922    #[doc(alias = "WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT")]
923    Text,
924    /// Cookies are stored in a SQLite
925    ///  file in the current Mozilla format.
926    #[doc(alias = "WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE")]
927    Sqlite,
928    #[doc(hidden)]
929    __Unknown(i32),
930}
931
932#[doc(hidden)]
933impl IntoGlib for CookiePersistentStorage {
934    type GlibType = ffi::WebKitCookiePersistentStorage;
935
936    #[inline]
937    fn into_glib(self) -> ffi::WebKitCookiePersistentStorage {
938        match self {
939            Self::Text => ffi::WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT,
940            Self::Sqlite => ffi::WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE,
941            Self::__Unknown(value) => value,
942        }
943    }
944}
945
946#[doc(hidden)]
947impl FromGlib<ffi::WebKitCookiePersistentStorage> for CookiePersistentStorage {
948    #[inline]
949    unsafe fn from_glib(value: ffi::WebKitCookiePersistentStorage) -> Self {
950        skip_assert_initialized!();
951
952        match value {
953            ffi::WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT => Self::Text,
954            ffi::WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE => Self::Sqlite,
955            value => Self::__Unknown(value),
956        }
957    }
958}
959
960impl StaticType for CookiePersistentStorage {
961    #[inline]
962    #[doc(alias = "webkit_cookie_persistent_storage_get_type")]
963    fn static_type() -> glib::Type {
964        unsafe { from_glib(ffi::webkit_cookie_persistent_storage_get_type()) }
965    }
966}
967
968impl glib::HasParamSpec for CookiePersistentStorage {
969    type ParamSpec = glib::ParamSpecEnum;
970    type SetValue = Self;
971    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
972
973    fn param_spec_builder() -> Self::BuilderFn {
974        Self::ParamSpec::builder_with_default
975    }
976}
977
978impl glib::value::ValueType for CookiePersistentStorage {
979    type Type = Self;
980}
981
982unsafe impl<'a> glib::value::FromValue<'a> for CookiePersistentStorage {
983    type Checker = glib::value::GenericValueTypeChecker<Self>;
984
985    #[inline]
986    unsafe fn from_value(value: &'a glib::Value) -> Self {
987        skip_assert_initialized!();
988        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
989    }
990}
991
992impl ToValue for CookiePersistentStorage {
993    #[inline]
994    fn to_value(&self) -> glib::Value {
995        let mut value = glib::Value::for_value_type::<Self>();
996        unsafe {
997            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
998        }
999        value
1000    }
1001
1002    #[inline]
1003    fn value_type(&self) -> glib::Type {
1004        Self::static_type()
1005    }
1006}
1007
1008impl From<CookiePersistentStorage> for glib::Value {
1009    #[inline]
1010    fn from(v: CookiePersistentStorage) -> Self {
1011        skip_assert_initialized!();
1012        ToValue::to_value(&v)
1013    }
1014}
1015
1016/// Enum values representing the duration for which a credential persists.
1017#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1018#[non_exhaustive]
1019#[doc(alias = "WebKitCredentialPersistence")]
1020pub enum CredentialPersistence {
1021    /// Credential does not persist
1022    #[doc(alias = "WEBKIT_CREDENTIAL_PERSISTENCE_NONE")]
1023    None,
1024    /// Credential persists for session only
1025    #[doc(alias = "WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION")]
1026    ForSession,
1027    /// Credential persists permanently
1028    #[doc(alias = "WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT")]
1029    Permanent,
1030    #[doc(hidden)]
1031    __Unknown(i32),
1032}
1033
1034#[doc(hidden)]
1035impl IntoGlib for CredentialPersistence {
1036    type GlibType = ffi::WebKitCredentialPersistence;
1037
1038    #[inline]
1039    fn into_glib(self) -> ffi::WebKitCredentialPersistence {
1040        match self {
1041            Self::None => ffi::WEBKIT_CREDENTIAL_PERSISTENCE_NONE,
1042            Self::ForSession => ffi::WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION,
1043            Self::Permanent => ffi::WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT,
1044            Self::__Unknown(value) => value,
1045        }
1046    }
1047}
1048
1049#[doc(hidden)]
1050impl FromGlib<ffi::WebKitCredentialPersistence> for CredentialPersistence {
1051    #[inline]
1052    unsafe fn from_glib(value: ffi::WebKitCredentialPersistence) -> Self {
1053        skip_assert_initialized!();
1054
1055        match value {
1056            ffi::WEBKIT_CREDENTIAL_PERSISTENCE_NONE => Self::None,
1057            ffi::WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION => Self::ForSession,
1058            ffi::WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT => Self::Permanent,
1059            value => Self::__Unknown(value),
1060        }
1061    }
1062}
1063
1064impl StaticType for CredentialPersistence {
1065    #[inline]
1066    #[doc(alias = "webkit_credential_persistence_get_type")]
1067    fn static_type() -> glib::Type {
1068        unsafe { from_glib(ffi::webkit_credential_persistence_get_type()) }
1069    }
1070}
1071
1072impl glib::HasParamSpec for CredentialPersistence {
1073    type ParamSpec = glib::ParamSpecEnum;
1074    type SetValue = Self;
1075    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1076
1077    fn param_spec_builder() -> Self::BuilderFn {
1078        Self::ParamSpec::builder_with_default
1079    }
1080}
1081
1082impl glib::value::ValueType for CredentialPersistence {
1083    type Type = Self;
1084}
1085
1086unsafe impl<'a> glib::value::FromValue<'a> for CredentialPersistence {
1087    type Checker = glib::value::GenericValueTypeChecker<Self>;
1088
1089    #[inline]
1090    unsafe fn from_value(value: &'a glib::Value) -> Self {
1091        skip_assert_initialized!();
1092        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1093    }
1094}
1095
1096impl ToValue for CredentialPersistence {
1097    #[inline]
1098    fn to_value(&self) -> glib::Value {
1099        let mut value = glib::Value::for_value_type::<Self>();
1100        unsafe {
1101            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1102        }
1103        value
1104    }
1105
1106    #[inline]
1107    fn value_type(&self) -> glib::Type {
1108        Self::static_type()
1109    }
1110}
1111
1112impl From<CredentialPersistence> for glib::Value {
1113    #[inline]
1114    fn from(v: CredentialPersistence) -> Self {
1115        skip_assert_initialized!();
1116        ToValue::to_value(&v)
1117    }
1118}
1119
1120/// Enum values used to denote the various download errors.
1121#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1122#[non_exhaustive]
1123#[doc(alias = "WebKitDownloadError")]
1124pub enum DownloadError {
1125    /// Download failure due to network error
1126    #[doc(alias = "WEBKIT_DOWNLOAD_ERROR_NETWORK")]
1127    Network,
1128    /// Download was cancelled by user
1129    #[doc(alias = "WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER")]
1130    CancelledByUser,
1131    /// Download failure due to destination error
1132    #[doc(alias = "WEBKIT_DOWNLOAD_ERROR_DESTINATION")]
1133    Destination,
1134    #[doc(hidden)]
1135    __Unknown(i32),
1136}
1137
1138impl DownloadError {
1139    #[doc(alias = "webkit_download_error_quark")]
1140    pub fn quark() -> glib::Quark {
1141        assert_initialized_main_thread!();
1142        unsafe { from_glib(ffi::webkit_download_error_quark()) }
1143    }
1144}
1145
1146#[doc(hidden)]
1147impl IntoGlib for DownloadError {
1148    type GlibType = ffi::WebKitDownloadError;
1149
1150    #[inline]
1151    fn into_glib(self) -> ffi::WebKitDownloadError {
1152        match self {
1153            Self::Network => ffi::WEBKIT_DOWNLOAD_ERROR_NETWORK,
1154            Self::CancelledByUser => ffi::WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER,
1155            Self::Destination => ffi::WEBKIT_DOWNLOAD_ERROR_DESTINATION,
1156            Self::__Unknown(value) => value,
1157        }
1158    }
1159}
1160
1161#[doc(hidden)]
1162impl FromGlib<ffi::WebKitDownloadError> for DownloadError {
1163    #[inline]
1164    unsafe fn from_glib(value: ffi::WebKitDownloadError) -> Self {
1165        skip_assert_initialized!();
1166
1167        match value {
1168            ffi::WEBKIT_DOWNLOAD_ERROR_NETWORK => Self::Network,
1169            ffi::WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER => Self::CancelledByUser,
1170            ffi::WEBKIT_DOWNLOAD_ERROR_DESTINATION => Self::Destination,
1171            value => Self::__Unknown(value),
1172        }
1173    }
1174}
1175
1176impl glib::error::ErrorDomain for DownloadError {
1177    #[inline]
1178    fn domain() -> glib::Quark {
1179        skip_assert_initialized!();
1180
1181        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
1182        let quark = *QUARK.get_or_init(|| unsafe {
1183            glib::ffi::g_quark_from_static_string(c"WebKitDownloadError".as_ptr())
1184        });
1185        unsafe { from_glib(quark) }
1186    }
1187
1188    #[inline]
1189    fn code(self) -> i32 {
1190        self.into_glib()
1191    }
1192
1193    #[inline]
1194    #[allow(clippy::match_single_binding)]
1195    fn from(code: i32) -> Option<Self> {
1196        skip_assert_initialized!();
1197        match unsafe { from_glib(code) } {
1198            value => Some(value),
1199        }
1200    }
1201}
1202
1203impl StaticType for DownloadError {
1204    #[inline]
1205    #[doc(alias = "webkit_download_error_get_type")]
1206    fn static_type() -> glib::Type {
1207        unsafe { from_glib(ffi::webkit_download_error_get_type()) }
1208    }
1209}
1210
1211impl glib::HasParamSpec for DownloadError {
1212    type ParamSpec = glib::ParamSpecEnum;
1213    type SetValue = Self;
1214    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1215
1216    fn param_spec_builder() -> Self::BuilderFn {
1217        Self::ParamSpec::builder_with_default
1218    }
1219}
1220
1221impl glib::value::ValueType for DownloadError {
1222    type Type = Self;
1223}
1224
1225unsafe impl<'a> glib::value::FromValue<'a> for DownloadError {
1226    type Checker = glib::value::GenericValueTypeChecker<Self>;
1227
1228    #[inline]
1229    unsafe fn from_value(value: &'a glib::Value) -> Self {
1230        skip_assert_initialized!();
1231        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1232    }
1233}
1234
1235impl ToValue for DownloadError {
1236    #[inline]
1237    fn to_value(&self) -> glib::Value {
1238        let mut value = glib::Value::for_value_type::<Self>();
1239        unsafe {
1240            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1241        }
1242        value
1243    }
1244
1245    #[inline]
1246    fn value_type(&self) -> glib::Type {
1247        Self::static_type()
1248    }
1249}
1250
1251impl From<DownloadError> for glib::Value {
1252    #[inline]
1253    fn from(v: DownloadError) -> Self {
1254        skip_assert_initialized!();
1255        ToValue::to_value(&v)
1256    }
1257}
1258
1259/// Enum values used to denote the various errors related to the [`FaviconDatabase`][crate::FaviconDatabase].
1260#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1261#[non_exhaustive]
1262#[doc(alias = "WebKitFaviconDatabaseError")]
1263pub enum FaviconDatabaseError {
1264    /// The [`FaviconDatabase`][crate::FaviconDatabase] is closed
1265    #[doc(alias = "WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED")]
1266    NotInitialized,
1267    /// There is not an icon available for the requested URL
1268    #[doc(alias = "WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND")]
1269    FaviconNotFound,
1270    /// There might be an icon for the requested URL, but its data is unknown at the moment
1271    #[doc(alias = "WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN")]
1272    FaviconUnknown,
1273    #[doc(hidden)]
1274    __Unknown(i32),
1275}
1276
1277impl FaviconDatabaseError {
1278    #[doc(alias = "webkit_favicon_database_error_quark")]
1279    pub fn quark() -> glib::Quark {
1280        assert_initialized_main_thread!();
1281        unsafe { from_glib(ffi::webkit_favicon_database_error_quark()) }
1282    }
1283}
1284
1285#[doc(hidden)]
1286impl IntoGlib for FaviconDatabaseError {
1287    type GlibType = ffi::WebKitFaviconDatabaseError;
1288
1289    #[inline]
1290    fn into_glib(self) -> ffi::WebKitFaviconDatabaseError {
1291        match self {
1292            Self::NotInitialized => ffi::WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED,
1293            Self::FaviconNotFound => ffi::WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND,
1294            Self::FaviconUnknown => ffi::WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN,
1295            Self::__Unknown(value) => value,
1296        }
1297    }
1298}
1299
1300#[doc(hidden)]
1301impl FromGlib<ffi::WebKitFaviconDatabaseError> for FaviconDatabaseError {
1302    #[inline]
1303    unsafe fn from_glib(value: ffi::WebKitFaviconDatabaseError) -> Self {
1304        skip_assert_initialized!();
1305
1306        match value {
1307            ffi::WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED => Self::NotInitialized,
1308            ffi::WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND => Self::FaviconNotFound,
1309            ffi::WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN => Self::FaviconUnknown,
1310            value => Self::__Unknown(value),
1311        }
1312    }
1313}
1314
1315impl glib::error::ErrorDomain for FaviconDatabaseError {
1316    #[inline]
1317    fn domain() -> glib::Quark {
1318        skip_assert_initialized!();
1319
1320        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
1321        let quark = *QUARK.get_or_init(|| unsafe {
1322            glib::ffi::g_quark_from_static_string(c"WebKitFaviconDatabaseError".as_ptr())
1323        });
1324        unsafe { from_glib(quark) }
1325    }
1326
1327    #[inline]
1328    fn code(self) -> i32 {
1329        self.into_glib()
1330    }
1331
1332    #[inline]
1333    #[allow(clippy::match_single_binding)]
1334    fn from(code: i32) -> Option<Self> {
1335        skip_assert_initialized!();
1336        match unsafe { from_glib(code) } {
1337            value => Some(value),
1338        }
1339    }
1340}
1341
1342impl StaticType for FaviconDatabaseError {
1343    #[inline]
1344    #[doc(alias = "webkit_favicon_database_error_get_type")]
1345    fn static_type() -> glib::Type {
1346        unsafe { from_glib(ffi::webkit_favicon_database_error_get_type()) }
1347    }
1348}
1349
1350impl glib::HasParamSpec for FaviconDatabaseError {
1351    type ParamSpec = glib::ParamSpecEnum;
1352    type SetValue = Self;
1353    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1354
1355    fn param_spec_builder() -> Self::BuilderFn {
1356        Self::ParamSpec::builder_with_default
1357    }
1358}
1359
1360impl glib::value::ValueType for FaviconDatabaseError {
1361    type Type = Self;
1362}
1363
1364unsafe impl<'a> glib::value::FromValue<'a> for FaviconDatabaseError {
1365    type Checker = glib::value::GenericValueTypeChecker<Self>;
1366
1367    #[inline]
1368    unsafe fn from_value(value: &'a glib::Value) -> Self {
1369        skip_assert_initialized!();
1370        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1371    }
1372}
1373
1374impl ToValue for FaviconDatabaseError {
1375    #[inline]
1376    fn to_value(&self) -> glib::Value {
1377        let mut value = glib::Value::for_value_type::<Self>();
1378        unsafe {
1379            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1380        }
1381        value
1382    }
1383
1384    #[inline]
1385    fn value_type(&self) -> glib::Type {
1386        Self::static_type()
1387    }
1388}
1389
1390impl From<FaviconDatabaseError> for glib::Value {
1391    #[inline]
1392    fn from(v: FaviconDatabaseError) -> Self {
1393        skip_assert_initialized!();
1394        ToValue::to_value(&v)
1395    }
1396}
1397
1398/// Describes the status of a [struct[`Feature`][crate::Feature]].
1399///
1400/// The status for a given feature can be obtained with
1401/// [id[`Feature::status()`][crate::Feature::status()]].
1402#[cfg(feature = "v2_42")]
1403#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1404#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1405#[non_exhaustive]
1406#[doc(alias = "WebKitFeatureStatus")]
1407pub enum FeatureStatus {
1408    /// Feature that adjust behaviour for
1409    ///  specific application needs. The feature is not part of a Web platform
1410    ///  feature, not a mature feature intended to be always on.
1411    #[doc(alias = "WEBKIT_FEATURE_STATUS_EMBEDDER")]
1412    Embedder,
1413    /// Feature in development. The feature
1414    ///  may be unfinished, and there are no guarantees about its safety and
1415    ///  stability.
1416    #[doc(alias = "WEBKIT_FEATURE_STATUS_UNSTABLE")]
1417    Unstable,
1418    /// Feature for debugging the WebKit engine.
1419    ///  The feature is not generally useful for user or web developers, and
1420    ///  always disabled by default.
1421    #[doc(alias = "WEBKIT_FEATURE_STATUS_INTERNAL")]
1422    Internal,
1423    /// Feature for web developers. The feature
1424    ///  is not generally useful for end users, and always disabled by default.
1425    #[doc(alias = "WEBKIT_FEATURE_STATUS_DEVELOPER")]
1426    Developer,
1427    /// Feature in active development and
1428    ///  complete enough for testing. The feature may not be yet ready to
1429    ///  ship and is disabled by default.
1430    #[doc(alias = "WEBKIT_FEATURE_STATUS_TESTABLE")]
1431    Testable,
1432    /// Feature ready to be tested by users.
1433    ///  The feature is disabled by default, but may be enabled by applications
1434    ///  automatically e.g. in their “technology preview” or “beta” versions.
1435    #[doc(alias = "WEBKIT_FEATURE_STATUS_PREVIEW")]
1436    Preview,
1437    /// Feature ready for general use. The
1438    ///  feature is enabled by default, but it may still be toggled to support
1439    ///  debugging and testing.
1440    #[doc(alias = "WEBKIT_FEATURE_STATUS_STABLE")]
1441    Stable,
1442    /// Feature in general use. The feature is
1443    ///  always enabled and in general there should be no user-facing interface
1444    ///  to toggle it.
1445    #[doc(alias = "WEBKIT_FEATURE_STATUS_MATURE")]
1446    Mature,
1447    #[doc(hidden)]
1448    __Unknown(i32),
1449}
1450
1451#[cfg(feature = "v2_42")]
1452#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1453#[doc(hidden)]
1454impl IntoGlib for FeatureStatus {
1455    type GlibType = ffi::WebKitFeatureStatus;
1456
1457    #[inline]
1458    fn into_glib(self) -> ffi::WebKitFeatureStatus {
1459        match self {
1460            Self::Embedder => ffi::WEBKIT_FEATURE_STATUS_EMBEDDER,
1461            Self::Unstable => ffi::WEBKIT_FEATURE_STATUS_UNSTABLE,
1462            Self::Internal => ffi::WEBKIT_FEATURE_STATUS_INTERNAL,
1463            Self::Developer => ffi::WEBKIT_FEATURE_STATUS_DEVELOPER,
1464            Self::Testable => ffi::WEBKIT_FEATURE_STATUS_TESTABLE,
1465            Self::Preview => ffi::WEBKIT_FEATURE_STATUS_PREVIEW,
1466            Self::Stable => ffi::WEBKIT_FEATURE_STATUS_STABLE,
1467            Self::Mature => ffi::WEBKIT_FEATURE_STATUS_MATURE,
1468            Self::__Unknown(value) => value,
1469        }
1470    }
1471}
1472
1473#[cfg(feature = "v2_42")]
1474#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1475#[doc(hidden)]
1476impl FromGlib<ffi::WebKitFeatureStatus> for FeatureStatus {
1477    #[inline]
1478    unsafe fn from_glib(value: ffi::WebKitFeatureStatus) -> Self {
1479        skip_assert_initialized!();
1480
1481        match value {
1482            ffi::WEBKIT_FEATURE_STATUS_EMBEDDER => Self::Embedder,
1483            ffi::WEBKIT_FEATURE_STATUS_UNSTABLE => Self::Unstable,
1484            ffi::WEBKIT_FEATURE_STATUS_INTERNAL => Self::Internal,
1485            ffi::WEBKIT_FEATURE_STATUS_DEVELOPER => Self::Developer,
1486            ffi::WEBKIT_FEATURE_STATUS_TESTABLE => Self::Testable,
1487            ffi::WEBKIT_FEATURE_STATUS_PREVIEW => Self::Preview,
1488            ffi::WEBKIT_FEATURE_STATUS_STABLE => Self::Stable,
1489            ffi::WEBKIT_FEATURE_STATUS_MATURE => Self::Mature,
1490            value => Self::__Unknown(value),
1491        }
1492    }
1493}
1494
1495#[cfg(feature = "v2_42")]
1496#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1497impl StaticType for FeatureStatus {
1498    #[inline]
1499    #[doc(alias = "webkit_feature_status_get_type")]
1500    fn static_type() -> glib::Type {
1501        unsafe { from_glib(ffi::webkit_feature_status_get_type()) }
1502    }
1503}
1504
1505#[cfg(feature = "v2_42")]
1506#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1507impl glib::HasParamSpec for FeatureStatus {
1508    type ParamSpec = glib::ParamSpecEnum;
1509    type SetValue = Self;
1510    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1511
1512    fn param_spec_builder() -> Self::BuilderFn {
1513        Self::ParamSpec::builder_with_default
1514    }
1515}
1516
1517#[cfg(feature = "v2_42")]
1518#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1519impl glib::value::ValueType for FeatureStatus {
1520    type Type = Self;
1521}
1522
1523#[cfg(feature = "v2_42")]
1524#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1525unsafe impl<'a> glib::value::FromValue<'a> for FeatureStatus {
1526    type Checker = glib::value::GenericValueTypeChecker<Self>;
1527
1528    #[inline]
1529    unsafe fn from_value(value: &'a glib::Value) -> Self {
1530        skip_assert_initialized!();
1531        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1532    }
1533}
1534
1535#[cfg(feature = "v2_42")]
1536#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1537impl ToValue for FeatureStatus {
1538    #[inline]
1539    fn to_value(&self) -> glib::Value {
1540        let mut value = glib::Value::for_value_type::<Self>();
1541        unsafe {
1542            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1543        }
1544        value
1545    }
1546
1547    #[inline]
1548    fn value_type(&self) -> glib::Type {
1549        Self::static_type()
1550    }
1551}
1552
1553#[cfg(feature = "v2_42")]
1554#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1555impl From<FeatureStatus> for glib::Value {
1556    #[inline]
1557    fn from(v: FeatureStatus) -> Self {
1558        skip_assert_initialized!();
1559        ToValue::to_value(&v)
1560    }
1561}
1562
1563/// Enum values used for determining the hardware acceleration policy.
1564#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1565#[non_exhaustive]
1566#[doc(alias = "WebKitHardwareAccelerationPolicy")]
1567pub enum HardwareAccelerationPolicy {
1568    /// Hardware acceleration is always enabled, even for websites not requesting it.
1569    #[doc(alias = "WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS")]
1570    Always,
1571    /// Hardware acceleration is always disabled, even for websites requesting it.
1572    #[doc(alias = "WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER")]
1573    Never,
1574    #[doc(hidden)]
1575    __Unknown(i32),
1576}
1577
1578#[doc(hidden)]
1579impl IntoGlib for HardwareAccelerationPolicy {
1580    type GlibType = ffi::WebKitHardwareAccelerationPolicy;
1581
1582    #[inline]
1583    fn into_glib(self) -> ffi::WebKitHardwareAccelerationPolicy {
1584        match self {
1585            Self::Always => ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS,
1586            Self::Never => ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER,
1587            Self::__Unknown(value) => value,
1588        }
1589    }
1590}
1591
1592#[doc(hidden)]
1593impl FromGlib<ffi::WebKitHardwareAccelerationPolicy> for HardwareAccelerationPolicy {
1594    #[inline]
1595    unsafe fn from_glib(value: ffi::WebKitHardwareAccelerationPolicy) -> Self {
1596        skip_assert_initialized!();
1597
1598        match value {
1599            ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS => Self::Always,
1600            ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER => Self::Never,
1601            value => Self::__Unknown(value),
1602        }
1603    }
1604}
1605
1606impl StaticType for HardwareAccelerationPolicy {
1607    #[inline]
1608    #[doc(alias = "webkit_hardware_acceleration_policy_get_type")]
1609    fn static_type() -> glib::Type {
1610        unsafe { from_glib(ffi::webkit_hardware_acceleration_policy_get_type()) }
1611    }
1612}
1613
1614impl glib::HasParamSpec for HardwareAccelerationPolicy {
1615    type ParamSpec = glib::ParamSpecEnum;
1616    type SetValue = Self;
1617    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1618
1619    fn param_spec_builder() -> Self::BuilderFn {
1620        Self::ParamSpec::builder_with_default
1621    }
1622}
1623
1624impl glib::value::ValueType for HardwareAccelerationPolicy {
1625    type Type = Self;
1626}
1627
1628unsafe impl<'a> glib::value::FromValue<'a> for HardwareAccelerationPolicy {
1629    type Checker = glib::value::GenericValueTypeChecker<Self>;
1630
1631    #[inline]
1632    unsafe fn from_value(value: &'a glib::Value) -> Self {
1633        skip_assert_initialized!();
1634        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1635    }
1636}
1637
1638impl ToValue for HardwareAccelerationPolicy {
1639    #[inline]
1640    fn to_value(&self) -> glib::Value {
1641        let mut value = glib::Value::for_value_type::<Self>();
1642        unsafe {
1643            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1644        }
1645        value
1646    }
1647
1648    #[inline]
1649    fn value_type(&self) -> glib::Type {
1650        Self::static_type()
1651    }
1652}
1653
1654impl From<HardwareAccelerationPolicy> for glib::Value {
1655    #[inline]
1656    fn from(v: HardwareAccelerationPolicy) -> Self {
1657        skip_assert_initialized!();
1658        ToValue::to_value(&v)
1659    }
1660}
1661
1662/// Enum values used to describe the primary purpose of the active editable element.
1663#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1664#[non_exhaustive]
1665#[doc(alias = "WebKitInputPurpose")]
1666pub enum InputPurpose {
1667    /// Editable element expects any characters
1668    #[doc(alias = "WEBKIT_INPUT_PURPOSE_FREE_FORM")]
1669    FreeForm,
1670    /// Editable element expects digits
1671    #[doc(alias = "WEBKIT_INPUT_PURPOSE_DIGITS")]
1672    Digits,
1673    /// Editable element expects a number
1674    #[doc(alias = "WEBKIT_INPUT_PURPOSE_NUMBER")]
1675    Number,
1676    /// Editable element expects a telephone
1677    #[doc(alias = "WEBKIT_INPUT_PURPOSE_PHONE")]
1678    Phone,
1679    /// Editable element expects a URL
1680    #[doc(alias = "WEBKIT_INPUT_PURPOSE_URL")]
1681    Url,
1682    /// Editable element expects an email
1683    #[doc(alias = "WEBKIT_INPUT_PURPOSE_EMAIL")]
1684    Email,
1685    /// Editable element expects a password
1686    #[doc(alias = "WEBKIT_INPUT_PURPOSE_PASSWORD")]
1687    Password,
1688    #[doc(hidden)]
1689    __Unknown(i32),
1690}
1691
1692#[doc(hidden)]
1693impl IntoGlib for InputPurpose {
1694    type GlibType = ffi::WebKitInputPurpose;
1695
1696    #[inline]
1697    fn into_glib(self) -> ffi::WebKitInputPurpose {
1698        match self {
1699            Self::FreeForm => ffi::WEBKIT_INPUT_PURPOSE_FREE_FORM,
1700            Self::Digits => ffi::WEBKIT_INPUT_PURPOSE_DIGITS,
1701            Self::Number => ffi::WEBKIT_INPUT_PURPOSE_NUMBER,
1702            Self::Phone => ffi::WEBKIT_INPUT_PURPOSE_PHONE,
1703            Self::Url => ffi::WEBKIT_INPUT_PURPOSE_URL,
1704            Self::Email => ffi::WEBKIT_INPUT_PURPOSE_EMAIL,
1705            Self::Password => ffi::WEBKIT_INPUT_PURPOSE_PASSWORD,
1706            Self::__Unknown(value) => value,
1707        }
1708    }
1709}
1710
1711#[doc(hidden)]
1712impl FromGlib<ffi::WebKitInputPurpose> for InputPurpose {
1713    #[inline]
1714    unsafe fn from_glib(value: ffi::WebKitInputPurpose) -> Self {
1715        skip_assert_initialized!();
1716
1717        match value {
1718            ffi::WEBKIT_INPUT_PURPOSE_FREE_FORM => Self::FreeForm,
1719            ffi::WEBKIT_INPUT_PURPOSE_DIGITS => Self::Digits,
1720            ffi::WEBKIT_INPUT_PURPOSE_NUMBER => Self::Number,
1721            ffi::WEBKIT_INPUT_PURPOSE_PHONE => Self::Phone,
1722            ffi::WEBKIT_INPUT_PURPOSE_URL => Self::Url,
1723            ffi::WEBKIT_INPUT_PURPOSE_EMAIL => Self::Email,
1724            ffi::WEBKIT_INPUT_PURPOSE_PASSWORD => Self::Password,
1725            value => Self::__Unknown(value),
1726        }
1727    }
1728}
1729
1730impl StaticType for InputPurpose {
1731    #[inline]
1732    #[doc(alias = "webkit_input_purpose_get_type")]
1733    fn static_type() -> glib::Type {
1734        unsafe { from_glib(ffi::webkit_input_purpose_get_type()) }
1735    }
1736}
1737
1738impl glib::HasParamSpec for InputPurpose {
1739    type ParamSpec = glib::ParamSpecEnum;
1740    type SetValue = Self;
1741    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1742
1743    fn param_spec_builder() -> Self::BuilderFn {
1744        Self::ParamSpec::builder_with_default
1745    }
1746}
1747
1748impl glib::value::ValueType for InputPurpose {
1749    type Type = Self;
1750}
1751
1752unsafe impl<'a> glib::value::FromValue<'a> for InputPurpose {
1753    type Checker = glib::value::GenericValueTypeChecker<Self>;
1754
1755    #[inline]
1756    unsafe fn from_value(value: &'a glib::Value) -> Self {
1757        skip_assert_initialized!();
1758        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1759    }
1760}
1761
1762impl ToValue for InputPurpose {
1763    #[inline]
1764    fn to_value(&self) -> glib::Value {
1765        let mut value = glib::Value::for_value_type::<Self>();
1766        unsafe {
1767            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1768        }
1769        value
1770    }
1771
1772    #[inline]
1773    fn value_type(&self) -> glib::Type {
1774        Self::static_type()
1775    }
1776}
1777
1778impl From<InputPurpose> for glib::Value {
1779    #[inline]
1780    fn from(v: InputPurpose) -> Self {
1781        skip_assert_initialized!();
1782        ToValue::to_value(&v)
1783    }
1784}
1785
1786/// Enum values previously used to denote the different events which can trigger
1787/// the detection of insecure content. Since 2.46, WebKit generally no longer
1788/// loads insecure content in secure contexts.
1789///
1790/// # Deprecated since 2.46
1791///
1792#[cfg_attr(feature = "v2_46", deprecated = "Since 2.46")]
1793#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1794#[non_exhaustive]
1795#[doc(alias = "WebKitInsecureContentEvent")]
1796pub enum InsecureContentEvent {
1797    /// Insecure content has been detected by
1798    /// trying to execute any kind of logic (e.g. a script) from an
1799    /// untrusted source.
1800    #[doc(alias = "WEBKIT_INSECURE_CONTENT_RUN")]
1801    Run,
1802    /// Insecure content has been
1803    /// detected by trying to display any kind of resource (e.g. an image)
1804    /// from an untrusted source.
1805    #[doc(alias = "WEBKIT_INSECURE_CONTENT_DISPLAYED")]
1806    Displayed,
1807    #[doc(hidden)]
1808    __Unknown(i32),
1809}
1810
1811#[allow(deprecated)]
1812#[doc(hidden)]
1813impl IntoGlib for InsecureContentEvent {
1814    type GlibType = ffi::WebKitInsecureContentEvent;
1815
1816    #[inline]
1817    fn into_glib(self) -> ffi::WebKitInsecureContentEvent {
1818        match self {
1819            Self::Run => ffi::WEBKIT_INSECURE_CONTENT_RUN,
1820            Self::Displayed => ffi::WEBKIT_INSECURE_CONTENT_DISPLAYED,
1821            Self::__Unknown(value) => value,
1822        }
1823    }
1824}
1825
1826#[allow(deprecated)]
1827#[doc(hidden)]
1828impl FromGlib<ffi::WebKitInsecureContentEvent> for InsecureContentEvent {
1829    #[inline]
1830    unsafe fn from_glib(value: ffi::WebKitInsecureContentEvent) -> Self {
1831        skip_assert_initialized!();
1832
1833        match value {
1834            ffi::WEBKIT_INSECURE_CONTENT_RUN => Self::Run,
1835            ffi::WEBKIT_INSECURE_CONTENT_DISPLAYED => Self::Displayed,
1836            value => Self::__Unknown(value),
1837        }
1838    }
1839}
1840
1841#[allow(deprecated)]
1842impl StaticType for InsecureContentEvent {
1843    #[inline]
1844    #[doc(alias = "webkit_insecure_content_event_get_type")]
1845    fn static_type() -> glib::Type {
1846        unsafe { from_glib(ffi::webkit_insecure_content_event_get_type()) }
1847    }
1848}
1849
1850#[allow(deprecated)]
1851impl glib::HasParamSpec for InsecureContentEvent {
1852    type ParamSpec = glib::ParamSpecEnum;
1853    type SetValue = Self;
1854    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1855
1856    fn param_spec_builder() -> Self::BuilderFn {
1857        Self::ParamSpec::builder_with_default
1858    }
1859}
1860
1861#[allow(deprecated)]
1862impl glib::value::ValueType for InsecureContentEvent {
1863    type Type = Self;
1864}
1865
1866#[allow(deprecated)]
1867unsafe impl<'a> glib::value::FromValue<'a> for InsecureContentEvent {
1868    type Checker = glib::value::GenericValueTypeChecker<Self>;
1869
1870    #[inline]
1871    unsafe fn from_value(value: &'a glib::Value) -> Self {
1872        skip_assert_initialized!();
1873        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1874    }
1875}
1876
1877#[allow(deprecated)]
1878impl ToValue for InsecureContentEvent {
1879    #[inline]
1880    fn to_value(&self) -> glib::Value {
1881        let mut value = glib::Value::for_value_type::<Self>();
1882        unsafe {
1883            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1884        }
1885        value
1886    }
1887
1888    #[inline]
1889    fn value_type(&self) -> glib::Type {
1890        Self::static_type()
1891    }
1892}
1893
1894#[allow(deprecated)]
1895impl From<InsecureContentEvent> for glib::Value {
1896    #[inline]
1897    fn from(v: InsecureContentEvent) -> Self {
1898        skip_assert_initialized!();
1899        ToValue::to_value(&v)
1900    }
1901}
1902
1903/// Enum values used to denote errors happening when executing JavaScript
1904#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1905#[non_exhaustive]
1906#[doc(alias = "WebKitJavascriptError")]
1907pub enum JavascriptError {
1908    /// An exception was raised in JavaScript execution
1909    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED")]
1910    ScriptFailed,
1911    /// An unsupported parameter has been used to call and async function from API. Since 2.40
1912    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER")]
1913    InvalidParameter,
1914    /// The result of JavaScript execution could not be returned. Since 2.40
1915    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT")]
1916    InvalidResult,
1917    #[doc(hidden)]
1918    __Unknown(i32),
1919}
1920
1921impl JavascriptError {
1922    #[doc(alias = "webkit_javascript_error_quark")]
1923    pub fn quark() -> glib::Quark {
1924        assert_initialized_main_thread!();
1925        unsafe { from_glib(ffi::webkit_javascript_error_quark()) }
1926    }
1927}
1928
1929#[doc(hidden)]
1930impl IntoGlib for JavascriptError {
1931    type GlibType = ffi::WebKitJavascriptError;
1932
1933    #[inline]
1934    fn into_glib(self) -> ffi::WebKitJavascriptError {
1935        match self {
1936            Self::ScriptFailed => ffi::WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED,
1937            Self::InvalidParameter => ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER,
1938            Self::InvalidResult => ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT,
1939            Self::__Unknown(value) => value,
1940        }
1941    }
1942}
1943
1944#[doc(hidden)]
1945impl FromGlib<ffi::WebKitJavascriptError> for JavascriptError {
1946    #[inline]
1947    unsafe fn from_glib(value: ffi::WebKitJavascriptError) -> Self {
1948        skip_assert_initialized!();
1949
1950        match value {
1951            ffi::WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED => Self::ScriptFailed,
1952            ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER => Self::InvalidParameter,
1953            ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT => Self::InvalidResult,
1954            value => Self::__Unknown(value),
1955        }
1956    }
1957}
1958
1959impl glib::error::ErrorDomain for JavascriptError {
1960    #[inline]
1961    fn domain() -> glib::Quark {
1962        skip_assert_initialized!();
1963
1964        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
1965        let quark = *QUARK.get_or_init(|| unsafe {
1966            glib::ffi::g_quark_from_static_string(c"WebKitJavascriptError".as_ptr())
1967        });
1968        unsafe { from_glib(quark) }
1969    }
1970
1971    #[inline]
1972    fn code(self) -> i32 {
1973        self.into_glib()
1974    }
1975
1976    #[inline]
1977    #[allow(clippy::match_single_binding)]
1978    fn from(code: i32) -> Option<Self> {
1979        skip_assert_initialized!();
1980        match unsafe { from_glib(code) } {
1981            value => Some(value),
1982        }
1983    }
1984}
1985
1986impl StaticType for JavascriptError {
1987    #[inline]
1988    #[doc(alias = "webkit_javascript_error_get_type")]
1989    fn static_type() -> glib::Type {
1990        unsafe { from_glib(ffi::webkit_javascript_error_get_type()) }
1991    }
1992}
1993
1994impl glib::HasParamSpec for JavascriptError {
1995    type ParamSpec = glib::ParamSpecEnum;
1996    type SetValue = Self;
1997    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1998
1999    fn param_spec_builder() -> Self::BuilderFn {
2000        Self::ParamSpec::builder_with_default
2001    }
2002}
2003
2004impl glib::value::ValueType for JavascriptError {
2005    type Type = Self;
2006}
2007
2008unsafe impl<'a> glib::value::FromValue<'a> for JavascriptError {
2009    type Checker = glib::value::GenericValueTypeChecker<Self>;
2010
2011    #[inline]
2012    unsafe fn from_value(value: &'a glib::Value) -> Self {
2013        skip_assert_initialized!();
2014        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2015    }
2016}
2017
2018impl ToValue for JavascriptError {
2019    #[inline]
2020    fn to_value(&self) -> glib::Value {
2021        let mut value = glib::Value::for_value_type::<Self>();
2022        unsafe {
2023            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2024        }
2025        value
2026    }
2027
2028    #[inline]
2029    fn value_type(&self) -> glib::Type {
2030        Self::static_type()
2031    }
2032}
2033
2034impl From<JavascriptError> for glib::Value {
2035    #[inline]
2036    fn from(v: JavascriptError) -> Self {
2037        skip_assert_initialized!();
2038        ToValue::to_value(&v)
2039    }
2040}
2041
2042/// Enum values used to denote the different events that happen during a
2043/// [`WebView`][crate::WebView] load operation.
2044#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2045#[non_exhaustive]
2046#[doc(alias = "WebKitLoadEvent")]
2047pub enum LoadEvent {
2048    /// A new load request has been made.
2049    /// No data has been received yet, empty structures have
2050    /// been allocated to perform the load; the load may still
2051    /// fail due to transport issues such as not being able to
2052    /// resolve a name, or connect to a port.
2053    #[doc(alias = "WEBKIT_LOAD_STARTED")]
2054    Started,
2055    /// A provisional data source received
2056    /// a server redirect.
2057    #[doc(alias = "WEBKIT_LOAD_REDIRECTED")]
2058    Redirected,
2059    /// The content started arriving for a page load.
2060    /// The necessary transport requirements are established, and the
2061    /// load is being performed.
2062    #[doc(alias = "WEBKIT_LOAD_COMMITTED")]
2063    Committed,
2064    /// Load completed. All resources are done loading
2065    /// or there was an error during the load operation.
2066    #[doc(alias = "WEBKIT_LOAD_FINISHED")]
2067    Finished,
2068    #[doc(hidden)]
2069    __Unknown(i32),
2070}
2071
2072#[doc(hidden)]
2073impl IntoGlib for LoadEvent {
2074    type GlibType = ffi::WebKitLoadEvent;
2075
2076    #[inline]
2077    fn into_glib(self) -> ffi::WebKitLoadEvent {
2078        match self {
2079            Self::Started => ffi::WEBKIT_LOAD_STARTED,
2080            Self::Redirected => ffi::WEBKIT_LOAD_REDIRECTED,
2081            Self::Committed => ffi::WEBKIT_LOAD_COMMITTED,
2082            Self::Finished => ffi::WEBKIT_LOAD_FINISHED,
2083            Self::__Unknown(value) => value,
2084        }
2085    }
2086}
2087
2088#[doc(hidden)]
2089impl FromGlib<ffi::WebKitLoadEvent> for LoadEvent {
2090    #[inline]
2091    unsafe fn from_glib(value: ffi::WebKitLoadEvent) -> Self {
2092        skip_assert_initialized!();
2093
2094        match value {
2095            ffi::WEBKIT_LOAD_STARTED => Self::Started,
2096            ffi::WEBKIT_LOAD_REDIRECTED => Self::Redirected,
2097            ffi::WEBKIT_LOAD_COMMITTED => Self::Committed,
2098            ffi::WEBKIT_LOAD_FINISHED => Self::Finished,
2099            value => Self::__Unknown(value),
2100        }
2101    }
2102}
2103
2104impl StaticType for LoadEvent {
2105    #[inline]
2106    #[doc(alias = "webkit_load_event_get_type")]
2107    fn static_type() -> glib::Type {
2108        unsafe { from_glib(ffi::webkit_load_event_get_type()) }
2109    }
2110}
2111
2112impl glib::HasParamSpec for LoadEvent {
2113    type ParamSpec = glib::ParamSpecEnum;
2114    type SetValue = Self;
2115    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2116
2117    fn param_spec_builder() -> Self::BuilderFn {
2118        Self::ParamSpec::builder_with_default
2119    }
2120}
2121
2122impl glib::value::ValueType for LoadEvent {
2123    type Type = Self;
2124}
2125
2126unsafe impl<'a> glib::value::FromValue<'a> for LoadEvent {
2127    type Checker = glib::value::GenericValueTypeChecker<Self>;
2128
2129    #[inline]
2130    unsafe fn from_value(value: &'a glib::Value) -> Self {
2131        skip_assert_initialized!();
2132        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2133    }
2134}
2135
2136impl ToValue for LoadEvent {
2137    #[inline]
2138    fn to_value(&self) -> glib::Value {
2139        let mut value = glib::Value::for_value_type::<Self>();
2140        unsafe {
2141            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2142        }
2143        value
2144    }
2145
2146    #[inline]
2147    fn value_type(&self) -> glib::Type {
2148        Self::static_type()
2149    }
2150}
2151
2152impl From<LoadEvent> for glib::Value {
2153    #[inline]
2154    fn from(v: LoadEvent) -> Self {
2155        skip_assert_initialized!();
2156        ToValue::to_value(&v)
2157    }
2158}
2159
2160/// Enum values used to specify the capture state of a media device.
2161#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2162#[non_exhaustive]
2163#[doc(alias = "WebKitMediaCaptureState")]
2164pub enum MediaCaptureState {
2165    /// Media capture is disabled.
2166    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_NONE")]
2167    None,
2168    /// Media capture is active.
2169    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE")]
2170    Active,
2171    /// Media capture is muted.
2172    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_MUTED")]
2173    Muted,
2174    #[doc(hidden)]
2175    __Unknown(i32),
2176}
2177
2178#[doc(hidden)]
2179impl IntoGlib for MediaCaptureState {
2180    type GlibType = ffi::WebKitMediaCaptureState;
2181
2182    #[inline]
2183    fn into_glib(self) -> ffi::WebKitMediaCaptureState {
2184        match self {
2185            Self::None => ffi::WEBKIT_MEDIA_CAPTURE_STATE_NONE,
2186            Self::Active => ffi::WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE,
2187            Self::Muted => ffi::WEBKIT_MEDIA_CAPTURE_STATE_MUTED,
2188            Self::__Unknown(value) => value,
2189        }
2190    }
2191}
2192
2193#[doc(hidden)]
2194impl FromGlib<ffi::WebKitMediaCaptureState> for MediaCaptureState {
2195    #[inline]
2196    unsafe fn from_glib(value: ffi::WebKitMediaCaptureState) -> Self {
2197        skip_assert_initialized!();
2198
2199        match value {
2200            ffi::WEBKIT_MEDIA_CAPTURE_STATE_NONE => Self::None,
2201            ffi::WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE => Self::Active,
2202            ffi::WEBKIT_MEDIA_CAPTURE_STATE_MUTED => Self::Muted,
2203            value => Self::__Unknown(value),
2204        }
2205    }
2206}
2207
2208impl StaticType for MediaCaptureState {
2209    #[inline]
2210    #[doc(alias = "webkit_media_capture_state_get_type")]
2211    fn static_type() -> glib::Type {
2212        unsafe { from_glib(ffi::webkit_media_capture_state_get_type()) }
2213    }
2214}
2215
2216impl glib::HasParamSpec for MediaCaptureState {
2217    type ParamSpec = glib::ParamSpecEnum;
2218    type SetValue = Self;
2219    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2220
2221    fn param_spec_builder() -> Self::BuilderFn {
2222        Self::ParamSpec::builder_with_default
2223    }
2224}
2225
2226impl glib::value::ValueType for MediaCaptureState {
2227    type Type = Self;
2228}
2229
2230unsafe impl<'a> glib::value::FromValue<'a> for MediaCaptureState {
2231    type Checker = glib::value::GenericValueTypeChecker<Self>;
2232
2233    #[inline]
2234    unsafe fn from_value(value: &'a glib::Value) -> Self {
2235        skip_assert_initialized!();
2236        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2237    }
2238}
2239
2240impl ToValue for MediaCaptureState {
2241    #[inline]
2242    fn to_value(&self) -> glib::Value {
2243        let mut value = glib::Value::for_value_type::<Self>();
2244        unsafe {
2245            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2246        }
2247        value
2248    }
2249
2250    #[inline]
2251    fn value_type(&self) -> glib::Type {
2252        Self::static_type()
2253    }
2254}
2255
2256impl From<MediaCaptureState> for glib::Value {
2257    #[inline]
2258    fn from(v: MediaCaptureState) -> Self {
2259        skip_assert_initialized!();
2260        ToValue::to_value(&v)
2261    }
2262}
2263
2264/// Enum values used to denote the various media errors.
2265#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2266#[non_exhaustive]
2267#[doc(alias = "WebKitMediaError")]
2268pub enum MediaError {
2269    /// Preliminary load failure for media content types. A new load will be started to perform the media load. Since: 2.40
2270    #[doc(alias = "WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD")]
2271    Load,
2272    #[doc(hidden)]
2273    __Unknown(i32),
2274}
2275
2276impl MediaError {
2277    #[doc(alias = "webkit_media_error_quark")]
2278    pub fn quark() -> glib::Quark {
2279        assert_initialized_main_thread!();
2280        unsafe { from_glib(ffi::webkit_media_error_quark()) }
2281    }
2282}
2283
2284#[doc(hidden)]
2285impl IntoGlib for MediaError {
2286    type GlibType = ffi::WebKitMediaError;
2287
2288    #[inline]
2289    fn into_glib(self) -> ffi::WebKitMediaError {
2290        match self {
2291            Self::Load => ffi::WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD,
2292            Self::__Unknown(value) => value,
2293        }
2294    }
2295}
2296
2297#[doc(hidden)]
2298impl FromGlib<ffi::WebKitMediaError> for MediaError {
2299    #[inline]
2300    unsafe fn from_glib(value: ffi::WebKitMediaError) -> Self {
2301        skip_assert_initialized!();
2302
2303        match value {
2304            ffi::WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD => Self::Load,
2305            value => Self::__Unknown(value),
2306        }
2307    }
2308}
2309
2310impl glib::error::ErrorDomain for MediaError {
2311    #[inline]
2312    fn domain() -> glib::Quark {
2313        skip_assert_initialized!();
2314
2315        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
2316        let quark = *QUARK.get_or_init(|| unsafe {
2317            glib::ffi::g_quark_from_static_string(c"WebKitMediaError".as_ptr())
2318        });
2319        unsafe { from_glib(quark) }
2320    }
2321
2322    #[inline]
2323    fn code(self) -> i32 {
2324        self.into_glib()
2325    }
2326
2327    #[inline]
2328    #[allow(clippy::match_single_binding)]
2329    fn from(code: i32) -> Option<Self> {
2330        skip_assert_initialized!();
2331        match unsafe { from_glib(code) } {
2332            value => Some(value),
2333        }
2334    }
2335}
2336
2337impl StaticType for MediaError {
2338    #[inline]
2339    #[doc(alias = "webkit_media_error_get_type")]
2340    fn static_type() -> glib::Type {
2341        unsafe { from_glib(ffi::webkit_media_error_get_type()) }
2342    }
2343}
2344
2345impl glib::HasParamSpec for MediaError {
2346    type ParamSpec = glib::ParamSpecEnum;
2347    type SetValue = Self;
2348    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2349
2350    fn param_spec_builder() -> Self::BuilderFn {
2351        Self::ParamSpec::builder_with_default
2352    }
2353}
2354
2355impl glib::value::ValueType for MediaError {
2356    type Type = Self;
2357}
2358
2359unsafe impl<'a> glib::value::FromValue<'a> for MediaError {
2360    type Checker = glib::value::GenericValueTypeChecker<Self>;
2361
2362    #[inline]
2363    unsafe fn from_value(value: &'a glib::Value) -> Self {
2364        skip_assert_initialized!();
2365        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2366    }
2367}
2368
2369impl ToValue for MediaError {
2370    #[inline]
2371    fn to_value(&self) -> glib::Value {
2372        let mut value = glib::Value::for_value_type::<Self>();
2373        unsafe {
2374            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2375        }
2376        value
2377    }
2378
2379    #[inline]
2380    fn value_type(&self) -> glib::Type {
2381        Self::static_type()
2382    }
2383}
2384
2385impl From<MediaError> for glib::Value {
2386    #[inline]
2387    fn from(v: MediaError) -> Self {
2388        skip_assert_initialized!();
2389        ToValue::to_value(&v)
2390    }
2391}
2392
2393/// Enum values used to denote the various navigation types.
2394#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2395#[non_exhaustive]
2396#[doc(alias = "WebKitNavigationType")]
2397pub enum NavigationType {
2398    /// The navigation was triggered by clicking a link.
2399    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_LINK_CLICKED")]
2400    LinkClicked,
2401    /// The navigation was triggered by submitting a form.
2402    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED")]
2403    FormSubmitted,
2404    /// The navigation was triggered by navigating forward or backward.
2405    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_BACK_FORWARD")]
2406    BackForward,
2407    /// The navigation was triggered by reloading.
2408    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_RELOAD")]
2409    Reload,
2410    /// The navigation was triggered by resubmitting a form.
2411    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED")]
2412    FormResubmitted,
2413    /// The navigation was triggered by some other action.
2414    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_OTHER")]
2415    Other,
2416    #[doc(hidden)]
2417    __Unknown(i32),
2418}
2419
2420#[doc(hidden)]
2421impl IntoGlib for NavigationType {
2422    type GlibType = ffi::WebKitNavigationType;
2423
2424    #[inline]
2425    fn into_glib(self) -> ffi::WebKitNavigationType {
2426        match self {
2427            Self::LinkClicked => ffi::WEBKIT_NAVIGATION_TYPE_LINK_CLICKED,
2428            Self::FormSubmitted => ffi::WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED,
2429            Self::BackForward => ffi::WEBKIT_NAVIGATION_TYPE_BACK_FORWARD,
2430            Self::Reload => ffi::WEBKIT_NAVIGATION_TYPE_RELOAD,
2431            Self::FormResubmitted => ffi::WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED,
2432            Self::Other => ffi::WEBKIT_NAVIGATION_TYPE_OTHER,
2433            Self::__Unknown(value) => value,
2434        }
2435    }
2436}
2437
2438#[doc(hidden)]
2439impl FromGlib<ffi::WebKitNavigationType> for NavigationType {
2440    #[inline]
2441    unsafe fn from_glib(value: ffi::WebKitNavigationType) -> Self {
2442        skip_assert_initialized!();
2443
2444        match value {
2445            ffi::WEBKIT_NAVIGATION_TYPE_LINK_CLICKED => Self::LinkClicked,
2446            ffi::WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED => Self::FormSubmitted,
2447            ffi::WEBKIT_NAVIGATION_TYPE_BACK_FORWARD => Self::BackForward,
2448            ffi::WEBKIT_NAVIGATION_TYPE_RELOAD => Self::Reload,
2449            ffi::WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED => Self::FormResubmitted,
2450            ffi::WEBKIT_NAVIGATION_TYPE_OTHER => Self::Other,
2451            value => Self::__Unknown(value),
2452        }
2453    }
2454}
2455
2456impl StaticType for NavigationType {
2457    #[inline]
2458    #[doc(alias = "webkit_navigation_type_get_type")]
2459    fn static_type() -> glib::Type {
2460        unsafe { from_glib(ffi::webkit_navigation_type_get_type()) }
2461    }
2462}
2463
2464impl glib::HasParamSpec for NavigationType {
2465    type ParamSpec = glib::ParamSpecEnum;
2466    type SetValue = Self;
2467    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2468
2469    fn param_spec_builder() -> Self::BuilderFn {
2470        Self::ParamSpec::builder_with_default
2471    }
2472}
2473
2474impl glib::value::ValueType for NavigationType {
2475    type Type = Self;
2476}
2477
2478unsafe impl<'a> glib::value::FromValue<'a> for NavigationType {
2479    type Checker = glib::value::GenericValueTypeChecker<Self>;
2480
2481    #[inline]
2482    unsafe fn from_value(value: &'a glib::Value) -> Self {
2483        skip_assert_initialized!();
2484        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2485    }
2486}
2487
2488impl ToValue for NavigationType {
2489    #[inline]
2490    fn to_value(&self) -> glib::Value {
2491        let mut value = glib::Value::for_value_type::<Self>();
2492        unsafe {
2493            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2494        }
2495        value
2496    }
2497
2498    #[inline]
2499    fn value_type(&self) -> glib::Type {
2500        Self::static_type()
2501    }
2502}
2503
2504impl From<NavigationType> for glib::Value {
2505    #[inline]
2506    fn from(v: NavigationType) -> Self {
2507        skip_assert_initialized!();
2508        ToValue::to_value(&v)
2509    }
2510}
2511
2512/// Enum values used to denote the various network errors.
2513#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2514#[non_exhaustive]
2515#[doc(alias = "WebKitNetworkError")]
2516pub enum NetworkError {
2517    /// Generic load failure
2518    #[doc(alias = "WEBKIT_NETWORK_ERROR_FAILED")]
2519    Failed,
2520    /// Load failure due to transport error
2521    #[doc(alias = "WEBKIT_NETWORK_ERROR_TRANSPORT")]
2522    Transport,
2523    /// Load failure due to unknown protocol
2524    #[doc(alias = "WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL")]
2525    UnknownProtocol,
2526    /// Load failure due to cancellation
2527    #[doc(alias = "WEBKIT_NETWORK_ERROR_CANCELLED")]
2528    Cancelled,
2529    /// Load failure due to missing file
2530    #[doc(alias = "WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST")]
2531    FileDoesNotExist,
2532    #[doc(hidden)]
2533    __Unknown(i32),
2534}
2535
2536impl NetworkError {
2537    #[doc(alias = "webkit_network_error_quark")]
2538    pub fn quark() -> glib::Quark {
2539        assert_initialized_main_thread!();
2540        unsafe { from_glib(ffi::webkit_network_error_quark()) }
2541    }
2542}
2543
2544#[doc(hidden)]
2545impl IntoGlib for NetworkError {
2546    type GlibType = ffi::WebKitNetworkError;
2547
2548    #[inline]
2549    fn into_glib(self) -> ffi::WebKitNetworkError {
2550        match self {
2551            Self::Failed => ffi::WEBKIT_NETWORK_ERROR_FAILED,
2552            Self::Transport => ffi::WEBKIT_NETWORK_ERROR_TRANSPORT,
2553            Self::UnknownProtocol => ffi::WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL,
2554            Self::Cancelled => ffi::WEBKIT_NETWORK_ERROR_CANCELLED,
2555            Self::FileDoesNotExist => ffi::WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST,
2556            Self::__Unknown(value) => value,
2557        }
2558    }
2559}
2560
2561#[doc(hidden)]
2562impl FromGlib<ffi::WebKitNetworkError> for NetworkError {
2563    #[inline]
2564    unsafe fn from_glib(value: ffi::WebKitNetworkError) -> Self {
2565        skip_assert_initialized!();
2566
2567        match value {
2568            ffi::WEBKIT_NETWORK_ERROR_FAILED => Self::Failed,
2569            ffi::WEBKIT_NETWORK_ERROR_TRANSPORT => Self::Transport,
2570            ffi::WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL => Self::UnknownProtocol,
2571            ffi::WEBKIT_NETWORK_ERROR_CANCELLED => Self::Cancelled,
2572            ffi::WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST => Self::FileDoesNotExist,
2573            value => Self::__Unknown(value),
2574        }
2575    }
2576}
2577
2578impl glib::error::ErrorDomain for NetworkError {
2579    #[inline]
2580    fn domain() -> glib::Quark {
2581        skip_assert_initialized!();
2582
2583        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
2584        let quark = *QUARK.get_or_init(|| unsafe {
2585            glib::ffi::g_quark_from_static_string(c"WebKitNetworkError".as_ptr())
2586        });
2587        unsafe { from_glib(quark) }
2588    }
2589
2590    #[inline]
2591    fn code(self) -> i32 {
2592        self.into_glib()
2593    }
2594
2595    #[inline]
2596    #[allow(clippy::match_single_binding)]
2597    fn from(code: i32) -> Option<Self> {
2598        skip_assert_initialized!();
2599        match unsafe { from_glib(code) } {
2600            Self::__Unknown(_) => Some(Self::Failed),
2601            value => Some(value),
2602        }
2603    }
2604}
2605
2606impl StaticType for NetworkError {
2607    #[inline]
2608    #[doc(alias = "webkit_network_error_get_type")]
2609    fn static_type() -> glib::Type {
2610        unsafe { from_glib(ffi::webkit_network_error_get_type()) }
2611    }
2612}
2613
2614impl glib::HasParamSpec for NetworkError {
2615    type ParamSpec = glib::ParamSpecEnum;
2616    type SetValue = Self;
2617    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2618
2619    fn param_spec_builder() -> Self::BuilderFn {
2620        Self::ParamSpec::builder_with_default
2621    }
2622}
2623
2624impl glib::value::ValueType for NetworkError {
2625    type Type = Self;
2626}
2627
2628unsafe impl<'a> glib::value::FromValue<'a> for NetworkError {
2629    type Checker = glib::value::GenericValueTypeChecker<Self>;
2630
2631    #[inline]
2632    unsafe fn from_value(value: &'a glib::Value) -> Self {
2633        skip_assert_initialized!();
2634        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2635    }
2636}
2637
2638impl ToValue for NetworkError {
2639    #[inline]
2640    fn to_value(&self) -> glib::Value {
2641        let mut value = glib::Value::for_value_type::<Self>();
2642        unsafe {
2643            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2644        }
2645        value
2646    }
2647
2648    #[inline]
2649    fn value_type(&self) -> glib::Type {
2650        Self::static_type()
2651    }
2652}
2653
2654impl From<NetworkError> for glib::Value {
2655    #[inline]
2656    fn from(v: NetworkError) -> Self {
2657        skip_assert_initialized!();
2658        ToValue::to_value(&v)
2659    }
2660}
2661
2662/// Enum values used to set the network proxy mode.
2663#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2664#[non_exhaustive]
2665#[doc(alias = "WebKitNetworkProxyMode")]
2666pub enum NetworkProxyMode {
2667    /// Use the default proxy of the system.
2668    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_DEFAULT")]
2669    Default,
2670    /// Do not use any proxy.
2671    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_NO_PROXY")]
2672    NoProxy,
2673    /// Use custom proxy settings.
2674    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_CUSTOM")]
2675    Custom,
2676    #[doc(hidden)]
2677    __Unknown(i32),
2678}
2679
2680#[doc(hidden)]
2681impl IntoGlib for NetworkProxyMode {
2682    type GlibType = ffi::WebKitNetworkProxyMode;
2683
2684    #[inline]
2685    fn into_glib(self) -> ffi::WebKitNetworkProxyMode {
2686        match self {
2687            Self::Default => ffi::WEBKIT_NETWORK_PROXY_MODE_DEFAULT,
2688            Self::NoProxy => ffi::WEBKIT_NETWORK_PROXY_MODE_NO_PROXY,
2689            Self::Custom => ffi::WEBKIT_NETWORK_PROXY_MODE_CUSTOM,
2690            Self::__Unknown(value) => value,
2691        }
2692    }
2693}
2694
2695#[doc(hidden)]
2696impl FromGlib<ffi::WebKitNetworkProxyMode> for NetworkProxyMode {
2697    #[inline]
2698    unsafe fn from_glib(value: ffi::WebKitNetworkProxyMode) -> Self {
2699        skip_assert_initialized!();
2700
2701        match value {
2702            ffi::WEBKIT_NETWORK_PROXY_MODE_DEFAULT => Self::Default,
2703            ffi::WEBKIT_NETWORK_PROXY_MODE_NO_PROXY => Self::NoProxy,
2704            ffi::WEBKIT_NETWORK_PROXY_MODE_CUSTOM => Self::Custom,
2705            value => Self::__Unknown(value),
2706        }
2707    }
2708}
2709
2710impl StaticType for NetworkProxyMode {
2711    #[inline]
2712    #[doc(alias = "webkit_network_proxy_mode_get_type")]
2713    fn static_type() -> glib::Type {
2714        unsafe { from_glib(ffi::webkit_network_proxy_mode_get_type()) }
2715    }
2716}
2717
2718impl glib::HasParamSpec for NetworkProxyMode {
2719    type ParamSpec = glib::ParamSpecEnum;
2720    type SetValue = Self;
2721    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2722
2723    fn param_spec_builder() -> Self::BuilderFn {
2724        Self::ParamSpec::builder_with_default
2725    }
2726}
2727
2728impl glib::value::ValueType for NetworkProxyMode {
2729    type Type = Self;
2730}
2731
2732unsafe impl<'a> glib::value::FromValue<'a> for NetworkProxyMode {
2733    type Checker = glib::value::GenericValueTypeChecker<Self>;
2734
2735    #[inline]
2736    unsafe fn from_value(value: &'a glib::Value) -> Self {
2737        skip_assert_initialized!();
2738        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2739    }
2740}
2741
2742impl ToValue for NetworkProxyMode {
2743    #[inline]
2744    fn to_value(&self) -> glib::Value {
2745        let mut value = glib::Value::for_value_type::<Self>();
2746        unsafe {
2747            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2748        }
2749        value
2750    }
2751
2752    #[inline]
2753    fn value_type(&self) -> glib::Type {
2754        Self::static_type()
2755    }
2756}
2757
2758impl From<NetworkProxyMode> for glib::Value {
2759    #[inline]
2760    fn from(v: NetworkProxyMode) -> Self {
2761        skip_assert_initialized!();
2762        ToValue::to_value(&v)
2763    }
2764}
2765
2766/// Enum values representing query permission results.
2767#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2768#[non_exhaustive]
2769#[doc(alias = "WebKitPermissionState")]
2770pub enum PermissionState {
2771    /// Access to the feature is granted.
2772    #[doc(alias = "WEBKIT_PERMISSION_STATE_GRANTED")]
2773    Granted,
2774    /// Access to the feature is denied.
2775    #[doc(alias = "WEBKIT_PERMISSION_STATE_DENIED")]
2776    Denied,
2777    /// Access to the feature has to be requested via user prompt.
2778    #[doc(alias = "WEBKIT_PERMISSION_STATE_PROMPT")]
2779    Prompt,
2780    #[doc(hidden)]
2781    __Unknown(i32),
2782}
2783
2784#[doc(hidden)]
2785impl IntoGlib for PermissionState {
2786    type GlibType = ffi::WebKitPermissionState;
2787
2788    #[inline]
2789    fn into_glib(self) -> ffi::WebKitPermissionState {
2790        match self {
2791            Self::Granted => ffi::WEBKIT_PERMISSION_STATE_GRANTED,
2792            Self::Denied => ffi::WEBKIT_PERMISSION_STATE_DENIED,
2793            Self::Prompt => ffi::WEBKIT_PERMISSION_STATE_PROMPT,
2794            Self::__Unknown(value) => value,
2795        }
2796    }
2797}
2798
2799#[doc(hidden)]
2800impl FromGlib<ffi::WebKitPermissionState> for PermissionState {
2801    #[inline]
2802    unsafe fn from_glib(value: ffi::WebKitPermissionState) -> Self {
2803        skip_assert_initialized!();
2804
2805        match value {
2806            ffi::WEBKIT_PERMISSION_STATE_GRANTED => Self::Granted,
2807            ffi::WEBKIT_PERMISSION_STATE_DENIED => Self::Denied,
2808            ffi::WEBKIT_PERMISSION_STATE_PROMPT => Self::Prompt,
2809            value => Self::__Unknown(value),
2810        }
2811    }
2812}
2813
2814impl StaticType for PermissionState {
2815    #[inline]
2816    #[doc(alias = "webkit_permission_state_get_type")]
2817    fn static_type() -> glib::Type {
2818        unsafe { from_glib(ffi::webkit_permission_state_get_type()) }
2819    }
2820}
2821
2822impl glib::HasParamSpec for PermissionState {
2823    type ParamSpec = glib::ParamSpecEnum;
2824    type SetValue = Self;
2825    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2826
2827    fn param_spec_builder() -> Self::BuilderFn {
2828        Self::ParamSpec::builder_with_default
2829    }
2830}
2831
2832impl glib::value::ValueType for PermissionState {
2833    type Type = Self;
2834}
2835
2836unsafe impl<'a> glib::value::FromValue<'a> for PermissionState {
2837    type Checker = glib::value::GenericValueTypeChecker<Self>;
2838
2839    #[inline]
2840    unsafe fn from_value(value: &'a glib::Value) -> Self {
2841        skip_assert_initialized!();
2842        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2843    }
2844}
2845
2846impl ToValue for PermissionState {
2847    #[inline]
2848    fn to_value(&self) -> glib::Value {
2849        let mut value = glib::Value::for_value_type::<Self>();
2850        unsafe {
2851            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2852        }
2853        value
2854    }
2855
2856    #[inline]
2857    fn value_type(&self) -> glib::Type {
2858        Self::static_type()
2859    }
2860}
2861
2862impl From<PermissionState> for glib::Value {
2863    #[inline]
2864    fn from(v: PermissionState) -> Self {
2865        skip_assert_initialized!();
2866        ToValue::to_value(&v)
2867    }
2868}
2869
2870/// Enum values used for determining the type of a policy decision during
2871/// [`decide-policy`][struct@crate::WebView#decide-policy].
2872#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2873#[non_exhaustive]
2874#[doc(alias = "WebKitPolicyDecisionType")]
2875pub enum PolicyDecisionType {
2876    /// This type of policy decision
2877    ///  is requested when WebKit is about to navigate to a new page in either the
2878    ///  main frame or a subframe. Acceptable policy decisions are either
2879    ///  [`PolicyDecisionExt::use_()`][crate::prelude::PolicyDecisionExt::use_()] or [`PolicyDecisionExt::ignore()`][crate::prelude::PolicyDecisionExt::ignore()]. This
2880    ///  type of policy decision is always a [`NavigationPolicyDecision`][crate::NavigationPolicyDecision].
2881    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION")]
2882    NavigationAction,
2883    /// This type of policy decision
2884    ///  is requested when WebKit is about to create a new window. Acceptable policy
2885    ///  decisions are either [`PolicyDecisionExt::use_()`][crate::prelude::PolicyDecisionExt::use_()] or
2886    ///  [`PolicyDecisionExt::ignore()`][crate::prelude::PolicyDecisionExt::ignore()]. This type of policy decision is always
2887    ///  a [`NavigationPolicyDecision`][crate::NavigationPolicyDecision]. These decisions are useful for implementing
2888    ///  special actions for new windows, such as forcing the new window to open
2889    ///  in a tab when a keyboard modifier is active or handling a special
2890    ///  target attribute on `<a>` elements.
2891    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION")]
2892    NewWindowAction,
2893    /// This type of decision is used when WebKit has
2894    ///  received a response for a network resource and is about to start the load.
2895    ///  Note that these resources include all subresources of a page such as images
2896    ///  and stylesheets as well as main documents. Appropriate policy responses to
2897    ///  this decision are [`PolicyDecisionExt::use_()`][crate::prelude::PolicyDecisionExt::use_()], [`PolicyDecisionExt::ignore()`][crate::prelude::PolicyDecisionExt::ignore()],
2898    ///  or [`PolicyDecisionExt::download()`][crate::prelude::PolicyDecisionExt::download()]. This type of policy decision is always
2899    ///  a [`ResponsePolicyDecision`][crate::ResponsePolicyDecision]. This decision is useful for forcing
2900    ///  some types of resources to be downloaded rather than rendered in the WebView
2901    ///  or to block the transfer of resources entirely.
2902    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_RESPONSE")]
2903    Response,
2904    #[doc(hidden)]
2905    __Unknown(i32),
2906}
2907
2908#[doc(hidden)]
2909impl IntoGlib for PolicyDecisionType {
2910    type GlibType = ffi::WebKitPolicyDecisionType;
2911
2912    #[inline]
2913    fn into_glib(self) -> ffi::WebKitPolicyDecisionType {
2914        match self {
2915            Self::NavigationAction => ffi::WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION,
2916            Self::NewWindowAction => ffi::WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION,
2917            Self::Response => ffi::WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
2918            Self::__Unknown(value) => value,
2919        }
2920    }
2921}
2922
2923#[doc(hidden)]
2924impl FromGlib<ffi::WebKitPolicyDecisionType> for PolicyDecisionType {
2925    #[inline]
2926    unsafe fn from_glib(value: ffi::WebKitPolicyDecisionType) -> Self {
2927        skip_assert_initialized!();
2928
2929        match value {
2930            ffi::WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION => Self::NavigationAction,
2931            ffi::WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION => Self::NewWindowAction,
2932            ffi::WEBKIT_POLICY_DECISION_TYPE_RESPONSE => Self::Response,
2933            value => Self::__Unknown(value),
2934        }
2935    }
2936}
2937
2938impl StaticType for PolicyDecisionType {
2939    #[inline]
2940    #[doc(alias = "webkit_policy_decision_type_get_type")]
2941    fn static_type() -> glib::Type {
2942        unsafe { from_glib(ffi::webkit_policy_decision_type_get_type()) }
2943    }
2944}
2945
2946impl glib::HasParamSpec for PolicyDecisionType {
2947    type ParamSpec = glib::ParamSpecEnum;
2948    type SetValue = Self;
2949    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2950
2951    fn param_spec_builder() -> Self::BuilderFn {
2952        Self::ParamSpec::builder_with_default
2953    }
2954}
2955
2956impl glib::value::ValueType for PolicyDecisionType {
2957    type Type = Self;
2958}
2959
2960unsafe impl<'a> glib::value::FromValue<'a> for PolicyDecisionType {
2961    type Checker = glib::value::GenericValueTypeChecker<Self>;
2962
2963    #[inline]
2964    unsafe fn from_value(value: &'a glib::Value) -> Self {
2965        skip_assert_initialized!();
2966        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2967    }
2968}
2969
2970impl ToValue for PolicyDecisionType {
2971    #[inline]
2972    fn to_value(&self) -> glib::Value {
2973        let mut value = glib::Value::for_value_type::<Self>();
2974        unsafe {
2975            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2976        }
2977        value
2978    }
2979
2980    #[inline]
2981    fn value_type(&self) -> glib::Type {
2982        Self::static_type()
2983    }
2984}
2985
2986impl From<PolicyDecisionType> for glib::Value {
2987    #[inline]
2988    fn from(v: PolicyDecisionType) -> Self {
2989        skip_assert_initialized!();
2990        ToValue::to_value(&v)
2991    }
2992}
2993
2994/// Enum values used to denote the various policy errors.
2995#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2996#[non_exhaustive]
2997#[doc(alias = "WebKitPolicyError")]
2998pub enum PolicyError {
2999    /// Generic load failure due to policy error
3000    #[doc(alias = "WEBKIT_POLICY_ERROR_FAILED")]
3001    Failed,
3002    /// Load failure due to unsupported mime type
3003    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE")]
3004    CannotShowMimeType,
3005    /// Load failure due to URI that can not be shown
3006    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI")]
3007    CannotShowUri,
3008    /// Load failure due to frame load interruption by policy change
3009    #[doc(alias = "WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE")]
3010    FrameLoadInterruptedByPolicyChange,
3011    /// Load failure due to port restriction
3012    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT")]
3013    CannotUseRestrictedPort,
3014    #[doc(hidden)]
3015    __Unknown(i32),
3016}
3017
3018impl PolicyError {
3019    #[doc(alias = "webkit_policy_error_quark")]
3020    pub fn quark() -> glib::Quark {
3021        assert_initialized_main_thread!();
3022        unsafe { from_glib(ffi::webkit_policy_error_quark()) }
3023    }
3024}
3025
3026#[doc(hidden)]
3027impl IntoGlib for PolicyError {
3028    type GlibType = ffi::WebKitPolicyError;
3029
3030    #[inline]
3031    fn into_glib(self) -> ffi::WebKitPolicyError {
3032        match self {
3033            Self::Failed => ffi::WEBKIT_POLICY_ERROR_FAILED,
3034            Self::CannotShowMimeType => ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE,
3035            Self::CannotShowUri => ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI,
3036            Self::FrameLoadInterruptedByPolicyChange => {
3037                ffi::WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE
3038            }
3039            Self::CannotUseRestrictedPort => ffi::WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT,
3040            Self::__Unknown(value) => value,
3041        }
3042    }
3043}
3044
3045#[doc(hidden)]
3046impl FromGlib<ffi::WebKitPolicyError> for PolicyError {
3047    #[inline]
3048    unsafe fn from_glib(value: ffi::WebKitPolicyError) -> Self {
3049        skip_assert_initialized!();
3050
3051        match value {
3052            ffi::WEBKIT_POLICY_ERROR_FAILED => Self::Failed,
3053            ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE => Self::CannotShowMimeType,
3054            ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI => Self::CannotShowUri,
3055            ffi::WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE => {
3056                Self::FrameLoadInterruptedByPolicyChange
3057            }
3058            ffi::WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT => Self::CannotUseRestrictedPort,
3059            value => Self::__Unknown(value),
3060        }
3061    }
3062}
3063
3064impl glib::error::ErrorDomain for PolicyError {
3065    #[inline]
3066    fn domain() -> glib::Quark {
3067        skip_assert_initialized!();
3068
3069        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3070        let quark = *QUARK.get_or_init(|| unsafe {
3071            glib::ffi::g_quark_from_static_string(c"WebKitPolicyError".as_ptr())
3072        });
3073        unsafe { from_glib(quark) }
3074    }
3075
3076    #[inline]
3077    fn code(self) -> i32 {
3078        self.into_glib()
3079    }
3080
3081    #[inline]
3082    #[allow(clippy::match_single_binding)]
3083    fn from(code: i32) -> Option<Self> {
3084        skip_assert_initialized!();
3085        match unsafe { from_glib(code) } {
3086            Self::__Unknown(_) => Some(Self::Failed),
3087            value => Some(value),
3088        }
3089    }
3090}
3091
3092impl StaticType for PolicyError {
3093    #[inline]
3094    #[doc(alias = "webkit_policy_error_get_type")]
3095    fn static_type() -> glib::Type {
3096        unsafe { from_glib(ffi::webkit_policy_error_get_type()) }
3097    }
3098}
3099
3100impl glib::HasParamSpec for PolicyError {
3101    type ParamSpec = glib::ParamSpecEnum;
3102    type SetValue = Self;
3103    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3104
3105    fn param_spec_builder() -> Self::BuilderFn {
3106        Self::ParamSpec::builder_with_default
3107    }
3108}
3109
3110impl glib::value::ValueType for PolicyError {
3111    type Type = Self;
3112}
3113
3114unsafe impl<'a> glib::value::FromValue<'a> for PolicyError {
3115    type Checker = glib::value::GenericValueTypeChecker<Self>;
3116
3117    #[inline]
3118    unsafe fn from_value(value: &'a glib::Value) -> Self {
3119        skip_assert_initialized!();
3120        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3121    }
3122}
3123
3124impl ToValue for PolicyError {
3125    #[inline]
3126    fn to_value(&self) -> glib::Value {
3127        let mut value = glib::Value::for_value_type::<Self>();
3128        unsafe {
3129            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3130        }
3131        value
3132    }
3133
3134    #[inline]
3135    fn value_type(&self) -> glib::Type {
3136        Self::static_type()
3137    }
3138}
3139
3140impl From<PolicyError> for glib::Value {
3141    #[inline]
3142    fn from(v: PolicyError) -> Self {
3143        skip_assert_initialized!();
3144        ToValue::to_value(&v)
3145    }
3146}
3147
3148/// Enum values used to denote the various print errors.
3149#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3150#[non_exhaustive]
3151#[doc(alias = "WebKitPrintError")]
3152pub enum PrintError {
3153    /// Unspecified error during a print operation
3154    #[doc(alias = "WEBKIT_PRINT_ERROR_GENERAL")]
3155    General,
3156    /// Selected printer cannot be found
3157    #[doc(alias = "WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND")]
3158    PrinterNotFound,
3159    /// Invalid page range
3160    #[doc(alias = "WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE")]
3161    InvalidPageRange,
3162    #[doc(hidden)]
3163    __Unknown(i32),
3164}
3165
3166impl PrintError {
3167    #[doc(alias = "webkit_print_error_quark")]
3168    pub fn quark() -> glib::Quark {
3169        assert_initialized_main_thread!();
3170        unsafe { from_glib(ffi::webkit_print_error_quark()) }
3171    }
3172}
3173
3174#[doc(hidden)]
3175impl IntoGlib for PrintError {
3176    type GlibType = ffi::WebKitPrintError;
3177
3178    #[inline]
3179    fn into_glib(self) -> ffi::WebKitPrintError {
3180        match self {
3181            Self::General => ffi::WEBKIT_PRINT_ERROR_GENERAL,
3182            Self::PrinterNotFound => ffi::WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND,
3183            Self::InvalidPageRange => ffi::WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE,
3184            Self::__Unknown(value) => value,
3185        }
3186    }
3187}
3188
3189#[doc(hidden)]
3190impl FromGlib<ffi::WebKitPrintError> for PrintError {
3191    #[inline]
3192    unsafe fn from_glib(value: ffi::WebKitPrintError) -> Self {
3193        skip_assert_initialized!();
3194
3195        match value {
3196            ffi::WEBKIT_PRINT_ERROR_GENERAL => Self::General,
3197            ffi::WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND => Self::PrinterNotFound,
3198            ffi::WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE => Self::InvalidPageRange,
3199            value => Self::__Unknown(value),
3200        }
3201    }
3202}
3203
3204impl glib::error::ErrorDomain for PrintError {
3205    #[inline]
3206    fn domain() -> glib::Quark {
3207        skip_assert_initialized!();
3208
3209        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3210        let quark = *QUARK.get_or_init(|| unsafe {
3211            glib::ffi::g_quark_from_static_string(c"WebKitPrintError".as_ptr())
3212        });
3213        unsafe { from_glib(quark) }
3214    }
3215
3216    #[inline]
3217    fn code(self) -> i32 {
3218        self.into_glib()
3219    }
3220
3221    #[inline]
3222    #[allow(clippy::match_single_binding)]
3223    fn from(code: i32) -> Option<Self> {
3224        skip_assert_initialized!();
3225        match unsafe { from_glib(code) } {
3226            value => Some(value),
3227        }
3228    }
3229}
3230
3231impl StaticType for PrintError {
3232    #[inline]
3233    #[doc(alias = "webkit_print_error_get_type")]
3234    fn static_type() -> glib::Type {
3235        unsafe { from_glib(ffi::webkit_print_error_get_type()) }
3236    }
3237}
3238
3239impl glib::HasParamSpec for PrintError {
3240    type ParamSpec = glib::ParamSpecEnum;
3241    type SetValue = Self;
3242    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3243
3244    fn param_spec_builder() -> Self::BuilderFn {
3245        Self::ParamSpec::builder_with_default
3246    }
3247}
3248
3249impl glib::value::ValueType for PrintError {
3250    type Type = Self;
3251}
3252
3253unsafe impl<'a> glib::value::FromValue<'a> for PrintError {
3254    type Checker = glib::value::GenericValueTypeChecker<Self>;
3255
3256    #[inline]
3257    unsafe fn from_value(value: &'a glib::Value) -> Self {
3258        skip_assert_initialized!();
3259        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3260    }
3261}
3262
3263impl ToValue for PrintError {
3264    #[inline]
3265    fn to_value(&self) -> glib::Value {
3266        let mut value = glib::Value::for_value_type::<Self>();
3267        unsafe {
3268            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3269        }
3270        value
3271    }
3272
3273    #[inline]
3274    fn value_type(&self) -> glib::Type {
3275        Self::static_type()
3276    }
3277}
3278
3279impl From<PrintError> for glib::Value {
3280    #[inline]
3281    fn from(v: PrintError) -> Self {
3282        skip_assert_initialized!();
3283        ToValue::to_value(&v)
3284    }
3285}
3286
3287/// Enum values representing the response of the print dialog shown with
3288/// [`PrintOperation::run_dialog()`][crate::PrintOperation::run_dialog()].
3289#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3290#[non_exhaustive]
3291#[doc(alias = "WebKitPrintOperationResponse")]
3292pub enum PrintOperationResponse {
3293    /// Print button was clicked in print dialog
3294    #[doc(alias = "WEBKIT_PRINT_OPERATION_RESPONSE_PRINT")]
3295    Print,
3296    /// Print dialog was cancelled
3297    #[doc(alias = "WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL")]
3298    Cancel,
3299    #[doc(hidden)]
3300    __Unknown(i32),
3301}
3302
3303#[doc(hidden)]
3304impl IntoGlib for PrintOperationResponse {
3305    type GlibType = ffi::WebKitPrintOperationResponse;
3306
3307    #[inline]
3308    fn into_glib(self) -> ffi::WebKitPrintOperationResponse {
3309        match self {
3310            Self::Print => ffi::WEBKIT_PRINT_OPERATION_RESPONSE_PRINT,
3311            Self::Cancel => ffi::WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL,
3312            Self::__Unknown(value) => value,
3313        }
3314    }
3315}
3316
3317#[doc(hidden)]
3318impl FromGlib<ffi::WebKitPrintOperationResponse> for PrintOperationResponse {
3319    #[inline]
3320    unsafe fn from_glib(value: ffi::WebKitPrintOperationResponse) -> Self {
3321        skip_assert_initialized!();
3322
3323        match value {
3324            ffi::WEBKIT_PRINT_OPERATION_RESPONSE_PRINT => Self::Print,
3325            ffi::WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL => Self::Cancel,
3326            value => Self::__Unknown(value),
3327        }
3328    }
3329}
3330
3331impl StaticType for PrintOperationResponse {
3332    #[inline]
3333    #[doc(alias = "webkit_print_operation_response_get_type")]
3334    fn static_type() -> glib::Type {
3335        unsafe { from_glib(ffi::webkit_print_operation_response_get_type()) }
3336    }
3337}
3338
3339impl glib::HasParamSpec for PrintOperationResponse {
3340    type ParamSpec = glib::ParamSpecEnum;
3341    type SetValue = Self;
3342    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3343
3344    fn param_spec_builder() -> Self::BuilderFn {
3345        Self::ParamSpec::builder_with_default
3346    }
3347}
3348
3349impl glib::value::ValueType for PrintOperationResponse {
3350    type Type = Self;
3351}
3352
3353unsafe impl<'a> glib::value::FromValue<'a> for PrintOperationResponse {
3354    type Checker = glib::value::GenericValueTypeChecker<Self>;
3355
3356    #[inline]
3357    unsafe fn from_value(value: &'a glib::Value) -> Self {
3358        skip_assert_initialized!();
3359        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3360    }
3361}
3362
3363impl ToValue for PrintOperationResponse {
3364    #[inline]
3365    fn to_value(&self) -> glib::Value {
3366        let mut value = glib::Value::for_value_type::<Self>();
3367        unsafe {
3368            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3369        }
3370        value
3371    }
3372
3373    #[inline]
3374    fn value_type(&self) -> glib::Type {
3375        Self::static_type()
3376    }
3377}
3378
3379impl From<PrintOperationResponse> for glib::Value {
3380    #[inline]
3381    fn from(v: PrintOperationResponse) -> Self {
3382        skip_assert_initialized!();
3383        ToValue::to_value(&v)
3384    }
3385}
3386
3387/// Enum values to specify the different ways in which a [`WebView`][crate::WebView]
3388/// can save its current web page into a self-contained file.
3389#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3390#[non_exhaustive]
3391#[doc(alias = "WebKitSaveMode")]
3392pub enum SaveMode {
3393    /// Save the current page using the MHTML format.
3394    #[doc(alias = "WEBKIT_SAVE_MODE_MHTML")]
3395    Mhtml,
3396    #[doc(hidden)]
3397    __Unknown(i32),
3398}
3399
3400#[doc(hidden)]
3401impl IntoGlib for SaveMode {
3402    type GlibType = ffi::WebKitSaveMode;
3403
3404    #[inline]
3405    fn into_glib(self) -> ffi::WebKitSaveMode {
3406        match self {
3407            Self::Mhtml => ffi::WEBKIT_SAVE_MODE_MHTML,
3408            Self::__Unknown(value) => value,
3409        }
3410    }
3411}
3412
3413#[doc(hidden)]
3414impl FromGlib<ffi::WebKitSaveMode> for SaveMode {
3415    #[inline]
3416    unsafe fn from_glib(value: ffi::WebKitSaveMode) -> Self {
3417        skip_assert_initialized!();
3418
3419        match value {
3420            ffi::WEBKIT_SAVE_MODE_MHTML => Self::Mhtml,
3421            value => Self::__Unknown(value),
3422        }
3423    }
3424}
3425
3426impl StaticType for SaveMode {
3427    #[inline]
3428    #[doc(alias = "webkit_save_mode_get_type")]
3429    fn static_type() -> glib::Type {
3430        unsafe { from_glib(ffi::webkit_save_mode_get_type()) }
3431    }
3432}
3433
3434impl glib::HasParamSpec for SaveMode {
3435    type ParamSpec = glib::ParamSpecEnum;
3436    type SetValue = Self;
3437    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3438
3439    fn param_spec_builder() -> Self::BuilderFn {
3440        Self::ParamSpec::builder_with_default
3441    }
3442}
3443
3444impl glib::value::ValueType for SaveMode {
3445    type Type = Self;
3446}
3447
3448unsafe impl<'a> glib::value::FromValue<'a> for SaveMode {
3449    type Checker = glib::value::GenericValueTypeChecker<Self>;
3450
3451    #[inline]
3452    unsafe fn from_value(value: &'a glib::Value) -> Self {
3453        skip_assert_initialized!();
3454        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3455    }
3456}
3457
3458impl ToValue for SaveMode {
3459    #[inline]
3460    fn to_value(&self) -> glib::Value {
3461        let mut value = glib::Value::for_value_type::<Self>();
3462        unsafe {
3463            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3464        }
3465        value
3466    }
3467
3468    #[inline]
3469    fn value_type(&self) -> glib::Type {
3470        Self::static_type()
3471    }
3472}
3473
3474impl From<SaveMode> for glib::Value {
3475    #[inline]
3476    fn from(v: SaveMode) -> Self {
3477        skip_assert_initialized!();
3478        ToValue::to_value(&v)
3479    }
3480}
3481
3482/// Enum values used for determining the type of [`ScriptDialog`][crate::ScriptDialog]
3483#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3484#[non_exhaustive]
3485#[doc(alias = "WebKitScriptDialogType")]
3486pub enum ScriptDialogType {
3487    /// Alert script dialog, used to show a
3488    /// message to the user.
3489    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_ALERT")]
3490    Alert,
3491    /// Confirm script dialog, used to ask
3492    /// confirmation to the user.
3493    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_CONFIRM")]
3494    Confirm,
3495    /// Prompt script dialog, used to ask
3496    /// information to the user.
3497    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_PROMPT")]
3498    Prompt,
3499    /// Before unload confirm dialog,
3500    /// used to ask confirmation to leave the current page to the user. Since 2.12
3501    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM")]
3502    BeforeUnloadConfirm,
3503    #[doc(hidden)]
3504    __Unknown(i32),
3505}
3506
3507#[doc(hidden)]
3508impl IntoGlib for ScriptDialogType {
3509    type GlibType = ffi::WebKitScriptDialogType;
3510
3511    #[inline]
3512    fn into_glib(self) -> ffi::WebKitScriptDialogType {
3513        match self {
3514            Self::Alert => ffi::WEBKIT_SCRIPT_DIALOG_ALERT,
3515            Self::Confirm => ffi::WEBKIT_SCRIPT_DIALOG_CONFIRM,
3516            Self::Prompt => ffi::WEBKIT_SCRIPT_DIALOG_PROMPT,
3517            Self::BeforeUnloadConfirm => ffi::WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM,
3518            Self::__Unknown(value) => value,
3519        }
3520    }
3521}
3522
3523#[doc(hidden)]
3524impl FromGlib<ffi::WebKitScriptDialogType> for ScriptDialogType {
3525    #[inline]
3526    unsafe fn from_glib(value: ffi::WebKitScriptDialogType) -> Self {
3527        skip_assert_initialized!();
3528
3529        match value {
3530            ffi::WEBKIT_SCRIPT_DIALOG_ALERT => Self::Alert,
3531            ffi::WEBKIT_SCRIPT_DIALOG_CONFIRM => Self::Confirm,
3532            ffi::WEBKIT_SCRIPT_DIALOG_PROMPT => Self::Prompt,
3533            ffi::WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM => Self::BeforeUnloadConfirm,
3534            value => Self::__Unknown(value),
3535        }
3536    }
3537}
3538
3539impl StaticType for ScriptDialogType {
3540    #[inline]
3541    #[doc(alias = "webkit_script_dialog_type_get_type")]
3542    fn static_type() -> glib::Type {
3543        unsafe { from_glib(ffi::webkit_script_dialog_type_get_type()) }
3544    }
3545}
3546
3547impl glib::HasParamSpec for ScriptDialogType {
3548    type ParamSpec = glib::ParamSpecEnum;
3549    type SetValue = Self;
3550    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3551
3552    fn param_spec_builder() -> Self::BuilderFn {
3553        Self::ParamSpec::builder_with_default
3554    }
3555}
3556
3557impl glib::value::ValueType for ScriptDialogType {
3558    type Type = Self;
3559}
3560
3561unsafe impl<'a> glib::value::FromValue<'a> for ScriptDialogType {
3562    type Checker = glib::value::GenericValueTypeChecker<Self>;
3563
3564    #[inline]
3565    unsafe fn from_value(value: &'a glib::Value) -> Self {
3566        skip_assert_initialized!();
3567        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3568    }
3569}
3570
3571impl ToValue for ScriptDialogType {
3572    #[inline]
3573    fn to_value(&self) -> glib::Value {
3574        let mut value = glib::Value::for_value_type::<Self>();
3575        unsafe {
3576            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3577        }
3578        value
3579    }
3580
3581    #[inline]
3582    fn value_type(&self) -> glib::Type {
3583        Self::static_type()
3584    }
3585}
3586
3587impl From<ScriptDialogType> for glib::Value {
3588    #[inline]
3589    fn from(v: ScriptDialogType) -> Self {
3590        skip_assert_initialized!();
3591        ToValue::to_value(&v)
3592    }
3593}
3594
3595/// Enum values used to denote errors happening when creating snapshots of [`WebView`][crate::WebView]
3596#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3597#[non_exhaustive]
3598#[doc(alias = "WebKitSnapshotError")]
3599pub enum SnapshotError {
3600    /// An error occurred when creating a webpage snapshot.
3601    #[doc(alias = "WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE")]
3602    Create,
3603    #[doc(hidden)]
3604    __Unknown(i32),
3605}
3606
3607impl SnapshotError {
3608    #[doc(alias = "webkit_snapshot_error_quark")]
3609    pub fn quark() -> glib::Quark {
3610        assert_initialized_main_thread!();
3611        unsafe { from_glib(ffi::webkit_snapshot_error_quark()) }
3612    }
3613}
3614
3615#[doc(hidden)]
3616impl IntoGlib for SnapshotError {
3617    type GlibType = ffi::WebKitSnapshotError;
3618
3619    #[inline]
3620    fn into_glib(self) -> ffi::WebKitSnapshotError {
3621        match self {
3622            Self::Create => ffi::WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE,
3623            Self::__Unknown(value) => value,
3624        }
3625    }
3626}
3627
3628#[doc(hidden)]
3629impl FromGlib<ffi::WebKitSnapshotError> for SnapshotError {
3630    #[inline]
3631    unsafe fn from_glib(value: ffi::WebKitSnapshotError) -> Self {
3632        skip_assert_initialized!();
3633
3634        match value {
3635            ffi::WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE => Self::Create,
3636            value => Self::__Unknown(value),
3637        }
3638    }
3639}
3640
3641impl glib::error::ErrorDomain for SnapshotError {
3642    #[inline]
3643    fn domain() -> glib::Quark {
3644        skip_assert_initialized!();
3645
3646        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3647        let quark = *QUARK.get_or_init(|| unsafe {
3648            glib::ffi::g_quark_from_static_string(c"WebKitSnapshotError".as_ptr())
3649        });
3650        unsafe { from_glib(quark) }
3651    }
3652
3653    #[inline]
3654    fn code(self) -> i32 {
3655        self.into_glib()
3656    }
3657
3658    #[inline]
3659    #[allow(clippy::match_single_binding)]
3660    fn from(code: i32) -> Option<Self> {
3661        skip_assert_initialized!();
3662        match unsafe { from_glib(code) } {
3663            value => Some(value),
3664        }
3665    }
3666}
3667
3668impl StaticType for SnapshotError {
3669    #[inline]
3670    #[doc(alias = "webkit_snapshot_error_get_type")]
3671    fn static_type() -> glib::Type {
3672        unsafe { from_glib(ffi::webkit_snapshot_error_get_type()) }
3673    }
3674}
3675
3676impl glib::HasParamSpec for SnapshotError {
3677    type ParamSpec = glib::ParamSpecEnum;
3678    type SetValue = Self;
3679    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3680
3681    fn param_spec_builder() -> Self::BuilderFn {
3682        Self::ParamSpec::builder_with_default
3683    }
3684}
3685
3686impl glib::value::ValueType for SnapshotError {
3687    type Type = Self;
3688}
3689
3690unsafe impl<'a> glib::value::FromValue<'a> for SnapshotError {
3691    type Checker = glib::value::GenericValueTypeChecker<Self>;
3692
3693    #[inline]
3694    unsafe fn from_value(value: &'a glib::Value) -> Self {
3695        skip_assert_initialized!();
3696        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3697    }
3698}
3699
3700impl ToValue for SnapshotError {
3701    #[inline]
3702    fn to_value(&self) -> glib::Value {
3703        let mut value = glib::Value::for_value_type::<Self>();
3704        unsafe {
3705            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3706        }
3707        value
3708    }
3709
3710    #[inline]
3711    fn value_type(&self) -> glib::Type {
3712        Self::static_type()
3713    }
3714}
3715
3716impl From<SnapshotError> for glib::Value {
3717    #[inline]
3718    fn from(v: SnapshotError) -> Self {
3719        skip_assert_initialized!();
3720        ToValue::to_value(&v)
3721    }
3722}
3723
3724/// Enum values used to specify the region from which to get a [`WebView`][crate::WebView]
3725/// snapshot
3726#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3727#[non_exhaustive]
3728#[doc(alias = "WebKitSnapshotRegion")]
3729pub enum SnapshotRegion {
3730    /// Specifies a snapshot only for the area that is
3731    /// visible in the webview
3732    #[doc(alias = "WEBKIT_SNAPSHOT_REGION_VISIBLE")]
3733    Visible,
3734    /// A snapshot of the entire document.
3735    #[doc(alias = "WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT")]
3736    FullDocument,
3737    #[doc(hidden)]
3738    __Unknown(i32),
3739}
3740
3741#[doc(hidden)]
3742impl IntoGlib for SnapshotRegion {
3743    type GlibType = ffi::WebKitSnapshotRegion;
3744
3745    #[inline]
3746    fn into_glib(self) -> ffi::WebKitSnapshotRegion {
3747        match self {
3748            Self::Visible => ffi::WEBKIT_SNAPSHOT_REGION_VISIBLE,
3749            Self::FullDocument => ffi::WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT,
3750            Self::__Unknown(value) => value,
3751        }
3752    }
3753}
3754
3755#[doc(hidden)]
3756impl FromGlib<ffi::WebKitSnapshotRegion> for SnapshotRegion {
3757    #[inline]
3758    unsafe fn from_glib(value: ffi::WebKitSnapshotRegion) -> Self {
3759        skip_assert_initialized!();
3760
3761        match value {
3762            ffi::WEBKIT_SNAPSHOT_REGION_VISIBLE => Self::Visible,
3763            ffi::WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT => Self::FullDocument,
3764            value => Self::__Unknown(value),
3765        }
3766    }
3767}
3768
3769impl StaticType for SnapshotRegion {
3770    #[inline]
3771    #[doc(alias = "webkit_snapshot_region_get_type")]
3772    fn static_type() -> glib::Type {
3773        unsafe { from_glib(ffi::webkit_snapshot_region_get_type()) }
3774    }
3775}
3776
3777impl glib::HasParamSpec for SnapshotRegion {
3778    type ParamSpec = glib::ParamSpecEnum;
3779    type SetValue = Self;
3780    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3781
3782    fn param_spec_builder() -> Self::BuilderFn {
3783        Self::ParamSpec::builder_with_default
3784    }
3785}
3786
3787impl glib::value::ValueType for SnapshotRegion {
3788    type Type = Self;
3789}
3790
3791unsafe impl<'a> glib::value::FromValue<'a> for SnapshotRegion {
3792    type Checker = glib::value::GenericValueTypeChecker<Self>;
3793
3794    #[inline]
3795    unsafe fn from_value(value: &'a glib::Value) -> Self {
3796        skip_assert_initialized!();
3797        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3798    }
3799}
3800
3801impl ToValue for SnapshotRegion {
3802    #[inline]
3803    fn to_value(&self) -> glib::Value {
3804        let mut value = glib::Value::for_value_type::<Self>();
3805        unsafe {
3806            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3807        }
3808        value
3809    }
3810
3811    #[inline]
3812    fn value_type(&self) -> glib::Type {
3813        Self::static_type()
3814    }
3815}
3816
3817impl From<SnapshotRegion> for glib::Value {
3818    #[inline]
3819    fn from(v: SnapshotRegion) -> Self {
3820        skip_assert_initialized!();
3821        ToValue::to_value(&v)
3822    }
3823}
3824
3825/// Enum values used to denote the TLS errors policy.
3826#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3827#[non_exhaustive]
3828#[doc(alias = "WebKitTLSErrorsPolicy")]
3829pub enum TLSErrorsPolicy {
3830    /// Ignore TLS errors.
3831    #[doc(alias = "WEBKIT_TLS_ERRORS_POLICY_IGNORE")]
3832    Ignore,
3833    /// TLS errors will emit
3834    ///  [`load-failed-with-tls-errors`][struct@crate::WebView#load-failed-with-tls-errors] and, if the signal is handled,
3835    ///  finish the load. In case the signal is not handled,
3836    ///  [`load-failed`][struct@crate::WebView#load-failed] is emitted before the load finishes.
3837    #[doc(alias = "WEBKIT_TLS_ERRORS_POLICY_FAIL")]
3838    Fail,
3839    #[doc(hidden)]
3840    __Unknown(i32),
3841}
3842
3843#[doc(hidden)]
3844impl IntoGlib for TLSErrorsPolicy {
3845    type GlibType = ffi::WebKitTLSErrorsPolicy;
3846
3847    #[inline]
3848    fn into_glib(self) -> ffi::WebKitTLSErrorsPolicy {
3849        match self {
3850            Self::Ignore => ffi::WEBKIT_TLS_ERRORS_POLICY_IGNORE,
3851            Self::Fail => ffi::WEBKIT_TLS_ERRORS_POLICY_FAIL,
3852            Self::__Unknown(value) => value,
3853        }
3854    }
3855}
3856
3857#[doc(hidden)]
3858impl FromGlib<ffi::WebKitTLSErrorsPolicy> for TLSErrorsPolicy {
3859    #[inline]
3860    unsafe fn from_glib(value: ffi::WebKitTLSErrorsPolicy) -> Self {
3861        skip_assert_initialized!();
3862
3863        match value {
3864            ffi::WEBKIT_TLS_ERRORS_POLICY_IGNORE => Self::Ignore,
3865            ffi::WEBKIT_TLS_ERRORS_POLICY_FAIL => Self::Fail,
3866            value => Self::__Unknown(value),
3867        }
3868    }
3869}
3870
3871impl StaticType for TLSErrorsPolicy {
3872    #[inline]
3873    #[doc(alias = "webkit_tls_errors_policy_get_type")]
3874    fn static_type() -> glib::Type {
3875        unsafe { from_glib(ffi::webkit_tls_errors_policy_get_type()) }
3876    }
3877}
3878
3879impl glib::HasParamSpec for TLSErrorsPolicy {
3880    type ParamSpec = glib::ParamSpecEnum;
3881    type SetValue = Self;
3882    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3883
3884    fn param_spec_builder() -> Self::BuilderFn {
3885        Self::ParamSpec::builder_with_default
3886    }
3887}
3888
3889impl glib::value::ValueType for TLSErrorsPolicy {
3890    type Type = Self;
3891}
3892
3893unsafe impl<'a> glib::value::FromValue<'a> for TLSErrorsPolicy {
3894    type Checker = glib::value::GenericValueTypeChecker<Self>;
3895
3896    #[inline]
3897    unsafe fn from_value(value: &'a glib::Value) -> Self {
3898        skip_assert_initialized!();
3899        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
3900    }
3901}
3902
3903impl ToValue for TLSErrorsPolicy {
3904    #[inline]
3905    fn to_value(&self) -> glib::Value {
3906        let mut value = glib::Value::for_value_type::<Self>();
3907        unsafe {
3908            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3909        }
3910        value
3911    }
3912
3913    #[inline]
3914    fn value_type(&self) -> glib::Type {
3915        Self::static_type()
3916    }
3917}
3918
3919impl From<TLSErrorsPolicy> for glib::Value {
3920    #[inline]
3921    fn from(v: TLSErrorsPolicy) -> Self {
3922        skip_assert_initialized!();
3923        ToValue::to_value(&v)
3924    }
3925}
3926
3927/// Errors that can occur while compiling content filters.
3928#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3929#[non_exhaustive]
3930#[doc(alias = "WebKitUserContentFilterError")]
3931pub enum UserContentFilterError {
3932    /// The JSON source for a content filter is invalid.
3933    #[doc(alias = "WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE")]
3934    InvalidSource,
3935    /// The requested content filter could not be found.
3936    #[doc(alias = "WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND")]
3937    NotFound,
3938    #[doc(hidden)]
3939    __Unknown(i32),
3940}
3941
3942impl UserContentFilterError {
3943    #[doc(alias = "webkit_user_content_filter_error_quark")]
3944    pub fn quark() -> glib::Quark {
3945        assert_initialized_main_thread!();
3946        unsafe { from_glib(ffi::webkit_user_content_filter_error_quark()) }
3947    }
3948}
3949
3950#[doc(hidden)]
3951impl IntoGlib for UserContentFilterError {
3952    type GlibType = ffi::WebKitUserContentFilterError;
3953
3954    #[inline]
3955    fn into_glib(self) -> ffi::WebKitUserContentFilterError {
3956        match self {
3957            Self::InvalidSource => ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE,
3958            Self::NotFound => ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND,
3959            Self::__Unknown(value) => value,
3960        }
3961    }
3962}
3963
3964#[doc(hidden)]
3965impl FromGlib<ffi::WebKitUserContentFilterError> for UserContentFilterError {
3966    #[inline]
3967    unsafe fn from_glib(value: ffi::WebKitUserContentFilterError) -> Self {
3968        skip_assert_initialized!();
3969
3970        match value {
3971            ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE => Self::InvalidSource,
3972            ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND => Self::NotFound,
3973            value => Self::__Unknown(value),
3974        }
3975    }
3976}
3977
3978impl glib::error::ErrorDomain for UserContentFilterError {
3979    #[inline]
3980    fn domain() -> glib::Quark {
3981        skip_assert_initialized!();
3982
3983        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3984        let quark = *QUARK.get_or_init(|| unsafe {
3985            glib::ffi::g_quark_from_static_string(c"WebKitUserContentFilterError".as_ptr())
3986        });
3987        unsafe { from_glib(quark) }
3988    }
3989
3990    #[inline]
3991    fn code(self) -> i32 {
3992        self.into_glib()
3993    }
3994
3995    #[inline]
3996    #[allow(clippy::match_single_binding)]
3997    fn from(code: i32) -> Option<Self> {
3998        skip_assert_initialized!();
3999        match unsafe { from_glib(code) } {
4000            value => Some(value),
4001        }
4002    }
4003}
4004
4005impl StaticType for UserContentFilterError {
4006    #[inline]
4007    #[doc(alias = "webkit_user_content_filter_error_get_type")]
4008    fn static_type() -> glib::Type {
4009        unsafe { from_glib(ffi::webkit_user_content_filter_error_get_type()) }
4010    }
4011}
4012
4013impl glib::HasParamSpec for UserContentFilterError {
4014    type ParamSpec = glib::ParamSpecEnum;
4015    type SetValue = Self;
4016    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4017
4018    fn param_spec_builder() -> Self::BuilderFn {
4019        Self::ParamSpec::builder_with_default
4020    }
4021}
4022
4023impl glib::value::ValueType for UserContentFilterError {
4024    type Type = Self;
4025}
4026
4027unsafe impl<'a> glib::value::FromValue<'a> for UserContentFilterError {
4028    type Checker = glib::value::GenericValueTypeChecker<Self>;
4029
4030    #[inline]
4031    unsafe fn from_value(value: &'a glib::Value) -> Self {
4032        skip_assert_initialized!();
4033        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4034    }
4035}
4036
4037impl ToValue for UserContentFilterError {
4038    #[inline]
4039    fn to_value(&self) -> glib::Value {
4040        let mut value = glib::Value::for_value_type::<Self>();
4041        unsafe {
4042            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4043        }
4044        value
4045    }
4046
4047    #[inline]
4048    fn value_type(&self) -> glib::Type {
4049        Self::static_type()
4050    }
4051}
4052
4053impl From<UserContentFilterError> for glib::Value {
4054    #[inline]
4055    fn from(v: UserContentFilterError) -> Self {
4056        skip_assert_initialized!();
4057        ToValue::to_value(&v)
4058    }
4059}
4060
4061/// Specifies in which frames user style sheets are to be inserted in.
4062#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4063#[non_exhaustive]
4064#[doc(alias = "WebKitUserContentInjectedFrames")]
4065pub enum UserContentInjectedFrames {
4066    /// Insert the user style
4067    ///  sheet in all the frames loaded by the web view, including
4068    ///  nested frames. This is the default.
4069    #[doc(alias = "WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES")]
4070    AllFrames,
4071    /// Insert the user style
4072    ///  sheet *only* in the top-level frame loaded by the web view,
4073    ///  and *not* in the nested frames.
4074    #[doc(alias = "WEBKIT_USER_CONTENT_INJECT_TOP_FRAME")]
4075    TopFrame,
4076    #[doc(hidden)]
4077    __Unknown(i32),
4078}
4079
4080#[doc(hidden)]
4081impl IntoGlib for UserContentInjectedFrames {
4082    type GlibType = ffi::WebKitUserContentInjectedFrames;
4083
4084    #[inline]
4085    fn into_glib(self) -> ffi::WebKitUserContentInjectedFrames {
4086        match self {
4087            Self::AllFrames => ffi::WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
4088            Self::TopFrame => ffi::WEBKIT_USER_CONTENT_INJECT_TOP_FRAME,
4089            Self::__Unknown(value) => value,
4090        }
4091    }
4092}
4093
4094#[doc(hidden)]
4095impl FromGlib<ffi::WebKitUserContentInjectedFrames> for UserContentInjectedFrames {
4096    #[inline]
4097    unsafe fn from_glib(value: ffi::WebKitUserContentInjectedFrames) -> Self {
4098        skip_assert_initialized!();
4099
4100        match value {
4101            ffi::WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES => Self::AllFrames,
4102            ffi::WEBKIT_USER_CONTENT_INJECT_TOP_FRAME => Self::TopFrame,
4103            value => Self::__Unknown(value),
4104        }
4105    }
4106}
4107
4108impl StaticType for UserContentInjectedFrames {
4109    #[inline]
4110    #[doc(alias = "webkit_user_content_injected_frames_get_type")]
4111    fn static_type() -> glib::Type {
4112        unsafe { from_glib(ffi::webkit_user_content_injected_frames_get_type()) }
4113    }
4114}
4115
4116impl glib::HasParamSpec for UserContentInjectedFrames {
4117    type ParamSpec = glib::ParamSpecEnum;
4118    type SetValue = Self;
4119    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4120
4121    fn param_spec_builder() -> Self::BuilderFn {
4122        Self::ParamSpec::builder_with_default
4123    }
4124}
4125
4126impl glib::value::ValueType for UserContentInjectedFrames {
4127    type Type = Self;
4128}
4129
4130unsafe impl<'a> glib::value::FromValue<'a> for UserContentInjectedFrames {
4131    type Checker = glib::value::GenericValueTypeChecker<Self>;
4132
4133    #[inline]
4134    unsafe fn from_value(value: &'a glib::Value) -> Self {
4135        skip_assert_initialized!();
4136        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4137    }
4138}
4139
4140impl ToValue for UserContentInjectedFrames {
4141    #[inline]
4142    fn to_value(&self) -> glib::Value {
4143        let mut value = glib::Value::for_value_type::<Self>();
4144        unsafe {
4145            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4146        }
4147        value
4148    }
4149
4150    #[inline]
4151    fn value_type(&self) -> glib::Type {
4152        Self::static_type()
4153    }
4154}
4155
4156impl From<UserContentInjectedFrames> for glib::Value {
4157    #[inline]
4158    fn from(v: UserContentInjectedFrames) -> Self {
4159        skip_assert_initialized!();
4160        ToValue::to_value(&v)
4161    }
4162}
4163
4164/// Enum values used to denote errors happening when sending user messages.
4165#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4166#[non_exhaustive]
4167#[doc(alias = "WebKitUserMessageError")]
4168pub enum UserMessageError {
4169    /// The message was not handled by the receiver.
4170    #[doc(alias = "WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE")]
4171    Message,
4172    #[doc(hidden)]
4173    __Unknown(i32),
4174}
4175
4176impl UserMessageError {
4177    #[doc(alias = "webkit_user_message_error_quark")]
4178    pub fn quark() -> glib::Quark {
4179        assert_initialized_main_thread!();
4180        unsafe { from_glib(ffi::webkit_user_message_error_quark()) }
4181    }
4182}
4183
4184#[doc(hidden)]
4185impl IntoGlib for UserMessageError {
4186    type GlibType = ffi::WebKitUserMessageError;
4187
4188    #[inline]
4189    fn into_glib(self) -> ffi::WebKitUserMessageError {
4190        match self {
4191            Self::Message => ffi::WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE,
4192            Self::__Unknown(value) => value,
4193        }
4194    }
4195}
4196
4197#[doc(hidden)]
4198impl FromGlib<ffi::WebKitUserMessageError> for UserMessageError {
4199    #[inline]
4200    unsafe fn from_glib(value: ffi::WebKitUserMessageError) -> Self {
4201        skip_assert_initialized!();
4202
4203        match value {
4204            ffi::WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE => Self::Message,
4205            value => Self::__Unknown(value),
4206        }
4207    }
4208}
4209
4210impl glib::error::ErrorDomain for UserMessageError {
4211    #[inline]
4212    fn domain() -> glib::Quark {
4213        skip_assert_initialized!();
4214
4215        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
4216        let quark = *QUARK.get_or_init(|| unsafe {
4217            glib::ffi::g_quark_from_static_string(c"WebKitUserMessageError".as_ptr())
4218        });
4219        unsafe { from_glib(quark) }
4220    }
4221
4222    #[inline]
4223    fn code(self) -> i32 {
4224        self.into_glib()
4225    }
4226
4227    #[inline]
4228    #[allow(clippy::match_single_binding)]
4229    fn from(code: i32) -> Option<Self> {
4230        skip_assert_initialized!();
4231        match unsafe { from_glib(code) } {
4232            value => Some(value),
4233        }
4234    }
4235}
4236
4237impl StaticType for UserMessageError {
4238    #[inline]
4239    #[doc(alias = "webkit_user_message_error_get_type")]
4240    fn static_type() -> glib::Type {
4241        unsafe { from_glib(ffi::webkit_user_message_error_get_type()) }
4242    }
4243}
4244
4245impl glib::HasParamSpec for UserMessageError {
4246    type ParamSpec = glib::ParamSpecEnum;
4247    type SetValue = Self;
4248    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4249
4250    fn param_spec_builder() -> Self::BuilderFn {
4251        Self::ParamSpec::builder_with_default
4252    }
4253}
4254
4255impl glib::value::ValueType for UserMessageError {
4256    type Type = Self;
4257}
4258
4259unsafe impl<'a> glib::value::FromValue<'a> for UserMessageError {
4260    type Checker = glib::value::GenericValueTypeChecker<Self>;
4261
4262    #[inline]
4263    unsafe fn from_value(value: &'a glib::Value) -> Self {
4264        skip_assert_initialized!();
4265        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4266    }
4267}
4268
4269impl ToValue for UserMessageError {
4270    #[inline]
4271    fn to_value(&self) -> glib::Value {
4272        let mut value = glib::Value::for_value_type::<Self>();
4273        unsafe {
4274            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4275        }
4276        value
4277    }
4278
4279    #[inline]
4280    fn value_type(&self) -> glib::Type {
4281        Self::static_type()
4282    }
4283}
4284
4285impl From<UserMessageError> for glib::Value {
4286    #[inline]
4287    fn from(v: UserMessageError) -> Self {
4288        skip_assert_initialized!();
4289        ToValue::to_value(&v)
4290    }
4291}
4292
4293/// Specifies at which place of documents an user script will be inserted.
4294#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4295#[non_exhaustive]
4296#[doc(alias = "WebKitUserScriptInjectionTime")]
4297pub enum UserScriptInjectionTime {
4298    /// Insert the code of the user
4299    ///  script at the beginning of loaded documents. This is the default.
4300    #[doc(alias = "WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START")]
4301    Start,
4302    /// Insert the code of the user
4303    ///  script at the end of the loaded documents.
4304    #[doc(alias = "WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END")]
4305    End,
4306    #[doc(hidden)]
4307    __Unknown(i32),
4308}
4309
4310#[doc(hidden)]
4311impl IntoGlib for UserScriptInjectionTime {
4312    type GlibType = ffi::WebKitUserScriptInjectionTime;
4313
4314    #[inline]
4315    fn into_glib(self) -> ffi::WebKitUserScriptInjectionTime {
4316        match self {
4317            Self::Start => ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START,
4318            Self::End => ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END,
4319            Self::__Unknown(value) => value,
4320        }
4321    }
4322}
4323
4324#[doc(hidden)]
4325impl FromGlib<ffi::WebKitUserScriptInjectionTime> for UserScriptInjectionTime {
4326    #[inline]
4327    unsafe fn from_glib(value: ffi::WebKitUserScriptInjectionTime) -> Self {
4328        skip_assert_initialized!();
4329
4330        match value {
4331            ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START => Self::Start,
4332            ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END => Self::End,
4333            value => Self::__Unknown(value),
4334        }
4335    }
4336}
4337
4338impl StaticType for UserScriptInjectionTime {
4339    #[inline]
4340    #[doc(alias = "webkit_user_script_injection_time_get_type")]
4341    fn static_type() -> glib::Type {
4342        unsafe { from_glib(ffi::webkit_user_script_injection_time_get_type()) }
4343    }
4344}
4345
4346impl glib::HasParamSpec for UserScriptInjectionTime {
4347    type ParamSpec = glib::ParamSpecEnum;
4348    type SetValue = Self;
4349    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4350
4351    fn param_spec_builder() -> Self::BuilderFn {
4352        Self::ParamSpec::builder_with_default
4353    }
4354}
4355
4356impl glib::value::ValueType for UserScriptInjectionTime {
4357    type Type = Self;
4358}
4359
4360unsafe impl<'a> glib::value::FromValue<'a> for UserScriptInjectionTime {
4361    type Checker = glib::value::GenericValueTypeChecker<Self>;
4362
4363    #[inline]
4364    unsafe fn from_value(value: &'a glib::Value) -> Self {
4365        skip_assert_initialized!();
4366        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4367    }
4368}
4369
4370impl ToValue for UserScriptInjectionTime {
4371    #[inline]
4372    fn to_value(&self) -> glib::Value {
4373        let mut value = glib::Value::for_value_type::<Self>();
4374        unsafe {
4375            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4376        }
4377        value
4378    }
4379
4380    #[inline]
4381    fn value_type(&self) -> glib::Type {
4382        Self::static_type()
4383    }
4384}
4385
4386impl From<UserScriptInjectionTime> for glib::Value {
4387    #[inline]
4388    fn from(v: UserScriptInjectionTime) -> Self {
4389        skip_assert_initialized!();
4390        ToValue::to_value(&v)
4391    }
4392}
4393
4394/// Specifies how to treat an user style sheet.
4395#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4396#[non_exhaustive]
4397#[doc(alias = "WebKitUserStyleLevel")]
4398pub enum UserStyleLevel {
4399    /// The style sheet is an user style sheet,
4400    ///  its contents always override other style sheets. This is the default.
4401    #[doc(alias = "WEBKIT_USER_STYLE_LEVEL_USER")]
4402    User,
4403    /// The style sheet will be treated as if
4404    ///  it was provided by the loaded documents. That means other user style
4405    ///  sheets may still override it.
4406    #[doc(alias = "WEBKIT_USER_STYLE_LEVEL_AUTHOR")]
4407    Author,
4408    #[doc(hidden)]
4409    __Unknown(i32),
4410}
4411
4412#[doc(hidden)]
4413impl IntoGlib for UserStyleLevel {
4414    type GlibType = ffi::WebKitUserStyleLevel;
4415
4416    #[inline]
4417    fn into_glib(self) -> ffi::WebKitUserStyleLevel {
4418        match self {
4419            Self::User => ffi::WEBKIT_USER_STYLE_LEVEL_USER,
4420            Self::Author => ffi::WEBKIT_USER_STYLE_LEVEL_AUTHOR,
4421            Self::__Unknown(value) => value,
4422        }
4423    }
4424}
4425
4426#[doc(hidden)]
4427impl FromGlib<ffi::WebKitUserStyleLevel> for UserStyleLevel {
4428    #[inline]
4429    unsafe fn from_glib(value: ffi::WebKitUserStyleLevel) -> Self {
4430        skip_assert_initialized!();
4431
4432        match value {
4433            ffi::WEBKIT_USER_STYLE_LEVEL_USER => Self::User,
4434            ffi::WEBKIT_USER_STYLE_LEVEL_AUTHOR => Self::Author,
4435            value => Self::__Unknown(value),
4436        }
4437    }
4438}
4439
4440impl StaticType for UserStyleLevel {
4441    #[inline]
4442    #[doc(alias = "webkit_user_style_level_get_type")]
4443    fn static_type() -> glib::Type {
4444        unsafe { from_glib(ffi::webkit_user_style_level_get_type()) }
4445    }
4446}
4447
4448impl glib::HasParamSpec for UserStyleLevel {
4449    type ParamSpec = glib::ParamSpecEnum;
4450    type SetValue = Self;
4451    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4452
4453    fn param_spec_builder() -> Self::BuilderFn {
4454        Self::ParamSpec::builder_with_default
4455    }
4456}
4457
4458impl glib::value::ValueType for UserStyleLevel {
4459    type Type = Self;
4460}
4461
4462unsafe impl<'a> glib::value::FromValue<'a> for UserStyleLevel {
4463    type Checker = glib::value::GenericValueTypeChecker<Self>;
4464
4465    #[inline]
4466    unsafe fn from_value(value: &'a glib::Value) -> Self {
4467        skip_assert_initialized!();
4468        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4469    }
4470}
4471
4472impl ToValue for UserStyleLevel {
4473    #[inline]
4474    fn to_value(&self) -> glib::Value {
4475        let mut value = glib::Value::for_value_type::<Self>();
4476        unsafe {
4477            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4478        }
4479        value
4480    }
4481
4482    #[inline]
4483    fn value_type(&self) -> glib::Type {
4484        Self::static_type()
4485    }
4486}
4487
4488impl From<UserStyleLevel> for glib::Value {
4489    #[inline]
4490    fn from(v: UserStyleLevel) -> Self {
4491        skip_assert_initialized!();
4492        ToValue::to_value(&v)
4493    }
4494}
4495
4496/// Enum values used to denote errors happening when parsing a [`WebExtension`][crate::WebExtension]
4497#[cfg(feature = "v2_52")]
4498#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4499#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4500#[non_exhaustive]
4501#[doc(alias = "WebKitWebExtensionError")]
4502pub enum WebExtensionError {
4503    /// An unknown error occured.
4504    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_UNKNOWN")]
4505    Unknown,
4506    /// A specified resource was not found on disk.
4507    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_RESOURCE_NOT_FOUND")]
4508    ResourceNotFound,
4509    /// A resource failed the bundle's code signature checks.
4510    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_RESOURCE_CODE_SIGNATURE")]
4511    InvalidResourceCodeSignature,
4512    /// An invalid `manifest.json` was encountered.
4513    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST")]
4514    InvalidManifest,
4515    /// The manifest version is not supported.
4516    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_UNSUPPORTED_MANIFEST_VERSION")]
4517    UnsupportedManifestVersion,
4518    /// An invalid manifest entry was encountered.
4519    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST_ENTRY")]
4520    InvalidManifestEntry,
4521    /// An invalid declarative net request entry was encountered.
4522    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_DECLARATIVE_NET_REQUEST_ENTRY")]
4523    InvalidDeclarativeNetRequestEntry,
4524    /// The extension specified background persistence that was not compatible with the platform or features requested.
4525    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_BACKGROUND_PERSISTENCE")]
4526    InvalidBackgroundPersistence,
4527    /// The archive file is invalid or corrupt.
4528    #[doc(alias = "WEBKIT_WEB_EXTENSION_ERROR_INVALID_ARCHIVE")]
4529    InvalidArchive,
4530    #[doc(hidden)]
4531    __Unknown(i32),
4532}
4533
4534#[cfg(feature = "v2_52")]
4535#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4536impl WebExtensionError {
4537    #[doc(alias = "webkit_web_extension_error_quark")]
4538    pub fn quark() -> glib::Quark {
4539        assert_initialized_main_thread!();
4540        unsafe { from_glib(ffi::webkit_web_extension_error_quark()) }
4541    }
4542}
4543
4544#[cfg(feature = "v2_52")]
4545#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4546#[doc(hidden)]
4547impl IntoGlib for WebExtensionError {
4548    type GlibType = ffi::WebKitWebExtensionError;
4549
4550    #[inline]
4551    fn into_glib(self) -> ffi::WebKitWebExtensionError {
4552        match self {
4553            Self::Unknown => ffi::WEBKIT_WEB_EXTENSION_ERROR_UNKNOWN,
4554            Self::ResourceNotFound => ffi::WEBKIT_WEB_EXTENSION_ERROR_RESOURCE_NOT_FOUND,
4555            Self::InvalidResourceCodeSignature => {
4556                ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_RESOURCE_CODE_SIGNATURE
4557            }
4558            Self::InvalidManifest => ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST,
4559            Self::UnsupportedManifestVersion => {
4560                ffi::WEBKIT_WEB_EXTENSION_ERROR_UNSUPPORTED_MANIFEST_VERSION
4561            }
4562            Self::InvalidManifestEntry => ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST_ENTRY,
4563            Self::InvalidDeclarativeNetRequestEntry => {
4564                ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_DECLARATIVE_NET_REQUEST_ENTRY
4565            }
4566            Self::InvalidBackgroundPersistence => {
4567                ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_BACKGROUND_PERSISTENCE
4568            }
4569            Self::InvalidArchive => ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_ARCHIVE,
4570            Self::__Unknown(value) => value,
4571        }
4572    }
4573}
4574
4575#[cfg(feature = "v2_52")]
4576#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4577#[doc(hidden)]
4578impl FromGlib<ffi::WebKitWebExtensionError> for WebExtensionError {
4579    #[inline]
4580    unsafe fn from_glib(value: ffi::WebKitWebExtensionError) -> Self {
4581        skip_assert_initialized!();
4582
4583        match value {
4584            ffi::WEBKIT_WEB_EXTENSION_ERROR_UNKNOWN => Self::Unknown,
4585            ffi::WEBKIT_WEB_EXTENSION_ERROR_RESOURCE_NOT_FOUND => Self::ResourceNotFound,
4586            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_RESOURCE_CODE_SIGNATURE => {
4587                Self::InvalidResourceCodeSignature
4588            }
4589            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST => Self::InvalidManifest,
4590            ffi::WEBKIT_WEB_EXTENSION_ERROR_UNSUPPORTED_MANIFEST_VERSION => {
4591                Self::UnsupportedManifestVersion
4592            }
4593            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_MANIFEST_ENTRY => Self::InvalidManifestEntry,
4594            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_DECLARATIVE_NET_REQUEST_ENTRY => {
4595                Self::InvalidDeclarativeNetRequestEntry
4596            }
4597            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_BACKGROUND_PERSISTENCE => {
4598                Self::InvalidBackgroundPersistence
4599            }
4600            ffi::WEBKIT_WEB_EXTENSION_ERROR_INVALID_ARCHIVE => Self::InvalidArchive,
4601            value => Self::__Unknown(value),
4602        }
4603    }
4604}
4605
4606#[cfg(feature = "v2_52")]
4607#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4608impl glib::error::ErrorDomain for WebExtensionError {
4609    #[inline]
4610    fn domain() -> glib::Quark {
4611        skip_assert_initialized!();
4612
4613        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
4614        let quark = *QUARK.get_or_init(|| unsafe {
4615            glib::ffi::g_quark_from_static_string(c"WebKitWebExtensionError".as_ptr())
4616        });
4617        unsafe { from_glib(quark) }
4618    }
4619
4620    #[inline]
4621    fn code(self) -> i32 {
4622        self.into_glib()
4623    }
4624
4625    #[inline]
4626    #[allow(clippy::match_single_binding)]
4627    fn from(code: i32) -> Option<Self> {
4628        skip_assert_initialized!();
4629        match unsafe { from_glib(code) } {
4630            value => Some(value),
4631        }
4632    }
4633}
4634
4635#[cfg(feature = "v2_52")]
4636#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4637impl StaticType for WebExtensionError {
4638    #[inline]
4639    #[doc(alias = "webkit_web_extension_error_get_type")]
4640    fn static_type() -> glib::Type {
4641        unsafe { from_glib(ffi::webkit_web_extension_error_get_type()) }
4642    }
4643}
4644
4645#[cfg(feature = "v2_52")]
4646#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4647impl glib::HasParamSpec for WebExtensionError {
4648    type ParamSpec = glib::ParamSpecEnum;
4649    type SetValue = Self;
4650    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4651
4652    fn param_spec_builder() -> Self::BuilderFn {
4653        Self::ParamSpec::builder_with_default
4654    }
4655}
4656
4657#[cfg(feature = "v2_52")]
4658#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4659impl glib::value::ValueType for WebExtensionError {
4660    type Type = Self;
4661}
4662
4663#[cfg(feature = "v2_52")]
4664#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4665unsafe impl<'a> glib::value::FromValue<'a> for WebExtensionError {
4666    type Checker = glib::value::GenericValueTypeChecker<Self>;
4667
4668    #[inline]
4669    unsafe fn from_value(value: &'a glib::Value) -> Self {
4670        skip_assert_initialized!();
4671        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4672    }
4673}
4674
4675#[cfg(feature = "v2_52")]
4676#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4677impl ToValue for WebExtensionError {
4678    #[inline]
4679    fn to_value(&self) -> glib::Value {
4680        let mut value = glib::Value::for_value_type::<Self>();
4681        unsafe {
4682            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4683        }
4684        value
4685    }
4686
4687    #[inline]
4688    fn value_type(&self) -> glib::Type {
4689        Self::static_type()
4690    }
4691}
4692
4693#[cfg(feature = "v2_52")]
4694#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4695impl From<WebExtensionError> for glib::Value {
4696    #[inline]
4697    fn from(v: WebExtensionError) -> Self {
4698        skip_assert_initialized!();
4699        ToValue::to_value(&v)
4700    }
4701}
4702
4703/// Enum values used to denote errors happening when creating a [`WebExtensionMatchPattern`][crate::WebExtensionMatchPattern]
4704#[cfg(feature = "v2_52")]
4705#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4706#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4707#[non_exhaustive]
4708#[doc(alias = "WebKitWebExtensionMatchPatternError")]
4709pub enum WebExtensionMatchPatternError {
4710    /// An unknown error occured.
4711    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN")]
4712    Unknown,
4713    /// The scheme component was invalid.
4714    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME")]
4715    InvalidScheme,
4716    /// The host component was invalid.
4717    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST")]
4718    InvalidHost,
4719    /// The path component was invalid.
4720    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH")]
4721    InvalidPath,
4722    #[doc(hidden)]
4723    __Unknown(i32),
4724}
4725
4726#[cfg(feature = "v2_52")]
4727#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4728impl WebExtensionMatchPatternError {
4729    #[doc(alias = "webkit_web_extension_match_pattern_error_quark")]
4730    pub fn quark() -> glib::Quark {
4731        assert_initialized_main_thread!();
4732        unsafe { from_glib(ffi::webkit_web_extension_match_pattern_error_quark()) }
4733    }
4734}
4735
4736#[cfg(feature = "v2_52")]
4737#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4738#[doc(hidden)]
4739impl IntoGlib for WebExtensionMatchPatternError {
4740    type GlibType = ffi::WebKitWebExtensionMatchPatternError;
4741
4742    #[inline]
4743    fn into_glib(self) -> ffi::WebKitWebExtensionMatchPatternError {
4744        match self {
4745            Self::Unknown => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN,
4746            Self::InvalidScheme => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME,
4747            Self::InvalidHost => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST,
4748            Self::InvalidPath => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH,
4749            Self::__Unknown(value) => value,
4750        }
4751    }
4752}
4753
4754#[cfg(feature = "v2_52")]
4755#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4756#[doc(hidden)]
4757impl FromGlib<ffi::WebKitWebExtensionMatchPatternError> for WebExtensionMatchPatternError {
4758    #[inline]
4759    unsafe fn from_glib(value: ffi::WebKitWebExtensionMatchPatternError) -> Self {
4760        skip_assert_initialized!();
4761
4762        match value {
4763            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN => Self::Unknown,
4764            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME => Self::InvalidScheme,
4765            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST => Self::InvalidHost,
4766            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH => Self::InvalidPath,
4767            value => Self::__Unknown(value),
4768        }
4769    }
4770}
4771
4772#[cfg(feature = "v2_52")]
4773#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4774impl glib::error::ErrorDomain for WebExtensionMatchPatternError {
4775    #[inline]
4776    fn domain() -> glib::Quark {
4777        skip_assert_initialized!();
4778
4779        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
4780        let quark = *QUARK.get_or_init(|| unsafe {
4781            glib::ffi::g_quark_from_static_string(c"WebKitWebExtensionMatchPatternError".as_ptr())
4782        });
4783        unsafe { from_glib(quark) }
4784    }
4785
4786    #[inline]
4787    fn code(self) -> i32 {
4788        self.into_glib()
4789    }
4790
4791    #[inline]
4792    #[allow(clippy::match_single_binding)]
4793    fn from(code: i32) -> Option<Self> {
4794        skip_assert_initialized!();
4795        match unsafe { from_glib(code) } {
4796            value => Some(value),
4797        }
4798    }
4799}
4800
4801#[cfg(feature = "v2_52")]
4802#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4803impl StaticType for WebExtensionMatchPatternError {
4804    #[inline]
4805    #[doc(alias = "webkit_web_extension_match_pattern_error_get_type")]
4806    fn static_type() -> glib::Type {
4807        unsafe { from_glib(ffi::webkit_web_extension_match_pattern_error_get_type()) }
4808    }
4809}
4810
4811#[cfg(feature = "v2_52")]
4812#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4813impl glib::HasParamSpec for WebExtensionMatchPatternError {
4814    type ParamSpec = glib::ParamSpecEnum;
4815    type SetValue = Self;
4816    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4817
4818    fn param_spec_builder() -> Self::BuilderFn {
4819        Self::ParamSpec::builder_with_default
4820    }
4821}
4822
4823#[cfg(feature = "v2_52")]
4824#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4825impl glib::value::ValueType for WebExtensionMatchPatternError {
4826    type Type = Self;
4827}
4828
4829#[cfg(feature = "v2_52")]
4830#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4831unsafe impl<'a> glib::value::FromValue<'a> for WebExtensionMatchPatternError {
4832    type Checker = glib::value::GenericValueTypeChecker<Self>;
4833
4834    #[inline]
4835    unsafe fn from_value(value: &'a glib::Value) -> Self {
4836        skip_assert_initialized!();
4837        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4838    }
4839}
4840
4841#[cfg(feature = "v2_52")]
4842#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4843impl ToValue for WebExtensionMatchPatternError {
4844    #[inline]
4845    fn to_value(&self) -> glib::Value {
4846        let mut value = glib::Value::for_value_type::<Self>();
4847        unsafe {
4848            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4849        }
4850        value
4851    }
4852
4853    #[inline]
4854    fn value_type(&self) -> glib::Type {
4855        Self::static_type()
4856    }
4857}
4858
4859#[cfg(feature = "v2_52")]
4860#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
4861impl From<WebExtensionMatchPatternError> for glib::Value {
4862    #[inline]
4863    fn from(v: WebExtensionMatchPatternError) -> Self {
4864        skip_assert_initialized!();
4865        ToValue::to_value(&v)
4866    }
4867}
4868
4869/// Enum values used for setting if a [`WebView`][crate::WebView] is intended for
4870/// WebExtensions.
4871#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4872#[non_exhaustive]
4873#[doc(alias = "WebKitWebExtensionMode")]
4874pub enum WebExtensionMode {
4875    /// Not for an extension.
4876    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_NONE")]
4877    None,
4878    /// For a ManifestV2 extension.
4879    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2")]
4880    Manifestv2,
4881    /// For a ManifestV3 extension.
4882    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3")]
4883    Manifestv3,
4884    #[doc(hidden)]
4885    __Unknown(i32),
4886}
4887
4888#[doc(hidden)]
4889impl IntoGlib for WebExtensionMode {
4890    type GlibType = ffi::WebKitWebExtensionMode;
4891
4892    #[inline]
4893    fn into_glib(self) -> ffi::WebKitWebExtensionMode {
4894        match self {
4895            Self::None => ffi::WEBKIT_WEB_EXTENSION_MODE_NONE,
4896            Self::Manifestv2 => ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2,
4897            Self::Manifestv3 => ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3,
4898            Self::__Unknown(value) => value,
4899        }
4900    }
4901}
4902
4903#[doc(hidden)]
4904impl FromGlib<ffi::WebKitWebExtensionMode> for WebExtensionMode {
4905    #[inline]
4906    unsafe fn from_glib(value: ffi::WebKitWebExtensionMode) -> Self {
4907        skip_assert_initialized!();
4908
4909        match value {
4910            ffi::WEBKIT_WEB_EXTENSION_MODE_NONE => Self::None,
4911            ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2 => Self::Manifestv2,
4912            ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3 => Self::Manifestv3,
4913            value => Self::__Unknown(value),
4914        }
4915    }
4916}
4917
4918impl StaticType for WebExtensionMode {
4919    #[inline]
4920    #[doc(alias = "webkit_web_extension_mode_get_type")]
4921    fn static_type() -> glib::Type {
4922        unsafe { from_glib(ffi::webkit_web_extension_mode_get_type()) }
4923    }
4924}
4925
4926impl glib::HasParamSpec for WebExtensionMode {
4927    type ParamSpec = glib::ParamSpecEnum;
4928    type SetValue = Self;
4929    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4930
4931    fn param_spec_builder() -> Self::BuilderFn {
4932        Self::ParamSpec::builder_with_default
4933    }
4934}
4935
4936impl glib::value::ValueType for WebExtensionMode {
4937    type Type = Self;
4938}
4939
4940unsafe impl<'a> glib::value::FromValue<'a> for WebExtensionMode {
4941    type Checker = glib::value::GenericValueTypeChecker<Self>;
4942
4943    #[inline]
4944    unsafe fn from_value(value: &'a glib::Value) -> Self {
4945        skip_assert_initialized!();
4946        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
4947    }
4948}
4949
4950impl ToValue for WebExtensionMode {
4951    #[inline]
4952    fn to_value(&self) -> glib::Value {
4953        let mut value = glib::Value::for_value_type::<Self>();
4954        unsafe {
4955            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4956        }
4957        value
4958    }
4959
4960    #[inline]
4961    fn value_type(&self) -> glib::Type {
4962        Self::static_type()
4963    }
4964}
4965
4966impl From<WebExtensionMode> for glib::Value {
4967    #[inline]
4968    fn from(v: WebExtensionMode) -> Self {
4969        skip_assert_initialized!();
4970        ToValue::to_value(&v)
4971    }
4972}
4973
4974/// Enum values used to specify the reason why the web process terminated abnormally.
4975#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4976#[non_exhaustive]
4977#[doc(alias = "WebKitWebProcessTerminationReason")]
4978pub enum WebProcessTerminationReason {
4979    /// the web process crashed.
4980    #[doc(alias = "WEBKIT_WEB_PROCESS_CRASHED")]
4981    Crashed,
4982    /// the web process exceeded the memory limit.
4983    #[doc(alias = "WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT")]
4984    ExceededMemoryLimit,
4985    /// the web process termination was requested by an API call. Since: 2.34
4986    #[doc(alias = "WEBKIT_WEB_PROCESS_TERMINATED_BY_API")]
4987    TerminatedByApi,
4988    #[doc(hidden)]
4989    __Unknown(i32),
4990}
4991
4992#[doc(hidden)]
4993impl IntoGlib for WebProcessTerminationReason {
4994    type GlibType = ffi::WebKitWebProcessTerminationReason;
4995
4996    #[inline]
4997    fn into_glib(self) -> ffi::WebKitWebProcessTerminationReason {
4998        match self {
4999            Self::Crashed => ffi::WEBKIT_WEB_PROCESS_CRASHED,
5000            Self::ExceededMemoryLimit => ffi::WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT,
5001            Self::TerminatedByApi => ffi::WEBKIT_WEB_PROCESS_TERMINATED_BY_API,
5002            Self::__Unknown(value) => value,
5003        }
5004    }
5005}
5006
5007#[doc(hidden)]
5008impl FromGlib<ffi::WebKitWebProcessTerminationReason> for WebProcessTerminationReason {
5009    #[inline]
5010    unsafe fn from_glib(value: ffi::WebKitWebProcessTerminationReason) -> Self {
5011        skip_assert_initialized!();
5012
5013        match value {
5014            ffi::WEBKIT_WEB_PROCESS_CRASHED => Self::Crashed,
5015            ffi::WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT => Self::ExceededMemoryLimit,
5016            ffi::WEBKIT_WEB_PROCESS_TERMINATED_BY_API => Self::TerminatedByApi,
5017            value => Self::__Unknown(value),
5018        }
5019    }
5020}
5021
5022impl StaticType for WebProcessTerminationReason {
5023    #[inline]
5024    #[doc(alias = "webkit_web_process_termination_reason_get_type")]
5025    fn static_type() -> glib::Type {
5026        unsafe { from_glib(ffi::webkit_web_process_termination_reason_get_type()) }
5027    }
5028}
5029
5030impl glib::HasParamSpec for WebProcessTerminationReason {
5031    type ParamSpec = glib::ParamSpecEnum;
5032    type SetValue = Self;
5033    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5034
5035    fn param_spec_builder() -> Self::BuilderFn {
5036        Self::ParamSpec::builder_with_default
5037    }
5038}
5039
5040impl glib::value::ValueType for WebProcessTerminationReason {
5041    type Type = Self;
5042}
5043
5044unsafe impl<'a> glib::value::FromValue<'a> for WebProcessTerminationReason {
5045    type Checker = glib::value::GenericValueTypeChecker<Self>;
5046
5047    #[inline]
5048    unsafe fn from_value(value: &'a glib::Value) -> Self {
5049        skip_assert_initialized!();
5050        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
5051    }
5052}
5053
5054impl ToValue for WebProcessTerminationReason {
5055    #[inline]
5056    fn to_value(&self) -> glib::Value {
5057        let mut value = glib::Value::for_value_type::<Self>();
5058        unsafe {
5059            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5060        }
5061        value
5062    }
5063
5064    #[inline]
5065    fn value_type(&self) -> glib::Type {
5066        Self::static_type()
5067    }
5068}
5069
5070impl From<WebProcessTerminationReason> for glib::Value {
5071    #[inline]
5072    fn from(v: WebProcessTerminationReason) -> Self {
5073        skip_assert_initialized!();
5074        ToValue::to_value(&v)
5075    }
5076}
5077
5078/// Enum values representing the XR session mode.
5079///
5080/// See <https://immersive-web.github.io/webxr/`xrsessionmode`-enum>
5081#[cfg(feature = "v2_52")]
5082#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5083#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
5084#[non_exhaustive]
5085#[doc(alias = "WebKitXRSessionMode")]
5086pub enum XRSessionMode {
5087    /// inline session mode.
5088    #[doc(alias = "WEBKIT_XR_SESSION_MODE_INLINE")]
5089    Inline,
5090    /// immersive-vr session mode.
5091    #[doc(alias = "WEBKIT_XR_SESSION_MODE_IMMERSIVE_VR")]
5092    ImmersiveVr,
5093    /// immersive-ar session mode.
5094    #[doc(alias = "WEBKIT_XR_SESSION_MODE_IMMERSIVE_AR")]
5095    ImmersiveAr,
5096    #[doc(hidden)]
5097    __Unknown(i32),
5098}
5099
5100#[cfg(feature = "v2_52")]
5101#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5102#[doc(hidden)]
5103impl IntoGlib for XRSessionMode {
5104    type GlibType = ffi::WebKitXRSessionMode;
5105
5106    #[inline]
5107    fn into_glib(self) -> ffi::WebKitXRSessionMode {
5108        match self {
5109            Self::Inline => ffi::WEBKIT_XR_SESSION_MODE_INLINE,
5110            Self::ImmersiveVr => ffi::WEBKIT_XR_SESSION_MODE_IMMERSIVE_VR,
5111            Self::ImmersiveAr => ffi::WEBKIT_XR_SESSION_MODE_IMMERSIVE_AR,
5112            Self::__Unknown(value) => value,
5113        }
5114    }
5115}
5116
5117#[cfg(feature = "v2_52")]
5118#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5119#[doc(hidden)]
5120impl FromGlib<ffi::WebKitXRSessionMode> for XRSessionMode {
5121    #[inline]
5122    unsafe fn from_glib(value: ffi::WebKitXRSessionMode) -> Self {
5123        skip_assert_initialized!();
5124
5125        match value {
5126            ffi::WEBKIT_XR_SESSION_MODE_INLINE => Self::Inline,
5127            ffi::WEBKIT_XR_SESSION_MODE_IMMERSIVE_VR => Self::ImmersiveVr,
5128            ffi::WEBKIT_XR_SESSION_MODE_IMMERSIVE_AR => Self::ImmersiveAr,
5129            value => Self::__Unknown(value),
5130        }
5131    }
5132}
5133
5134#[cfg(feature = "v2_52")]
5135#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5136impl StaticType for XRSessionMode {
5137    #[inline]
5138    #[doc(alias = "webkit_xr_session_mode_get_type")]
5139    fn static_type() -> glib::Type {
5140        unsafe { from_glib(ffi::webkit_xr_session_mode_get_type()) }
5141    }
5142}
5143
5144#[cfg(feature = "v2_52")]
5145#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5146impl glib::HasParamSpec for XRSessionMode {
5147    type ParamSpec = glib::ParamSpecEnum;
5148    type SetValue = Self;
5149    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
5150
5151    fn param_spec_builder() -> Self::BuilderFn {
5152        Self::ParamSpec::builder_with_default
5153    }
5154}
5155
5156#[cfg(feature = "v2_52")]
5157#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5158impl glib::value::ValueType for XRSessionMode {
5159    type Type = Self;
5160}
5161
5162#[cfg(feature = "v2_52")]
5163#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5164unsafe impl<'a> glib::value::FromValue<'a> for XRSessionMode {
5165    type Checker = glib::value::GenericValueTypeChecker<Self>;
5166
5167    #[inline]
5168    unsafe fn from_value(value: &'a glib::Value) -> Self {
5169        skip_assert_initialized!();
5170        unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
5171    }
5172}
5173
5174#[cfg(feature = "v2_52")]
5175#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5176impl ToValue for XRSessionMode {
5177    #[inline]
5178    fn to_value(&self) -> glib::Value {
5179        let mut value = glib::Value::for_value_type::<Self>();
5180        unsafe {
5181            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
5182        }
5183        value
5184    }
5185
5186    #[inline]
5187    fn value_type(&self) -> glib::Type {
5188        Self::static_type()
5189    }
5190}
5191
5192#[cfg(feature = "v2_52")]
5193#[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
5194impl From<XRSessionMode> for glib::Value {
5195    #[inline]
5196    fn from(v: XRSessionMode) -> Self {
5197        skip_assert_initialized!();
5198        ToValue::to_value(&v)
5199    }
5200}