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        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        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        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 #WebKitWebContext 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        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/// #WebKitContextMenuItem<!-- -->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        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        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        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        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(b"WebKitDownloadError\0".as_ptr() as *const _)
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        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 #WebKitFaviconDatabase.
1260#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1261#[non_exhaustive]
1262#[doc(alias = "WebKitFaviconDatabaseError")]
1263pub enum FaviconDatabaseError {
1264    /// The #WebKitFaviconDatabase 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(
1323                b"WebKitFaviconDatabaseError\0".as_ptr() as *const _
1324            )
1325        });
1326        unsafe { from_glib(quark) }
1327    }
1328
1329    #[inline]
1330    fn code(self) -> i32 {
1331        self.into_glib()
1332    }
1333
1334    #[inline]
1335    #[allow(clippy::match_single_binding)]
1336    fn from(code: i32) -> Option<Self> {
1337        skip_assert_initialized!();
1338        match unsafe { from_glib(code) } {
1339            value => Some(value),
1340        }
1341    }
1342}
1343
1344impl StaticType for FaviconDatabaseError {
1345    #[inline]
1346    #[doc(alias = "webkit_favicon_database_error_get_type")]
1347    fn static_type() -> glib::Type {
1348        unsafe { from_glib(ffi::webkit_favicon_database_error_get_type()) }
1349    }
1350}
1351
1352impl glib::HasParamSpec for FaviconDatabaseError {
1353    type ParamSpec = glib::ParamSpecEnum;
1354    type SetValue = Self;
1355    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1356
1357    fn param_spec_builder() -> Self::BuilderFn {
1358        Self::ParamSpec::builder_with_default
1359    }
1360}
1361
1362impl glib::value::ValueType for FaviconDatabaseError {
1363    type Type = Self;
1364}
1365
1366unsafe impl<'a> glib::value::FromValue<'a> for FaviconDatabaseError {
1367    type Checker = glib::value::GenericValueTypeChecker<Self>;
1368
1369    #[inline]
1370    unsafe fn from_value(value: &'a glib::Value) -> Self {
1371        skip_assert_initialized!();
1372        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1373    }
1374}
1375
1376impl ToValue for FaviconDatabaseError {
1377    #[inline]
1378    fn to_value(&self) -> glib::Value {
1379        let mut value = glib::Value::for_value_type::<Self>();
1380        unsafe {
1381            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1382        }
1383        value
1384    }
1385
1386    #[inline]
1387    fn value_type(&self) -> glib::Type {
1388        Self::static_type()
1389    }
1390}
1391
1392impl From<FaviconDatabaseError> for glib::Value {
1393    #[inline]
1394    fn from(v: FaviconDatabaseError) -> Self {
1395        skip_assert_initialized!();
1396        ToValue::to_value(&v)
1397    }
1398}
1399
1400/// Describes the status of a `WebKitFeature`.
1401///
1402/// The status for a given feature can be obtained with
1403/// [`Feature::get_status`][crate::Feature::get_status].
1404#[cfg(feature = "v2_42")]
1405#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1406#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1407#[non_exhaustive]
1408#[doc(alias = "WebKitFeatureStatus")]
1409pub enum FeatureStatus {
1410    /// Feature that adjust behaviour for
1411    ///   specific application needs. The feature is not part of a Web platform
1412    ///   feature, not a mature feature intended to be always on.
1413    #[doc(alias = "WEBKIT_FEATURE_STATUS_EMBEDDER")]
1414    Embedder,
1415    /// Feature in development. The feature
1416    ///   may be unfinished, and there are no guarantees about its safety and
1417    ///   stability.
1418    #[doc(alias = "WEBKIT_FEATURE_STATUS_UNSTABLE")]
1419    Unstable,
1420    /// Feature for debugging the WebKit engine.
1421    ///   The feature is not generally useful for user or web developers, and
1422    ///   always disabled by default.
1423    #[doc(alias = "WEBKIT_FEATURE_STATUS_INTERNAL")]
1424    Internal,
1425    /// Feature for web developers. The feature
1426    ///   is not generally useful for end users, and always disabled by default.
1427    #[doc(alias = "WEBKIT_FEATURE_STATUS_DEVELOPER")]
1428    Developer,
1429    /// Feature in active development and
1430    ///   complete enough for testing. The feature may not be yet ready to
1431    ///   ship and is disabled by default.
1432    #[doc(alias = "WEBKIT_FEATURE_STATUS_TESTABLE")]
1433    Testable,
1434    /// Feature ready to be tested by users.
1435    ///   The feature is disabled by default, but may be enabled by applications
1436    ///   automatically e.g. in their “technology preview” or “beta” versions.
1437    #[doc(alias = "WEBKIT_FEATURE_STATUS_PREVIEW")]
1438    Preview,
1439    /// Feature ready for general use. The
1440    ///   feature is enabled by default, but it may still be toggled to support
1441    ///   debugging and testing.
1442    #[doc(alias = "WEBKIT_FEATURE_STATUS_STABLE")]
1443    Stable,
1444    /// Feature in general use. The feature is
1445    ///   always enabled and in general there should be no user-facing interface
1446    ///   to toggle it.
1447    #[doc(alias = "WEBKIT_FEATURE_STATUS_MATURE")]
1448    Mature,
1449    #[doc(hidden)]
1450    __Unknown(i32),
1451}
1452
1453#[cfg(feature = "v2_42")]
1454#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1455#[doc(hidden)]
1456impl IntoGlib for FeatureStatus {
1457    type GlibType = ffi::WebKitFeatureStatus;
1458
1459    #[inline]
1460    fn into_glib(self) -> ffi::WebKitFeatureStatus {
1461        match self {
1462            Self::Embedder => ffi::WEBKIT_FEATURE_STATUS_EMBEDDER,
1463            Self::Unstable => ffi::WEBKIT_FEATURE_STATUS_UNSTABLE,
1464            Self::Internal => ffi::WEBKIT_FEATURE_STATUS_INTERNAL,
1465            Self::Developer => ffi::WEBKIT_FEATURE_STATUS_DEVELOPER,
1466            Self::Testable => ffi::WEBKIT_FEATURE_STATUS_TESTABLE,
1467            Self::Preview => ffi::WEBKIT_FEATURE_STATUS_PREVIEW,
1468            Self::Stable => ffi::WEBKIT_FEATURE_STATUS_STABLE,
1469            Self::Mature => ffi::WEBKIT_FEATURE_STATUS_MATURE,
1470            Self::__Unknown(value) => value,
1471        }
1472    }
1473}
1474
1475#[cfg(feature = "v2_42")]
1476#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1477#[doc(hidden)]
1478impl FromGlib<ffi::WebKitFeatureStatus> for FeatureStatus {
1479    #[inline]
1480    unsafe fn from_glib(value: ffi::WebKitFeatureStatus) -> Self {
1481        skip_assert_initialized!();
1482
1483        match value {
1484            ffi::WEBKIT_FEATURE_STATUS_EMBEDDER => Self::Embedder,
1485            ffi::WEBKIT_FEATURE_STATUS_UNSTABLE => Self::Unstable,
1486            ffi::WEBKIT_FEATURE_STATUS_INTERNAL => Self::Internal,
1487            ffi::WEBKIT_FEATURE_STATUS_DEVELOPER => Self::Developer,
1488            ffi::WEBKIT_FEATURE_STATUS_TESTABLE => Self::Testable,
1489            ffi::WEBKIT_FEATURE_STATUS_PREVIEW => Self::Preview,
1490            ffi::WEBKIT_FEATURE_STATUS_STABLE => Self::Stable,
1491            ffi::WEBKIT_FEATURE_STATUS_MATURE => Self::Mature,
1492            value => Self::__Unknown(value),
1493        }
1494    }
1495}
1496
1497#[cfg(feature = "v2_42")]
1498#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1499impl StaticType for FeatureStatus {
1500    #[inline]
1501    #[doc(alias = "webkit_feature_status_get_type")]
1502    fn static_type() -> glib::Type {
1503        unsafe { from_glib(ffi::webkit_feature_status_get_type()) }
1504    }
1505}
1506
1507#[cfg(feature = "v2_42")]
1508#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1509impl glib::HasParamSpec for FeatureStatus {
1510    type ParamSpec = glib::ParamSpecEnum;
1511    type SetValue = Self;
1512    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1513
1514    fn param_spec_builder() -> Self::BuilderFn {
1515        Self::ParamSpec::builder_with_default
1516    }
1517}
1518
1519#[cfg(feature = "v2_42")]
1520#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1521impl glib::value::ValueType for FeatureStatus {
1522    type Type = Self;
1523}
1524
1525#[cfg(feature = "v2_42")]
1526#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1527unsafe impl<'a> glib::value::FromValue<'a> for FeatureStatus {
1528    type Checker = glib::value::GenericValueTypeChecker<Self>;
1529
1530    #[inline]
1531    unsafe fn from_value(value: &'a glib::Value) -> Self {
1532        skip_assert_initialized!();
1533        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1534    }
1535}
1536
1537#[cfg(feature = "v2_42")]
1538#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1539impl ToValue for FeatureStatus {
1540    #[inline]
1541    fn to_value(&self) -> glib::Value {
1542        let mut value = glib::Value::for_value_type::<Self>();
1543        unsafe {
1544            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1545        }
1546        value
1547    }
1548
1549    #[inline]
1550    fn value_type(&self) -> glib::Type {
1551        Self::static_type()
1552    }
1553}
1554
1555#[cfg(feature = "v2_42")]
1556#[cfg_attr(docsrs, doc(cfg(feature = "v2_42")))]
1557impl From<FeatureStatus> for glib::Value {
1558    #[inline]
1559    fn from(v: FeatureStatus) -> Self {
1560        skip_assert_initialized!();
1561        ToValue::to_value(&v)
1562    }
1563}
1564
1565/// Enum values used for determining the hardware acceleration policy.
1566#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1567#[non_exhaustive]
1568#[doc(alias = "WebKitHardwareAccelerationPolicy")]
1569pub enum HardwareAccelerationPolicy {
1570    /// Hardware acceleration is always enabled, even for websites not requesting it.
1571    #[doc(alias = "WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS")]
1572    Always,
1573    /// Hardware acceleration is always disabled, even for websites requesting it.
1574    #[doc(alias = "WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER")]
1575    Never,
1576    #[doc(hidden)]
1577    __Unknown(i32),
1578}
1579
1580#[doc(hidden)]
1581impl IntoGlib for HardwareAccelerationPolicy {
1582    type GlibType = ffi::WebKitHardwareAccelerationPolicy;
1583
1584    #[inline]
1585    fn into_glib(self) -> ffi::WebKitHardwareAccelerationPolicy {
1586        match self {
1587            Self::Always => ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS,
1588            Self::Never => ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER,
1589            Self::__Unknown(value) => value,
1590        }
1591    }
1592}
1593
1594#[doc(hidden)]
1595impl FromGlib<ffi::WebKitHardwareAccelerationPolicy> for HardwareAccelerationPolicy {
1596    #[inline]
1597    unsafe fn from_glib(value: ffi::WebKitHardwareAccelerationPolicy) -> Self {
1598        skip_assert_initialized!();
1599
1600        match value {
1601            ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_ALWAYS => Self::Always,
1602            ffi::WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER => Self::Never,
1603            value => Self::__Unknown(value),
1604        }
1605    }
1606}
1607
1608impl StaticType for HardwareAccelerationPolicy {
1609    #[inline]
1610    #[doc(alias = "webkit_hardware_acceleration_policy_get_type")]
1611    fn static_type() -> glib::Type {
1612        unsafe { from_glib(ffi::webkit_hardware_acceleration_policy_get_type()) }
1613    }
1614}
1615
1616impl glib::HasParamSpec for HardwareAccelerationPolicy {
1617    type ParamSpec = glib::ParamSpecEnum;
1618    type SetValue = Self;
1619    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1620
1621    fn param_spec_builder() -> Self::BuilderFn {
1622        Self::ParamSpec::builder_with_default
1623    }
1624}
1625
1626impl glib::value::ValueType for HardwareAccelerationPolicy {
1627    type Type = Self;
1628}
1629
1630unsafe impl<'a> glib::value::FromValue<'a> for HardwareAccelerationPolicy {
1631    type Checker = glib::value::GenericValueTypeChecker<Self>;
1632
1633    #[inline]
1634    unsafe fn from_value(value: &'a glib::Value) -> Self {
1635        skip_assert_initialized!();
1636        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1637    }
1638}
1639
1640impl ToValue for HardwareAccelerationPolicy {
1641    #[inline]
1642    fn to_value(&self) -> glib::Value {
1643        let mut value = glib::Value::for_value_type::<Self>();
1644        unsafe {
1645            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1646        }
1647        value
1648    }
1649
1650    #[inline]
1651    fn value_type(&self) -> glib::Type {
1652        Self::static_type()
1653    }
1654}
1655
1656impl From<HardwareAccelerationPolicy> for glib::Value {
1657    #[inline]
1658    fn from(v: HardwareAccelerationPolicy) -> Self {
1659        skip_assert_initialized!();
1660        ToValue::to_value(&v)
1661    }
1662}
1663
1664/// Enum values used to describe the primary purpose of the active editable element.
1665#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1666#[non_exhaustive]
1667#[doc(alias = "WebKitInputPurpose")]
1668pub enum InputPurpose {
1669    /// Editable element expects any characters
1670    #[doc(alias = "WEBKIT_INPUT_PURPOSE_FREE_FORM")]
1671    FreeForm,
1672    /// Editable element expects digits
1673    #[doc(alias = "WEBKIT_INPUT_PURPOSE_DIGITS")]
1674    Digits,
1675    /// Editable element expects a number
1676    #[doc(alias = "WEBKIT_INPUT_PURPOSE_NUMBER")]
1677    Number,
1678    /// Editable element expects a telephone
1679    #[doc(alias = "WEBKIT_INPUT_PURPOSE_PHONE")]
1680    Phone,
1681    /// Editable element expects a URL
1682    #[doc(alias = "WEBKIT_INPUT_PURPOSE_URL")]
1683    Url,
1684    /// Editable element expects an email
1685    #[doc(alias = "WEBKIT_INPUT_PURPOSE_EMAIL")]
1686    Email,
1687    /// Editable element expects a password
1688    #[doc(alias = "WEBKIT_INPUT_PURPOSE_PASSWORD")]
1689    Password,
1690    #[doc(hidden)]
1691    __Unknown(i32),
1692}
1693
1694#[doc(hidden)]
1695impl IntoGlib for InputPurpose {
1696    type GlibType = ffi::WebKitInputPurpose;
1697
1698    #[inline]
1699    fn into_glib(self) -> ffi::WebKitInputPurpose {
1700        match self {
1701            Self::FreeForm => ffi::WEBKIT_INPUT_PURPOSE_FREE_FORM,
1702            Self::Digits => ffi::WEBKIT_INPUT_PURPOSE_DIGITS,
1703            Self::Number => ffi::WEBKIT_INPUT_PURPOSE_NUMBER,
1704            Self::Phone => ffi::WEBKIT_INPUT_PURPOSE_PHONE,
1705            Self::Url => ffi::WEBKIT_INPUT_PURPOSE_URL,
1706            Self::Email => ffi::WEBKIT_INPUT_PURPOSE_EMAIL,
1707            Self::Password => ffi::WEBKIT_INPUT_PURPOSE_PASSWORD,
1708            Self::__Unknown(value) => value,
1709        }
1710    }
1711}
1712
1713#[doc(hidden)]
1714impl FromGlib<ffi::WebKitInputPurpose> for InputPurpose {
1715    #[inline]
1716    unsafe fn from_glib(value: ffi::WebKitInputPurpose) -> Self {
1717        skip_assert_initialized!();
1718
1719        match value {
1720            ffi::WEBKIT_INPUT_PURPOSE_FREE_FORM => Self::FreeForm,
1721            ffi::WEBKIT_INPUT_PURPOSE_DIGITS => Self::Digits,
1722            ffi::WEBKIT_INPUT_PURPOSE_NUMBER => Self::Number,
1723            ffi::WEBKIT_INPUT_PURPOSE_PHONE => Self::Phone,
1724            ffi::WEBKIT_INPUT_PURPOSE_URL => Self::Url,
1725            ffi::WEBKIT_INPUT_PURPOSE_EMAIL => Self::Email,
1726            ffi::WEBKIT_INPUT_PURPOSE_PASSWORD => Self::Password,
1727            value => Self::__Unknown(value),
1728        }
1729    }
1730}
1731
1732impl StaticType for InputPurpose {
1733    #[inline]
1734    #[doc(alias = "webkit_input_purpose_get_type")]
1735    fn static_type() -> glib::Type {
1736        unsafe { from_glib(ffi::webkit_input_purpose_get_type()) }
1737    }
1738}
1739
1740impl glib::HasParamSpec for InputPurpose {
1741    type ParamSpec = glib::ParamSpecEnum;
1742    type SetValue = Self;
1743    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1744
1745    fn param_spec_builder() -> Self::BuilderFn {
1746        Self::ParamSpec::builder_with_default
1747    }
1748}
1749
1750impl glib::value::ValueType for InputPurpose {
1751    type Type = Self;
1752}
1753
1754unsafe impl<'a> glib::value::FromValue<'a> for InputPurpose {
1755    type Checker = glib::value::GenericValueTypeChecker<Self>;
1756
1757    #[inline]
1758    unsafe fn from_value(value: &'a glib::Value) -> Self {
1759        skip_assert_initialized!();
1760        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1761    }
1762}
1763
1764impl ToValue for InputPurpose {
1765    #[inline]
1766    fn to_value(&self) -> glib::Value {
1767        let mut value = glib::Value::for_value_type::<Self>();
1768        unsafe {
1769            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1770        }
1771        value
1772    }
1773
1774    #[inline]
1775    fn value_type(&self) -> glib::Type {
1776        Self::static_type()
1777    }
1778}
1779
1780impl From<InputPurpose> for glib::Value {
1781    #[inline]
1782    fn from(v: InputPurpose) -> Self {
1783        skip_assert_initialized!();
1784        ToValue::to_value(&v)
1785    }
1786}
1787
1788/// Enum values previously used to denote the different events which can trigger
1789/// the detection of insecure content. Since 2.46, WebKit generally no longer
1790/// loads insecure content in secure contexts.
1791///
1792/// # Deprecated since 2.46
1793///
1794#[cfg_attr(feature = "v2_46", deprecated = "Since 2.46")]
1795#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1796#[non_exhaustive]
1797#[doc(alias = "WebKitInsecureContentEvent")]
1798pub enum InsecureContentEvent {
1799    /// Insecure content has been detected by
1800    /// trying to execute any kind of logic (e.g. a script) from an
1801    /// untrusted source.
1802    #[doc(alias = "WEBKIT_INSECURE_CONTENT_RUN")]
1803    Run,
1804    /// Insecure content has been
1805    /// detected by trying to display any kind of resource (e.g. an image)
1806    /// from an untrusted source.
1807    #[doc(alias = "WEBKIT_INSECURE_CONTENT_DISPLAYED")]
1808    Displayed,
1809    #[doc(hidden)]
1810    __Unknown(i32),
1811}
1812
1813#[allow(deprecated)]
1814#[doc(hidden)]
1815impl IntoGlib for InsecureContentEvent {
1816    type GlibType = ffi::WebKitInsecureContentEvent;
1817
1818    #[inline]
1819    fn into_glib(self) -> ffi::WebKitInsecureContentEvent {
1820        match self {
1821            Self::Run => ffi::WEBKIT_INSECURE_CONTENT_RUN,
1822            Self::Displayed => ffi::WEBKIT_INSECURE_CONTENT_DISPLAYED,
1823            Self::__Unknown(value) => value,
1824        }
1825    }
1826}
1827
1828#[allow(deprecated)]
1829#[doc(hidden)]
1830impl FromGlib<ffi::WebKitInsecureContentEvent> for InsecureContentEvent {
1831    #[inline]
1832    unsafe fn from_glib(value: ffi::WebKitInsecureContentEvent) -> Self {
1833        skip_assert_initialized!();
1834
1835        match value {
1836            ffi::WEBKIT_INSECURE_CONTENT_RUN => Self::Run,
1837            ffi::WEBKIT_INSECURE_CONTENT_DISPLAYED => Self::Displayed,
1838            value => Self::__Unknown(value),
1839        }
1840    }
1841}
1842
1843#[allow(deprecated)]
1844impl StaticType for InsecureContentEvent {
1845    #[inline]
1846    #[doc(alias = "webkit_insecure_content_event_get_type")]
1847    fn static_type() -> glib::Type {
1848        unsafe { from_glib(ffi::webkit_insecure_content_event_get_type()) }
1849    }
1850}
1851
1852#[allow(deprecated)]
1853impl glib::HasParamSpec for InsecureContentEvent {
1854    type ParamSpec = glib::ParamSpecEnum;
1855    type SetValue = Self;
1856    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1857
1858    fn param_spec_builder() -> Self::BuilderFn {
1859        Self::ParamSpec::builder_with_default
1860    }
1861}
1862
1863#[allow(deprecated)]
1864impl glib::value::ValueType for InsecureContentEvent {
1865    type Type = Self;
1866}
1867
1868#[allow(deprecated)]
1869unsafe impl<'a> glib::value::FromValue<'a> for InsecureContentEvent {
1870    type Checker = glib::value::GenericValueTypeChecker<Self>;
1871
1872    #[inline]
1873    unsafe fn from_value(value: &'a glib::Value) -> Self {
1874        skip_assert_initialized!();
1875        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1876    }
1877}
1878
1879#[allow(deprecated)]
1880impl ToValue for InsecureContentEvent {
1881    #[inline]
1882    fn to_value(&self) -> glib::Value {
1883        let mut value = glib::Value::for_value_type::<Self>();
1884        unsafe {
1885            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1886        }
1887        value
1888    }
1889
1890    #[inline]
1891    fn value_type(&self) -> glib::Type {
1892        Self::static_type()
1893    }
1894}
1895
1896#[allow(deprecated)]
1897impl From<InsecureContentEvent> for glib::Value {
1898    #[inline]
1899    fn from(v: InsecureContentEvent) -> Self {
1900        skip_assert_initialized!();
1901        ToValue::to_value(&v)
1902    }
1903}
1904
1905/// Enum values used to denote errors happening when executing JavaScript
1906#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1907#[non_exhaustive]
1908#[doc(alias = "WebKitJavascriptError")]
1909pub enum JavascriptError {
1910    /// An exception was raised in JavaScript execution
1911    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED")]
1912    ScriptFailed,
1913    /// An unsupported parameter has been used to call and async function from API. Since 2.40
1914    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER")]
1915    InvalidParameter,
1916    /// The result of JavaScript execution could not be returned. Since 2.40
1917    #[doc(alias = "WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT")]
1918    InvalidResult,
1919    #[doc(hidden)]
1920    __Unknown(i32),
1921}
1922
1923impl JavascriptError {
1924    #[doc(alias = "webkit_javascript_error_quark")]
1925    pub fn quark() -> glib::Quark {
1926        assert_initialized_main_thread!();
1927        unsafe { from_glib(ffi::webkit_javascript_error_quark()) }
1928    }
1929}
1930
1931#[doc(hidden)]
1932impl IntoGlib for JavascriptError {
1933    type GlibType = ffi::WebKitJavascriptError;
1934
1935    #[inline]
1936    fn into_glib(self) -> ffi::WebKitJavascriptError {
1937        match self {
1938            Self::ScriptFailed => ffi::WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED,
1939            Self::InvalidParameter => ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER,
1940            Self::InvalidResult => ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT,
1941            Self::__Unknown(value) => value,
1942        }
1943    }
1944}
1945
1946#[doc(hidden)]
1947impl FromGlib<ffi::WebKitJavascriptError> for JavascriptError {
1948    #[inline]
1949    unsafe fn from_glib(value: ffi::WebKitJavascriptError) -> Self {
1950        skip_assert_initialized!();
1951
1952        match value {
1953            ffi::WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED => Self::ScriptFailed,
1954            ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_PARAMETER => Self::InvalidParameter,
1955            ffi::WEBKIT_JAVASCRIPT_ERROR_INVALID_RESULT => Self::InvalidResult,
1956            value => Self::__Unknown(value),
1957        }
1958    }
1959}
1960
1961impl glib::error::ErrorDomain for JavascriptError {
1962    #[inline]
1963    fn domain() -> glib::Quark {
1964        skip_assert_initialized!();
1965
1966        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
1967        let quark = *QUARK.get_or_init(|| unsafe {
1968            glib::ffi::g_quark_from_static_string(b"WebKitJavascriptError\0".as_ptr() as *const _)
1969        });
1970        unsafe { from_glib(quark) }
1971    }
1972
1973    #[inline]
1974    fn code(self) -> i32 {
1975        self.into_glib()
1976    }
1977
1978    #[inline]
1979    #[allow(clippy::match_single_binding)]
1980    fn from(code: i32) -> Option<Self> {
1981        skip_assert_initialized!();
1982        match unsafe { from_glib(code) } {
1983            value => Some(value),
1984        }
1985    }
1986}
1987
1988impl StaticType for JavascriptError {
1989    #[inline]
1990    #[doc(alias = "webkit_javascript_error_get_type")]
1991    fn static_type() -> glib::Type {
1992        unsafe { from_glib(ffi::webkit_javascript_error_get_type()) }
1993    }
1994}
1995
1996impl glib::HasParamSpec for JavascriptError {
1997    type ParamSpec = glib::ParamSpecEnum;
1998    type SetValue = Self;
1999    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2000
2001    fn param_spec_builder() -> Self::BuilderFn {
2002        Self::ParamSpec::builder_with_default
2003    }
2004}
2005
2006impl glib::value::ValueType for JavascriptError {
2007    type Type = Self;
2008}
2009
2010unsafe impl<'a> glib::value::FromValue<'a> for JavascriptError {
2011    type Checker = glib::value::GenericValueTypeChecker<Self>;
2012
2013    #[inline]
2014    unsafe fn from_value(value: &'a glib::Value) -> Self {
2015        skip_assert_initialized!();
2016        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2017    }
2018}
2019
2020impl ToValue for JavascriptError {
2021    #[inline]
2022    fn to_value(&self) -> glib::Value {
2023        let mut value = glib::Value::for_value_type::<Self>();
2024        unsafe {
2025            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2026        }
2027        value
2028    }
2029
2030    #[inline]
2031    fn value_type(&self) -> glib::Type {
2032        Self::static_type()
2033    }
2034}
2035
2036impl From<JavascriptError> for glib::Value {
2037    #[inline]
2038    fn from(v: JavascriptError) -> Self {
2039        skip_assert_initialized!();
2040        ToValue::to_value(&v)
2041    }
2042}
2043
2044/// Enum values used to denote the different events that happen during a
2045/// #WebKitWebView load operation.
2046#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2047#[non_exhaustive]
2048#[doc(alias = "WebKitLoadEvent")]
2049pub enum LoadEvent {
2050    /// A new load request has been made.
2051    /// No data has been received yet, empty structures have
2052    /// been allocated to perform the load; the load may still
2053    /// fail due to transport issues such as not being able to
2054    /// resolve a name, or connect to a port.
2055    #[doc(alias = "WEBKIT_LOAD_STARTED")]
2056    Started,
2057    /// A provisional data source received
2058    /// a server redirect.
2059    #[doc(alias = "WEBKIT_LOAD_REDIRECTED")]
2060    Redirected,
2061    /// The content started arriving for a page load.
2062    /// The necessary transport requirements are established, and the
2063    /// load is being performed.
2064    #[doc(alias = "WEBKIT_LOAD_COMMITTED")]
2065    Committed,
2066    /// Load completed. All resources are done loading
2067    /// or there was an error during the load operation.
2068    #[doc(alias = "WEBKIT_LOAD_FINISHED")]
2069    Finished,
2070    #[doc(hidden)]
2071    __Unknown(i32),
2072}
2073
2074#[doc(hidden)]
2075impl IntoGlib for LoadEvent {
2076    type GlibType = ffi::WebKitLoadEvent;
2077
2078    #[inline]
2079    fn into_glib(self) -> ffi::WebKitLoadEvent {
2080        match self {
2081            Self::Started => ffi::WEBKIT_LOAD_STARTED,
2082            Self::Redirected => ffi::WEBKIT_LOAD_REDIRECTED,
2083            Self::Committed => ffi::WEBKIT_LOAD_COMMITTED,
2084            Self::Finished => ffi::WEBKIT_LOAD_FINISHED,
2085            Self::__Unknown(value) => value,
2086        }
2087    }
2088}
2089
2090#[doc(hidden)]
2091impl FromGlib<ffi::WebKitLoadEvent> for LoadEvent {
2092    #[inline]
2093    unsafe fn from_glib(value: ffi::WebKitLoadEvent) -> Self {
2094        skip_assert_initialized!();
2095
2096        match value {
2097            ffi::WEBKIT_LOAD_STARTED => Self::Started,
2098            ffi::WEBKIT_LOAD_REDIRECTED => Self::Redirected,
2099            ffi::WEBKIT_LOAD_COMMITTED => Self::Committed,
2100            ffi::WEBKIT_LOAD_FINISHED => Self::Finished,
2101            value => Self::__Unknown(value),
2102        }
2103    }
2104}
2105
2106impl StaticType for LoadEvent {
2107    #[inline]
2108    #[doc(alias = "webkit_load_event_get_type")]
2109    fn static_type() -> glib::Type {
2110        unsafe { from_glib(ffi::webkit_load_event_get_type()) }
2111    }
2112}
2113
2114impl glib::HasParamSpec for LoadEvent {
2115    type ParamSpec = glib::ParamSpecEnum;
2116    type SetValue = Self;
2117    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2118
2119    fn param_spec_builder() -> Self::BuilderFn {
2120        Self::ParamSpec::builder_with_default
2121    }
2122}
2123
2124impl glib::value::ValueType for LoadEvent {
2125    type Type = Self;
2126}
2127
2128unsafe impl<'a> glib::value::FromValue<'a> for LoadEvent {
2129    type Checker = glib::value::GenericValueTypeChecker<Self>;
2130
2131    #[inline]
2132    unsafe fn from_value(value: &'a glib::Value) -> Self {
2133        skip_assert_initialized!();
2134        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2135    }
2136}
2137
2138impl ToValue for LoadEvent {
2139    #[inline]
2140    fn to_value(&self) -> glib::Value {
2141        let mut value = glib::Value::for_value_type::<Self>();
2142        unsafe {
2143            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2144        }
2145        value
2146    }
2147
2148    #[inline]
2149    fn value_type(&self) -> glib::Type {
2150        Self::static_type()
2151    }
2152}
2153
2154impl From<LoadEvent> for glib::Value {
2155    #[inline]
2156    fn from(v: LoadEvent) -> Self {
2157        skip_assert_initialized!();
2158        ToValue::to_value(&v)
2159    }
2160}
2161
2162/// Enum values used to specify the capture state of a media device.
2163#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2164#[non_exhaustive]
2165#[doc(alias = "WebKitMediaCaptureState")]
2166pub enum MediaCaptureState {
2167    /// Media capture is disabled.
2168    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_NONE")]
2169    None,
2170    /// Media capture is active.
2171    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE")]
2172    Active,
2173    /// Media capture is muted.
2174    #[doc(alias = "WEBKIT_MEDIA_CAPTURE_STATE_MUTED")]
2175    Muted,
2176    #[doc(hidden)]
2177    __Unknown(i32),
2178}
2179
2180#[doc(hidden)]
2181impl IntoGlib for MediaCaptureState {
2182    type GlibType = ffi::WebKitMediaCaptureState;
2183
2184    #[inline]
2185    fn into_glib(self) -> ffi::WebKitMediaCaptureState {
2186        match self {
2187            Self::None => ffi::WEBKIT_MEDIA_CAPTURE_STATE_NONE,
2188            Self::Active => ffi::WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE,
2189            Self::Muted => ffi::WEBKIT_MEDIA_CAPTURE_STATE_MUTED,
2190            Self::__Unknown(value) => value,
2191        }
2192    }
2193}
2194
2195#[doc(hidden)]
2196impl FromGlib<ffi::WebKitMediaCaptureState> for MediaCaptureState {
2197    #[inline]
2198    unsafe fn from_glib(value: ffi::WebKitMediaCaptureState) -> Self {
2199        skip_assert_initialized!();
2200
2201        match value {
2202            ffi::WEBKIT_MEDIA_CAPTURE_STATE_NONE => Self::None,
2203            ffi::WEBKIT_MEDIA_CAPTURE_STATE_ACTIVE => Self::Active,
2204            ffi::WEBKIT_MEDIA_CAPTURE_STATE_MUTED => Self::Muted,
2205            value => Self::__Unknown(value),
2206        }
2207    }
2208}
2209
2210impl StaticType for MediaCaptureState {
2211    #[inline]
2212    #[doc(alias = "webkit_media_capture_state_get_type")]
2213    fn static_type() -> glib::Type {
2214        unsafe { from_glib(ffi::webkit_media_capture_state_get_type()) }
2215    }
2216}
2217
2218impl glib::HasParamSpec for MediaCaptureState {
2219    type ParamSpec = glib::ParamSpecEnum;
2220    type SetValue = Self;
2221    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2222
2223    fn param_spec_builder() -> Self::BuilderFn {
2224        Self::ParamSpec::builder_with_default
2225    }
2226}
2227
2228impl glib::value::ValueType for MediaCaptureState {
2229    type Type = Self;
2230}
2231
2232unsafe impl<'a> glib::value::FromValue<'a> for MediaCaptureState {
2233    type Checker = glib::value::GenericValueTypeChecker<Self>;
2234
2235    #[inline]
2236    unsafe fn from_value(value: &'a glib::Value) -> Self {
2237        skip_assert_initialized!();
2238        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2239    }
2240}
2241
2242impl ToValue for MediaCaptureState {
2243    #[inline]
2244    fn to_value(&self) -> glib::Value {
2245        let mut value = glib::Value::for_value_type::<Self>();
2246        unsafe {
2247            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2248        }
2249        value
2250    }
2251
2252    #[inline]
2253    fn value_type(&self) -> glib::Type {
2254        Self::static_type()
2255    }
2256}
2257
2258impl From<MediaCaptureState> for glib::Value {
2259    #[inline]
2260    fn from(v: MediaCaptureState) -> Self {
2261        skip_assert_initialized!();
2262        ToValue::to_value(&v)
2263    }
2264}
2265
2266/// Enum values used to denote the various media errors.
2267#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2268#[non_exhaustive]
2269#[doc(alias = "WebKitMediaError")]
2270pub enum MediaError {
2271    /// Preliminary load failure for media content types. A new load will be started to perform the media load. Since: 2.40
2272    #[doc(alias = "WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD")]
2273    Load,
2274    #[doc(hidden)]
2275    __Unknown(i32),
2276}
2277
2278impl MediaError {
2279    #[doc(alias = "webkit_media_error_quark")]
2280    pub fn quark() -> glib::Quark {
2281        assert_initialized_main_thread!();
2282        unsafe { from_glib(ffi::webkit_media_error_quark()) }
2283    }
2284}
2285
2286#[doc(hidden)]
2287impl IntoGlib for MediaError {
2288    type GlibType = ffi::WebKitMediaError;
2289
2290    #[inline]
2291    fn into_glib(self) -> ffi::WebKitMediaError {
2292        match self {
2293            Self::Load => ffi::WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD,
2294            Self::__Unknown(value) => value,
2295        }
2296    }
2297}
2298
2299#[doc(hidden)]
2300impl FromGlib<ffi::WebKitMediaError> for MediaError {
2301    #[inline]
2302    unsafe fn from_glib(value: ffi::WebKitMediaError) -> Self {
2303        skip_assert_initialized!();
2304
2305        match value {
2306            ffi::WEBKIT_MEDIA_ERROR_WILL_HANDLE_LOAD => Self::Load,
2307            value => Self::__Unknown(value),
2308        }
2309    }
2310}
2311
2312impl glib::error::ErrorDomain for MediaError {
2313    #[inline]
2314    fn domain() -> glib::Quark {
2315        skip_assert_initialized!();
2316
2317        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
2318        let quark = *QUARK.get_or_init(|| unsafe {
2319            glib::ffi::g_quark_from_static_string(b"WebKitMediaError\0".as_ptr() as *const _)
2320        });
2321        unsafe { from_glib(quark) }
2322    }
2323
2324    #[inline]
2325    fn code(self) -> i32 {
2326        self.into_glib()
2327    }
2328
2329    #[inline]
2330    #[allow(clippy::match_single_binding)]
2331    fn from(code: i32) -> Option<Self> {
2332        skip_assert_initialized!();
2333        match unsafe { from_glib(code) } {
2334            value => Some(value),
2335        }
2336    }
2337}
2338
2339impl StaticType for MediaError {
2340    #[inline]
2341    #[doc(alias = "webkit_media_error_get_type")]
2342    fn static_type() -> glib::Type {
2343        unsafe { from_glib(ffi::webkit_media_error_get_type()) }
2344    }
2345}
2346
2347impl glib::HasParamSpec for MediaError {
2348    type ParamSpec = glib::ParamSpecEnum;
2349    type SetValue = Self;
2350    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2351
2352    fn param_spec_builder() -> Self::BuilderFn {
2353        Self::ParamSpec::builder_with_default
2354    }
2355}
2356
2357impl glib::value::ValueType for MediaError {
2358    type Type = Self;
2359}
2360
2361unsafe impl<'a> glib::value::FromValue<'a> for MediaError {
2362    type Checker = glib::value::GenericValueTypeChecker<Self>;
2363
2364    #[inline]
2365    unsafe fn from_value(value: &'a glib::Value) -> Self {
2366        skip_assert_initialized!();
2367        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2368    }
2369}
2370
2371impl ToValue for MediaError {
2372    #[inline]
2373    fn to_value(&self) -> glib::Value {
2374        let mut value = glib::Value::for_value_type::<Self>();
2375        unsafe {
2376            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2377        }
2378        value
2379    }
2380
2381    #[inline]
2382    fn value_type(&self) -> glib::Type {
2383        Self::static_type()
2384    }
2385}
2386
2387impl From<MediaError> for glib::Value {
2388    #[inline]
2389    fn from(v: MediaError) -> Self {
2390        skip_assert_initialized!();
2391        ToValue::to_value(&v)
2392    }
2393}
2394
2395/// Enum values used to denote the various navigation types.
2396#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2397#[non_exhaustive]
2398#[doc(alias = "WebKitNavigationType")]
2399pub enum NavigationType {
2400    /// The navigation was triggered by clicking a link.
2401    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_LINK_CLICKED")]
2402    LinkClicked,
2403    /// The navigation was triggered by submitting a form.
2404    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED")]
2405    FormSubmitted,
2406    /// The navigation was triggered by navigating forward or backward.
2407    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_BACK_FORWARD")]
2408    BackForward,
2409    /// The navigation was triggered by reloading.
2410    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_RELOAD")]
2411    Reload,
2412    /// The navigation was triggered by resubmitting a form.
2413    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED")]
2414    FormResubmitted,
2415    /// The navigation was triggered by some other action.
2416    #[doc(alias = "WEBKIT_NAVIGATION_TYPE_OTHER")]
2417    Other,
2418    #[doc(hidden)]
2419    __Unknown(i32),
2420}
2421
2422#[doc(hidden)]
2423impl IntoGlib for NavigationType {
2424    type GlibType = ffi::WebKitNavigationType;
2425
2426    #[inline]
2427    fn into_glib(self) -> ffi::WebKitNavigationType {
2428        match self {
2429            Self::LinkClicked => ffi::WEBKIT_NAVIGATION_TYPE_LINK_CLICKED,
2430            Self::FormSubmitted => ffi::WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED,
2431            Self::BackForward => ffi::WEBKIT_NAVIGATION_TYPE_BACK_FORWARD,
2432            Self::Reload => ffi::WEBKIT_NAVIGATION_TYPE_RELOAD,
2433            Self::FormResubmitted => ffi::WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED,
2434            Self::Other => ffi::WEBKIT_NAVIGATION_TYPE_OTHER,
2435            Self::__Unknown(value) => value,
2436        }
2437    }
2438}
2439
2440#[doc(hidden)]
2441impl FromGlib<ffi::WebKitNavigationType> for NavigationType {
2442    #[inline]
2443    unsafe fn from_glib(value: ffi::WebKitNavigationType) -> Self {
2444        skip_assert_initialized!();
2445
2446        match value {
2447            ffi::WEBKIT_NAVIGATION_TYPE_LINK_CLICKED => Self::LinkClicked,
2448            ffi::WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED => Self::FormSubmitted,
2449            ffi::WEBKIT_NAVIGATION_TYPE_BACK_FORWARD => Self::BackForward,
2450            ffi::WEBKIT_NAVIGATION_TYPE_RELOAD => Self::Reload,
2451            ffi::WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED => Self::FormResubmitted,
2452            ffi::WEBKIT_NAVIGATION_TYPE_OTHER => Self::Other,
2453            value => Self::__Unknown(value),
2454        }
2455    }
2456}
2457
2458impl StaticType for NavigationType {
2459    #[inline]
2460    #[doc(alias = "webkit_navigation_type_get_type")]
2461    fn static_type() -> glib::Type {
2462        unsafe { from_glib(ffi::webkit_navigation_type_get_type()) }
2463    }
2464}
2465
2466impl glib::HasParamSpec for NavigationType {
2467    type ParamSpec = glib::ParamSpecEnum;
2468    type SetValue = Self;
2469    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2470
2471    fn param_spec_builder() -> Self::BuilderFn {
2472        Self::ParamSpec::builder_with_default
2473    }
2474}
2475
2476impl glib::value::ValueType for NavigationType {
2477    type Type = Self;
2478}
2479
2480unsafe impl<'a> glib::value::FromValue<'a> for NavigationType {
2481    type Checker = glib::value::GenericValueTypeChecker<Self>;
2482
2483    #[inline]
2484    unsafe fn from_value(value: &'a glib::Value) -> Self {
2485        skip_assert_initialized!();
2486        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2487    }
2488}
2489
2490impl ToValue for NavigationType {
2491    #[inline]
2492    fn to_value(&self) -> glib::Value {
2493        let mut value = glib::Value::for_value_type::<Self>();
2494        unsafe {
2495            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2496        }
2497        value
2498    }
2499
2500    #[inline]
2501    fn value_type(&self) -> glib::Type {
2502        Self::static_type()
2503    }
2504}
2505
2506impl From<NavigationType> for glib::Value {
2507    #[inline]
2508    fn from(v: NavigationType) -> Self {
2509        skip_assert_initialized!();
2510        ToValue::to_value(&v)
2511    }
2512}
2513
2514/// Enum values used to denote the various network errors.
2515#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2516#[non_exhaustive]
2517#[doc(alias = "WebKitNetworkError")]
2518pub enum NetworkError {
2519    /// Generic load failure
2520    #[doc(alias = "WEBKIT_NETWORK_ERROR_FAILED")]
2521    Failed,
2522    /// Load failure due to transport error
2523    #[doc(alias = "WEBKIT_NETWORK_ERROR_TRANSPORT")]
2524    Transport,
2525    /// Load failure due to unknown protocol
2526    #[doc(alias = "WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL")]
2527    UnknownProtocol,
2528    /// Load failure due to cancellation
2529    #[doc(alias = "WEBKIT_NETWORK_ERROR_CANCELLED")]
2530    Cancelled,
2531    /// Load failure due to missing file
2532    #[doc(alias = "WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST")]
2533    FileDoesNotExist,
2534    #[doc(hidden)]
2535    __Unknown(i32),
2536}
2537
2538impl NetworkError {
2539    #[doc(alias = "webkit_network_error_quark")]
2540    pub fn quark() -> glib::Quark {
2541        assert_initialized_main_thread!();
2542        unsafe { from_glib(ffi::webkit_network_error_quark()) }
2543    }
2544}
2545
2546#[doc(hidden)]
2547impl IntoGlib for NetworkError {
2548    type GlibType = ffi::WebKitNetworkError;
2549
2550    #[inline]
2551    fn into_glib(self) -> ffi::WebKitNetworkError {
2552        match self {
2553            Self::Failed => ffi::WEBKIT_NETWORK_ERROR_FAILED,
2554            Self::Transport => ffi::WEBKIT_NETWORK_ERROR_TRANSPORT,
2555            Self::UnknownProtocol => ffi::WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL,
2556            Self::Cancelled => ffi::WEBKIT_NETWORK_ERROR_CANCELLED,
2557            Self::FileDoesNotExist => ffi::WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST,
2558            Self::__Unknown(value) => value,
2559        }
2560    }
2561}
2562
2563#[doc(hidden)]
2564impl FromGlib<ffi::WebKitNetworkError> for NetworkError {
2565    #[inline]
2566    unsafe fn from_glib(value: ffi::WebKitNetworkError) -> Self {
2567        skip_assert_initialized!();
2568
2569        match value {
2570            ffi::WEBKIT_NETWORK_ERROR_FAILED => Self::Failed,
2571            ffi::WEBKIT_NETWORK_ERROR_TRANSPORT => Self::Transport,
2572            ffi::WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL => Self::UnknownProtocol,
2573            ffi::WEBKIT_NETWORK_ERROR_CANCELLED => Self::Cancelled,
2574            ffi::WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST => Self::FileDoesNotExist,
2575            value => Self::__Unknown(value),
2576        }
2577    }
2578}
2579
2580impl glib::error::ErrorDomain for NetworkError {
2581    #[inline]
2582    fn domain() -> glib::Quark {
2583        skip_assert_initialized!();
2584
2585        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
2586        let quark = *QUARK.get_or_init(|| unsafe {
2587            glib::ffi::g_quark_from_static_string(b"WebKitNetworkError\0".as_ptr() as *const _)
2588        });
2589        unsafe { from_glib(quark) }
2590    }
2591
2592    #[inline]
2593    fn code(self) -> i32 {
2594        self.into_glib()
2595    }
2596
2597    #[inline]
2598    #[allow(clippy::match_single_binding)]
2599    fn from(code: i32) -> Option<Self> {
2600        skip_assert_initialized!();
2601        match unsafe { from_glib(code) } {
2602            Self::__Unknown(_) => Some(Self::Failed),
2603            value => Some(value),
2604        }
2605    }
2606}
2607
2608impl StaticType for NetworkError {
2609    #[inline]
2610    #[doc(alias = "webkit_network_error_get_type")]
2611    fn static_type() -> glib::Type {
2612        unsafe { from_glib(ffi::webkit_network_error_get_type()) }
2613    }
2614}
2615
2616impl glib::HasParamSpec for NetworkError {
2617    type ParamSpec = glib::ParamSpecEnum;
2618    type SetValue = Self;
2619    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2620
2621    fn param_spec_builder() -> Self::BuilderFn {
2622        Self::ParamSpec::builder_with_default
2623    }
2624}
2625
2626impl glib::value::ValueType for NetworkError {
2627    type Type = Self;
2628}
2629
2630unsafe impl<'a> glib::value::FromValue<'a> for NetworkError {
2631    type Checker = glib::value::GenericValueTypeChecker<Self>;
2632
2633    #[inline]
2634    unsafe fn from_value(value: &'a glib::Value) -> Self {
2635        skip_assert_initialized!();
2636        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2637    }
2638}
2639
2640impl ToValue for NetworkError {
2641    #[inline]
2642    fn to_value(&self) -> glib::Value {
2643        let mut value = glib::Value::for_value_type::<Self>();
2644        unsafe {
2645            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2646        }
2647        value
2648    }
2649
2650    #[inline]
2651    fn value_type(&self) -> glib::Type {
2652        Self::static_type()
2653    }
2654}
2655
2656impl From<NetworkError> for glib::Value {
2657    #[inline]
2658    fn from(v: NetworkError) -> Self {
2659        skip_assert_initialized!();
2660        ToValue::to_value(&v)
2661    }
2662}
2663
2664/// Enum values used to set the network proxy mode.
2665#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2666#[non_exhaustive]
2667#[doc(alias = "WebKitNetworkProxyMode")]
2668pub enum NetworkProxyMode {
2669    /// Use the default proxy of the system.
2670    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_DEFAULT")]
2671    Default,
2672    /// Do not use any proxy.
2673    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_NO_PROXY")]
2674    NoProxy,
2675    /// Use custom proxy settings.
2676    #[doc(alias = "WEBKIT_NETWORK_PROXY_MODE_CUSTOM")]
2677    Custom,
2678    #[doc(hidden)]
2679    __Unknown(i32),
2680}
2681
2682#[doc(hidden)]
2683impl IntoGlib for NetworkProxyMode {
2684    type GlibType = ffi::WebKitNetworkProxyMode;
2685
2686    #[inline]
2687    fn into_glib(self) -> ffi::WebKitNetworkProxyMode {
2688        match self {
2689            Self::Default => ffi::WEBKIT_NETWORK_PROXY_MODE_DEFAULT,
2690            Self::NoProxy => ffi::WEBKIT_NETWORK_PROXY_MODE_NO_PROXY,
2691            Self::Custom => ffi::WEBKIT_NETWORK_PROXY_MODE_CUSTOM,
2692            Self::__Unknown(value) => value,
2693        }
2694    }
2695}
2696
2697#[doc(hidden)]
2698impl FromGlib<ffi::WebKitNetworkProxyMode> for NetworkProxyMode {
2699    #[inline]
2700    unsafe fn from_glib(value: ffi::WebKitNetworkProxyMode) -> Self {
2701        skip_assert_initialized!();
2702
2703        match value {
2704            ffi::WEBKIT_NETWORK_PROXY_MODE_DEFAULT => Self::Default,
2705            ffi::WEBKIT_NETWORK_PROXY_MODE_NO_PROXY => Self::NoProxy,
2706            ffi::WEBKIT_NETWORK_PROXY_MODE_CUSTOM => Self::Custom,
2707            value => Self::__Unknown(value),
2708        }
2709    }
2710}
2711
2712impl StaticType for NetworkProxyMode {
2713    #[inline]
2714    #[doc(alias = "webkit_network_proxy_mode_get_type")]
2715    fn static_type() -> glib::Type {
2716        unsafe { from_glib(ffi::webkit_network_proxy_mode_get_type()) }
2717    }
2718}
2719
2720impl glib::HasParamSpec for NetworkProxyMode {
2721    type ParamSpec = glib::ParamSpecEnum;
2722    type SetValue = Self;
2723    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2724
2725    fn param_spec_builder() -> Self::BuilderFn {
2726        Self::ParamSpec::builder_with_default
2727    }
2728}
2729
2730impl glib::value::ValueType for NetworkProxyMode {
2731    type Type = Self;
2732}
2733
2734unsafe impl<'a> glib::value::FromValue<'a> for NetworkProxyMode {
2735    type Checker = glib::value::GenericValueTypeChecker<Self>;
2736
2737    #[inline]
2738    unsafe fn from_value(value: &'a glib::Value) -> Self {
2739        skip_assert_initialized!();
2740        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2741    }
2742}
2743
2744impl ToValue for NetworkProxyMode {
2745    #[inline]
2746    fn to_value(&self) -> glib::Value {
2747        let mut value = glib::Value::for_value_type::<Self>();
2748        unsafe {
2749            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2750        }
2751        value
2752    }
2753
2754    #[inline]
2755    fn value_type(&self) -> glib::Type {
2756        Self::static_type()
2757    }
2758}
2759
2760impl From<NetworkProxyMode> for glib::Value {
2761    #[inline]
2762    fn from(v: NetworkProxyMode) -> Self {
2763        skip_assert_initialized!();
2764        ToValue::to_value(&v)
2765    }
2766}
2767
2768/// Enum values representing query permission results.
2769#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2770#[non_exhaustive]
2771#[doc(alias = "WebKitPermissionState")]
2772pub enum PermissionState {
2773    /// Access to the feature is granted.
2774    #[doc(alias = "WEBKIT_PERMISSION_STATE_GRANTED")]
2775    Granted,
2776    /// Access to the feature is denied.
2777    #[doc(alias = "WEBKIT_PERMISSION_STATE_DENIED")]
2778    Denied,
2779    /// Access to the feature has to be requested via user prompt.
2780    #[doc(alias = "WEBKIT_PERMISSION_STATE_PROMPT")]
2781    Prompt,
2782    #[doc(hidden)]
2783    __Unknown(i32),
2784}
2785
2786#[doc(hidden)]
2787impl IntoGlib for PermissionState {
2788    type GlibType = ffi::WebKitPermissionState;
2789
2790    #[inline]
2791    fn into_glib(self) -> ffi::WebKitPermissionState {
2792        match self {
2793            Self::Granted => ffi::WEBKIT_PERMISSION_STATE_GRANTED,
2794            Self::Denied => ffi::WEBKIT_PERMISSION_STATE_DENIED,
2795            Self::Prompt => ffi::WEBKIT_PERMISSION_STATE_PROMPT,
2796            Self::__Unknown(value) => value,
2797        }
2798    }
2799}
2800
2801#[doc(hidden)]
2802impl FromGlib<ffi::WebKitPermissionState> for PermissionState {
2803    #[inline]
2804    unsafe fn from_glib(value: ffi::WebKitPermissionState) -> Self {
2805        skip_assert_initialized!();
2806
2807        match value {
2808            ffi::WEBKIT_PERMISSION_STATE_GRANTED => Self::Granted,
2809            ffi::WEBKIT_PERMISSION_STATE_DENIED => Self::Denied,
2810            ffi::WEBKIT_PERMISSION_STATE_PROMPT => Self::Prompt,
2811            value => Self::__Unknown(value),
2812        }
2813    }
2814}
2815
2816impl StaticType for PermissionState {
2817    #[inline]
2818    #[doc(alias = "webkit_permission_state_get_type")]
2819    fn static_type() -> glib::Type {
2820        unsafe { from_glib(ffi::webkit_permission_state_get_type()) }
2821    }
2822}
2823
2824impl glib::HasParamSpec for PermissionState {
2825    type ParamSpec = glib::ParamSpecEnum;
2826    type SetValue = Self;
2827    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2828
2829    fn param_spec_builder() -> Self::BuilderFn {
2830        Self::ParamSpec::builder_with_default
2831    }
2832}
2833
2834impl glib::value::ValueType for PermissionState {
2835    type Type = Self;
2836}
2837
2838unsafe impl<'a> glib::value::FromValue<'a> for PermissionState {
2839    type Checker = glib::value::GenericValueTypeChecker<Self>;
2840
2841    #[inline]
2842    unsafe fn from_value(value: &'a glib::Value) -> Self {
2843        skip_assert_initialized!();
2844        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2845    }
2846}
2847
2848impl ToValue for PermissionState {
2849    #[inline]
2850    fn to_value(&self) -> glib::Value {
2851        let mut value = glib::Value::for_value_type::<Self>();
2852        unsafe {
2853            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2854        }
2855        value
2856    }
2857
2858    #[inline]
2859    fn value_type(&self) -> glib::Type {
2860        Self::static_type()
2861    }
2862}
2863
2864impl From<PermissionState> for glib::Value {
2865    #[inline]
2866    fn from(v: PermissionState) -> Self {
2867        skip_assert_initialized!();
2868        ToValue::to_value(&v)
2869    }
2870}
2871
2872/// Enum values used for determining the type of a policy decision during
2873/// #WebKitWebView::decide-policy.
2874#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2875#[non_exhaustive]
2876#[doc(alias = "WebKitPolicyDecisionType")]
2877pub enum PolicyDecisionType {
2878    /// This type of policy decision
2879    ///   is requested when WebKit is about to navigate to a new page in either the
2880    ///   main frame or a subframe. Acceptable policy decisions are either
2881    ///   webkit_policy_decision_use() or webkit_policy_decision_ignore(). This
2882    ///   type of policy decision is always a #WebKitNavigationPolicyDecision.
2883    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION")]
2884    NavigationAction,
2885    /// This type of policy decision
2886    ///   is requested when WebKit is about to create a new window. Acceptable policy
2887    ///   decisions are either webkit_policy_decision_use() or
2888    ///   webkit_policy_decision_ignore(). This type of policy decision is always
2889    ///   a #WebKitNavigationPolicyDecision. These decisions are useful for implementing
2890    ///   special actions for new windows, such as forcing the new window to open
2891    ///   in a tab when a keyboard modifier is active or handling a special
2892    ///   target attribute on <a> elements.
2893    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION")]
2894    NewWindowAction,
2895    /// This type of decision is used when WebKit has
2896    ///   received a response for a network resource and is about to start the load.
2897    ///   Note that these resources include all subresources of a page such as images
2898    ///   and stylesheets as well as main documents. Appropriate policy responses to
2899    ///   this decision are webkit_policy_decision_use(), webkit_policy_decision_ignore(),
2900    ///   or webkit_policy_decision_download(). This type of policy decision is always
2901    ///   a #WebKitResponsePolicyDecision. This decision is useful for forcing
2902    ///   some types of resources to be downloaded rather than rendered in the WebView
2903    ///   or to block the transfer of resources entirely.
2904    #[doc(alias = "WEBKIT_POLICY_DECISION_TYPE_RESPONSE")]
2905    Response,
2906    #[doc(hidden)]
2907    __Unknown(i32),
2908}
2909
2910#[doc(hidden)]
2911impl IntoGlib for PolicyDecisionType {
2912    type GlibType = ffi::WebKitPolicyDecisionType;
2913
2914    #[inline]
2915    fn into_glib(self) -> ffi::WebKitPolicyDecisionType {
2916        match self {
2917            Self::NavigationAction => ffi::WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION,
2918            Self::NewWindowAction => ffi::WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION,
2919            Self::Response => ffi::WEBKIT_POLICY_DECISION_TYPE_RESPONSE,
2920            Self::__Unknown(value) => value,
2921        }
2922    }
2923}
2924
2925#[doc(hidden)]
2926impl FromGlib<ffi::WebKitPolicyDecisionType> for PolicyDecisionType {
2927    #[inline]
2928    unsafe fn from_glib(value: ffi::WebKitPolicyDecisionType) -> Self {
2929        skip_assert_initialized!();
2930
2931        match value {
2932            ffi::WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION => Self::NavigationAction,
2933            ffi::WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION => Self::NewWindowAction,
2934            ffi::WEBKIT_POLICY_DECISION_TYPE_RESPONSE => Self::Response,
2935            value => Self::__Unknown(value),
2936        }
2937    }
2938}
2939
2940impl StaticType for PolicyDecisionType {
2941    #[inline]
2942    #[doc(alias = "webkit_policy_decision_type_get_type")]
2943    fn static_type() -> glib::Type {
2944        unsafe { from_glib(ffi::webkit_policy_decision_type_get_type()) }
2945    }
2946}
2947
2948impl glib::HasParamSpec for PolicyDecisionType {
2949    type ParamSpec = glib::ParamSpecEnum;
2950    type SetValue = Self;
2951    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
2952
2953    fn param_spec_builder() -> Self::BuilderFn {
2954        Self::ParamSpec::builder_with_default
2955    }
2956}
2957
2958impl glib::value::ValueType for PolicyDecisionType {
2959    type Type = Self;
2960}
2961
2962unsafe impl<'a> glib::value::FromValue<'a> for PolicyDecisionType {
2963    type Checker = glib::value::GenericValueTypeChecker<Self>;
2964
2965    #[inline]
2966    unsafe fn from_value(value: &'a glib::Value) -> Self {
2967        skip_assert_initialized!();
2968        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2969    }
2970}
2971
2972impl ToValue for PolicyDecisionType {
2973    #[inline]
2974    fn to_value(&self) -> glib::Value {
2975        let mut value = glib::Value::for_value_type::<Self>();
2976        unsafe {
2977            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2978        }
2979        value
2980    }
2981
2982    #[inline]
2983    fn value_type(&self) -> glib::Type {
2984        Self::static_type()
2985    }
2986}
2987
2988impl From<PolicyDecisionType> for glib::Value {
2989    #[inline]
2990    fn from(v: PolicyDecisionType) -> Self {
2991        skip_assert_initialized!();
2992        ToValue::to_value(&v)
2993    }
2994}
2995
2996/// Enum values used to denote the various policy errors.
2997#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2998#[non_exhaustive]
2999#[doc(alias = "WebKitPolicyError")]
3000pub enum PolicyError {
3001    /// Generic load failure due to policy error
3002    #[doc(alias = "WEBKIT_POLICY_ERROR_FAILED")]
3003    Failed,
3004    /// Load failure due to unsupported mime type
3005    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE")]
3006    CannotShowMimeType,
3007    /// Load failure due to URI that can not be shown
3008    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI")]
3009    CannotShowUri,
3010    /// Load failure due to frame load interruption by policy change
3011    #[doc(alias = "WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE")]
3012    FrameLoadInterruptedByPolicyChange,
3013    /// Load failure due to port restriction
3014    #[doc(alias = "WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT")]
3015    CannotUseRestrictedPort,
3016    #[doc(hidden)]
3017    __Unknown(i32),
3018}
3019
3020impl PolicyError {
3021    #[doc(alias = "webkit_policy_error_quark")]
3022    pub fn quark() -> glib::Quark {
3023        assert_initialized_main_thread!();
3024        unsafe { from_glib(ffi::webkit_policy_error_quark()) }
3025    }
3026}
3027
3028#[doc(hidden)]
3029impl IntoGlib for PolicyError {
3030    type GlibType = ffi::WebKitPolicyError;
3031
3032    #[inline]
3033    fn into_glib(self) -> ffi::WebKitPolicyError {
3034        match self {
3035            Self::Failed => ffi::WEBKIT_POLICY_ERROR_FAILED,
3036            Self::CannotShowMimeType => ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE,
3037            Self::CannotShowUri => ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI,
3038            Self::FrameLoadInterruptedByPolicyChange => {
3039                ffi::WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE
3040            }
3041            Self::CannotUseRestrictedPort => ffi::WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT,
3042            Self::__Unknown(value) => value,
3043        }
3044    }
3045}
3046
3047#[doc(hidden)]
3048impl FromGlib<ffi::WebKitPolicyError> for PolicyError {
3049    #[inline]
3050    unsafe fn from_glib(value: ffi::WebKitPolicyError) -> Self {
3051        skip_assert_initialized!();
3052
3053        match value {
3054            ffi::WEBKIT_POLICY_ERROR_FAILED => Self::Failed,
3055            ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE => Self::CannotShowMimeType,
3056            ffi::WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI => Self::CannotShowUri,
3057            ffi::WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE => {
3058                Self::FrameLoadInterruptedByPolicyChange
3059            }
3060            ffi::WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT => Self::CannotUseRestrictedPort,
3061            value => Self::__Unknown(value),
3062        }
3063    }
3064}
3065
3066impl glib::error::ErrorDomain for PolicyError {
3067    #[inline]
3068    fn domain() -> glib::Quark {
3069        skip_assert_initialized!();
3070
3071        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3072        let quark = *QUARK.get_or_init(|| unsafe {
3073            glib::ffi::g_quark_from_static_string(b"WebKitPolicyError\0".as_ptr() as *const _)
3074        });
3075        unsafe { from_glib(quark) }
3076    }
3077
3078    #[inline]
3079    fn code(self) -> i32 {
3080        self.into_glib()
3081    }
3082
3083    #[inline]
3084    #[allow(clippy::match_single_binding)]
3085    fn from(code: i32) -> Option<Self> {
3086        skip_assert_initialized!();
3087        match unsafe { from_glib(code) } {
3088            Self::__Unknown(_) => Some(Self::Failed),
3089            value => Some(value),
3090        }
3091    }
3092}
3093
3094impl StaticType for PolicyError {
3095    #[inline]
3096    #[doc(alias = "webkit_policy_error_get_type")]
3097    fn static_type() -> glib::Type {
3098        unsafe { from_glib(ffi::webkit_policy_error_get_type()) }
3099    }
3100}
3101
3102impl glib::HasParamSpec for PolicyError {
3103    type ParamSpec = glib::ParamSpecEnum;
3104    type SetValue = Self;
3105    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3106
3107    fn param_spec_builder() -> Self::BuilderFn {
3108        Self::ParamSpec::builder_with_default
3109    }
3110}
3111
3112impl glib::value::ValueType for PolicyError {
3113    type Type = Self;
3114}
3115
3116unsafe impl<'a> glib::value::FromValue<'a> for PolicyError {
3117    type Checker = glib::value::GenericValueTypeChecker<Self>;
3118
3119    #[inline]
3120    unsafe fn from_value(value: &'a glib::Value) -> Self {
3121        skip_assert_initialized!();
3122        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3123    }
3124}
3125
3126impl ToValue for PolicyError {
3127    #[inline]
3128    fn to_value(&self) -> glib::Value {
3129        let mut value = glib::Value::for_value_type::<Self>();
3130        unsafe {
3131            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3132        }
3133        value
3134    }
3135
3136    #[inline]
3137    fn value_type(&self) -> glib::Type {
3138        Self::static_type()
3139    }
3140}
3141
3142impl From<PolicyError> for glib::Value {
3143    #[inline]
3144    fn from(v: PolicyError) -> Self {
3145        skip_assert_initialized!();
3146        ToValue::to_value(&v)
3147    }
3148}
3149
3150/// Enum values used to denote the various print errors.
3151#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3152#[non_exhaustive]
3153#[doc(alias = "WebKitPrintError")]
3154pub enum PrintError {
3155    /// Unspecified error during a print operation
3156    #[doc(alias = "WEBKIT_PRINT_ERROR_GENERAL")]
3157    General,
3158    /// Selected printer cannot be found
3159    #[doc(alias = "WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND")]
3160    PrinterNotFound,
3161    /// Invalid page range
3162    #[doc(alias = "WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE")]
3163    InvalidPageRange,
3164    #[doc(hidden)]
3165    __Unknown(i32),
3166}
3167
3168impl PrintError {
3169    #[doc(alias = "webkit_print_error_quark")]
3170    pub fn quark() -> glib::Quark {
3171        assert_initialized_main_thread!();
3172        unsafe { from_glib(ffi::webkit_print_error_quark()) }
3173    }
3174}
3175
3176#[doc(hidden)]
3177impl IntoGlib for PrintError {
3178    type GlibType = ffi::WebKitPrintError;
3179
3180    #[inline]
3181    fn into_glib(self) -> ffi::WebKitPrintError {
3182        match self {
3183            Self::General => ffi::WEBKIT_PRINT_ERROR_GENERAL,
3184            Self::PrinterNotFound => ffi::WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND,
3185            Self::InvalidPageRange => ffi::WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE,
3186            Self::__Unknown(value) => value,
3187        }
3188    }
3189}
3190
3191#[doc(hidden)]
3192impl FromGlib<ffi::WebKitPrintError> for PrintError {
3193    #[inline]
3194    unsafe fn from_glib(value: ffi::WebKitPrintError) -> Self {
3195        skip_assert_initialized!();
3196
3197        match value {
3198            ffi::WEBKIT_PRINT_ERROR_GENERAL => Self::General,
3199            ffi::WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND => Self::PrinterNotFound,
3200            ffi::WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE => Self::InvalidPageRange,
3201            value => Self::__Unknown(value),
3202        }
3203    }
3204}
3205
3206impl glib::error::ErrorDomain for PrintError {
3207    #[inline]
3208    fn domain() -> glib::Quark {
3209        skip_assert_initialized!();
3210
3211        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3212        let quark = *QUARK.get_or_init(|| unsafe {
3213            glib::ffi::g_quark_from_static_string(b"WebKitPrintError\0".as_ptr() as *const _)
3214        });
3215        unsafe { from_glib(quark) }
3216    }
3217
3218    #[inline]
3219    fn code(self) -> i32 {
3220        self.into_glib()
3221    }
3222
3223    #[inline]
3224    #[allow(clippy::match_single_binding)]
3225    fn from(code: i32) -> Option<Self> {
3226        skip_assert_initialized!();
3227        match unsafe { from_glib(code) } {
3228            value => Some(value),
3229        }
3230    }
3231}
3232
3233impl StaticType for PrintError {
3234    #[inline]
3235    #[doc(alias = "webkit_print_error_get_type")]
3236    fn static_type() -> glib::Type {
3237        unsafe { from_glib(ffi::webkit_print_error_get_type()) }
3238    }
3239}
3240
3241impl glib::HasParamSpec for PrintError {
3242    type ParamSpec = glib::ParamSpecEnum;
3243    type SetValue = Self;
3244    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3245
3246    fn param_spec_builder() -> Self::BuilderFn {
3247        Self::ParamSpec::builder_with_default
3248    }
3249}
3250
3251impl glib::value::ValueType for PrintError {
3252    type Type = Self;
3253}
3254
3255unsafe impl<'a> glib::value::FromValue<'a> for PrintError {
3256    type Checker = glib::value::GenericValueTypeChecker<Self>;
3257
3258    #[inline]
3259    unsafe fn from_value(value: &'a glib::Value) -> Self {
3260        skip_assert_initialized!();
3261        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3262    }
3263}
3264
3265impl ToValue for PrintError {
3266    #[inline]
3267    fn to_value(&self) -> glib::Value {
3268        let mut value = glib::Value::for_value_type::<Self>();
3269        unsafe {
3270            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3271        }
3272        value
3273    }
3274
3275    #[inline]
3276    fn value_type(&self) -> glib::Type {
3277        Self::static_type()
3278    }
3279}
3280
3281impl From<PrintError> for glib::Value {
3282    #[inline]
3283    fn from(v: PrintError) -> Self {
3284        skip_assert_initialized!();
3285        ToValue::to_value(&v)
3286    }
3287}
3288
3289/// Enum values representing the response of the print dialog shown with
3290/// webkit_print_operation_run_dialog().
3291#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3292#[non_exhaustive]
3293#[doc(alias = "WebKitPrintOperationResponse")]
3294pub enum PrintOperationResponse {
3295    /// Print button was clicked in print dialog
3296    #[doc(alias = "WEBKIT_PRINT_OPERATION_RESPONSE_PRINT")]
3297    Print,
3298    /// Print dialog was cancelled
3299    #[doc(alias = "WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL")]
3300    Cancel,
3301    #[doc(hidden)]
3302    __Unknown(i32),
3303}
3304
3305#[doc(hidden)]
3306impl IntoGlib for PrintOperationResponse {
3307    type GlibType = ffi::WebKitPrintOperationResponse;
3308
3309    #[inline]
3310    fn into_glib(self) -> ffi::WebKitPrintOperationResponse {
3311        match self {
3312            Self::Print => ffi::WEBKIT_PRINT_OPERATION_RESPONSE_PRINT,
3313            Self::Cancel => ffi::WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL,
3314            Self::__Unknown(value) => value,
3315        }
3316    }
3317}
3318
3319#[doc(hidden)]
3320impl FromGlib<ffi::WebKitPrintOperationResponse> for PrintOperationResponse {
3321    #[inline]
3322    unsafe fn from_glib(value: ffi::WebKitPrintOperationResponse) -> Self {
3323        skip_assert_initialized!();
3324
3325        match value {
3326            ffi::WEBKIT_PRINT_OPERATION_RESPONSE_PRINT => Self::Print,
3327            ffi::WEBKIT_PRINT_OPERATION_RESPONSE_CANCEL => Self::Cancel,
3328            value => Self::__Unknown(value),
3329        }
3330    }
3331}
3332
3333impl StaticType for PrintOperationResponse {
3334    #[inline]
3335    #[doc(alias = "webkit_print_operation_response_get_type")]
3336    fn static_type() -> glib::Type {
3337        unsafe { from_glib(ffi::webkit_print_operation_response_get_type()) }
3338    }
3339}
3340
3341impl glib::HasParamSpec for PrintOperationResponse {
3342    type ParamSpec = glib::ParamSpecEnum;
3343    type SetValue = Self;
3344    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3345
3346    fn param_spec_builder() -> Self::BuilderFn {
3347        Self::ParamSpec::builder_with_default
3348    }
3349}
3350
3351impl glib::value::ValueType for PrintOperationResponse {
3352    type Type = Self;
3353}
3354
3355unsafe impl<'a> glib::value::FromValue<'a> for PrintOperationResponse {
3356    type Checker = glib::value::GenericValueTypeChecker<Self>;
3357
3358    #[inline]
3359    unsafe fn from_value(value: &'a glib::Value) -> Self {
3360        skip_assert_initialized!();
3361        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3362    }
3363}
3364
3365impl ToValue for PrintOperationResponse {
3366    #[inline]
3367    fn to_value(&self) -> glib::Value {
3368        let mut value = glib::Value::for_value_type::<Self>();
3369        unsafe {
3370            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3371        }
3372        value
3373    }
3374
3375    #[inline]
3376    fn value_type(&self) -> glib::Type {
3377        Self::static_type()
3378    }
3379}
3380
3381impl From<PrintOperationResponse> for glib::Value {
3382    #[inline]
3383    fn from(v: PrintOperationResponse) -> Self {
3384        skip_assert_initialized!();
3385        ToValue::to_value(&v)
3386    }
3387}
3388
3389/// Enum values to specify the different ways in which a #WebKitWebView
3390/// can save its current web page into a self-contained file.
3391#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3392#[non_exhaustive]
3393#[doc(alias = "WebKitSaveMode")]
3394pub enum SaveMode {
3395    /// Save the current page using the MHTML format.
3396    #[doc(alias = "WEBKIT_SAVE_MODE_MHTML")]
3397    Mhtml,
3398    #[doc(hidden)]
3399    __Unknown(i32),
3400}
3401
3402#[doc(hidden)]
3403impl IntoGlib for SaveMode {
3404    type GlibType = ffi::WebKitSaveMode;
3405
3406    #[inline]
3407    fn into_glib(self) -> ffi::WebKitSaveMode {
3408        match self {
3409            Self::Mhtml => ffi::WEBKIT_SAVE_MODE_MHTML,
3410            Self::__Unknown(value) => value,
3411        }
3412    }
3413}
3414
3415#[doc(hidden)]
3416impl FromGlib<ffi::WebKitSaveMode> for SaveMode {
3417    #[inline]
3418    unsafe fn from_glib(value: ffi::WebKitSaveMode) -> Self {
3419        skip_assert_initialized!();
3420
3421        match value {
3422            ffi::WEBKIT_SAVE_MODE_MHTML => Self::Mhtml,
3423            value => Self::__Unknown(value),
3424        }
3425    }
3426}
3427
3428impl StaticType for SaveMode {
3429    #[inline]
3430    #[doc(alias = "webkit_save_mode_get_type")]
3431    fn static_type() -> glib::Type {
3432        unsafe { from_glib(ffi::webkit_save_mode_get_type()) }
3433    }
3434}
3435
3436impl glib::HasParamSpec for SaveMode {
3437    type ParamSpec = glib::ParamSpecEnum;
3438    type SetValue = Self;
3439    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3440
3441    fn param_spec_builder() -> Self::BuilderFn {
3442        Self::ParamSpec::builder_with_default
3443    }
3444}
3445
3446impl glib::value::ValueType for SaveMode {
3447    type Type = Self;
3448}
3449
3450unsafe impl<'a> glib::value::FromValue<'a> for SaveMode {
3451    type Checker = glib::value::GenericValueTypeChecker<Self>;
3452
3453    #[inline]
3454    unsafe fn from_value(value: &'a glib::Value) -> Self {
3455        skip_assert_initialized!();
3456        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3457    }
3458}
3459
3460impl ToValue for SaveMode {
3461    #[inline]
3462    fn to_value(&self) -> glib::Value {
3463        let mut value = glib::Value::for_value_type::<Self>();
3464        unsafe {
3465            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3466        }
3467        value
3468    }
3469
3470    #[inline]
3471    fn value_type(&self) -> glib::Type {
3472        Self::static_type()
3473    }
3474}
3475
3476impl From<SaveMode> for glib::Value {
3477    #[inline]
3478    fn from(v: SaveMode) -> Self {
3479        skip_assert_initialized!();
3480        ToValue::to_value(&v)
3481    }
3482}
3483
3484/// Enum values used for determining the type of #WebKitScriptDialog
3485#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3486#[non_exhaustive]
3487#[doc(alias = "WebKitScriptDialogType")]
3488pub enum ScriptDialogType {
3489    /// Alert script dialog, used to show a
3490    /// message to the user.
3491    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_ALERT")]
3492    Alert,
3493    /// Confirm script dialog, used to ask
3494    /// confirmation to the user.
3495    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_CONFIRM")]
3496    Confirm,
3497    /// Prompt script dialog, used to ask
3498    /// information to the user.
3499    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_PROMPT")]
3500    Prompt,
3501    /// Before unload confirm dialog,
3502    /// used to ask confirmation to leave the current page to the user. Since 2.12
3503    #[doc(alias = "WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM")]
3504    BeforeUnloadConfirm,
3505    #[doc(hidden)]
3506    __Unknown(i32),
3507}
3508
3509#[doc(hidden)]
3510impl IntoGlib for ScriptDialogType {
3511    type GlibType = ffi::WebKitScriptDialogType;
3512
3513    #[inline]
3514    fn into_glib(self) -> ffi::WebKitScriptDialogType {
3515        match self {
3516            Self::Alert => ffi::WEBKIT_SCRIPT_DIALOG_ALERT,
3517            Self::Confirm => ffi::WEBKIT_SCRIPT_DIALOG_CONFIRM,
3518            Self::Prompt => ffi::WEBKIT_SCRIPT_DIALOG_PROMPT,
3519            Self::BeforeUnloadConfirm => ffi::WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM,
3520            Self::__Unknown(value) => value,
3521        }
3522    }
3523}
3524
3525#[doc(hidden)]
3526impl FromGlib<ffi::WebKitScriptDialogType> for ScriptDialogType {
3527    #[inline]
3528    unsafe fn from_glib(value: ffi::WebKitScriptDialogType) -> Self {
3529        skip_assert_initialized!();
3530
3531        match value {
3532            ffi::WEBKIT_SCRIPT_DIALOG_ALERT => Self::Alert,
3533            ffi::WEBKIT_SCRIPT_DIALOG_CONFIRM => Self::Confirm,
3534            ffi::WEBKIT_SCRIPT_DIALOG_PROMPT => Self::Prompt,
3535            ffi::WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM => Self::BeforeUnloadConfirm,
3536            value => Self::__Unknown(value),
3537        }
3538    }
3539}
3540
3541impl StaticType for ScriptDialogType {
3542    #[inline]
3543    #[doc(alias = "webkit_script_dialog_type_get_type")]
3544    fn static_type() -> glib::Type {
3545        unsafe { from_glib(ffi::webkit_script_dialog_type_get_type()) }
3546    }
3547}
3548
3549impl glib::HasParamSpec for ScriptDialogType {
3550    type ParamSpec = glib::ParamSpecEnum;
3551    type SetValue = Self;
3552    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3553
3554    fn param_spec_builder() -> Self::BuilderFn {
3555        Self::ParamSpec::builder_with_default
3556    }
3557}
3558
3559impl glib::value::ValueType for ScriptDialogType {
3560    type Type = Self;
3561}
3562
3563unsafe impl<'a> glib::value::FromValue<'a> for ScriptDialogType {
3564    type Checker = glib::value::GenericValueTypeChecker<Self>;
3565
3566    #[inline]
3567    unsafe fn from_value(value: &'a glib::Value) -> Self {
3568        skip_assert_initialized!();
3569        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3570    }
3571}
3572
3573impl ToValue for ScriptDialogType {
3574    #[inline]
3575    fn to_value(&self) -> glib::Value {
3576        let mut value = glib::Value::for_value_type::<Self>();
3577        unsafe {
3578            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3579        }
3580        value
3581    }
3582
3583    #[inline]
3584    fn value_type(&self) -> glib::Type {
3585        Self::static_type()
3586    }
3587}
3588
3589impl From<ScriptDialogType> for glib::Value {
3590    #[inline]
3591    fn from(v: ScriptDialogType) -> Self {
3592        skip_assert_initialized!();
3593        ToValue::to_value(&v)
3594    }
3595}
3596
3597/// Enum values used to denote errors happening when creating snapshots of #WebKitWebView
3598#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3599#[non_exhaustive]
3600#[doc(alias = "WebKitSnapshotError")]
3601pub enum SnapshotError {
3602    /// An error occurred when creating a webpage snapshot.
3603    #[doc(alias = "WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE")]
3604    Create,
3605    #[doc(hidden)]
3606    __Unknown(i32),
3607}
3608
3609impl SnapshotError {
3610    #[doc(alias = "webkit_snapshot_error_quark")]
3611    pub fn quark() -> glib::Quark {
3612        assert_initialized_main_thread!();
3613        unsafe { from_glib(ffi::webkit_snapshot_error_quark()) }
3614    }
3615}
3616
3617#[doc(hidden)]
3618impl IntoGlib for SnapshotError {
3619    type GlibType = ffi::WebKitSnapshotError;
3620
3621    #[inline]
3622    fn into_glib(self) -> ffi::WebKitSnapshotError {
3623        match self {
3624            Self::Create => ffi::WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE,
3625            Self::__Unknown(value) => value,
3626        }
3627    }
3628}
3629
3630#[doc(hidden)]
3631impl FromGlib<ffi::WebKitSnapshotError> for SnapshotError {
3632    #[inline]
3633    unsafe fn from_glib(value: ffi::WebKitSnapshotError) -> Self {
3634        skip_assert_initialized!();
3635
3636        match value {
3637            ffi::WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE => Self::Create,
3638            value => Self::__Unknown(value),
3639        }
3640    }
3641}
3642
3643impl glib::error::ErrorDomain for SnapshotError {
3644    #[inline]
3645    fn domain() -> glib::Quark {
3646        skip_assert_initialized!();
3647
3648        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3649        let quark = *QUARK.get_or_init(|| unsafe {
3650            glib::ffi::g_quark_from_static_string(b"WebKitSnapshotError\0".as_ptr() as *const _)
3651        });
3652        unsafe { from_glib(quark) }
3653    }
3654
3655    #[inline]
3656    fn code(self) -> i32 {
3657        self.into_glib()
3658    }
3659
3660    #[inline]
3661    #[allow(clippy::match_single_binding)]
3662    fn from(code: i32) -> Option<Self> {
3663        skip_assert_initialized!();
3664        match unsafe { from_glib(code) } {
3665            value => Some(value),
3666        }
3667    }
3668}
3669
3670impl StaticType for SnapshotError {
3671    #[inline]
3672    #[doc(alias = "webkit_snapshot_error_get_type")]
3673    fn static_type() -> glib::Type {
3674        unsafe { from_glib(ffi::webkit_snapshot_error_get_type()) }
3675    }
3676}
3677
3678impl glib::HasParamSpec for SnapshotError {
3679    type ParamSpec = glib::ParamSpecEnum;
3680    type SetValue = Self;
3681    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3682
3683    fn param_spec_builder() -> Self::BuilderFn {
3684        Self::ParamSpec::builder_with_default
3685    }
3686}
3687
3688impl glib::value::ValueType for SnapshotError {
3689    type Type = Self;
3690}
3691
3692unsafe impl<'a> glib::value::FromValue<'a> for SnapshotError {
3693    type Checker = glib::value::GenericValueTypeChecker<Self>;
3694
3695    #[inline]
3696    unsafe fn from_value(value: &'a glib::Value) -> Self {
3697        skip_assert_initialized!();
3698        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3699    }
3700}
3701
3702impl ToValue for SnapshotError {
3703    #[inline]
3704    fn to_value(&self) -> glib::Value {
3705        let mut value = glib::Value::for_value_type::<Self>();
3706        unsafe {
3707            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3708        }
3709        value
3710    }
3711
3712    #[inline]
3713    fn value_type(&self) -> glib::Type {
3714        Self::static_type()
3715    }
3716}
3717
3718impl From<SnapshotError> for glib::Value {
3719    #[inline]
3720    fn from(v: SnapshotError) -> Self {
3721        skip_assert_initialized!();
3722        ToValue::to_value(&v)
3723    }
3724}
3725
3726/// Enum values used to specify the region from which to get a #WebKitWebView
3727/// snapshot
3728#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3729#[non_exhaustive]
3730#[doc(alias = "WebKitSnapshotRegion")]
3731pub enum SnapshotRegion {
3732    /// Specifies a snapshot only for the area that is
3733    /// visible in the webview
3734    #[doc(alias = "WEBKIT_SNAPSHOT_REGION_VISIBLE")]
3735    Visible,
3736    /// A snapshot of the entire document.
3737    #[doc(alias = "WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT")]
3738    FullDocument,
3739    #[doc(hidden)]
3740    __Unknown(i32),
3741}
3742
3743#[doc(hidden)]
3744impl IntoGlib for SnapshotRegion {
3745    type GlibType = ffi::WebKitSnapshotRegion;
3746
3747    #[inline]
3748    fn into_glib(self) -> ffi::WebKitSnapshotRegion {
3749        match self {
3750            Self::Visible => ffi::WEBKIT_SNAPSHOT_REGION_VISIBLE,
3751            Self::FullDocument => ffi::WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT,
3752            Self::__Unknown(value) => value,
3753        }
3754    }
3755}
3756
3757#[doc(hidden)]
3758impl FromGlib<ffi::WebKitSnapshotRegion> for SnapshotRegion {
3759    #[inline]
3760    unsafe fn from_glib(value: ffi::WebKitSnapshotRegion) -> Self {
3761        skip_assert_initialized!();
3762
3763        match value {
3764            ffi::WEBKIT_SNAPSHOT_REGION_VISIBLE => Self::Visible,
3765            ffi::WEBKIT_SNAPSHOT_REGION_FULL_DOCUMENT => Self::FullDocument,
3766            value => Self::__Unknown(value),
3767        }
3768    }
3769}
3770
3771impl StaticType for SnapshotRegion {
3772    #[inline]
3773    #[doc(alias = "webkit_snapshot_region_get_type")]
3774    fn static_type() -> glib::Type {
3775        unsafe { from_glib(ffi::webkit_snapshot_region_get_type()) }
3776    }
3777}
3778
3779impl glib::HasParamSpec for SnapshotRegion {
3780    type ParamSpec = glib::ParamSpecEnum;
3781    type SetValue = Self;
3782    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3783
3784    fn param_spec_builder() -> Self::BuilderFn {
3785        Self::ParamSpec::builder_with_default
3786    }
3787}
3788
3789impl glib::value::ValueType for SnapshotRegion {
3790    type Type = Self;
3791}
3792
3793unsafe impl<'a> glib::value::FromValue<'a> for SnapshotRegion {
3794    type Checker = glib::value::GenericValueTypeChecker<Self>;
3795
3796    #[inline]
3797    unsafe fn from_value(value: &'a glib::Value) -> Self {
3798        skip_assert_initialized!();
3799        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3800    }
3801}
3802
3803impl ToValue for SnapshotRegion {
3804    #[inline]
3805    fn to_value(&self) -> glib::Value {
3806        let mut value = glib::Value::for_value_type::<Self>();
3807        unsafe {
3808            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3809        }
3810        value
3811    }
3812
3813    #[inline]
3814    fn value_type(&self) -> glib::Type {
3815        Self::static_type()
3816    }
3817}
3818
3819impl From<SnapshotRegion> for glib::Value {
3820    #[inline]
3821    fn from(v: SnapshotRegion) -> Self {
3822        skip_assert_initialized!();
3823        ToValue::to_value(&v)
3824    }
3825}
3826
3827/// Enum values used to denote the TLS errors policy.
3828#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3829#[non_exhaustive]
3830#[doc(alias = "WebKitTLSErrorsPolicy")]
3831pub enum TLSErrorsPolicy {
3832    /// Ignore TLS errors.
3833    #[doc(alias = "WEBKIT_TLS_ERRORS_POLICY_IGNORE")]
3834    Ignore,
3835    /// TLS errors will emit
3836    ///   #WebKitWebView::load-failed-with-tls-errors and, if the signal is handled,
3837    ///   finish the load. In case the signal is not handled,
3838    ///   #WebKitWebView::load-failed is emitted before the load finishes.
3839    #[doc(alias = "WEBKIT_TLS_ERRORS_POLICY_FAIL")]
3840    Fail,
3841    #[doc(hidden)]
3842    __Unknown(i32),
3843}
3844
3845#[doc(hidden)]
3846impl IntoGlib for TLSErrorsPolicy {
3847    type GlibType = ffi::WebKitTLSErrorsPolicy;
3848
3849    #[inline]
3850    fn into_glib(self) -> ffi::WebKitTLSErrorsPolicy {
3851        match self {
3852            Self::Ignore => ffi::WEBKIT_TLS_ERRORS_POLICY_IGNORE,
3853            Self::Fail => ffi::WEBKIT_TLS_ERRORS_POLICY_FAIL,
3854            Self::__Unknown(value) => value,
3855        }
3856    }
3857}
3858
3859#[doc(hidden)]
3860impl FromGlib<ffi::WebKitTLSErrorsPolicy> for TLSErrorsPolicy {
3861    #[inline]
3862    unsafe fn from_glib(value: ffi::WebKitTLSErrorsPolicy) -> Self {
3863        skip_assert_initialized!();
3864
3865        match value {
3866            ffi::WEBKIT_TLS_ERRORS_POLICY_IGNORE => Self::Ignore,
3867            ffi::WEBKIT_TLS_ERRORS_POLICY_FAIL => Self::Fail,
3868            value => Self::__Unknown(value),
3869        }
3870    }
3871}
3872
3873impl StaticType for TLSErrorsPolicy {
3874    #[inline]
3875    #[doc(alias = "webkit_tls_errors_policy_get_type")]
3876    fn static_type() -> glib::Type {
3877        unsafe { from_glib(ffi::webkit_tls_errors_policy_get_type()) }
3878    }
3879}
3880
3881impl glib::HasParamSpec for TLSErrorsPolicy {
3882    type ParamSpec = glib::ParamSpecEnum;
3883    type SetValue = Self;
3884    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
3885
3886    fn param_spec_builder() -> Self::BuilderFn {
3887        Self::ParamSpec::builder_with_default
3888    }
3889}
3890
3891impl glib::value::ValueType for TLSErrorsPolicy {
3892    type Type = Self;
3893}
3894
3895unsafe impl<'a> glib::value::FromValue<'a> for TLSErrorsPolicy {
3896    type Checker = glib::value::GenericValueTypeChecker<Self>;
3897
3898    #[inline]
3899    unsafe fn from_value(value: &'a glib::Value) -> Self {
3900        skip_assert_initialized!();
3901        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
3902    }
3903}
3904
3905impl ToValue for TLSErrorsPolicy {
3906    #[inline]
3907    fn to_value(&self) -> glib::Value {
3908        let mut value = glib::Value::for_value_type::<Self>();
3909        unsafe {
3910            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
3911        }
3912        value
3913    }
3914
3915    #[inline]
3916    fn value_type(&self) -> glib::Type {
3917        Self::static_type()
3918    }
3919}
3920
3921impl From<TLSErrorsPolicy> for glib::Value {
3922    #[inline]
3923    fn from(v: TLSErrorsPolicy) -> Self {
3924        skip_assert_initialized!();
3925        ToValue::to_value(&v)
3926    }
3927}
3928
3929/// Errors that can occur while compiling content filters.
3930#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
3931#[non_exhaustive]
3932#[doc(alias = "WebKitUserContentFilterError")]
3933pub enum UserContentFilterError {
3934    /// The JSON source for a content filter is invalid.
3935    #[doc(alias = "WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE")]
3936    InvalidSource,
3937    /// The requested content filter could not be found.
3938    #[doc(alias = "WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND")]
3939    NotFound,
3940    #[doc(hidden)]
3941    __Unknown(i32),
3942}
3943
3944impl UserContentFilterError {
3945    #[doc(alias = "webkit_user_content_filter_error_quark")]
3946    pub fn quark() -> glib::Quark {
3947        assert_initialized_main_thread!();
3948        unsafe { from_glib(ffi::webkit_user_content_filter_error_quark()) }
3949    }
3950}
3951
3952#[doc(hidden)]
3953impl IntoGlib for UserContentFilterError {
3954    type GlibType = ffi::WebKitUserContentFilterError;
3955
3956    #[inline]
3957    fn into_glib(self) -> ffi::WebKitUserContentFilterError {
3958        match self {
3959            Self::InvalidSource => ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE,
3960            Self::NotFound => ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND,
3961            Self::__Unknown(value) => value,
3962        }
3963    }
3964}
3965
3966#[doc(hidden)]
3967impl FromGlib<ffi::WebKitUserContentFilterError> for UserContentFilterError {
3968    #[inline]
3969    unsafe fn from_glib(value: ffi::WebKitUserContentFilterError) -> Self {
3970        skip_assert_initialized!();
3971
3972        match value {
3973            ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE => Self::InvalidSource,
3974            ffi::WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND => Self::NotFound,
3975            value => Self::__Unknown(value),
3976        }
3977    }
3978}
3979
3980impl glib::error::ErrorDomain for UserContentFilterError {
3981    #[inline]
3982    fn domain() -> glib::Quark {
3983        skip_assert_initialized!();
3984
3985        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
3986        let quark = *QUARK.get_or_init(|| unsafe {
3987            glib::ffi::g_quark_from_static_string(
3988                b"WebKitUserContentFilterError\0".as_ptr() as *const _
3989            )
3990        });
3991        unsafe { from_glib(quark) }
3992    }
3993
3994    #[inline]
3995    fn code(self) -> i32 {
3996        self.into_glib()
3997    }
3998
3999    #[inline]
4000    #[allow(clippy::match_single_binding)]
4001    fn from(code: i32) -> Option<Self> {
4002        skip_assert_initialized!();
4003        match unsafe { from_glib(code) } {
4004            value => Some(value),
4005        }
4006    }
4007}
4008
4009impl StaticType for UserContentFilterError {
4010    #[inline]
4011    #[doc(alias = "webkit_user_content_filter_error_get_type")]
4012    fn static_type() -> glib::Type {
4013        unsafe { from_glib(ffi::webkit_user_content_filter_error_get_type()) }
4014    }
4015}
4016
4017impl glib::HasParamSpec for UserContentFilterError {
4018    type ParamSpec = glib::ParamSpecEnum;
4019    type SetValue = Self;
4020    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4021
4022    fn param_spec_builder() -> Self::BuilderFn {
4023        Self::ParamSpec::builder_with_default
4024    }
4025}
4026
4027impl glib::value::ValueType for UserContentFilterError {
4028    type Type = Self;
4029}
4030
4031unsafe impl<'a> glib::value::FromValue<'a> for UserContentFilterError {
4032    type Checker = glib::value::GenericValueTypeChecker<Self>;
4033
4034    #[inline]
4035    unsafe fn from_value(value: &'a glib::Value) -> Self {
4036        skip_assert_initialized!();
4037        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4038    }
4039}
4040
4041impl ToValue for UserContentFilterError {
4042    #[inline]
4043    fn to_value(&self) -> glib::Value {
4044        let mut value = glib::Value::for_value_type::<Self>();
4045        unsafe {
4046            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4047        }
4048        value
4049    }
4050
4051    #[inline]
4052    fn value_type(&self) -> glib::Type {
4053        Self::static_type()
4054    }
4055}
4056
4057impl From<UserContentFilterError> for glib::Value {
4058    #[inline]
4059    fn from(v: UserContentFilterError) -> Self {
4060        skip_assert_initialized!();
4061        ToValue::to_value(&v)
4062    }
4063}
4064
4065/// Specifies in which frames user style sheets are to be inserted in.
4066#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4067#[non_exhaustive]
4068#[doc(alias = "WebKitUserContentInjectedFrames")]
4069pub enum UserContentInjectedFrames {
4070    /// Insert the user style
4071    ///   sheet in all the frames loaded by the web view, including
4072    ///   nested frames. This is the default.
4073    #[doc(alias = "WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES")]
4074    AllFrames,
4075    /// Insert the user style
4076    ///   sheet *only* in the top-level frame loaded by the web view,
4077    ///   and *not* in the nested frames.
4078    #[doc(alias = "WEBKIT_USER_CONTENT_INJECT_TOP_FRAME")]
4079    TopFrame,
4080    #[doc(hidden)]
4081    __Unknown(i32),
4082}
4083
4084#[doc(hidden)]
4085impl IntoGlib for UserContentInjectedFrames {
4086    type GlibType = ffi::WebKitUserContentInjectedFrames;
4087
4088    #[inline]
4089    fn into_glib(self) -> ffi::WebKitUserContentInjectedFrames {
4090        match self {
4091            Self::AllFrames => ffi::WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
4092            Self::TopFrame => ffi::WEBKIT_USER_CONTENT_INJECT_TOP_FRAME,
4093            Self::__Unknown(value) => value,
4094        }
4095    }
4096}
4097
4098#[doc(hidden)]
4099impl FromGlib<ffi::WebKitUserContentInjectedFrames> for UserContentInjectedFrames {
4100    #[inline]
4101    unsafe fn from_glib(value: ffi::WebKitUserContentInjectedFrames) -> Self {
4102        skip_assert_initialized!();
4103
4104        match value {
4105            ffi::WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES => Self::AllFrames,
4106            ffi::WEBKIT_USER_CONTENT_INJECT_TOP_FRAME => Self::TopFrame,
4107            value => Self::__Unknown(value),
4108        }
4109    }
4110}
4111
4112impl StaticType for UserContentInjectedFrames {
4113    #[inline]
4114    #[doc(alias = "webkit_user_content_injected_frames_get_type")]
4115    fn static_type() -> glib::Type {
4116        unsafe { from_glib(ffi::webkit_user_content_injected_frames_get_type()) }
4117    }
4118}
4119
4120impl glib::HasParamSpec for UserContentInjectedFrames {
4121    type ParamSpec = glib::ParamSpecEnum;
4122    type SetValue = Self;
4123    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4124
4125    fn param_spec_builder() -> Self::BuilderFn {
4126        Self::ParamSpec::builder_with_default
4127    }
4128}
4129
4130impl glib::value::ValueType for UserContentInjectedFrames {
4131    type Type = Self;
4132}
4133
4134unsafe impl<'a> glib::value::FromValue<'a> for UserContentInjectedFrames {
4135    type Checker = glib::value::GenericValueTypeChecker<Self>;
4136
4137    #[inline]
4138    unsafe fn from_value(value: &'a glib::Value) -> Self {
4139        skip_assert_initialized!();
4140        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4141    }
4142}
4143
4144impl ToValue for UserContentInjectedFrames {
4145    #[inline]
4146    fn to_value(&self) -> glib::Value {
4147        let mut value = glib::Value::for_value_type::<Self>();
4148        unsafe {
4149            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4150        }
4151        value
4152    }
4153
4154    #[inline]
4155    fn value_type(&self) -> glib::Type {
4156        Self::static_type()
4157    }
4158}
4159
4160impl From<UserContentInjectedFrames> for glib::Value {
4161    #[inline]
4162    fn from(v: UserContentInjectedFrames) -> Self {
4163        skip_assert_initialized!();
4164        ToValue::to_value(&v)
4165    }
4166}
4167
4168/// Enum values used to denote errors happening when sending user messages.
4169#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4170#[non_exhaustive]
4171#[doc(alias = "WebKitUserMessageError")]
4172pub enum UserMessageError {
4173    /// The message was not handled by the receiver.
4174    #[doc(alias = "WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE")]
4175    Message,
4176    #[doc(hidden)]
4177    __Unknown(i32),
4178}
4179
4180impl UserMessageError {
4181    #[doc(alias = "webkit_user_message_error_quark")]
4182    pub fn quark() -> glib::Quark {
4183        assert_initialized_main_thread!();
4184        unsafe { from_glib(ffi::webkit_user_message_error_quark()) }
4185    }
4186}
4187
4188#[doc(hidden)]
4189impl IntoGlib for UserMessageError {
4190    type GlibType = ffi::WebKitUserMessageError;
4191
4192    #[inline]
4193    fn into_glib(self) -> ffi::WebKitUserMessageError {
4194        match self {
4195            Self::Message => ffi::WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE,
4196            Self::__Unknown(value) => value,
4197        }
4198    }
4199}
4200
4201#[doc(hidden)]
4202impl FromGlib<ffi::WebKitUserMessageError> for UserMessageError {
4203    #[inline]
4204    unsafe fn from_glib(value: ffi::WebKitUserMessageError) -> Self {
4205        skip_assert_initialized!();
4206
4207        match value {
4208            ffi::WEBKIT_USER_MESSAGE_UNHANDLED_MESSAGE => Self::Message,
4209            value => Self::__Unknown(value),
4210        }
4211    }
4212}
4213
4214impl glib::error::ErrorDomain for UserMessageError {
4215    #[inline]
4216    fn domain() -> glib::Quark {
4217        skip_assert_initialized!();
4218
4219        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
4220        let quark = *QUARK.get_or_init(|| unsafe {
4221            glib::ffi::g_quark_from_static_string(b"WebKitUserMessageError\0".as_ptr() as *const _)
4222        });
4223        unsafe { from_glib(quark) }
4224    }
4225
4226    #[inline]
4227    fn code(self) -> i32 {
4228        self.into_glib()
4229    }
4230
4231    #[inline]
4232    #[allow(clippy::match_single_binding)]
4233    fn from(code: i32) -> Option<Self> {
4234        skip_assert_initialized!();
4235        match unsafe { from_glib(code) } {
4236            value => Some(value),
4237        }
4238    }
4239}
4240
4241impl StaticType for UserMessageError {
4242    #[inline]
4243    #[doc(alias = "webkit_user_message_error_get_type")]
4244    fn static_type() -> glib::Type {
4245        unsafe { from_glib(ffi::webkit_user_message_error_get_type()) }
4246    }
4247}
4248
4249impl glib::HasParamSpec for UserMessageError {
4250    type ParamSpec = glib::ParamSpecEnum;
4251    type SetValue = Self;
4252    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4253
4254    fn param_spec_builder() -> Self::BuilderFn {
4255        Self::ParamSpec::builder_with_default
4256    }
4257}
4258
4259impl glib::value::ValueType for UserMessageError {
4260    type Type = Self;
4261}
4262
4263unsafe impl<'a> glib::value::FromValue<'a> for UserMessageError {
4264    type Checker = glib::value::GenericValueTypeChecker<Self>;
4265
4266    #[inline]
4267    unsafe fn from_value(value: &'a glib::Value) -> Self {
4268        skip_assert_initialized!();
4269        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4270    }
4271}
4272
4273impl ToValue for UserMessageError {
4274    #[inline]
4275    fn to_value(&self) -> glib::Value {
4276        let mut value = glib::Value::for_value_type::<Self>();
4277        unsafe {
4278            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4279        }
4280        value
4281    }
4282
4283    #[inline]
4284    fn value_type(&self) -> glib::Type {
4285        Self::static_type()
4286    }
4287}
4288
4289impl From<UserMessageError> for glib::Value {
4290    #[inline]
4291    fn from(v: UserMessageError) -> Self {
4292        skip_assert_initialized!();
4293        ToValue::to_value(&v)
4294    }
4295}
4296
4297/// Specifies at which place of documents an user script will be inserted.
4298#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4299#[non_exhaustive]
4300#[doc(alias = "WebKitUserScriptInjectionTime")]
4301pub enum UserScriptInjectionTime {
4302    /// Insert the code of the user
4303    ///   script at the beginning of loaded documents. This is the default.
4304    #[doc(alias = "WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START")]
4305    Start,
4306    /// Insert the code of the user
4307    ///   script at the end of the loaded documents.
4308    #[doc(alias = "WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END")]
4309    End,
4310    #[doc(hidden)]
4311    __Unknown(i32),
4312}
4313
4314#[doc(hidden)]
4315impl IntoGlib for UserScriptInjectionTime {
4316    type GlibType = ffi::WebKitUserScriptInjectionTime;
4317
4318    #[inline]
4319    fn into_glib(self) -> ffi::WebKitUserScriptInjectionTime {
4320        match self {
4321            Self::Start => ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START,
4322            Self::End => ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END,
4323            Self::__Unknown(value) => value,
4324        }
4325    }
4326}
4327
4328#[doc(hidden)]
4329impl FromGlib<ffi::WebKitUserScriptInjectionTime> for UserScriptInjectionTime {
4330    #[inline]
4331    unsafe fn from_glib(value: ffi::WebKitUserScriptInjectionTime) -> Self {
4332        skip_assert_initialized!();
4333
4334        match value {
4335            ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START => Self::Start,
4336            ffi::WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END => Self::End,
4337            value => Self::__Unknown(value),
4338        }
4339    }
4340}
4341
4342impl StaticType for UserScriptInjectionTime {
4343    #[inline]
4344    #[doc(alias = "webkit_user_script_injection_time_get_type")]
4345    fn static_type() -> glib::Type {
4346        unsafe { from_glib(ffi::webkit_user_script_injection_time_get_type()) }
4347    }
4348}
4349
4350impl glib::HasParamSpec for UserScriptInjectionTime {
4351    type ParamSpec = glib::ParamSpecEnum;
4352    type SetValue = Self;
4353    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4354
4355    fn param_spec_builder() -> Self::BuilderFn {
4356        Self::ParamSpec::builder_with_default
4357    }
4358}
4359
4360impl glib::value::ValueType for UserScriptInjectionTime {
4361    type Type = Self;
4362}
4363
4364unsafe impl<'a> glib::value::FromValue<'a> for UserScriptInjectionTime {
4365    type Checker = glib::value::GenericValueTypeChecker<Self>;
4366
4367    #[inline]
4368    unsafe fn from_value(value: &'a glib::Value) -> Self {
4369        skip_assert_initialized!();
4370        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4371    }
4372}
4373
4374impl ToValue for UserScriptInjectionTime {
4375    #[inline]
4376    fn to_value(&self) -> glib::Value {
4377        let mut value = glib::Value::for_value_type::<Self>();
4378        unsafe {
4379            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4380        }
4381        value
4382    }
4383
4384    #[inline]
4385    fn value_type(&self) -> glib::Type {
4386        Self::static_type()
4387    }
4388}
4389
4390impl From<UserScriptInjectionTime> for glib::Value {
4391    #[inline]
4392    fn from(v: UserScriptInjectionTime) -> Self {
4393        skip_assert_initialized!();
4394        ToValue::to_value(&v)
4395    }
4396}
4397
4398/// Specifies how to treat an user style sheet.
4399#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4400#[non_exhaustive]
4401#[doc(alias = "WebKitUserStyleLevel")]
4402pub enum UserStyleLevel {
4403    /// The style sheet is an user style sheet,
4404    ///   its contents always override other style sheets. This is the default.
4405    #[doc(alias = "WEBKIT_USER_STYLE_LEVEL_USER")]
4406    User,
4407    /// The style sheet will be treated as if
4408    ///   it was provided by the loaded documents. That means other user style
4409    ///   sheets may still override it.
4410    #[doc(alias = "WEBKIT_USER_STYLE_LEVEL_AUTHOR")]
4411    Author,
4412    #[doc(hidden)]
4413    __Unknown(i32),
4414}
4415
4416#[doc(hidden)]
4417impl IntoGlib for UserStyleLevel {
4418    type GlibType = ffi::WebKitUserStyleLevel;
4419
4420    #[inline]
4421    fn into_glib(self) -> ffi::WebKitUserStyleLevel {
4422        match self {
4423            Self::User => ffi::WEBKIT_USER_STYLE_LEVEL_USER,
4424            Self::Author => ffi::WEBKIT_USER_STYLE_LEVEL_AUTHOR,
4425            Self::__Unknown(value) => value,
4426        }
4427    }
4428}
4429
4430#[doc(hidden)]
4431impl FromGlib<ffi::WebKitUserStyleLevel> for UserStyleLevel {
4432    #[inline]
4433    unsafe fn from_glib(value: ffi::WebKitUserStyleLevel) -> Self {
4434        skip_assert_initialized!();
4435
4436        match value {
4437            ffi::WEBKIT_USER_STYLE_LEVEL_USER => Self::User,
4438            ffi::WEBKIT_USER_STYLE_LEVEL_AUTHOR => Self::Author,
4439            value => Self::__Unknown(value),
4440        }
4441    }
4442}
4443
4444impl StaticType for UserStyleLevel {
4445    #[inline]
4446    #[doc(alias = "webkit_user_style_level_get_type")]
4447    fn static_type() -> glib::Type {
4448        unsafe { from_glib(ffi::webkit_user_style_level_get_type()) }
4449    }
4450}
4451
4452impl glib::HasParamSpec for UserStyleLevel {
4453    type ParamSpec = glib::ParamSpecEnum;
4454    type SetValue = Self;
4455    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4456
4457    fn param_spec_builder() -> Self::BuilderFn {
4458        Self::ParamSpec::builder_with_default
4459    }
4460}
4461
4462impl glib::value::ValueType for UserStyleLevel {
4463    type Type = Self;
4464}
4465
4466unsafe impl<'a> glib::value::FromValue<'a> for UserStyleLevel {
4467    type Checker = glib::value::GenericValueTypeChecker<Self>;
4468
4469    #[inline]
4470    unsafe fn from_value(value: &'a glib::Value) -> Self {
4471        skip_assert_initialized!();
4472        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4473    }
4474}
4475
4476impl ToValue for UserStyleLevel {
4477    #[inline]
4478    fn to_value(&self) -> glib::Value {
4479        let mut value = glib::Value::for_value_type::<Self>();
4480        unsafe {
4481            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4482        }
4483        value
4484    }
4485
4486    #[inline]
4487    fn value_type(&self) -> glib::Type {
4488        Self::static_type()
4489    }
4490}
4491
4492impl From<UserStyleLevel> for glib::Value {
4493    #[inline]
4494    fn from(v: UserStyleLevel) -> Self {
4495        skip_assert_initialized!();
4496        ToValue::to_value(&v)
4497    }
4498}
4499
4500/// Enum values used to denote errors happening when creating a #WebKitWebExtensionMatchPattern
4501#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4502#[non_exhaustive]
4503#[doc(alias = "WebKitWebExtensionMatchPatternError")]
4504pub enum WebExtensionMatchPatternError {
4505    /// An unknown error occured.
4506    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN")]
4507    Unknown,
4508    /// The scheme component was invalid.
4509    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME")]
4510    InvalidScheme,
4511    /// The host component was invalid.
4512    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST")]
4513    InvalidHost,
4514    /// The path component was invalid.
4515    #[doc(alias = "WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH")]
4516    InvalidPath,
4517    #[doc(hidden)]
4518    __Unknown(i32),
4519}
4520
4521impl WebExtensionMatchPatternError {
4522    #[doc(alias = "webkit_web_extension_match_pattern_error_quark")]
4523    pub fn quark() -> glib::Quark {
4524        assert_initialized_main_thread!();
4525        unsafe { from_glib(ffi::webkit_web_extension_match_pattern_error_quark()) }
4526    }
4527}
4528
4529#[doc(hidden)]
4530impl IntoGlib for WebExtensionMatchPatternError {
4531    type GlibType = ffi::WebKitWebExtensionMatchPatternError;
4532
4533    #[inline]
4534    fn into_glib(self) -> ffi::WebKitWebExtensionMatchPatternError {
4535        match self {
4536            Self::Unknown => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN,
4537            Self::InvalidScheme => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME,
4538            Self::InvalidHost => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST,
4539            Self::InvalidPath => ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH,
4540            Self::__Unknown(value) => value,
4541        }
4542    }
4543}
4544
4545#[doc(hidden)]
4546impl FromGlib<ffi::WebKitWebExtensionMatchPatternError> for WebExtensionMatchPatternError {
4547    #[inline]
4548    unsafe fn from_glib(value: ffi::WebKitWebExtensionMatchPatternError) -> Self {
4549        skip_assert_initialized!();
4550
4551        match value {
4552            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_UNKNOWN => Self::Unknown,
4553            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_SCHEME => Self::InvalidScheme,
4554            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_HOST => Self::InvalidHost,
4555            ffi::WEBKIT_WEB_EXTENSION_MATCH_PATTERN_ERROR_INVALID_PATH => Self::InvalidPath,
4556            value => Self::__Unknown(value),
4557        }
4558    }
4559}
4560
4561impl glib::error::ErrorDomain for WebExtensionMatchPatternError {
4562    #[inline]
4563    fn domain() -> glib::Quark {
4564        skip_assert_initialized!();
4565
4566        static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
4567        let quark = *QUARK.get_or_init(|| unsafe {
4568            glib::ffi::g_quark_from_static_string(
4569                b"WebKitWebExtensionMatchPatternError\0".as_ptr() as *const _
4570            )
4571        });
4572        unsafe { from_glib(quark) }
4573    }
4574
4575    #[inline]
4576    fn code(self) -> i32 {
4577        self.into_glib()
4578    }
4579
4580    #[inline]
4581    #[allow(clippy::match_single_binding)]
4582    fn from(code: i32) -> Option<Self> {
4583        skip_assert_initialized!();
4584        match unsafe { from_glib(code) } {
4585            value => Some(value),
4586        }
4587    }
4588}
4589
4590impl StaticType for WebExtensionMatchPatternError {
4591    #[inline]
4592    #[doc(alias = "webkit_web_extension_match_pattern_error_get_type")]
4593    fn static_type() -> glib::Type {
4594        unsafe { from_glib(ffi::webkit_web_extension_match_pattern_error_get_type()) }
4595    }
4596}
4597
4598impl glib::HasParamSpec for WebExtensionMatchPatternError {
4599    type ParamSpec = glib::ParamSpecEnum;
4600    type SetValue = Self;
4601    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4602
4603    fn param_spec_builder() -> Self::BuilderFn {
4604        Self::ParamSpec::builder_with_default
4605    }
4606}
4607
4608impl glib::value::ValueType for WebExtensionMatchPatternError {
4609    type Type = Self;
4610}
4611
4612unsafe impl<'a> glib::value::FromValue<'a> for WebExtensionMatchPatternError {
4613    type Checker = glib::value::GenericValueTypeChecker<Self>;
4614
4615    #[inline]
4616    unsafe fn from_value(value: &'a glib::Value) -> Self {
4617        skip_assert_initialized!();
4618        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4619    }
4620}
4621
4622impl ToValue for WebExtensionMatchPatternError {
4623    #[inline]
4624    fn to_value(&self) -> glib::Value {
4625        let mut value = glib::Value::for_value_type::<Self>();
4626        unsafe {
4627            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4628        }
4629        value
4630    }
4631
4632    #[inline]
4633    fn value_type(&self) -> glib::Type {
4634        Self::static_type()
4635    }
4636}
4637
4638impl From<WebExtensionMatchPatternError> for glib::Value {
4639    #[inline]
4640    fn from(v: WebExtensionMatchPatternError) -> Self {
4641        skip_assert_initialized!();
4642        ToValue::to_value(&v)
4643    }
4644}
4645
4646/// Enum values used for setting if a #WebKitWebView is intended for
4647/// WebExtensions.
4648#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4649#[non_exhaustive]
4650#[doc(alias = "WebKitWebExtensionMode")]
4651pub enum WebExtensionMode {
4652    /// Not for an extension.
4653    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_NONE")]
4654    None,
4655    /// For a ManifestV2 extension.
4656    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2")]
4657    Manifestv2,
4658    /// For a ManifestV3 extension.
4659    #[doc(alias = "WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3")]
4660    Manifestv3,
4661    #[doc(hidden)]
4662    __Unknown(i32),
4663}
4664
4665#[doc(hidden)]
4666impl IntoGlib for WebExtensionMode {
4667    type GlibType = ffi::WebKitWebExtensionMode;
4668
4669    #[inline]
4670    fn into_glib(self) -> ffi::WebKitWebExtensionMode {
4671        match self {
4672            Self::None => ffi::WEBKIT_WEB_EXTENSION_MODE_NONE,
4673            Self::Manifestv2 => ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2,
4674            Self::Manifestv3 => ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3,
4675            Self::__Unknown(value) => value,
4676        }
4677    }
4678}
4679
4680#[doc(hidden)]
4681impl FromGlib<ffi::WebKitWebExtensionMode> for WebExtensionMode {
4682    #[inline]
4683    unsafe fn from_glib(value: ffi::WebKitWebExtensionMode) -> Self {
4684        skip_assert_initialized!();
4685
4686        match value {
4687            ffi::WEBKIT_WEB_EXTENSION_MODE_NONE => Self::None,
4688            ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2 => Self::Manifestv2,
4689            ffi::WEBKIT_WEB_EXTENSION_MODE_MANIFESTV3 => Self::Manifestv3,
4690            value => Self::__Unknown(value),
4691        }
4692    }
4693}
4694
4695impl StaticType for WebExtensionMode {
4696    #[inline]
4697    #[doc(alias = "webkit_web_extension_mode_get_type")]
4698    fn static_type() -> glib::Type {
4699        unsafe { from_glib(ffi::webkit_web_extension_mode_get_type()) }
4700    }
4701}
4702
4703impl glib::HasParamSpec for WebExtensionMode {
4704    type ParamSpec = glib::ParamSpecEnum;
4705    type SetValue = Self;
4706    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4707
4708    fn param_spec_builder() -> Self::BuilderFn {
4709        Self::ParamSpec::builder_with_default
4710    }
4711}
4712
4713impl glib::value::ValueType for WebExtensionMode {
4714    type Type = Self;
4715}
4716
4717unsafe impl<'a> glib::value::FromValue<'a> for WebExtensionMode {
4718    type Checker = glib::value::GenericValueTypeChecker<Self>;
4719
4720    #[inline]
4721    unsafe fn from_value(value: &'a glib::Value) -> Self {
4722        skip_assert_initialized!();
4723        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4724    }
4725}
4726
4727impl ToValue for WebExtensionMode {
4728    #[inline]
4729    fn to_value(&self) -> glib::Value {
4730        let mut value = glib::Value::for_value_type::<Self>();
4731        unsafe {
4732            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4733        }
4734        value
4735    }
4736
4737    #[inline]
4738    fn value_type(&self) -> glib::Type {
4739        Self::static_type()
4740    }
4741}
4742
4743impl From<WebExtensionMode> for glib::Value {
4744    #[inline]
4745    fn from(v: WebExtensionMode) -> Self {
4746        skip_assert_initialized!();
4747        ToValue::to_value(&v)
4748    }
4749}
4750
4751/// Enum values used to specify the reason why the web process terminated abnormally.
4752#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
4753#[non_exhaustive]
4754#[doc(alias = "WebKitWebProcessTerminationReason")]
4755pub enum WebProcessTerminationReason {
4756    /// the web process crashed.
4757    #[doc(alias = "WEBKIT_WEB_PROCESS_CRASHED")]
4758    Crashed,
4759    /// the web process exceeded the memory limit.
4760    #[doc(alias = "WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT")]
4761    ExceededMemoryLimit,
4762    /// the web process termination was requested by an API call. Since: 2.34
4763    #[doc(alias = "WEBKIT_WEB_PROCESS_TERMINATED_BY_API")]
4764    TerminatedByApi,
4765    #[doc(hidden)]
4766    __Unknown(i32),
4767}
4768
4769#[doc(hidden)]
4770impl IntoGlib for WebProcessTerminationReason {
4771    type GlibType = ffi::WebKitWebProcessTerminationReason;
4772
4773    #[inline]
4774    fn into_glib(self) -> ffi::WebKitWebProcessTerminationReason {
4775        match self {
4776            Self::Crashed => ffi::WEBKIT_WEB_PROCESS_CRASHED,
4777            Self::ExceededMemoryLimit => ffi::WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT,
4778            Self::TerminatedByApi => ffi::WEBKIT_WEB_PROCESS_TERMINATED_BY_API,
4779            Self::__Unknown(value) => value,
4780        }
4781    }
4782}
4783
4784#[doc(hidden)]
4785impl FromGlib<ffi::WebKitWebProcessTerminationReason> for WebProcessTerminationReason {
4786    #[inline]
4787    unsafe fn from_glib(value: ffi::WebKitWebProcessTerminationReason) -> Self {
4788        skip_assert_initialized!();
4789
4790        match value {
4791            ffi::WEBKIT_WEB_PROCESS_CRASHED => Self::Crashed,
4792            ffi::WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT => Self::ExceededMemoryLimit,
4793            ffi::WEBKIT_WEB_PROCESS_TERMINATED_BY_API => Self::TerminatedByApi,
4794            value => Self::__Unknown(value),
4795        }
4796    }
4797}
4798
4799impl StaticType for WebProcessTerminationReason {
4800    #[inline]
4801    #[doc(alias = "webkit_web_process_termination_reason_get_type")]
4802    fn static_type() -> glib::Type {
4803        unsafe { from_glib(ffi::webkit_web_process_termination_reason_get_type()) }
4804    }
4805}
4806
4807impl glib::HasParamSpec for WebProcessTerminationReason {
4808    type ParamSpec = glib::ParamSpecEnum;
4809    type SetValue = Self;
4810    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
4811
4812    fn param_spec_builder() -> Self::BuilderFn {
4813        Self::ParamSpec::builder_with_default
4814    }
4815}
4816
4817impl glib::value::ValueType for WebProcessTerminationReason {
4818    type Type = Self;
4819}
4820
4821unsafe impl<'a> glib::value::FromValue<'a> for WebProcessTerminationReason {
4822    type Checker = glib::value::GenericValueTypeChecker<Self>;
4823
4824    #[inline]
4825    unsafe fn from_value(value: &'a glib::Value) -> Self {
4826        skip_assert_initialized!();
4827        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
4828    }
4829}
4830
4831impl ToValue for WebProcessTerminationReason {
4832    #[inline]
4833    fn to_value(&self) -> glib::Value {
4834        let mut value = glib::Value::for_value_type::<Self>();
4835        unsafe {
4836            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
4837        }
4838        value
4839    }
4840
4841    #[inline]
4842    fn value_type(&self) -> glib::Type {
4843        Self::static_type()
4844    }
4845}
4846
4847impl From<WebProcessTerminationReason> for glib::Value {
4848    #[inline]
4849    fn from(v: WebProcessTerminationReason) -> Self {
4850        skip_assert_initialized!();
4851        ToValue::to_value(&v)
4852    }
4853}