Skip to main content

cef_dll_sys/bindings/
x86_64_unknown_linux_gnu.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const CEF_API_VERSION_13300: i32 = 13300;
4pub const CEF_API_VERSION_13301: i32 = 13301;
5pub const CEF_API_VERSION_13302: i32 = 13302;
6pub const CEF_API_VERSION_13303: i32 = 13303;
7pub const CEF_API_VERSION_13304: i32 = 13304;
8pub const CEF_API_VERSION_13400: i32 = 13400;
9pub const CEF_API_VERSION_13401: i32 = 13401;
10pub const CEF_API_VERSION_13500: i32 = 13500;
11pub const CEF_API_VERSION_13600: i32 = 13600;
12pub const CEF_API_VERSION_13601: i32 = 13601;
13pub const CEF_API_VERSION_13700: i32 = 13700;
14pub const CEF_API_VERSION_13800: i32 = 13800;
15pub const CEF_API_VERSION_13900: i32 = 13900;
16pub const CEF_API_VERSION_14000: i32 = 14000;
17pub const CEF_API_VERSION_14100: i32 = 14100;
18pub const CEF_API_VERSION_14200: i32 = 14200;
19pub const CEF_API_VERSION_14300: i32 = 14300;
20pub const CEF_API_VERSION_14400: i32 = 14400;
21pub const CEF_API_VERSION_14500: i32 = 14500;
22pub const CEF_API_VERSION_14600: i32 = 14600;
23pub const CEF_API_VERSION_14700: i32 = 14700;
24pub const CEF_API_VERSION_14800: i32 = 14800;
25pub const CEF_API_VERSION_999998: i32 = 999998;
26pub const CEF_API_VERSION_999999: i32 = 999999;
27pub const CEF_API_VERSION_MIN: i32 = 13300;
28pub const CEF_API_VERSION_LAST: i32 = 14800;
29pub const CEF_API_VERSION_EXPERIMENTAL: i32 = 999999;
30pub const CEF_API_VERSION_NEXT: i32 = 999998;
31pub const CEF_API_VERSION: i32 = 999999;
32pub const CEF_VERSION: &[u8; 40] = b"148.0.8+g18e00ea+chromium-148.0.7778.96\0";
33pub const CEF_VERSION_MAJOR: i32 = 148;
34pub const CEF_VERSION_MINOR: i32 = 0;
35pub const CEF_VERSION_PATCH: i32 = 8;
36pub const CHROME_VERSION_MAJOR: i32 = 148;
37pub const CHROME_VERSION_MINOR: i32 = 0;
38pub const CHROME_VERSION_BUILD: i32 = 7778;
39pub const CHROME_VERSION_PATCH: i32 = 96;
40pub type __uint16_t = ::std::os::raw::c_ushort;
41pub type __uint_least16_t = __uint16_t;
42pub type __pid_t = ::std::os::raw::c_int;
43pub type __time_t = ::std::os::raw::c_long;
44pub type pid_t = __pid_t;
45unsafe extern "C" {
46    #[doc = "\n Configures the CEF API version and returns API hashes for the libcef\n library. The returned string is owned by the library and should not be\n freed. The |version| parameter should be CEF_API_VERSION and any changes to\n this value will be ignored after the first call to this method. The |entry|\n parameter describes which hash value will be returned:\n\n 0 - CEF_API_HASH_PLATFORM\n 1 - CEF_API_HASH_UNIVERSAL (deprecated, same as CEF_API_HASH_PLATFORM)\n 2 - CEF_COMMIT_HASH (from cef_version.h)\n 3 - CEF_SANDBOX_COMPAT_HASH (from cef_version.h, Windows only)\n"]
47    pub fn cef_api_hash(
48        version: ::std::os::raw::c_int,
49        entry: ::std::os::raw::c_int,
50    ) -> *const ::std::os::raw::c_char;
51}
52unsafe extern "C" {
53    #[doc = "\n Returns the CEF API version that was configured by the first call to\n cef_api_hash().\n"]
54    pub fn cef_api_version() -> ::std::os::raw::c_int;
55}
56pub type wchar_t = ::std::os::raw::c_int;
57pub type char16_t = __uint_least16_t;
58#[doc = "\n CEF string type definitions. Whomever allocates |str| is responsible for\n providing an appropriate |dtor| implementation that will free the string in\n the same memory space. When reusing an existing string structure make sure\n to call |dtor| for the old value before assigning new |str| and |dtor|\n values. Static strings will have a NULL |dtor| value. Using the below\n functions if you want this managed for you.\n"]
59#[repr(C)]
60#[derive(Debug, Copy, Clone)]
61pub struct _cef_string_wide_t {
62    pub str_: *mut wchar_t,
63    pub length: usize,
64    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut wchar_t)>,
65}
66#[allow(clippy::unnecessary_operation, clippy::identity_op)]
67const _: () = {
68    ["Size of _cef_string_wide_t"][::std::mem::size_of::<_cef_string_wide_t>() - 24usize];
69    ["Alignment of _cef_string_wide_t"][::std::mem::align_of::<_cef_string_wide_t>() - 8usize];
70    ["Offset of field: _cef_string_wide_t::str_"]
71        [::std::mem::offset_of!(_cef_string_wide_t, str_) - 0usize];
72    ["Offset of field: _cef_string_wide_t::length"]
73        [::std::mem::offset_of!(_cef_string_wide_t, length) - 8usize];
74    ["Offset of field: _cef_string_wide_t::dtor"]
75        [::std::mem::offset_of!(_cef_string_wide_t, dtor) - 16usize];
76};
77#[doc = "\n CEF string type definitions. Whomever allocates |str| is responsible for\n providing an appropriate |dtor| implementation that will free the string in\n the same memory space. When reusing an existing string structure make sure\n to call |dtor| for the old value before assigning new |str| and |dtor|\n values. Static strings will have a NULL |dtor| value. Using the below\n functions if you want this managed for you.\n"]
78pub type cef_string_wide_t = _cef_string_wide_t;
79#[repr(C)]
80#[derive(Debug, Copy, Clone)]
81pub struct _cef_string_utf8_t {
82    pub str_: *mut ::std::os::raw::c_char,
83    pub length: usize,
84    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut ::std::os::raw::c_char)>,
85}
86#[allow(clippy::unnecessary_operation, clippy::identity_op)]
87const _: () = {
88    ["Size of _cef_string_utf8_t"][::std::mem::size_of::<_cef_string_utf8_t>() - 24usize];
89    ["Alignment of _cef_string_utf8_t"][::std::mem::align_of::<_cef_string_utf8_t>() - 8usize];
90    ["Offset of field: _cef_string_utf8_t::str_"]
91        [::std::mem::offset_of!(_cef_string_utf8_t, str_) - 0usize];
92    ["Offset of field: _cef_string_utf8_t::length"]
93        [::std::mem::offset_of!(_cef_string_utf8_t, length) - 8usize];
94    ["Offset of field: _cef_string_utf8_t::dtor"]
95        [::std::mem::offset_of!(_cef_string_utf8_t, dtor) - 16usize];
96};
97pub type cef_string_utf8_t = _cef_string_utf8_t;
98#[repr(C)]
99#[derive(Debug, Copy, Clone)]
100pub struct _cef_string_utf16_t {
101    pub str_: *mut char16_t,
102    pub length: usize,
103    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut char16_t)>,
104}
105#[allow(clippy::unnecessary_operation, clippy::identity_op)]
106const _: () = {
107    ["Size of _cef_string_utf16_t"][::std::mem::size_of::<_cef_string_utf16_t>() - 24usize];
108    ["Alignment of _cef_string_utf16_t"][::std::mem::align_of::<_cef_string_utf16_t>() - 8usize];
109    ["Offset of field: _cef_string_utf16_t::str_"]
110        [::std::mem::offset_of!(_cef_string_utf16_t, str_) - 0usize];
111    ["Offset of field: _cef_string_utf16_t::length"]
112        [::std::mem::offset_of!(_cef_string_utf16_t, length) - 8usize];
113    ["Offset of field: _cef_string_utf16_t::dtor"]
114        [::std::mem::offset_of!(_cef_string_utf16_t, dtor) - 16usize];
115};
116pub type cef_string_utf16_t = _cef_string_utf16_t;
117unsafe extern "C" {
118    #[doc = "\n These functions set string values. If |copy| is true (1) the value will be\n copied instead of referenced. It is up to the user to properly manage\n the lifespan of references.\n"]
119    pub fn cef_string_wide_set(
120        src: *const wchar_t,
121        src_len: usize,
122        output: *mut cef_string_wide_t,
123        copy: ::std::os::raw::c_int,
124    ) -> ::std::os::raw::c_int;
125}
126unsafe extern "C" {
127    pub fn cef_string_utf8_set(
128        src: *const ::std::os::raw::c_char,
129        src_len: usize,
130        output: *mut cef_string_utf8_t,
131        copy: ::std::os::raw::c_int,
132    ) -> ::std::os::raw::c_int;
133}
134unsafe extern "C" {
135    pub fn cef_string_utf16_set(
136        src: *const char16_t,
137        src_len: usize,
138        output: *mut cef_string_utf16_t,
139        copy: ::std::os::raw::c_int,
140    ) -> ::std::os::raw::c_int;
141}
142unsafe extern "C" {
143    #[doc = "\n These functions clear string values. The structure itself is not freed.\n"]
144    pub fn cef_string_wide_clear(str_: *mut cef_string_wide_t);
145}
146unsafe extern "C" {
147    pub fn cef_string_utf8_clear(str_: *mut cef_string_utf8_t);
148}
149unsafe extern "C" {
150    pub fn cef_string_utf16_clear(str_: *mut cef_string_utf16_t);
151}
152unsafe extern "C" {
153    #[doc = "\n These functions compare two string values with the same results as strcmp().\n"]
154    pub fn cef_string_wide_cmp(
155        str1: *const cef_string_wide_t,
156        str2: *const cef_string_wide_t,
157    ) -> ::std::os::raw::c_int;
158}
159unsafe extern "C" {
160    pub fn cef_string_utf8_cmp(
161        str1: *const cef_string_utf8_t,
162        str2: *const cef_string_utf8_t,
163    ) -> ::std::os::raw::c_int;
164}
165unsafe extern "C" {
166    pub fn cef_string_utf16_cmp(
167        str1: *const cef_string_utf16_t,
168        str2: *const cef_string_utf16_t,
169    ) -> ::std::os::raw::c_int;
170}
171unsafe extern "C" {
172    #[doc = "\n These functions convert between UTF-8, -16, and -32 strings. They are\n potentially slow so unnecessary conversions should be avoided. The best\n possible result will always be written to |output| with the boolean return\n value indicating whether the conversion is 100% valid.\n"]
173    pub fn cef_string_wide_to_utf8(
174        src: *const wchar_t,
175        src_len: usize,
176        output: *mut cef_string_utf8_t,
177    ) -> ::std::os::raw::c_int;
178}
179unsafe extern "C" {
180    pub fn cef_string_utf8_to_wide(
181        src: *const ::std::os::raw::c_char,
182        src_len: usize,
183        output: *mut cef_string_wide_t,
184    ) -> ::std::os::raw::c_int;
185}
186unsafe extern "C" {
187    pub fn cef_string_wide_to_utf16(
188        src: *const wchar_t,
189        src_len: usize,
190        output: *mut cef_string_utf16_t,
191    ) -> ::std::os::raw::c_int;
192}
193unsafe extern "C" {
194    pub fn cef_string_utf16_to_wide(
195        src: *const char16_t,
196        src_len: usize,
197        output: *mut cef_string_wide_t,
198    ) -> ::std::os::raw::c_int;
199}
200unsafe extern "C" {
201    pub fn cef_string_utf8_to_utf16(
202        src: *const ::std::os::raw::c_char,
203        src_len: usize,
204        output: *mut cef_string_utf16_t,
205    ) -> ::std::os::raw::c_int;
206}
207unsafe extern "C" {
208    pub fn cef_string_utf16_to_utf8(
209        src: *const char16_t,
210        src_len: usize,
211        output: *mut cef_string_utf8_t,
212    ) -> ::std::os::raw::c_int;
213}
214unsafe extern "C" {
215    #[doc = "\n These functions convert an ASCII string, typically a hardcoded constant, to\n a Wide/UTF16 string. Use instead of the UTF8 conversion routines if you know\n the string is ASCII.\n"]
216    pub fn cef_string_ascii_to_wide(
217        src: *const ::std::os::raw::c_char,
218        src_len: usize,
219        output: *mut cef_string_wide_t,
220    ) -> ::std::os::raw::c_int;
221}
222unsafe extern "C" {
223    pub fn cef_string_ascii_to_utf16(
224        src: *const ::std::os::raw::c_char,
225        src_len: usize,
226        output: *mut cef_string_utf16_t,
227    ) -> ::std::os::raw::c_int;
228}
229#[doc = "\n It is sometimes necessary for the system to allocate string structures with\n the expectation that the user will free them. The userfree types act as a\n hint that the user is responsible for freeing the structure.\n"]
230pub type cef_string_userfree_wide_t = *mut cef_string_wide_t;
231pub type cef_string_userfree_utf8_t = *mut cef_string_utf8_t;
232pub type cef_string_userfree_utf16_t = *mut cef_string_utf16_t;
233unsafe extern "C" {
234    #[doc = "\n These functions allocate a new string structure. They must be freed by\n calling the associated free function.\n"]
235    pub fn cef_string_userfree_wide_alloc() -> cef_string_userfree_wide_t;
236}
237unsafe extern "C" {
238    pub fn cef_string_userfree_utf8_alloc() -> cef_string_userfree_utf8_t;
239}
240unsafe extern "C" {
241    pub fn cef_string_userfree_utf16_alloc() -> cef_string_userfree_utf16_t;
242}
243unsafe extern "C" {
244    #[doc = "\n These functions free the string structure allocated by the associated\n alloc function. Any string contents will first be cleared.\n"]
245    pub fn cef_string_userfree_wide_free(str_: cef_string_userfree_wide_t);
246}
247unsafe extern "C" {
248    pub fn cef_string_userfree_utf8_free(str_: cef_string_userfree_utf8_t);
249}
250unsafe extern "C" {
251    pub fn cef_string_userfree_utf16_free(str_: cef_string_userfree_utf16_t);
252}
253unsafe extern "C" {
254    #[doc = "\n These functions convert utf16 string case using the current ICU locale. This\n may change the length of the string in some cases.\n"]
255    pub fn cef_string_utf16_to_lower(
256        src: *const char16_t,
257        src_len: usize,
258        output: *mut cef_string_utf16_t,
259    ) -> ::std::os::raw::c_int;
260}
261unsafe extern "C" {
262    pub fn cef_string_utf16_to_upper(
263        src: *const char16_t,
264        src_len: usize,
265        output: *mut cef_string_utf16_t,
266    ) -> ::std::os::raw::c_int;
267}
268pub type cef_char_t = char16_t;
269pub type cef_string_userfree_t = cef_string_userfree_utf16_t;
270pub type cef_string_t = cef_string_utf16_t;
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct _cef_string_list_t {
274    _unused: [u8; 0],
275}
276#[doc = "\n CEF string maps are a set of key/value string pairs.\n"]
277pub type cef_string_list_t = *mut _cef_string_list_t;
278unsafe extern "C" {
279    #[doc = "\n Allocate a new string map.\n"]
280    pub fn cef_string_list_alloc() -> cef_string_list_t;
281}
282unsafe extern "C" {
283    #[doc = "\n Return the number of elements in the string list.\n"]
284    pub fn cef_string_list_size(list: cef_string_list_t) -> usize;
285}
286unsafe extern "C" {
287    #[doc = "\n Retrieve the value at the specified zero-based string list index. Returns\n true (1) if the value was successfully retrieved.\n"]
288    pub fn cef_string_list_value(
289        list: cef_string_list_t,
290        index: usize,
291        value: *mut cef_string_t,
292    ) -> ::std::os::raw::c_int;
293}
294unsafe extern "C" {
295    #[doc = "\n Append a new value at the end of the string list.\n"]
296    pub fn cef_string_list_append(list: cef_string_list_t, value: *const cef_string_t);
297}
298unsafe extern "C" {
299    #[doc = "\n Clear the string list.\n"]
300    pub fn cef_string_list_clear(list: cef_string_list_t);
301}
302unsafe extern "C" {
303    #[doc = "\n Free the string list.\n"]
304    pub fn cef_string_list_free(list: cef_string_list_t);
305}
306unsafe extern "C" {
307    #[doc = "\n Creates a copy of an existing string list.\n"]
308    pub fn cef_string_list_copy(list: cef_string_list_t) -> cef_string_list_t;
309}
310#[repr(C)]
311#[derive(Debug, Copy, Clone)]
312pub struct _cef_string_map_t {
313    _unused: [u8; 0],
314}
315#[doc = "\n CEF string maps are a set of key/value string pairs.\n"]
316pub type cef_string_map_t = *mut _cef_string_map_t;
317unsafe extern "C" {
318    #[doc = "\n Allocate a new string map.\n"]
319    pub fn cef_string_map_alloc() -> cef_string_map_t;
320}
321unsafe extern "C" {
322    #[doc = "\n Return the number of elements in the string map.\n"]
323    pub fn cef_string_map_size(map: cef_string_map_t) -> usize;
324}
325unsafe extern "C" {
326    #[doc = "\n Return the value assigned to the specified key.\n"]
327    pub fn cef_string_map_find(
328        map: cef_string_map_t,
329        key: *const cef_string_t,
330        value: *mut cef_string_t,
331    ) -> ::std::os::raw::c_int;
332}
333unsafe extern "C" {
334    #[doc = "\n Return the key at the specified zero-based string map index.\n"]
335    pub fn cef_string_map_key(
336        map: cef_string_map_t,
337        index: usize,
338        key: *mut cef_string_t,
339    ) -> ::std::os::raw::c_int;
340}
341unsafe extern "C" {
342    #[doc = "\n Return the value at the specified zero-based string map index.\n"]
343    pub fn cef_string_map_value(
344        map: cef_string_map_t,
345        index: usize,
346        value: *mut cef_string_t,
347    ) -> ::std::os::raw::c_int;
348}
349unsafe extern "C" {
350    #[doc = "\n Append a new key/value pair at the end of the string map. If the key exists,\n overwrite the existing value with a new value w/o changing the pair order.\n"]
351    pub fn cef_string_map_append(
352        map: cef_string_map_t,
353        key: *const cef_string_t,
354        value: *const cef_string_t,
355    ) -> ::std::os::raw::c_int;
356}
357unsafe extern "C" {
358    #[doc = "\n Clear the string map.\n"]
359    pub fn cef_string_map_clear(map: cef_string_map_t);
360}
361unsafe extern "C" {
362    #[doc = "\n Free the string map.\n"]
363    pub fn cef_string_map_free(map: cef_string_map_t);
364}
365#[repr(C)]
366#[derive(Debug, Copy, Clone)]
367pub struct _cef_string_multimap_t {
368    _unused: [u8; 0],
369}
370#[doc = "\n CEF string multimaps are a set of key/value string pairs.\n More than one value can be assigned to a single key.\n"]
371pub type cef_string_multimap_t = *mut _cef_string_multimap_t;
372unsafe extern "C" {
373    #[doc = "\n Allocate a new string multimap.\n"]
374    pub fn cef_string_multimap_alloc() -> cef_string_multimap_t;
375}
376unsafe extern "C" {
377    #[doc = "\n Return the number of elements in the string multimap.\n"]
378    pub fn cef_string_multimap_size(map: cef_string_multimap_t) -> usize;
379}
380unsafe extern "C" {
381    #[doc = "\n Return the number of values with the specified key.\n"]
382    pub fn cef_string_multimap_find_count(
383        map: cef_string_multimap_t,
384        key: *const cef_string_t,
385    ) -> usize;
386}
387unsafe extern "C" {
388    #[doc = "\n Return the value_index-th value with the specified key.\n"]
389    pub fn cef_string_multimap_enumerate(
390        map: cef_string_multimap_t,
391        key: *const cef_string_t,
392        value_index: usize,
393        value: *mut cef_string_t,
394    ) -> ::std::os::raw::c_int;
395}
396unsafe extern "C" {
397    #[doc = "\n Return the key at the specified zero-based string multimap index.\n"]
398    pub fn cef_string_multimap_key(
399        map: cef_string_multimap_t,
400        index: usize,
401        key: *mut cef_string_t,
402    ) -> ::std::os::raw::c_int;
403}
404unsafe extern "C" {
405    #[doc = "\n Return the value at the specified zero-based string multimap index.\n"]
406    pub fn cef_string_multimap_value(
407        map: cef_string_multimap_t,
408        index: usize,
409        value: *mut cef_string_t,
410    ) -> ::std::os::raw::c_int;
411}
412unsafe extern "C" {
413    #[doc = "\n Append a new key/value pair at the end of the string multimap.\n"]
414    pub fn cef_string_multimap_append(
415        map: cef_string_multimap_t,
416        key: *const cef_string_t,
417        value: *const cef_string_t,
418    ) -> ::std::os::raw::c_int;
419}
420unsafe extern "C" {
421    #[doc = "\n Clear the string multimap.\n"]
422    pub fn cef_string_multimap_clear(map: cef_string_multimap_t);
423}
424unsafe extern "C" {
425    #[doc = "\n Free the string multimap.\n"]
426    pub fn cef_string_multimap_free(map: cef_string_multimap_t);
427}
428pub type time_t = __time_t;
429#[doc = "\n Represents a wall clock time in UTC. Values are not guaranteed to be\n monotonically non-decreasing and are subject to large amounts of skew.\n Time is stored internally as microseconds since the Windows epoch (1601).\n\n This is equivalent of Chromium `base::Time` (see base/time/time.h).\n"]
430#[repr(C)]
431#[derive(Debug, Copy, Clone)]
432pub struct _cef_basetime_t {
433    pub val: i64,
434}
435#[allow(clippy::unnecessary_operation, clippy::identity_op)]
436const _: () = {
437    ["Size of _cef_basetime_t"][::std::mem::size_of::<_cef_basetime_t>() - 8usize];
438    ["Alignment of _cef_basetime_t"][::std::mem::align_of::<_cef_basetime_t>() - 8usize];
439    ["Offset of field: _cef_basetime_t::val"]
440        [::std::mem::offset_of!(_cef_basetime_t, val) - 0usize];
441};
442#[doc = "\n Represents a wall clock time in UTC. Values are not guaranteed to be\n monotonically non-decreasing and are subject to large amounts of skew.\n Time is stored internally as microseconds since the Windows epoch (1601).\n\n This is equivalent of Chromium `base::Time` (see base/time/time.h).\n"]
443pub type cef_basetime_t = _cef_basetime_t;
444#[doc = "\n Time information. Values should always be in UTC.\n"]
445#[repr(C)]
446#[derive(Debug, Copy, Clone)]
447pub struct _cef_time_t {
448    #[doc = "\n Four or five digit year \"2007\" (1601 to 30827 on Windows, 1970 to 2038 on\n 32-bit POSIX)\n"]
449    pub year: ::std::os::raw::c_int,
450    #[doc = "\n 1-based month (values 1 = January, etc.)\n"]
451    pub month: ::std::os::raw::c_int,
452    #[doc = "\n 0-based day of week (0 = Sunday, etc.)\n"]
453    pub day_of_week: ::std::os::raw::c_int,
454    #[doc = "\n 1-based day of month (1-31)\n"]
455    pub day_of_month: ::std::os::raw::c_int,
456    #[doc = "\n Hour within the current day (0-23)\n"]
457    pub hour: ::std::os::raw::c_int,
458    #[doc = "\n Minute within the current hour (0-59)\n"]
459    pub minute: ::std::os::raw::c_int,
460    #[doc = "\n Second within the current minute (0-59 plus leap seconds which may take\n it up to 60).\n"]
461    pub second: ::std::os::raw::c_int,
462    #[doc = "\n Milliseconds within the current second (0-999)\n"]
463    pub millisecond: ::std::os::raw::c_int,
464}
465#[allow(clippy::unnecessary_operation, clippy::identity_op)]
466const _: () = {
467    ["Size of _cef_time_t"][::std::mem::size_of::<_cef_time_t>() - 32usize];
468    ["Alignment of _cef_time_t"][::std::mem::align_of::<_cef_time_t>() - 4usize];
469    ["Offset of field: _cef_time_t::year"][::std::mem::offset_of!(_cef_time_t, year) - 0usize];
470    ["Offset of field: _cef_time_t::month"][::std::mem::offset_of!(_cef_time_t, month) - 4usize];
471    ["Offset of field: _cef_time_t::day_of_week"]
472        [::std::mem::offset_of!(_cef_time_t, day_of_week) - 8usize];
473    ["Offset of field: _cef_time_t::day_of_month"]
474        [::std::mem::offset_of!(_cef_time_t, day_of_month) - 12usize];
475    ["Offset of field: _cef_time_t::hour"][::std::mem::offset_of!(_cef_time_t, hour) - 16usize];
476    ["Offset of field: _cef_time_t::minute"][::std::mem::offset_of!(_cef_time_t, minute) - 20usize];
477    ["Offset of field: _cef_time_t::second"][::std::mem::offset_of!(_cef_time_t, second) - 24usize];
478    ["Offset of field: _cef_time_t::millisecond"]
479        [::std::mem::offset_of!(_cef_time_t, millisecond) - 28usize];
480};
481#[doc = "\n Time information. Values should always be in UTC.\n"]
482pub type cef_time_t = _cef_time_t;
483unsafe extern "C" {
484    #[doc = "\n Converts cef_time_t to/from time_t. Returns true (1) on success and false\n (0) on failure.\n"]
485    pub fn cef_time_to_timet(
486        cef_time: *const cef_time_t,
487        time: *mut time_t,
488    ) -> ::std::os::raw::c_int;
489}
490unsafe extern "C" {
491    pub fn cef_time_from_timet(time: time_t, cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
492}
493unsafe extern "C" {
494    #[doc = "\n Converts cef_time_t to/from a double which is the number of seconds since\n epoch (Jan 1, 1970). Webkit uses this format to represent time. A value of 0\n means \"not initialized\". Returns true (1) on success and false (0) on\n failure.\n"]
495    pub fn cef_time_to_doublet(
496        cef_time: *const cef_time_t,
497        time: *mut f64,
498    ) -> ::std::os::raw::c_int;
499}
500unsafe extern "C" {
501    pub fn cef_time_from_doublet(time: f64, cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
502}
503unsafe extern "C" {
504    #[doc = "\n Retrieve the current system time. Returns true (1) on success and false (0)\n on failure.\n"]
505    pub fn cef_time_now(cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
506}
507unsafe extern "C" {
508    #[doc = "\n Retrieve the current system time.\n"]
509    pub fn cef_basetime_now() -> cef_basetime_t;
510}
511unsafe extern "C" {
512    #[doc = "\n Retrieve the delta in milliseconds between two time values. Returns true (1)\n on success and false (0) on failure."]
513    pub fn cef_time_delta(
514        cef_time1: *const cef_time_t,
515        cef_time2: *const cef_time_t,
516        delta: *mut ::std::os::raw::c_longlong,
517    ) -> ::std::os::raw::c_int;
518}
519unsafe extern "C" {
520    #[doc = "\n Converts cef_time_t to cef_basetime_t. Returns true (1) on success and\n false (0) on failure.\n"]
521    pub fn cef_time_to_basetime(
522        from: *const cef_time_t,
523        to: *mut cef_basetime_t,
524    ) -> ::std::os::raw::c_int;
525}
526unsafe extern "C" {
527    #[doc = "\n Converts cef_basetime_t to cef_time_t. Returns true (1) on success and\n false (0) on failure.\n"]
528    pub fn cef_time_from_basetime(
529        from: cef_basetime_t,
530        to: *mut cef_time_t,
531    ) -> ::std::os::raw::c_int;
532}
533#[repr(u32)]
534#[non_exhaustive]
535#[doc = "\n Supported content setting types. Some types are platform-specific or only\n supported with Chrome style. Should be kept in sync with Chromium's\n ContentSettingsType type.\n"]
536#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
537pub enum cef_content_setting_types_t {
538    #[doc = " This setting governs whether cookies are enabled by the user in the\n provided context. However, it may be overridden by other settings. This\n enum should NOT be read directly to determine whether cookies are enabled;\n the client should instead rely on the CookieSettings API."]
539    CEF_CONTENT_SETTING_TYPE_COOKIES = 0,
540    #[doc = " This setting governs whether cookies are enabled by the user in the\n provided context. However, it may be overridden by other settings. This\n enum should NOT be read directly to determine whether cookies are enabled;\n the client should instead rely on the CookieSettings API."]
541    CEF_CONTENT_SETTING_TYPE_IMAGES = 1,
542    #[doc = " This setting governs whether cookies are enabled by the user in the\n provided context. However, it may be overridden by other settings. This\n enum should NOT be read directly to determine whether cookies are enabled;\n the client should instead rely on the CookieSettings API."]
543    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT = 2,
544    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
545    CEF_CONTENT_SETTING_TYPE_POPUPS = 3,
546    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
547    CEF_CONTENT_SETTING_TYPE_GEOLOCATION = 4,
548    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
549    CEF_CONTENT_SETTING_TYPE_NOTIFICATIONS = 5,
550    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
551    CEF_CONTENT_SETTING_TYPE_AUTO_SELECT_CERTIFICATE = 6,
552    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
553    CEF_CONTENT_SETTING_TYPE_MIXEDSCRIPT = 7,
554    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
555    CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_MIC = 8,
556    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
557    CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_CAMERA = 9,
558    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
559    CEF_CONTENT_SETTING_TYPE_PROTOCOL_HANDLERS = 10,
560    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
561    CEF_CONTENT_SETTING_TYPE_DEPRECATED_PPAPI_BROKER = 11,
562    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
563    CEF_CONTENT_SETTING_TYPE_AUTOMATIC_DOWNLOADS = 12,
564    #[doc = " Advanced device-specific functions on MIDI devices. MIDI-SysEx\n communications can be used for changing the MIDI device's persistent state\n such as firmware."]
565    CEF_CONTENT_SETTING_TYPE_MIDI_SYSEX = 13,
566    #[doc = " Advanced device-specific functions on MIDI devices. MIDI-SysEx\n communications can be used for changing the MIDI device's persistent state\n such as firmware."]
567    CEF_CONTENT_SETTING_TYPE_SSL_CERT_DECISIONS = 14,
568    #[doc = " Advanced device-specific functions on MIDI devices. MIDI-SysEx\n communications can be used for changing the MIDI device's persistent state\n such as firmware."]
569    CEF_CONTENT_SETTING_TYPE_PROTECTED_MEDIA_IDENTIFIER = 15,
570    #[doc = " Advanced device-specific functions on MIDI devices. MIDI-SysEx\n communications can be used for changing the MIDI device's persistent state\n such as firmware."]
571    CEF_CONTENT_SETTING_TYPE_APP_BANNER = 16,
572    #[doc = " Advanced device-specific functions on MIDI devices. MIDI-SysEx\n communications can be used for changing the MIDI device's persistent state\n such as firmware."]
573    CEF_CONTENT_SETTING_TYPE_SITE_ENGAGEMENT = 17,
574    CEF_CONTENT_SETTING_TYPE_PERSISTENT_STORAGE = 18,
575    CEF_CONTENT_SETTING_TYPE_USB_CHOOSER_DATA = 19,
576    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_GUARD = 20,
577    CEF_CONTENT_SETTING_TYPE_BACKGROUND_SYNC = 21,
578    CEF_CONTENT_SETTING_TYPE_AUTOPLAY = 22,
579    CEF_CONTENT_SETTING_TYPE_IMPORTANT_SITE_INFO = 23,
580    CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOBLOCKER_DATA = 24,
581    CEF_CONTENT_SETTING_TYPE_ADS = 25,
582    #[doc = " Website setting which stores metadata for the subresource filter to aid in\n decisions for whether or not to show the UI."]
583    CEF_CONTENT_SETTING_TYPE_ADS_DATA = 26,
584    #[doc = " MIDI stands for Musical Instrument Digital Interface. It is a standard\n that allows electronic musical instruments, computers, and other devices\n to communicate with each other."]
585    CEF_CONTENT_SETTING_TYPE_MIDI = 27,
586    #[doc = " This content setting type is for caching password protection service's\n verdicts of each origin."]
587    CEF_CONTENT_SETTING_TYPE_PASSWORD_PROTECTION = 28,
588    #[doc = " Website setting which stores engagement data for media related to a\n specific origin."]
589    CEF_CONTENT_SETTING_TYPE_MEDIA_ENGAGEMENT = 29,
590    #[doc = " Content setting which stores whether or not the site can play audible\n sound. This will not block playback but instead the user will not hear it."]
591    CEF_CONTENT_SETTING_TYPE_SOUND = 30,
592    #[doc = " Website setting which stores the list of client hints that the origin\n requested the browser to remember. The browser is expected to send all\n client hints in the HTTP request headers for every resource requested\n from that origin."]
593    CEF_CONTENT_SETTING_TYPE_CLIENT_HINTS = 31,
594    #[doc = " Generic Sensor API covering ambient-light-sensor, accelerometer, gyroscope\n and magnetometer are all mapped to a single content_settings_type.\n Setting for the Generic Sensor API covering ambient-light-sensor,\n accelerometer, gyroscope and magnetometer. These are all mapped to a\n single ContentSettingsType."]
595    CEF_CONTENT_SETTING_TYPE_SENSORS = 32,
596    #[doc = " Content setting which stores whether or not the user has granted the site\n permission to respond to accessibility events, which can be used to\n provide a custom accessibility experience. Requires explicit user consent\n because some users may not want sites to know they're using assistive\n technology. Deprecated in M131."]
597    CEF_CONTENT_SETTING_TYPE_DEPRECATED_ACCESSIBILITY_EVENTS = 33,
598    #[doc = " Used to store whether to allow a website to install a payment handler."]
599    CEF_CONTENT_SETTING_TYPE_PAYMENT_HANDLER = 34,
600    #[doc = " Content setting which stores whether to allow sites to ask for permission\n to access USB devices. If this is allowed specific device permissions are\n stored under USB_CHOOSER_DATA."]
601    CEF_CONTENT_SETTING_TYPE_USB_GUARD = 35,
602    #[doc = " Nothing is stored in this setting at present. Please refer to\n BackgroundFetchPermissionContext for details on how this permission\n is ascertained."]
603    CEF_CONTENT_SETTING_TYPE_BACKGROUND_FETCH = 36,
604    #[doc = " Website setting which stores the amount of times the user has dismissed\n intent picker UI without explicitly choosing an option."]
605    CEF_CONTENT_SETTING_TYPE_INTENT_PICKER_DISPLAY = 37,
606    #[doc = " Used to store whether to allow a website to detect user active/idle state."]
607    CEF_CONTENT_SETTING_TYPE_IDLE_DETECTION = 38,
608    #[doc = " Content settings for access to serial ports. The \"guard\" content setting\n stores whether to allow sites to ask for permission to access a port. The\n permissions granted to access particular ports are stored in the \"chooser\n data\" website setting."]
609    CEF_CONTENT_SETTING_TYPE_SERIAL_GUARD = 39,
610    #[doc = " Content settings for access to serial ports. The \"guard\" content setting\n stores whether to allow sites to ask for permission to access a port. The\n permissions granted to access particular ports are stored in the \"chooser\n data\" website setting."]
611    CEF_CONTENT_SETTING_TYPE_SERIAL_CHOOSER_DATA = 40,
612    #[doc = " Nothing is stored in this setting at present. Please refer to\n PeriodicBackgroundSyncPermissionContext for details on how this permission\n is ascertained.\n This content setting is not registered because it does not require access\n to any existing providers."]
613    CEF_CONTENT_SETTING_TYPE_PERIODIC_BACKGROUND_SYNC = 41,
614    #[doc = " Content setting which stores whether to allow sites to ask for permission\n to do Bluetooth scanning."]
615    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_SCANNING = 42,
616    #[doc = " Content settings for access to HID devices. The \"guard\" content setting\n stores whether to allow sites to ask for permission to access a device.\n The permissions granted to access particular devices are stored in the\n \"chooser data\" website setting."]
617    CEF_CONTENT_SETTING_TYPE_HID_GUARD = 43,
618    #[doc = " Content settings for access to HID devices. The \"guard\" content setting\n stores whether to allow sites to ask for permission to access a device.\n The permissions granted to access particular devices are stored in the\n \"chooser data\" website setting."]
619    CEF_CONTENT_SETTING_TYPE_HID_CHOOSER_DATA = 44,
620    #[doc = " Wake Lock API, which has two lock types: screen and system locks.\n Currently, screen locks do not need any additional permission, and system\n locks are always denied while the right UI is worked out."]
621    CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SCREEN = 45,
622    #[doc = " Wake Lock API, which has two lock types: screen and system locks.\n Currently, screen locks do not need any additional permission, and system\n locks are always denied while the right UI is worked out."]
623    CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SYSTEM = 46,
624    #[doc = " Legacy SameSite cookie behavior. This disables SameSite=Lax-by-default,\n SameSite=None requires Secure, and Schemeful Same-Site, forcing the\n legacy behavior wherein 1) cookies that don't specify SameSite are treated\n as SameSite=None, 2) SameSite=None cookies are not required to be Secure,\n and 3) schemeful same-site is not active.\n\n This will also be used to revert to legacy behavior when future changes\n in cookie handling are introduced."]
625    CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_ACCESS = 47,
626    #[doc = " Content settings which stores whether to allow sites to ask for permission\n to save changes to an original file selected by the user through the\n File System Access API."]
627    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_WRITE_GUARD = 48,
628    #[doc = " Used to store whether to allow a website to exchange data with NFC\n devices."]
629    CEF_CONTENT_SETTING_TYPE_NFC = 49,
630    #[doc = " Website setting to store permissions granted to access particular\n Bluetooth devices."]
631    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_CHOOSER_DATA = 50,
632    #[doc = " Full access to the system clipboard (sanitized read without user gesture,\n and unsanitized read and write with user gesture)."]
633    CEF_CONTENT_SETTING_TYPE_CLIPBOARD_READ_WRITE = 51,
634    #[doc = " This is special-cased in the permissions layer to always allow, and as\n such doesn't have associated prefs data."]
635    CEF_CONTENT_SETTING_TYPE_CLIPBOARD_SANITIZED_WRITE = 52,
636    #[doc = " This content setting type is for caching safe browsing real time url\n check's verdicts of each origin."]
637    CEF_CONTENT_SETTING_TYPE_SAFE_BROWSING_URL_CHECK_DATA = 53,
638    #[doc = " Used to store whether a site is allowed to request AR or VR sessions with\n the WebXr Device API."]
639    CEF_CONTENT_SETTING_TYPE_VR = 54,
640    #[doc = " Used to store whether a site is allowed to request AR or VR sessions with\n the WebXr Device API."]
641    CEF_CONTENT_SETTING_TYPE_AR = 55,
642    #[doc = " Content setting which stores whether to allow site to open and read files\n and directories selected through the File System Access API."]
643    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_READ_GUARD = 56,
644    #[doc = " Access to first party storage in a third-party context. Exceptions are\n scoped to the combination of requesting/top-level origin, and are managed\n through the Storage Access API. For the time being, this content setting\n exists in parallel to third-party cookie rules stored in COOKIES."]
645    CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS = 57,
646    #[doc = " Content setting which stores whether to allow a site to control camera\n movements. It does not give access to camera."]
647    CEF_CONTENT_SETTING_TYPE_CAMERA_PAN_TILT_ZOOM = 58,
648    #[doc = " Content setting for Screen Enumeration and Screen Detail functionality.\n Permits access to detailed multi-screen information, like size and\n position. Permits placing fullscreen and windowed content on specific\n screens. See also: https://w3c.github.io/window-placement"]
649    CEF_CONTENT_SETTING_TYPE_WINDOW_MANAGEMENT = 59,
650    CEF_CONTENT_SETTING_TYPE_INSECURE_PRIVATE_NETWORK_DEPRECATED = 60,
651    #[doc = " Content setting which stores whether or not a site can access low-level\n locally installed font data using the Local Fonts Access API."]
652    CEF_CONTENT_SETTING_TYPE_LOCAL_FONTS = 61,
653    #[doc = " Stores per-origin state for permission auto-revocation (for all permission\n types)."]
654    CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOREVOCATION_DATA = 62,
655    #[doc = " Stores per-origin state of the most recently selected directory for the\n use by the File System Access API."]
656    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_LAST_PICKED_DIRECTORY = 63,
657    #[doc = " Controls access to the getDisplayMedia API."]
658    CEF_CONTENT_SETTING_TYPE_DISPLAY_CAPTURE = 64,
659    #[doc = " Website setting to store permissions metadata granted to paths on the\n local file system via the File System Access API.\n |FILE_SYSTEM_WRITE_GUARD| is the corresponding \"guard\" setting. The stored\n data represents valid permission only if\n |FILE_SYSTEM_ACCESS_EXTENDED_PERMISSION| is enabled via user opt-in.\n Otherwise, they represent \"recently granted but revoked permission\", which\n are used to restore the permission."]
660    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_CHOOSER_DATA = 65,
661    #[doc = " Stores a grant that allows a relying party to send a request for identity\n information to specified identity providers, potentially through any\n anti-tracking measures that would otherwise prevent it. This setting is\n associated with the relying party's origin."]
662    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_SHARING = 66,
663    #[doc = " Whether to use the v8 optimized JIT for running JavaScript on the page."]
664    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_JIT = 67,
665    #[doc = " Content setting which stores user decisions to allow loading a site over\n HTTP. Entries are added by hostname when a user bypasses the HTTPS-First\n Mode interstitial warning when a site does not support HTTPS. Allowed\n hosts are exact hostname matches -- subdomains of a host on the allowlist\n must be separately allowlisted."]
666    CEF_CONTENT_SETTING_TYPE_HTTP_ALLOWED = 68,
667    #[doc = " Stores metadata related to form fill, such as e.g. whether user data was\n autofilled on a specific website."]
668    CEF_CONTENT_SETTING_TYPE_FORMFILL_METADATA = 69,
669    #[doc = " Setting to indicate that there is an active federated sign-in session\n between a specified relying party and a specified identity provider for\n a specified account. When this is present it allows access to session\n management capabilities between the sites. This setting is associated\n with the relying party's origin."]
670    CEF_CONTENT_SETTING_TYPE_DEPRECATED_FEDERATED_IDENTITY_ACTIVE_SESSION = 70,
671    #[doc = " Setting to indicate whether Chrome should automatically apply darkening to\n web content."]
672    CEF_CONTENT_SETTING_TYPE_AUTO_DARK_WEB_CONTENT = 71,
673    #[doc = " Setting to indicate whether Chrome should request the desktop view of a\n site instead of the mobile one."]
674    CEF_CONTENT_SETTING_TYPE_REQUEST_DESKTOP_SITE = 72,
675    #[doc = " Setting to indicate whether browser should allow signing into a website\n via the browser FedCM API."]
676    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_API = 73,
677    #[doc = " Stores notification interactions per origin for the past 90 days.\n Interactions per origin are pre-aggregated over seven-day windows: A\n notification interaction or display is assigned to the last Monday\n midnight in local time."]
678    CEF_CONTENT_SETTING_TYPE_NOTIFICATION_INTERACTIONS = 74,
679    #[doc = " Website setting which stores the last reduced accept language negotiated\n for a given origin, to be used on future visits to the origin."]
680    CEF_CONTENT_SETTING_TYPE_REDUCED_ACCEPT_LANGUAGE = 75,
681    #[doc = " Website setting which is used for NotificationPermissionReviewService to\n store origin blocklist from review notification permissions feature."]
682    CEF_CONTENT_SETTING_TYPE_NOTIFICATION_PERMISSION_REVIEW = 76,
683    CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_GUARD_DEPRECATED = 77,
684    CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_CHOOSER_DATA_DEPRECATED = 78,
685    #[doc = " Website setting which stores whether the browser has observed the user\n signing into an identity-provider based on observing the IdP-SignIn-Status\n HTTP header."]
686    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_SIGNIN_STATUS = 79,
687    #[doc = " Website setting which is used for RevokedPermissionsService to\n store revoked permissions of unused sites from unused site permissions\n feature."]
688    CEF_CONTENT_SETTING_TYPE_REVOKED_UNUSED_SITE_PERMISSIONS = 80,
689    #[doc = " Similar to STORAGE_ACCESS, but applicable at the page-level rather than\n being specific to a frame."]
690    CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_STORAGE_ACCESS = 81,
691    #[doc = " Setting to indicate whether user has opted in to allowing auto re-authn\n via the FedCM API."]
692    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION = 82,
693    #[doc = " Website setting which stores whether the user has explicitly registered\n a website as an identity-provider."]
694    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_REGISTRATION = 83,
695    #[doc = " Content setting which is used to indicate whether anti-abuse functionality\n should be enabled."]
696    CEF_CONTENT_SETTING_TYPE_ANTI_ABUSE = 84,
697    CEF_CONTENT_SETTING_TYPE_THIRD_PARTY_STORAGE_PARTITIONING_DEPRECATED = 85,
698    #[doc = " Used to indicate whether HTTPS-First Mode is enabled on the hostname."]
699    CEF_CONTENT_SETTING_TYPE_HTTPS_ENFORCED = 86,
700    #[doc = " Setting for enabling the `getAllScreensMedia` API. Spec link:\n https://github.com/screen-share/capture-all-screens"]
701    CEF_CONTENT_SETTING_TYPE_ALL_SCREEN_CAPTURE = 87,
702    #[doc = " Stores per origin metadata for cookie controls."]
703    CEF_CONTENT_SETTING_TYPE_COOKIE_CONTROLS_METADATA = 88,
704    #[doc = " Content Setting for temporary 3PC accesses granted by user behavior\n heuristics."]
705    CEF_CONTENT_SETTING_TYPE_TPCD_HEURISTICS_GRANTS = 89,
706    #[doc = " Content Setting for 3PC accesses granted by metadata delivered via the\n component updater service. This type will only be used when\n `net::features::kTpcdMetadataGrants` is enabled."]
707    CEF_CONTENT_SETTING_TYPE_TPCD_METADATA_GRANTS = 90,
708    CEF_CONTENT_SETTING_TYPE_TPCD_TRIAL_DEPRECATED = 91,
709    CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_TPCD_TRIAL_DEPRECATED = 92,
710    CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_TPCD_ORIGIN_TRIAL_DEPRECATED = 93,
711    #[doc = " Content setting used to indicate whether entering picture-in-picture\n automatically should be enabled."]
712    CEF_CONTENT_SETTING_TYPE_AUTO_PICTURE_IN_PICTURE = 94,
713    #[doc = " Whether user has opted into keeping file/directory permissions persistent\n between visits for a given origin. When enabled, permission metadata\n stored under |FILE_SYSTEM_ACCESS_CHOOSER_DATA| can auto-grant incoming\n permission request."]
714    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_EXTENDED_PERMISSION = 95,
715    #[doc = " Whether the FSA Persistent Permissions restore prompt is eligible to be\n shown to the user, for a given origin."]
716    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_RESTORE_PERMISSION = 96,
717    #[doc = " Whether an application capturing another tab, may scroll and zoom\n the captured tab."]
718    CEF_CONTENT_SETTING_TYPE_CAPTURED_SURFACE_CONTROL = 97,
719    #[doc = " Content setting for access to smart card readers.\n The \"guard\" content setting stores whether to allow sites to access the\n Smart Card API."]
720    CEF_CONTENT_SETTING_TYPE_SMART_CARD_GUARD = 98,
721    #[doc = " Content setting for access to smart card readers.\n The \"guard\" content setting stores whether to allow sites to access the\n Smart Card API."]
722    CEF_CONTENT_SETTING_TYPE_SMART_CARD_DATA = 99,
723    #[doc = " Content settings for access to printers for the Web Printing API."]
724    CEF_CONTENT_SETTING_TYPE_WEB_PRINTING = 100,
725    #[doc = " Content setting used to indicate whether entering HTML Fullscreen\n automatically (i.e. without transient activation) should be enabled."]
726    CEF_CONTENT_SETTING_TYPE_AUTOMATIC_FULLSCREEN = 101,
727    CEF_CONTENT_SETTING_TYPE_SUB_APP_INSTALLATION_PROMPTS_DEPRECATED = 102,
728    #[doc = " Whether an application can enumerate audio output device."]
729    CEF_CONTENT_SETTING_TYPE_SPEAKER_SELECTION = 103,
730    #[doc = " Content settings for access to the Direct Sockets API."]
731    CEF_CONTENT_SETTING_TYPE_DIRECT_SOCKETS = 104,
732    #[doc = " Keyboard Lock API allows a site to capture keyboard inputs that would\n otherwise be handled by the OS or the browser."]
733    CEF_CONTENT_SETTING_TYPE_KEYBOARD_LOCK = 105,
734    #[doc = " Pointer Lock API allows a site to hide the cursor and have exclusive\n access to mouse inputs."]
735    CEF_CONTENT_SETTING_TYPE_POINTER_LOCK = 106,
736    #[doc = " Website setting which is used for RevokedPermissionsService to store\n auto-revoked notification permissions from abusive sites."]
737    CEF_CONTENT_SETTING_TYPE_REVOKED_ABUSIVE_NOTIFICATION_PERMISSIONS = 107,
738    CEF_CONTENT_SETTING_TYPE_TRACKING_PROTECTION_DEPRECATED = 108,
739    #[doc = " With this permission, when the application calls `getDisplayMedia()`, a\n system audio track can be returned without showing the display media\n selection picker. The application can explicitly specify\n `systemAudio: 'exclude'` or `video: true` to still show the display media\n selection picker if needed. Please note that the setting only works for\n WebUI."]
740    CEF_CONTENT_SETTING_TYPE_DISPLAY_MEDIA_SYSTEM_AUDIO = 109,
741    #[doc = " Whether to use the higher-tier v8 optimizers for running JavaScript on the\n page."]
742    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_OPTIMIZER = 110,
743    #[doc = " Content Setting for the Storage Access Headers persistent origin trial\n that allows origins to opt into the storage access header behavior. Should\n be scoped to `REQUESTING_ORIGIN_AND_TOP_SCHEMEFUL_SITE_SCOPE` in order to\n correspond to the design of persistent origin trials. See also:\n https://github.com/cfredric/storage-access-headers\n ALLOW: storage access request headers will be attached to cross-site\n        requests, and url requests will look for response headers from\n        origins to retry a request or load with storage access.\n BLOCK (default): no effect."]
744    CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS_HEADER_ORIGIN_TRIAL = 111,
745    #[doc = " Whether or not sites can request Hand Tracking data within WebXR Sessions."]
746    CEF_CONTENT_SETTING_TYPE_HAND_TRACKING = 112,
747    #[doc = " Website setting to indicate whether user has opted in to allow web apps to\n install other web apps."]
748    CEF_CONTENT_SETTING_TYPE_WEB_APP_INSTALLATION = 113,
749    #[doc = " Content settings for private network access in the context of the\n Direct Sockets API."]
750    CEF_CONTENT_SETTING_TYPE_DIRECT_SOCKETS_PRIVATE_NETWORK_ACCESS = 114,
751    #[doc = " Content settings for legacy cookie scope.\n Checks whether cookies scope is handled according to origin-bound cookies\n or legacy behavior."]
752    CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_SCOPE = 115,
753    #[doc = " Website setting to indicate whether the user has allowlisted suspicious\n notifications for the origin."]
754    CEF_CONTENT_SETTING_TYPE_ARE_SUSPICIOUS_NOTIFICATIONS_ALLOWLISTED_BY_USER = 116,
755    #[doc = " Content settings for access to the Controlled Frame API."]
756    CEF_CONTENT_SETTING_TYPE_CONTROLLED_FRAME = 117,
757    #[doc = " Website setting which is used for RevokedPermissionsService to\n store revoked notification permissions of disruptive sites."]
758    CEF_CONTENT_SETTING_TYPE_REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS = 118,
759    #[doc = " Content setting for whether the site is allowed to make local network\n requests."]
760    CEF_CONTENT_SETTING_TYPE_LOCAL_NETWORK_ACCESS = 119,
761    #[doc = " Stores information on-device language packs for which a site has\n installed using the Web Speech API."]
762    CEF_CONTENT_SETTING_TYPE_ON_DEVICE_SPEECH_RECOGNITION_LANGUAGES_DOWNLOADED = 120,
763    #[doc = " Stores which Translator API language packs the site has initialized."]
764    CEF_CONTENT_SETTING_TYPE_INITIALIZED_TRANSLATIONS = 121,
765    #[doc = " Stores a list of notification ids where content detection found the\n notification to be suspicious and a warning has already been shown for the\n site. Used for recovering notification contents from the database if the\n user decides they would like to see all of these notifications."]
766    CEF_CONTENT_SETTING_TYPE_SUSPICIOUS_NOTIFICATION_IDS = 122,
767    #[doc = " To support approximate geolocation, the permission is migrating to use\n permissions with options, which won't be stored as ContentSettings. Upon\n launch of the feature, GEOLOCATION and GEOLOCATION_WITH_OPTIONS should be\n merged."]
768    CEF_CONTENT_SETTING_TYPE_GEOLOCATION_WITH_OPTIONS = 123,
769    #[doc = " Setting for enabling the Device Attributes API. Spec link:\n https://wicg.github.io/WebApiDevice/device_attributes/"]
770    CEF_CONTENT_SETTING_TYPE_DEVICE_ATTRIBUTES = 124,
771    #[doc = " Stores per-origin state for permission heuristics. Currently used for\n auto-granting geolocation element permission request after repeated\n temporary grants."]
772    CEF_CONTENT_SETTING_TYPE_PERMISSION_ACTIONS_HISTORY = 125,
773    #[doc = " Website setting to indicate whether the user has selected \"show original\"\n when suspicious warning is shown. If the user has selected this, the\n notification permission will not be revoked based on suspicious verdict."]
774    CEF_CONTENT_SETTING_TYPE_SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL = 126,
775    #[doc = " Content setting for whether the site is allowed to make local network\n requests. Split from LOCAL_NETWORK_ACCESS."]
776    CEF_CONTENT_SETTING_TYPE_LOCAL_NETWORK = 127,
777    #[doc = " Content setting for whether the site is allowed to make loopback network\n requests. Split from LOCAL_NETWORK_ACCESS."]
778    CEF_CONTENT_SETTING_TYPE_LOOPBACK_NETWORK = 128,
779    CEF_CONTENT_SETTING_TYPE_NUM_VALUES = 129,
780}
781#[repr(u32)]
782#[non_exhaustive]
783#[doc = "\n Supported content setting values. Should be kept in sync with Chromium's\n ContentSetting type.\n"]
784#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
785pub enum cef_content_setting_values_t {
786    CEF_CONTENT_SETTING_VALUE_DEFAULT = 0,
787    CEF_CONTENT_SETTING_VALUE_ALLOW = 1,
788    CEF_CONTENT_SETTING_VALUE_BLOCK = 2,
789    CEF_CONTENT_SETTING_VALUE_ASK = 3,
790    CEF_CONTENT_SETTING_VALUE_SESSION_ONLY = 4,
791    CEF_CONTENT_SETTING_VALUE_DETECT_IMPORTANT_CONTENT_DEPRECATED = 5,
792    CEF_CONTENT_SETTING_VALUE_NUM_VALUES = 6,
793}
794#[doc = "\n Structure representing a point.\n"]
795#[repr(C)]
796#[derive(Debug, Copy, Clone)]
797pub struct _cef_point_t {
798    pub x: ::std::os::raw::c_int,
799    pub y: ::std::os::raw::c_int,
800}
801#[allow(clippy::unnecessary_operation, clippy::identity_op)]
802const _: () = {
803    ["Size of _cef_point_t"][::std::mem::size_of::<_cef_point_t>() - 8usize];
804    ["Alignment of _cef_point_t"][::std::mem::align_of::<_cef_point_t>() - 4usize];
805    ["Offset of field: _cef_point_t::x"][::std::mem::offset_of!(_cef_point_t, x) - 0usize];
806    ["Offset of field: _cef_point_t::y"][::std::mem::offset_of!(_cef_point_t, y) - 4usize];
807};
808#[doc = "\n Structure representing a point.\n"]
809pub type cef_point_t = _cef_point_t;
810#[doc = "\n Structure representing a rectangle.\n"]
811#[repr(C)]
812#[derive(Debug, Copy, Clone)]
813pub struct _cef_rect_t {
814    pub x: ::std::os::raw::c_int,
815    pub y: ::std::os::raw::c_int,
816    pub width: ::std::os::raw::c_int,
817    pub height: ::std::os::raw::c_int,
818}
819#[allow(clippy::unnecessary_operation, clippy::identity_op)]
820const _: () = {
821    ["Size of _cef_rect_t"][::std::mem::size_of::<_cef_rect_t>() - 16usize];
822    ["Alignment of _cef_rect_t"][::std::mem::align_of::<_cef_rect_t>() - 4usize];
823    ["Offset of field: _cef_rect_t::x"][::std::mem::offset_of!(_cef_rect_t, x) - 0usize];
824    ["Offset of field: _cef_rect_t::y"][::std::mem::offset_of!(_cef_rect_t, y) - 4usize];
825    ["Offset of field: _cef_rect_t::width"][::std::mem::offset_of!(_cef_rect_t, width) - 8usize];
826    ["Offset of field: _cef_rect_t::height"][::std::mem::offset_of!(_cef_rect_t, height) - 12usize];
827};
828#[doc = "\n Structure representing a rectangle.\n"]
829pub type cef_rect_t = _cef_rect_t;
830#[doc = "\n Structure representing a size.\n"]
831#[repr(C)]
832#[derive(Debug, Copy, Clone)]
833pub struct _cef_size_t {
834    pub width: ::std::os::raw::c_int,
835    pub height: ::std::os::raw::c_int,
836}
837#[allow(clippy::unnecessary_operation, clippy::identity_op)]
838const _: () = {
839    ["Size of _cef_size_t"][::std::mem::size_of::<_cef_size_t>() - 8usize];
840    ["Alignment of _cef_size_t"][::std::mem::align_of::<_cef_size_t>() - 4usize];
841    ["Offset of field: _cef_size_t::width"][::std::mem::offset_of!(_cef_size_t, width) - 0usize];
842    ["Offset of field: _cef_size_t::height"][::std::mem::offset_of!(_cef_size_t, height) - 4usize];
843};
844#[doc = "\n Structure representing a size.\n"]
845pub type cef_size_t = _cef_size_t;
846#[doc = "\n Structure representing insets.\n"]
847#[repr(C)]
848#[derive(Debug, Copy, Clone)]
849pub struct _cef_insets_t {
850    pub top: ::std::os::raw::c_int,
851    pub left: ::std::os::raw::c_int,
852    pub bottom: ::std::os::raw::c_int,
853    pub right: ::std::os::raw::c_int,
854}
855#[allow(clippy::unnecessary_operation, clippy::identity_op)]
856const _: () = {
857    ["Size of _cef_insets_t"][::std::mem::size_of::<_cef_insets_t>() - 16usize];
858    ["Alignment of _cef_insets_t"][::std::mem::align_of::<_cef_insets_t>() - 4usize];
859    ["Offset of field: _cef_insets_t::top"][::std::mem::offset_of!(_cef_insets_t, top) - 0usize];
860    ["Offset of field: _cef_insets_t::left"][::std::mem::offset_of!(_cef_insets_t, left) - 4usize];
861    ["Offset of field: _cef_insets_t::bottom"]
862        [::std::mem::offset_of!(_cef_insets_t, bottom) - 8usize];
863    ["Offset of field: _cef_insets_t::right"]
864        [::std::mem::offset_of!(_cef_insets_t, right) - 12usize];
865};
866#[doc = "\n Structure representing insets.\n"]
867pub type cef_insets_t = _cef_insets_t;
868#[repr(u32)]
869#[non_exhaustive]
870#[doc = "\n Describes how to interpret the components of a pixel.\n"]
871#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
872pub enum cef_color_type_t {
873    #[doc = "\n RGBA with 8 bits per pixel (32bits total).\n"]
874    CEF_COLOR_TYPE_RGBA_8888 = 0,
875    #[doc = "\n BGRA with 8 bits per pixel (32bits total).\n"]
876    CEF_COLOR_TYPE_BGRA_8888 = 1,
877    #[doc = "\n BGRA with 8 bits per pixel (32bits total).\n"]
878    CEF_COLOR_TYPE_NUM_VALUES = 2,
879}
880#[doc = "\n Structure containing shared texture common metadata.\n For documentation on each field, please refer to\n src/media/base/video_frame_metadata.h for actual details.\n"]
881#[repr(C)]
882#[derive(Debug, Copy, Clone)]
883pub struct _cef_accelerated_paint_info_common_t {
884    #[doc = "\n Size of this structure.\n"]
885    pub size: usize,
886    #[doc = "\n Timestamp of the frame in microseconds since capture start.\n"]
887    pub timestamp: u64,
888    #[doc = "\n The full dimensions of the video frame.\n"]
889    pub coded_size: cef_size_t,
890    #[doc = "\n The visible area of the video frame.\n"]
891    pub visible_rect: cef_rect_t,
892    #[doc = "\n The region of the video frame that capturer would like to populate.\n"]
893    pub content_rect: cef_rect_t,
894    #[doc = "\n Full size of the source frame.\n"]
895    pub source_size: cef_size_t,
896    #[doc = "\n Updated area of frame, can be considered as the `dirty` area.\n"]
897    pub capture_update_rect: cef_rect_t,
898    #[doc = "\n May reflects where the frame's contents originate from if region\n capture is used internally.\n"]
899    pub region_capture_rect: cef_rect_t,
900    #[doc = "\n The increamental counter of the frame.\n"]
901    pub capture_counter: u64,
902    #[doc = "\n Optional flag of capture_update_rect\n"]
903    pub has_capture_update_rect: u8,
904    #[doc = "\n Optional flag of region_capture_rect\n"]
905    pub has_region_capture_rect: u8,
906    #[doc = "\n Optional flag of source_size\n"]
907    pub has_source_size: u8,
908    #[doc = "\n Optional flag of capture_counter\n"]
909    pub has_capture_counter: u8,
910}
911#[allow(clippy::unnecessary_operation, clippy::identity_op)]
912const _: () = {
913    ["Size of _cef_accelerated_paint_info_common_t"]
914        [::std::mem::size_of::<_cef_accelerated_paint_info_common_t>() - 112usize];
915    ["Alignment of _cef_accelerated_paint_info_common_t"]
916        [::std::mem::align_of::<_cef_accelerated_paint_info_common_t>() - 8usize];
917    ["Offset of field: _cef_accelerated_paint_info_common_t::size"]
918        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, size) - 0usize];
919    ["Offset of field: _cef_accelerated_paint_info_common_t::timestamp"]
920        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, timestamp) - 8usize];
921    ["Offset of field: _cef_accelerated_paint_info_common_t::coded_size"]
922        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, coded_size) - 16usize];
923    ["Offset of field: _cef_accelerated_paint_info_common_t::visible_rect"]
924        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, visible_rect) - 24usize];
925    ["Offset of field: _cef_accelerated_paint_info_common_t::content_rect"]
926        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, content_rect) - 40usize];
927    ["Offset of field: _cef_accelerated_paint_info_common_t::source_size"]
928        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, source_size) - 56usize];
929    ["Offset of field: _cef_accelerated_paint_info_common_t::capture_update_rect"][::std::mem::offset_of!(
930        _cef_accelerated_paint_info_common_t,
931        capture_update_rect
932    ) - 64usize];
933    ["Offset of field: _cef_accelerated_paint_info_common_t::region_capture_rect"][::std::mem::offset_of!(
934        _cef_accelerated_paint_info_common_t,
935        region_capture_rect
936    ) - 80usize];
937    ["Offset of field: _cef_accelerated_paint_info_common_t::capture_counter"]
938        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, capture_counter) - 96usize];
939    ["Offset of field: _cef_accelerated_paint_info_common_t::has_capture_update_rect"][::std::mem::offset_of!(
940        _cef_accelerated_paint_info_common_t,
941        has_capture_update_rect
942    )
943        - 104usize];
944    ["Offset of field: _cef_accelerated_paint_info_common_t::has_region_capture_rect"][::std::mem::offset_of!(
945        _cef_accelerated_paint_info_common_t,
946        has_region_capture_rect
947    )
948        - 105usize];
949    ["Offset of field: _cef_accelerated_paint_info_common_t::has_source_size"]
950        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, has_source_size) - 106usize];
951    ["Offset of field: _cef_accelerated_paint_info_common_t::has_capture_counter"][::std::mem::offset_of!(
952        _cef_accelerated_paint_info_common_t,
953        has_capture_counter
954    ) - 107usize];
955};
956#[doc = "\n Structure containing shared texture common metadata.\n For documentation on each field, please refer to\n src/media/base/video_frame_metadata.h for actual details.\n"]
957pub type cef_accelerated_paint_info_common_t = _cef_accelerated_paint_info_common_t;
958#[repr(u32)]
959#[non_exhaustive]
960#[doc = "\n CEF supports both a Chrome runtime style (based on the Chrome UI layer) and\n an Alloy runtime style (based on the Chromium content layer). Chrome style\n provides the full Chrome UI and browser functionality whereas Alloy style\n provides less default browser functionality but adds additional client\n callbacks and support for windowless (off-screen) rendering. The style type\n is individually configured for each window/browser at creation time and\n different styles can be mixed during runtime. For additional comparative\n details on runtime styles see\n https://chromiumembedded.github.io/cef/architecture#cef3\n\n Windowless rendering will always use Alloy style. Windowed rendering with a\n default window or client-provided parent window can configure the style via\n CefWindowInfo.runtime_style. Windowed rendering with the Views framework can\n configure the style via CefWindowDelegate::GetWindowRuntimeStyle and\n CefBrowserViewDelegate::GetBrowserRuntimeStyle. Alloy style Windows with the\n Views framework can host only Alloy style BrowserViews but Chrome style\n Windows can host both style BrowserViews. Additionally, a Chrome style\n Window can host at most one Chrome style BrowserView but potentially\n multiple Alloy style BrowserViews. See CefWindowInfo.runtime_style\n documentation for any additional platform-specific limitations.\n"]
961#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
962pub enum cef_runtime_style_t {
963    #[doc = "\n Use the default style. See above documentation for exceptions.\n"]
964    CEF_RUNTIME_STYLE_DEFAULT = 0,
965    #[doc = "\n Use Chrome style.\n"]
966    CEF_RUNTIME_STYLE_CHROME = 1,
967    #[doc = "\n Use Alloy style.\n"]
968    CEF_RUNTIME_STYLE_ALLOY = 2,
969}
970#[repr(C)]
971#[derive(Copy, Clone)]
972pub struct _XEvent {
973    _unused: [u8; 0],
974}
975pub type XEvent = _XEvent;
976#[repr(C)]
977#[derive(Debug, Copy, Clone)]
978pub struct _XDisplay {
979    _unused: [u8; 0],
980}
981pub type XDisplay = _XDisplay;
982pub type cef_cursor_handle_t = ::std::os::raw::c_ulong;
983pub type cef_event_handle_t = *mut XEvent;
984pub type cef_window_handle_t = ::std::os::raw::c_ulong;
985unsafe extern "C" {
986    pub fn cef_get_xdisplay() -> *mut XDisplay;
987}
988#[doc = "\n Structure representing CefExecuteProcess arguments.\n"]
989#[repr(C)]
990#[derive(Debug, Copy, Clone)]
991pub struct _cef_main_args_t {
992    pub argc: ::std::os::raw::c_int,
993    pub argv: *mut *mut ::std::os::raw::c_char,
994}
995#[allow(clippy::unnecessary_operation, clippy::identity_op)]
996const _: () = {
997    ["Size of _cef_main_args_t"][::std::mem::size_of::<_cef_main_args_t>() - 16usize];
998    ["Alignment of _cef_main_args_t"][::std::mem::align_of::<_cef_main_args_t>() - 8usize];
999    ["Offset of field: _cef_main_args_t::argc"]
1000        [::std::mem::offset_of!(_cef_main_args_t, argc) - 0usize];
1001    ["Offset of field: _cef_main_args_t::argv"]
1002        [::std::mem::offset_of!(_cef_main_args_t, argv) - 8usize];
1003};
1004#[doc = "\n Structure representing CefExecuteProcess arguments.\n"]
1005pub type cef_main_args_t = _cef_main_args_t;
1006#[doc = "\n Class representing window information.\n"]
1007#[repr(C)]
1008#[derive(Debug, Copy, Clone)]
1009pub struct _cef_window_info_t {
1010    #[doc = "\n Size of this structure.\n"]
1011    pub size: usize,
1012    #[doc = "\n The initial title of the window, to be set when the window is created.\n Some layout managers (e.g., Compiz) can look at the window title\n in order to decide where to place the window when it is\n created. When this attribute is not empty, the window title will\n be set before the window is mapped to the dispay. Otherwise the\n title will be initially empty.\n"]
1013    pub window_name: cef_string_t,
1014    #[doc = "\n Initial window bounds.\n"]
1015    pub bounds: cef_rect_t,
1016    #[doc = "\n Pointer for the parent window.\n"]
1017    pub parent_window: cef_window_handle_t,
1018    #[doc = "\n Set to true (1) to create the browser using windowless (off-screen)\n rendering. No window will be created for the browser and all rendering\n will occur via the CefRenderHandler interface. The |parent_window| value\n will be used to identify monitor info and to act as the parent window for\n dialogs, context menus, etc. If |parent_window| is not provided then the\n main screen monitor will be used and some functionality that requires a\n parent window may not function correctly. In order to create windowless\n browsers the CefSettings.windowless_rendering_enabled value must be set to\n true. Transparent painting is enabled by default but can be disabled by\n setting CefBrowserSettings.background_color to an opaque value.\n"]
1019    pub windowless_rendering_enabled: ::std::os::raw::c_int,
1020    #[doc = "\n Set to true (1) to enable shared textures for windowless rendering. Only\n valid if windowless_rendering_enabled above is also set to true. Currently\n only supported on Windows (D3D11).\n"]
1021    pub shared_texture_enabled: ::std::os::raw::c_int,
1022    #[doc = "\n Set to true (1) to enable the ability to issue BeginFrame requests from\n the client application by calling CefBrowserHost::SendExternalBeginFrame.\n"]
1023    pub external_begin_frame_enabled: ::std::os::raw::c_int,
1024    #[doc = "\n Pointer for the new browser window. Only used with windowed rendering.\n"]
1025    pub window: cef_window_handle_t,
1026    #[doc = "\n Optionally change the runtime style. Alloy style will always be used if\n |windowless_rendering_enabled| is true. See cef_runtime_style_t\n documentation for details.\n"]
1027    pub runtime_style: cef_runtime_style_t,
1028}
1029#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1030const _: () = {
1031    ["Size of _cef_window_info_t"][::std::mem::size_of::<_cef_window_info_t>() - 88usize];
1032    ["Alignment of _cef_window_info_t"][::std::mem::align_of::<_cef_window_info_t>() - 8usize];
1033    ["Offset of field: _cef_window_info_t::size"]
1034        [::std::mem::offset_of!(_cef_window_info_t, size) - 0usize];
1035    ["Offset of field: _cef_window_info_t::window_name"]
1036        [::std::mem::offset_of!(_cef_window_info_t, window_name) - 8usize];
1037    ["Offset of field: _cef_window_info_t::bounds"]
1038        [::std::mem::offset_of!(_cef_window_info_t, bounds) - 32usize];
1039    ["Offset of field: _cef_window_info_t::parent_window"]
1040        [::std::mem::offset_of!(_cef_window_info_t, parent_window) - 48usize];
1041    ["Offset of field: _cef_window_info_t::windowless_rendering_enabled"]
1042        [::std::mem::offset_of!(_cef_window_info_t, windowless_rendering_enabled) - 56usize];
1043    ["Offset of field: _cef_window_info_t::shared_texture_enabled"]
1044        [::std::mem::offset_of!(_cef_window_info_t, shared_texture_enabled) - 60usize];
1045    ["Offset of field: _cef_window_info_t::external_begin_frame_enabled"]
1046        [::std::mem::offset_of!(_cef_window_info_t, external_begin_frame_enabled) - 64usize];
1047    ["Offset of field: _cef_window_info_t::window"]
1048        [::std::mem::offset_of!(_cef_window_info_t, window) - 72usize];
1049    ["Offset of field: _cef_window_info_t::runtime_style"]
1050        [::std::mem::offset_of!(_cef_window_info_t, runtime_style) - 80usize];
1051};
1052#[doc = "\n Class representing window information.\n"]
1053pub type cef_window_info_t = _cef_window_info_t;
1054#[doc = "\n Structure containing the plane information of the shared texture.\n Sync with native_pixmap_handle.h\n"]
1055#[repr(C)]
1056#[derive(Debug, Copy, Clone)]
1057pub struct _cef_accelerated_paint_native_pixmap_plane_info_t {
1058    #[doc = "\n The strides and offsets in bytes to be used when accessing the buffers via\n a memory mapping. One per plane per entry. Size in bytes of the plane is\n necessary to map the buffers.\n"]
1059    pub stride: u32,
1060    pub offset: u64,
1061    pub size: u64,
1062    #[doc = "\n File descriptor for the underlying memory object (usually dmabuf).\n"]
1063    pub fd: ::std::os::raw::c_int,
1064}
1065#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1066const _: () = {
1067    ["Size of _cef_accelerated_paint_native_pixmap_plane_info_t"]
1068        [::std::mem::size_of::<_cef_accelerated_paint_native_pixmap_plane_info_t>() - 32usize];
1069    ["Alignment of _cef_accelerated_paint_native_pixmap_plane_info_t"]
1070        [::std::mem::align_of::<_cef_accelerated_paint_native_pixmap_plane_info_t>() - 8usize];
1071    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::stride"][::std::mem::offset_of!(
1072        _cef_accelerated_paint_native_pixmap_plane_info_t,
1073        stride
1074    ) - 0usize];
1075    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::offset"][::std::mem::offset_of!(
1076        _cef_accelerated_paint_native_pixmap_plane_info_t,
1077        offset
1078    ) - 8usize];
1079    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::size"]
1080        [::std::mem::offset_of!(_cef_accelerated_paint_native_pixmap_plane_info_t, size) - 16usize];
1081    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::fd"]
1082        [::std::mem::offset_of!(_cef_accelerated_paint_native_pixmap_plane_info_t, fd) - 24usize];
1083};
1084#[doc = "\n Structure containing the plane information of the shared texture.\n Sync with native_pixmap_handle.h\n"]
1085pub type cef_accelerated_paint_native_pixmap_plane_t =
1086    _cef_accelerated_paint_native_pixmap_plane_info_t;
1087#[doc = "\n Structure containing shared texture information for the OnAcceleratedPaint\n callback. Resources will be released to the underlying pool for reuse when\n the callback returns from client code.\n"]
1088#[repr(C)]
1089#[derive(Debug, Copy, Clone)]
1090pub struct _cef_accelerated_paint_info_t {
1091    #[doc = "\n Size of this structure.\n"]
1092    pub size: usize,
1093    #[doc = "\n Planes of the shared texture, usually file descriptors of dmabufs.\n"]
1094    pub planes: [cef_accelerated_paint_native_pixmap_plane_t; 4usize],
1095    #[doc = "\n Plane count.\n"]
1096    pub plane_count: ::std::os::raw::c_int,
1097    #[doc = "\n Modifier could be used with EGL driver.\n"]
1098    pub modifier: u64,
1099    #[doc = "\n The pixel format of the texture.\n"]
1100    pub format: cef_color_type_t,
1101    #[doc = "\n The extra common info.\n"]
1102    pub extra: cef_accelerated_paint_info_common_t,
1103}
1104#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1105const _: () = {
1106    ["Size of _cef_accelerated_paint_info_t"]
1107        [::std::mem::size_of::<_cef_accelerated_paint_info_t>() - 272usize];
1108    ["Alignment of _cef_accelerated_paint_info_t"]
1109        [::std::mem::align_of::<_cef_accelerated_paint_info_t>() - 8usize];
1110    ["Offset of field: _cef_accelerated_paint_info_t::size"]
1111        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, size) - 0usize];
1112    ["Offset of field: _cef_accelerated_paint_info_t::planes"]
1113        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, planes) - 8usize];
1114    ["Offset of field: _cef_accelerated_paint_info_t::plane_count"]
1115        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, plane_count) - 136usize];
1116    ["Offset of field: _cef_accelerated_paint_info_t::modifier"]
1117        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, modifier) - 144usize];
1118    ["Offset of field: _cef_accelerated_paint_info_t::format"]
1119        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, format) - 152usize];
1120    ["Offset of field: _cef_accelerated_paint_info_t::extra"]
1121        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, extra) - 160usize];
1122};
1123#[doc = "\n Structure containing shared texture information for the OnAcceleratedPaint\n callback. Resources will be released to the underlying pool for reuse when\n the callback returns from client code.\n"]
1124pub type cef_accelerated_paint_info_t = _cef_accelerated_paint_info_t;
1125pub type cef_color_t = u32;
1126impl cef_log_severity_t {
1127    pub const LOGSEVERITY_DEBUG: cef_log_severity_t = cef_log_severity_t::LOGSEVERITY_VERBOSE;
1128}
1129#[repr(u32)]
1130#[non_exhaustive]
1131#[doc = "\n Log severity levels.\n"]
1132#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1133pub enum cef_log_severity_t {
1134    #[doc = "\n Default logging (currently INFO logging).\n"]
1135    LOGSEVERITY_DEFAULT = 0,
1136    #[doc = "\n Verbose logging.\n"]
1137    LOGSEVERITY_VERBOSE = 1,
1138    #[doc = "\n INFO logging.\n"]
1139    LOGSEVERITY_INFO = 2,
1140    #[doc = "\n WARNING logging.\n"]
1141    LOGSEVERITY_WARNING = 3,
1142    #[doc = "\n ERROR logging.\n"]
1143    LOGSEVERITY_ERROR = 4,
1144    #[doc = "\n FATAL logging.\n"]
1145    LOGSEVERITY_FATAL = 5,
1146    #[doc = "\n Disable logging to file for all messages, and to stderr for messages with\n severity less than FATAL.\n"]
1147    LOGSEVERITY_DISABLE = 99,
1148}
1149#[repr(u32)]
1150#[non_exhaustive]
1151#[doc = "\n Log items prepended to each log line.\n"]
1152#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1153pub enum cef_log_items_t {
1154    #[doc = "\n Prepend the default list of items.\n"]
1155    LOG_ITEMS_DEFAULT = 0,
1156    #[doc = "\n Prepend no items.\n"]
1157    LOG_ITEMS_NONE = 1,
1158    #[doc = "\n Prepend the process ID.\n"]
1159    LOG_ITEMS_FLAG_PROCESS_ID = 2,
1160    #[doc = "\n Prepend the thread ID.\n"]
1161    LOG_ITEMS_FLAG_THREAD_ID = 4,
1162    #[doc = "\n Prepend the timestamp.\n"]
1163    LOG_ITEMS_FLAG_TIME_STAMP = 8,
1164    #[doc = "\n Prepend the tickcount.\n"]
1165    LOG_ITEMS_FLAG_TICK_COUNT = 16,
1166}
1167#[repr(u32)]
1168#[non_exhaustive]
1169#[doc = "\n Represents the state of a setting.\n"]
1170#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1171pub enum cef_state_t {
1172    #[doc = "\n Use the default state for the setting.\n"]
1173    STATE_DEFAULT = 0,
1174    #[doc = "\n Enable or allow the setting.\n"]
1175    STATE_ENABLED = 1,
1176    #[doc = "\n Disable or disallow the setting.\n"]
1177    STATE_DISABLED = 2,
1178}
1179#[doc = "\n Initialization settings. Specify NULL or 0 to get the recommended default\n values. Many of these and other settings can also configured using command-\n line switches.\n"]
1180#[repr(C)]
1181#[derive(Debug, Copy, Clone)]
1182pub struct _cef_settings_t {
1183    #[doc = "\n Size of this structure.\n"]
1184    pub size: usize,
1185    #[doc = "\n Set to true (1) to disable the sandbox for sub-processes. See\n cef_sandbox_win.h for requirements to enable the sandbox on Windows. Also\n configurable using the \"no-sandbox\" command-line switch.\n"]
1186    pub no_sandbox: ::std::os::raw::c_int,
1187    #[doc = "\n The path to a separate executable that will be launched for sub-processes.\n If this value is empty on Windows or Linux then the main process\n executable will be used. If this value is empty on macOS then a helper\n executable must exist at \"Contents/Frameworks/<app>\n Helper.app/Contents/MacOS/<app> Helper\" in the top-level app bundle. See\n the comments on CefExecuteProcess() for details. If this value is\n non-empty then it must be an absolute path. Also configurable using the\n \"browser-subprocess-path\" command-line switch.\n"]
1188    pub browser_subprocess_path: cef_string_t,
1189    #[doc = "\n The path to the CEF framework directory on macOS. If this value is empty\n then the framework must exist at \"Contents/Frameworks/Chromium Embedded\n Framework.framework\" in the top-level app bundle. If this value is\n non-empty then it must be an absolute path. Also configurable using the\n \"framework-dir-path\" command-line switch.\n"]
1190    pub framework_dir_path: cef_string_t,
1191    #[doc = "\n The path to the main bundle on macOS. If this value is empty then it\n defaults to the top-level app bundle. If this value is non-empty then it\n must be an absolute path. Also configurable using the \"main-bundle-path\"\n command-line switch.\n"]
1192    pub main_bundle_path: cef_string_t,
1193    #[doc = "\n Set to true (1) to have the browser process message loop run in a separate\n thread. If false (0) then the CefDoMessageLoopWork() function must be\n called from your application message loop. This option is only supported\n on Windows and Linux.\n"]
1194    pub multi_threaded_message_loop: ::std::os::raw::c_int,
1195    #[doc = "\n Set to true (1) to control browser process main (UI) thread message pump\n scheduling via the CefBrowserProcessHandler::OnScheduleMessagePumpWork()\n callback. This option is recommended for use in combination with the\n CefDoMessageLoopWork() function in cases where the CEF message loop must\n be integrated into an existing application message loop (see additional\n comments and warnings on CefDoMessageLoopWork). Enabling this option is\n not recommended for most users; leave this option disabled and use either\n the CefRunMessageLoop() function or multi_threaded_message_loop if\n possible.\n"]
1196    pub external_message_pump: ::std::os::raw::c_int,
1197    #[doc = "\n Set to true (1) to enable windowless (off-screen) rendering support. Do\n not enable this value if the application does not use windowless rendering\n as it may reduce rendering performance on some systems.\n"]
1198    pub windowless_rendering_enabled: ::std::os::raw::c_int,
1199    #[doc = "\n Set to true (1) to disable configuration of browser process features using\n standard CEF and Chromium command-line arguments. Configuration can still\n be specified using CEF data structures or via the\n CefApp::OnBeforeCommandLineProcessing() method.\n"]
1200    pub command_line_args_disabled: ::std::os::raw::c_int,
1201    #[doc = "\n The directory where data for the global browser cache will be stored on\n disk. If this value is non-empty then it must be an absolute path that is\n either equal to or a child directory of CefSettings.root_cache_path. If\n this value is empty then browsers will be created in \"incognito mode\"\n where in-memory caches are used for storage and no profile-specific data\n is persisted to disk (installation-specific data will still be persisted\n in root_cache_path). HTML5 databases such as localStorage will only\n persist across sessions if a cache path is specified. Can be overridden\n for individual CefRequestContext instances via the\n CefRequestContextSettings.cache_path value. Any child directory value will\n be ignored and the \"default\" profile (also a child directory) will be used\n instead.\n"]
1202    pub cache_path: cef_string_t,
1203    #[doc = "\n The root directory for installation-specific data and the parent directory\n for profile-specific data. All CefSettings.cache_path and\n CefRequestContextSettings.cache_path values must have this parent\n directory in common. If this value is empty and CefSettings.cache_path is\n non-empty then it will default to the CefSettings.cache_path value. Any\n non-empty value must be an absolute path. If both values are empty then\n the default platform-specific directory will be used\n (\"~/.config/cef_user_data\" directory on Linux, \"~/Library/Application\n Support/CEF/User Data\" directory on MacOS, \"AppData\\Local\\CEF\\User Data\"\n directory under the user profile directory on Windows). Use of the default\n directory is not recommended in production applications (see below).\n\n Multiple application instances writing to the same root_cache_path\n directory could result in data corruption. A process singleton lock based\n on the root_cache_path value is therefore used to protect against this.\n This singleton behavior applies to all CEF-based applications using\n version 120 or newer. You should customize root_cache_path for your\n application and implement CefBrowserProcessHandler::\n OnAlreadyRunningAppRelaunch, which will then be called on any app relaunch\n with the same root_cache_path value.\n\n Failure to set the root_cache_path value correctly may result in startup\n crashes or other unexpected behaviors (for example, the sandbox blocking\n read/write access to certain files).\n"]
1204    pub root_cache_path: cef_string_t,
1205    #[doc = "\n To persist session cookies (cookies without an expiry date or validity\n interval) by default when using the global cookie manager set this value\n to true (1). Session cookies are generally intended to be transient and\n most Web browsers do not persist them. A |cache_path| value must also be\n specified to enable this feature. Also configurable using the\n \"persist-session-cookies\" command-line switch. Can be overridden for\n individual CefRequestContext instances via the\n CefRequestContextSettings.persist_session_cookies value.\n"]
1206    pub persist_session_cookies: ::std::os::raw::c_int,
1207    #[doc = "\n Value that will be returned as the User-Agent HTTP header. If empty the\n default User-Agent string will be used. Also configurable using the\n \"user-agent\" command-line switch.\n"]
1208    pub user_agent: cef_string_t,
1209    #[doc = "\n Value that will be inserted as the product portion of the default\n User-Agent string. If empty the Chromium product version will be used. If\n |userAgent| is specified this value will be ignored. Also configurable\n using the \"user-agent-product\" command-line switch.\n"]
1210    pub user_agent_product: cef_string_t,
1211    #[doc = "\n The locale string that will be passed to WebKit. If empty the default\n locale of \"en-US\" will be used. This value is ignored on Linux where\n locale is determined using environment variable parsing with the\n precedence order: LANGUAGE, LC_ALL, LC_MESSAGES and LANG. Also\n configurable using the \"lang\" command-line switch.\n"]
1212    pub locale: cef_string_t,
1213    #[doc = "\n The directory and file name to use for the debug log. If empty a default\n log file name and location will be used. On Windows and Linux a\n \"debug.log\" file will be written in the main executable directory. On\n MacOS a \"~/Library/Logs/[app name]_debug.log\" file will be written where\n [app name] is the name of the main app executable. Also configurable using\n the \"log-file\" command-line switch.\n"]
1214    pub log_file: cef_string_t,
1215    #[doc = "\n The log severity. Only messages of this severity level or higher will be\n logged. When set to DISABLE no messages will be written to the log file,\n but FATAL messages will still be output to stderr. Also configurable using\n the \"log-severity\" command-line switch with a value of \"verbose\", \"info\",\n \"warning\", \"error\", \"fatal\" or \"disable\".\n"]
1216    pub log_severity: cef_log_severity_t,
1217    #[doc = "\n The log items prepended to each log line. If not set the default log items\n will be used. Also configurable using the \"log-items\" command-line switch\n with a value of \"none\" for no log items, or a comma-delimited list of\n values \"pid\", \"tid\", \"timestamp\" or \"tickcount\" for custom log items.\n"]
1218    pub log_items: cef_log_items_t,
1219    #[doc = "\n Custom flags that will be used when initializing the V8 JavaScript engine.\n The consequences of using custom flags may not be well tested. Also\n configurable using the \"js-flags\" command-line switch.\n"]
1220    pub javascript_flags: cef_string_t,
1221    #[doc = "\n The fully qualified path for the resources directory. If this value is\n empty the *.pak files must be located in the module directory on\n Windows/Linux or the app bundle Resources directory on MacOS. If this\n value is non-empty then it must be an absolute path. Also configurable\n using the \"resources-dir-path\" command-line switch.\n"]
1222    pub resources_dir_path: cef_string_t,
1223    #[doc = "\n The fully qualified path for the locales directory. If this value is empty\n the locales directory must be located in the module directory. If this\n value is non-empty then it must be an absolute path. This value is ignored\n on MacOS where pack files are always loaded from the app bundle Resources\n directory. Also configurable using the \"locales-dir-path\" command-line\n switch.\n"]
1224    pub locales_dir_path: cef_string_t,
1225    #[doc = "\n Set to a value between 1024 and 65535 to enable remote debugging on the\n specified port. Also configurable using the \"remote-debugging-port\"\n command-line switch. Specifying 0 via the command-line switch will result\n in the selection of an ephemeral port and the port number will be printed\n as part of the WebSocket endpoint URL to stderr. If a cache directory path\n is provided the port will also be written to the\n <cache-dir>/DevToolsActivePort file. Remote debugging can be accessed by\n loading the chrome://inspect page in Google Chrome. Port numbers 9222 and\n 9229 are discoverable by default. Other port numbers may need to be\n configured via \"Discover network targets\" on the Devices tab.\n"]
1226    pub remote_debugging_port: ::std::os::raw::c_int,
1227    #[doc = "\n The number of stack trace frames to capture for uncaught exceptions.\n Specify a positive value to enable the\n CefRenderProcessHandler::OnUncaughtException() callback. Specify 0\n (default value) and OnUncaughtException() will not be called. Also\n configurable using the \"uncaught-exception-stack-size\" command-line\n switch.\n"]
1228    pub uncaught_exception_stack_size: ::std::os::raw::c_int,
1229    #[doc = "\n Background color used for the browser before a document is loaded and when\n no document color is specified. The alpha component must be either fully\n opaque (0xFF) or fully transparent (0x00). If the alpha component is fully\n opaque then the RGB components will be used as the background color. If\n the alpha component is fully transparent for a windowed browser then the\n default value of opaque white be used. If the alpha component is fully\n transparent for a windowless (off-screen) browser then transparent\n painting will be enabled.\n"]
1230    pub background_color: cef_color_t,
1231    #[doc = "\n Comma delimited ordered list of language codes without any whitespace that\n will be used in the \"Accept-Language\" HTTP request header and\n \"navigator.language\" JS attribute. Can be overridden for individual\n CefRequestContext instances via the\n CefRequestContextSettings.accept_language_list value.\n"]
1232    pub accept_language_list: cef_string_t,
1233    #[doc = "\n Comma delimited list of schemes supported by the associated\n CefCookieManager. If |cookieable_schemes_exclude_defaults| is false (0)\n the default schemes (\"http\", \"https\", \"ws\" and \"wss\") will also be\n supported. Not specifying a |cookieable_schemes_list| value and setting\n |cookieable_schemes_exclude_defaults| to true (1) will disable all loading\n and saving of cookies. These settings will only impact the global\n CefRequestContext. Individual CefRequestContext instances can be\n configured via the CefRequestContextSettings.cookieable_schemes_list and\n CefRequestContextSettings.cookieable_schemes_exclude_defaults values.\n"]
1234    pub cookieable_schemes_list: cef_string_t,
1235    pub cookieable_schemes_exclude_defaults: ::std::os::raw::c_int,
1236    #[doc = "\n Specify an ID to enable Chrome policy management via Platform and OS-user\n policies. On Windows, this is a registry key like\n \"SOFTWARE\\\\Policies\\\\Google\\\\Chrome\". On MacOS, this is a bundle ID like\n \"com.google.Chrome\". On Linux, this is an absolute directory path like\n \"/etc/opt/chrome/policies\". Only supported with Chrome style. See\n https://support.google.com/chrome/a/answer/9037717 for details.\n\n Chrome Browser Cloud Management integration, when enabled via the\n \"enable-chrome-browser-cloud-management\" command-line flag, will also use\n the specified ID. See https://support.google.com/chrome/a/answer/9116814\n for details.\n"]
1237    pub chrome_policy_id: cef_string_t,
1238    #[doc = "\n Specify an ID for an ICON resource that can be loaded from the main\n executable and used when creating default Chrome windows such as DevTools\n and Task Manager. If unspecified the default Chromium ICON (IDR_MAINFRAME\n [101]) will be loaded from libcef.dll. Only supported with Chrome style on\n Windows.\n"]
1239    pub chrome_app_icon_id: ::std::os::raw::c_int,
1240    #[doc = "\n Specify whether signal handlers must be disabled on POSIX systems.\n"]
1241    pub disable_signal_handlers: ::std::os::raw::c_int,
1242    #[doc = "\n If true use a Views (bare-bones) window instead of a Chrome UI window when\n creating default popups for Chrome style native-hosted (non-Views)\n browsers. This applies when CefLifeSpanHandler::OnBeforePopup has not been\n implemented to provide parent window information for the new popup.\n"]
1243    pub use_views_default_popup: ::std::os::raw::c_int,
1244}
1245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1246const _: () = {
1247    ["Size of _cef_settings_t"][::std::mem::size_of::<_cef_settings_t>() - 448usize];
1248    ["Alignment of _cef_settings_t"][::std::mem::align_of::<_cef_settings_t>() - 8usize];
1249    ["Offset of field: _cef_settings_t::size"]
1250        [::std::mem::offset_of!(_cef_settings_t, size) - 0usize];
1251    ["Offset of field: _cef_settings_t::no_sandbox"]
1252        [::std::mem::offset_of!(_cef_settings_t, no_sandbox) - 8usize];
1253    ["Offset of field: _cef_settings_t::browser_subprocess_path"]
1254        [::std::mem::offset_of!(_cef_settings_t, browser_subprocess_path) - 16usize];
1255    ["Offset of field: _cef_settings_t::framework_dir_path"]
1256        [::std::mem::offset_of!(_cef_settings_t, framework_dir_path) - 40usize];
1257    ["Offset of field: _cef_settings_t::main_bundle_path"]
1258        [::std::mem::offset_of!(_cef_settings_t, main_bundle_path) - 64usize];
1259    ["Offset of field: _cef_settings_t::multi_threaded_message_loop"]
1260        [::std::mem::offset_of!(_cef_settings_t, multi_threaded_message_loop) - 88usize];
1261    ["Offset of field: _cef_settings_t::external_message_pump"]
1262        [::std::mem::offset_of!(_cef_settings_t, external_message_pump) - 92usize];
1263    ["Offset of field: _cef_settings_t::windowless_rendering_enabled"]
1264        [::std::mem::offset_of!(_cef_settings_t, windowless_rendering_enabled) - 96usize];
1265    ["Offset of field: _cef_settings_t::command_line_args_disabled"]
1266        [::std::mem::offset_of!(_cef_settings_t, command_line_args_disabled) - 100usize];
1267    ["Offset of field: _cef_settings_t::cache_path"]
1268        [::std::mem::offset_of!(_cef_settings_t, cache_path) - 104usize];
1269    ["Offset of field: _cef_settings_t::root_cache_path"]
1270        [::std::mem::offset_of!(_cef_settings_t, root_cache_path) - 128usize];
1271    ["Offset of field: _cef_settings_t::persist_session_cookies"]
1272        [::std::mem::offset_of!(_cef_settings_t, persist_session_cookies) - 152usize];
1273    ["Offset of field: _cef_settings_t::user_agent"]
1274        [::std::mem::offset_of!(_cef_settings_t, user_agent) - 160usize];
1275    ["Offset of field: _cef_settings_t::user_agent_product"]
1276        [::std::mem::offset_of!(_cef_settings_t, user_agent_product) - 184usize];
1277    ["Offset of field: _cef_settings_t::locale"]
1278        [::std::mem::offset_of!(_cef_settings_t, locale) - 208usize];
1279    ["Offset of field: _cef_settings_t::log_file"]
1280        [::std::mem::offset_of!(_cef_settings_t, log_file) - 232usize];
1281    ["Offset of field: _cef_settings_t::log_severity"]
1282        [::std::mem::offset_of!(_cef_settings_t, log_severity) - 256usize];
1283    ["Offset of field: _cef_settings_t::log_items"]
1284        [::std::mem::offset_of!(_cef_settings_t, log_items) - 260usize];
1285    ["Offset of field: _cef_settings_t::javascript_flags"]
1286        [::std::mem::offset_of!(_cef_settings_t, javascript_flags) - 264usize];
1287    ["Offset of field: _cef_settings_t::resources_dir_path"]
1288        [::std::mem::offset_of!(_cef_settings_t, resources_dir_path) - 288usize];
1289    ["Offset of field: _cef_settings_t::locales_dir_path"]
1290        [::std::mem::offset_of!(_cef_settings_t, locales_dir_path) - 312usize];
1291    ["Offset of field: _cef_settings_t::remote_debugging_port"]
1292        [::std::mem::offset_of!(_cef_settings_t, remote_debugging_port) - 336usize];
1293    ["Offset of field: _cef_settings_t::uncaught_exception_stack_size"]
1294        [::std::mem::offset_of!(_cef_settings_t, uncaught_exception_stack_size) - 340usize];
1295    ["Offset of field: _cef_settings_t::background_color"]
1296        [::std::mem::offset_of!(_cef_settings_t, background_color) - 344usize];
1297    ["Offset of field: _cef_settings_t::accept_language_list"]
1298        [::std::mem::offset_of!(_cef_settings_t, accept_language_list) - 352usize];
1299    ["Offset of field: _cef_settings_t::cookieable_schemes_list"]
1300        [::std::mem::offset_of!(_cef_settings_t, cookieable_schemes_list) - 376usize];
1301    ["Offset of field: _cef_settings_t::cookieable_schemes_exclude_defaults"]
1302        [::std::mem::offset_of!(_cef_settings_t, cookieable_schemes_exclude_defaults) - 400usize];
1303    ["Offset of field: _cef_settings_t::chrome_policy_id"]
1304        [::std::mem::offset_of!(_cef_settings_t, chrome_policy_id) - 408usize];
1305    ["Offset of field: _cef_settings_t::chrome_app_icon_id"]
1306        [::std::mem::offset_of!(_cef_settings_t, chrome_app_icon_id) - 432usize];
1307    ["Offset of field: _cef_settings_t::disable_signal_handlers"]
1308        [::std::mem::offset_of!(_cef_settings_t, disable_signal_handlers) - 436usize];
1309    ["Offset of field: _cef_settings_t::use_views_default_popup"]
1310        [::std::mem::offset_of!(_cef_settings_t, use_views_default_popup) - 440usize];
1311};
1312#[doc = "\n Initialization settings. Specify NULL or 0 to get the recommended default\n values. Many of these and other settings can also configured using command-\n line switches.\n"]
1313pub type cef_settings_t = _cef_settings_t;
1314#[doc = "\n Request context initialization settings. Specify NULL or 0 to get the\n recommended default values.\n"]
1315#[repr(C)]
1316#[derive(Debug, Copy, Clone)]
1317pub struct _cef_request_context_settings_t {
1318    #[doc = "\n Size of this structure.\n"]
1319    pub size: usize,
1320    #[doc = "\n The directory where cache data for this request context will be stored on\n disk. If this value is non-empty then it must be an absolute path that is\n either equal to or a child directory of CefSettings.root_cache_path. If\n this value is empty then browsers will be created in \"incognito mode\"\n where in-memory caches are used for storage and no profile-specific data\n is persisted to disk (installation-specific data will still be persisted\n in root_cache_path). HTML5 databases such as localStorage will only\n persist across sessions if a cache path is specified. To share the global\n browser cache and related configuration set this value to match the\n CefSettings.cache_path value.\n"]
1321    pub cache_path: cef_string_t,
1322    #[doc = "\n To persist session cookies (cookies without an expiry date or validity\n interval) by default when using the global cookie manager set this value\n to true (1). Session cookies are generally intended to be transient and\n most Web browsers do not persist them. Can be set globally using the\n CefSettings.persist_session_cookies value. This value will be ignored if\n |cache_path| is empty or if it matches the CefSettings.cache_path value.\n"]
1323    pub persist_session_cookies: ::std::os::raw::c_int,
1324    #[doc = "\n Comma delimited ordered list of language codes without any whitespace that\n will be used in the \"Accept-Language\" HTTP request header and\n \"navigator.language\" JS attribute. Can be set globally using the\n CefSettings.accept_language_list value. If all values are empty then\n \"en-US,en\" will be used. This value will be ignored if |cache_path|\n matches the CefSettings.cache_path value.\n"]
1325    pub accept_language_list: cef_string_t,
1326    #[doc = "\n Comma delimited list of schemes supported by the associated\n CefCookieManager. If |cookieable_schemes_exclude_defaults| is false (0)\n the default schemes (\"http\", \"https\", \"ws\" and \"wss\") will also be\n supported. Not specifying a |cookieable_schemes_list| value and setting\n |cookieable_schemes_exclude_defaults| to true (1) will disable all loading\n and saving of cookies. These values will be ignored if |cache_path|\n matches the CefSettings.cache_path value.\n"]
1327    pub cookieable_schemes_list: cef_string_t,
1328    pub cookieable_schemes_exclude_defaults: ::std::os::raw::c_int,
1329}
1330#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1331const _: () = {
1332    ["Size of _cef_request_context_settings_t"]
1333        [::std::mem::size_of::<_cef_request_context_settings_t>() - 96usize];
1334    ["Alignment of _cef_request_context_settings_t"]
1335        [::std::mem::align_of::<_cef_request_context_settings_t>() - 8usize];
1336    ["Offset of field: _cef_request_context_settings_t::size"]
1337        [::std::mem::offset_of!(_cef_request_context_settings_t, size) - 0usize];
1338    ["Offset of field: _cef_request_context_settings_t::cache_path"]
1339        [::std::mem::offset_of!(_cef_request_context_settings_t, cache_path) - 8usize];
1340    ["Offset of field: _cef_request_context_settings_t::persist_session_cookies"][::std::mem::offset_of!(
1341        _cef_request_context_settings_t,
1342        persist_session_cookies
1343    ) - 32usize];
1344    ["Offset of field: _cef_request_context_settings_t::accept_language_list"]
1345        [::std::mem::offset_of!(_cef_request_context_settings_t, accept_language_list) - 40usize];
1346    ["Offset of field: _cef_request_context_settings_t::cookieable_schemes_list"][::std::mem::offset_of!(
1347        _cef_request_context_settings_t,
1348        cookieable_schemes_list
1349    ) - 64usize];
1350    ["Offset of field: _cef_request_context_settings_t::cookieable_schemes_exclude_defaults"][::std::mem::offset_of!(
1351        _cef_request_context_settings_t,
1352        cookieable_schemes_exclude_defaults
1353    )
1354        - 88usize];
1355};
1356#[doc = "\n Request context initialization settings. Specify NULL or 0 to get the\n recommended default values.\n"]
1357pub type cef_request_context_settings_t = _cef_request_context_settings_t;
1358#[doc = "\n Browser initialization settings. Specify NULL or 0 to get the recommended\n default values. The consequences of using custom values may not be well\n tested. Many of these and other settings can also configured using command-\n line switches.\n"]
1359#[repr(C)]
1360#[derive(Debug, Copy, Clone)]
1361pub struct _cef_browser_settings_t {
1362    #[doc = "\n Size of this structure.\n"]
1363    pub size: usize,
1364    #[doc = "\n The maximum rate in frames per second (fps) that CefRenderHandler::OnPaint\n will be called for a windowless browser. The actual fps may be lower if\n the browser cannot generate frames at the requested rate. The minimum\n value is 1 and the default value is 30. This value can also be changed\n dynamically via CefBrowserHost::SetWindowlessFrameRate.\n"]
1365    pub windowless_frame_rate: ::std::os::raw::c_int,
1366    #[doc = "\n Font settings.\n"]
1367    pub standard_font_family: cef_string_t,
1368    pub fixed_font_family: cef_string_t,
1369    pub serif_font_family: cef_string_t,
1370    pub sans_serif_font_family: cef_string_t,
1371    pub cursive_font_family: cef_string_t,
1372    pub fantasy_font_family: cef_string_t,
1373    pub default_font_size: ::std::os::raw::c_int,
1374    pub default_fixed_font_size: ::std::os::raw::c_int,
1375    pub minimum_font_size: ::std::os::raw::c_int,
1376    pub minimum_logical_font_size: ::std::os::raw::c_int,
1377    #[doc = "\n Default encoding for Web content. If empty \"ISO-8859-1\" will be used. Also\n configurable using the \"default-encoding\" command-line switch.\n"]
1378    pub default_encoding: cef_string_t,
1379    #[doc = "\n Controls the loading of fonts from remote sources. Also configurable using\n the \"disable-remote-fonts\" command-line switch.\n"]
1380    pub remote_fonts: cef_state_t,
1381    #[doc = "\n Controls whether JavaScript can be executed. Also configurable using the\n \"disable-javascript\" command-line switch.\n"]
1382    pub javascript: cef_state_t,
1383    #[doc = "\n Controls whether JavaScript can be used to close windows that were not\n opened via JavaScript. JavaScript can still be used to close windows that\n were opened via JavaScript or that have no back/forward history. Also\n configurable using the \"disable-javascript-close-windows\" command-line\n switch.\n"]
1384    pub javascript_close_windows: cef_state_t,
1385    #[doc = "\n Controls whether JavaScript can access the clipboard. Also configurable\n using the \"disable-javascript-access-clipboard\" command-line switch.\n"]
1386    pub javascript_access_clipboard: cef_state_t,
1387    #[doc = "\n Controls whether DOM pasting is supported in the editor via\n execCommand(\"paste\"). The |javascript_access_clipboard| setting must also\n be enabled. Also configurable using the \"disable-javascript-dom-paste\"\n command-line switch.\n"]
1388    pub javascript_dom_paste: cef_state_t,
1389    #[doc = "\n Controls whether image URLs will be loaded from the network. A cached\n image will still be rendered if requested. Also configurable using the\n \"disable-image-loading\" command-line switch.\n"]
1390    pub image_loading: cef_state_t,
1391    #[doc = "\n Controls whether standalone images will be shrunk to fit the page. Also\n configurable using the \"image-shrink-standalone-to-fit\" command-line\n switch.\n"]
1392    pub image_shrink_standalone_to_fit: cef_state_t,
1393    #[doc = "\n Controls whether text areas can be resized. Also configurable using the\n \"disable-text-area-resize\" command-line switch.\n"]
1394    pub text_area_resize: cef_state_t,
1395    #[doc = "\n Controls whether the tab key can advance focus to links. Also configurable\n using the \"disable-tab-to-links\" command-line switch.\n"]
1396    pub tab_to_links: cef_state_t,
1397    #[doc = "\n Controls whether local storage can be used. Also configurable using the\n \"disable-local-storage\" command-line switch.\n"]
1398    pub local_storage: cef_state_t,
1399    pub databases_deprecated: cef_state_t,
1400    #[doc = "\n Controls whether WebGL can be used. Note that WebGL requires hardware\n support and may not work on all systems even when enabled. Also\n configurable using the \"disable-webgl\" command-line switch.\n"]
1401    pub webgl: cef_state_t,
1402    #[doc = "\n Background color used for the browser before a document is loaded and when\n no document color is specified. The alpha component must be either fully\n opaque (0xFF) or fully transparent (0x00). If the alpha component is fully\n opaque then the RGB components will be used as the background color. If\n the alpha component is fully transparent for a windowed browser then the\n CefSettings.background_color value will be used. If the alpha component is\n fully transparent for a windowless (off-screen) browser then transparent\n painting will be enabled.\n"]
1403    pub background_color: cef_color_t,
1404    #[doc = "\n Controls whether the Chrome status bubble will be used. Only supported\n with Chrome style. For details about the status bubble see\n https://www.chromium.org/user-experience/status-bubble/\n"]
1405    pub chrome_status_bubble: cef_state_t,
1406    #[doc = "\n Controls whether the Chrome zoom bubble will be shown when zooming. Only\n supported with Chrome style.\n"]
1407    pub chrome_zoom_bubble: cef_state_t,
1408    #[doc = "\n Controls whether CDP accessibility tree serialization collapses off-screen\n nodes. When enabled, off-screen landmarks and headings are serialized as\n summaries (role + name only) and other off-screen nodes are pruned.\n This reduces snapshot size for AI agents using Playwright ariaSnapshot().\n WARNING: This collapses the CDP accessibility tree and disables CDP\n dynamic tree updates (nodesUpdated events). The DevTools Accessibility\n panel will show an incomplete tree. Platform screen readers (NVDA, JAWS,\n VoiceOver) are unaffected - they use a separate code path.\n Can also be configured at runtime using\n CefBrowserHost::SetAxViewportCollapse.\n"]
1409    pub ax_viewport_collapse: cef_state_t,
1410}
1411#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1412const _: () = {
1413    ["Size of _cef_browser_settings_t"]
1414        [::std::mem::size_of::<_cef_browser_settings_t>() - 264usize];
1415    ["Alignment of _cef_browser_settings_t"]
1416        [::std::mem::align_of::<_cef_browser_settings_t>() - 8usize];
1417    ["Offset of field: _cef_browser_settings_t::size"]
1418        [::std::mem::offset_of!(_cef_browser_settings_t, size) - 0usize];
1419    ["Offset of field: _cef_browser_settings_t::windowless_frame_rate"]
1420        [::std::mem::offset_of!(_cef_browser_settings_t, windowless_frame_rate) - 8usize];
1421    ["Offset of field: _cef_browser_settings_t::standard_font_family"]
1422        [::std::mem::offset_of!(_cef_browser_settings_t, standard_font_family) - 16usize];
1423    ["Offset of field: _cef_browser_settings_t::fixed_font_family"]
1424        [::std::mem::offset_of!(_cef_browser_settings_t, fixed_font_family) - 40usize];
1425    ["Offset of field: _cef_browser_settings_t::serif_font_family"]
1426        [::std::mem::offset_of!(_cef_browser_settings_t, serif_font_family) - 64usize];
1427    ["Offset of field: _cef_browser_settings_t::sans_serif_font_family"]
1428        [::std::mem::offset_of!(_cef_browser_settings_t, sans_serif_font_family) - 88usize];
1429    ["Offset of field: _cef_browser_settings_t::cursive_font_family"]
1430        [::std::mem::offset_of!(_cef_browser_settings_t, cursive_font_family) - 112usize];
1431    ["Offset of field: _cef_browser_settings_t::fantasy_font_family"]
1432        [::std::mem::offset_of!(_cef_browser_settings_t, fantasy_font_family) - 136usize];
1433    ["Offset of field: _cef_browser_settings_t::default_font_size"]
1434        [::std::mem::offset_of!(_cef_browser_settings_t, default_font_size) - 160usize];
1435    ["Offset of field: _cef_browser_settings_t::default_fixed_font_size"]
1436        [::std::mem::offset_of!(_cef_browser_settings_t, default_fixed_font_size) - 164usize];
1437    ["Offset of field: _cef_browser_settings_t::minimum_font_size"]
1438        [::std::mem::offset_of!(_cef_browser_settings_t, minimum_font_size) - 168usize];
1439    ["Offset of field: _cef_browser_settings_t::minimum_logical_font_size"]
1440        [::std::mem::offset_of!(_cef_browser_settings_t, minimum_logical_font_size) - 172usize];
1441    ["Offset of field: _cef_browser_settings_t::default_encoding"]
1442        [::std::mem::offset_of!(_cef_browser_settings_t, default_encoding) - 176usize];
1443    ["Offset of field: _cef_browser_settings_t::remote_fonts"]
1444        [::std::mem::offset_of!(_cef_browser_settings_t, remote_fonts) - 200usize];
1445    ["Offset of field: _cef_browser_settings_t::javascript"]
1446        [::std::mem::offset_of!(_cef_browser_settings_t, javascript) - 204usize];
1447    ["Offset of field: _cef_browser_settings_t::javascript_close_windows"]
1448        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_close_windows) - 208usize];
1449    ["Offset of field: _cef_browser_settings_t::javascript_access_clipboard"]
1450        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_access_clipboard) - 212usize];
1451    ["Offset of field: _cef_browser_settings_t::javascript_dom_paste"]
1452        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_dom_paste) - 216usize];
1453    ["Offset of field: _cef_browser_settings_t::image_loading"]
1454        [::std::mem::offset_of!(_cef_browser_settings_t, image_loading) - 220usize];
1455    ["Offset of field: _cef_browser_settings_t::image_shrink_standalone_to_fit"][::std::mem::offset_of!(
1456        _cef_browser_settings_t,
1457        image_shrink_standalone_to_fit
1458    ) - 224usize];
1459    ["Offset of field: _cef_browser_settings_t::text_area_resize"]
1460        [::std::mem::offset_of!(_cef_browser_settings_t, text_area_resize) - 228usize];
1461    ["Offset of field: _cef_browser_settings_t::tab_to_links"]
1462        [::std::mem::offset_of!(_cef_browser_settings_t, tab_to_links) - 232usize];
1463    ["Offset of field: _cef_browser_settings_t::local_storage"]
1464        [::std::mem::offset_of!(_cef_browser_settings_t, local_storage) - 236usize];
1465    ["Offset of field: _cef_browser_settings_t::databases_deprecated"]
1466        [::std::mem::offset_of!(_cef_browser_settings_t, databases_deprecated) - 240usize];
1467    ["Offset of field: _cef_browser_settings_t::webgl"]
1468        [::std::mem::offset_of!(_cef_browser_settings_t, webgl) - 244usize];
1469    ["Offset of field: _cef_browser_settings_t::background_color"]
1470        [::std::mem::offset_of!(_cef_browser_settings_t, background_color) - 248usize];
1471    ["Offset of field: _cef_browser_settings_t::chrome_status_bubble"]
1472        [::std::mem::offset_of!(_cef_browser_settings_t, chrome_status_bubble) - 252usize];
1473    ["Offset of field: _cef_browser_settings_t::chrome_zoom_bubble"]
1474        [::std::mem::offset_of!(_cef_browser_settings_t, chrome_zoom_bubble) - 256usize];
1475    ["Offset of field: _cef_browser_settings_t::ax_viewport_collapse"]
1476        [::std::mem::offset_of!(_cef_browser_settings_t, ax_viewport_collapse) - 260usize];
1477};
1478#[doc = "\n Browser initialization settings. Specify NULL or 0 to get the recommended\n default values. The consequences of using custom values may not be well\n tested. Many of these and other settings can also configured using command-\n line switches.\n"]
1479pub type cef_browser_settings_t = _cef_browser_settings_t;
1480#[repr(u32)]
1481#[non_exhaustive]
1482#[doc = "\n Return value types.\n"]
1483#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1484pub enum cef_return_value_t {
1485    #[doc = "\n Cancel immediately.\n"]
1486    RV_CANCEL = 0,
1487    #[doc = "\n Continue immediately.\n"]
1488    RV_CONTINUE = 1,
1489    #[doc = "\n Continue asynchronously (usually via a callback).\n"]
1490    RV_CONTINUE_ASYNC = 2,
1491}
1492#[doc = "\n URL component parts.\n"]
1493#[repr(C)]
1494#[derive(Debug, Copy, Clone)]
1495pub struct _cef_urlparts_t {
1496    #[doc = "\n Size of this structure.\n"]
1497    pub size: usize,
1498    #[doc = "\n The complete URL specification.\n"]
1499    pub spec: cef_string_t,
1500    #[doc = "\n Scheme component not including the colon (e.g., \"http\").\n"]
1501    pub scheme: cef_string_t,
1502    #[doc = "\n User name component.\n"]
1503    pub username: cef_string_t,
1504    #[doc = "\n Password component.\n"]
1505    pub password: cef_string_t,
1506    #[doc = "\n Host component. This may be a hostname, an IPv4 address or an IPv6 literal\n surrounded by square brackets (e.g., \"[2001:db8::1]\").\n"]
1507    pub host: cef_string_t,
1508    #[doc = "\n Port number component.\n"]
1509    pub port: cef_string_t,
1510    #[doc = "\n Origin contains just the scheme, host, and port from a URL. Equivalent to\n clearing any username and password, replacing the path with a slash, and\n clearing everything after that. This value will be empty for non-standard\n URLs.\n"]
1511    pub origin: cef_string_t,
1512    #[doc = "\n Path component including the first slash following the host.\n"]
1513    pub path: cef_string_t,
1514    #[doc = "\n Query string component (i.e., everything following the '?').\n"]
1515    pub query: cef_string_t,
1516    #[doc = "\n Fragment (hash) identifier component (i.e., the string following the '#').\n"]
1517    pub fragment: cef_string_t,
1518}
1519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1520const _: () = {
1521    ["Size of _cef_urlparts_t"][::std::mem::size_of::<_cef_urlparts_t>() - 248usize];
1522    ["Alignment of _cef_urlparts_t"][::std::mem::align_of::<_cef_urlparts_t>() - 8usize];
1523    ["Offset of field: _cef_urlparts_t::size"]
1524        [::std::mem::offset_of!(_cef_urlparts_t, size) - 0usize];
1525    ["Offset of field: _cef_urlparts_t::spec"]
1526        [::std::mem::offset_of!(_cef_urlparts_t, spec) - 8usize];
1527    ["Offset of field: _cef_urlparts_t::scheme"]
1528        [::std::mem::offset_of!(_cef_urlparts_t, scheme) - 32usize];
1529    ["Offset of field: _cef_urlparts_t::username"]
1530        [::std::mem::offset_of!(_cef_urlparts_t, username) - 56usize];
1531    ["Offset of field: _cef_urlparts_t::password"]
1532        [::std::mem::offset_of!(_cef_urlparts_t, password) - 80usize];
1533    ["Offset of field: _cef_urlparts_t::host"]
1534        [::std::mem::offset_of!(_cef_urlparts_t, host) - 104usize];
1535    ["Offset of field: _cef_urlparts_t::port"]
1536        [::std::mem::offset_of!(_cef_urlparts_t, port) - 128usize];
1537    ["Offset of field: _cef_urlparts_t::origin"]
1538        [::std::mem::offset_of!(_cef_urlparts_t, origin) - 152usize];
1539    ["Offset of field: _cef_urlparts_t::path"]
1540        [::std::mem::offset_of!(_cef_urlparts_t, path) - 176usize];
1541    ["Offset of field: _cef_urlparts_t::query"]
1542        [::std::mem::offset_of!(_cef_urlparts_t, query) - 200usize];
1543    ["Offset of field: _cef_urlparts_t::fragment"]
1544        [::std::mem::offset_of!(_cef_urlparts_t, fragment) - 224usize];
1545};
1546#[doc = "\n URL component parts.\n"]
1547pub type cef_urlparts_t = _cef_urlparts_t;
1548#[repr(i32)]
1549#[non_exhaustive]
1550#[doc = "\n Cookie priority values.\n"]
1551#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1552pub enum cef_cookie_priority_t {
1553    CEF_COOKIE_PRIORITY_LOW = -1,
1554    CEF_COOKIE_PRIORITY_MEDIUM = 0,
1555    CEF_COOKIE_PRIORITY_HIGH = 1,
1556}
1557#[repr(u32)]
1558#[non_exhaustive]
1559#[doc = "\n Cookie same site values.\n"]
1560#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1561pub enum cef_cookie_same_site_t {
1562    CEF_COOKIE_SAME_SITE_UNSPECIFIED = 0,
1563    CEF_COOKIE_SAME_SITE_NO_RESTRICTION = 1,
1564    CEF_COOKIE_SAME_SITE_LAX_MODE = 2,
1565    CEF_COOKIE_SAME_SITE_STRICT_MODE = 3,
1566    CEF_COOKIE_SAME_SITE_NUM_VALUES = 4,
1567}
1568#[doc = "\n Cookie information.\n"]
1569#[repr(C)]
1570#[derive(Debug, Copy, Clone)]
1571pub struct _cef_cookie_t {
1572    #[doc = "\n Size of this structure.\n"]
1573    pub size: usize,
1574    #[doc = "\n The cookie name.\n"]
1575    pub name: cef_string_t,
1576    #[doc = "\n The cookie value.\n"]
1577    pub value: cef_string_t,
1578    #[doc = "\n If |domain| is empty a host cookie will be created instead of a domain\n cookie. Domain cookies are stored with a leading \".\" and are visible to\n sub-domains whereas host cookies are not.\n"]
1579    pub domain: cef_string_t,
1580    #[doc = "\n If |path| is non-empty only URLs at or below the path will get the cookie\n value.\n"]
1581    pub path: cef_string_t,
1582    #[doc = "\n If |secure| is true the cookie will only be sent for HTTPS requests.\n"]
1583    pub secure: ::std::os::raw::c_int,
1584    #[doc = "\n If |httponly| is true the cookie will only be sent for HTTP requests.\n"]
1585    pub httponly: ::std::os::raw::c_int,
1586    #[doc = "\n The cookie creation date. This is automatically populated by the system on\n cookie creation.\n"]
1587    pub creation: cef_basetime_t,
1588    #[doc = "\n The cookie last access date. This is automatically populated by the system\n on access.\n"]
1589    pub last_access: cef_basetime_t,
1590    #[doc = "\n The cookie expiration date is only valid if |has_expires| is true.\n"]
1591    pub has_expires: ::std::os::raw::c_int,
1592    pub expires: cef_basetime_t,
1593    #[doc = "\n Same site.\n"]
1594    pub same_site: cef_cookie_same_site_t,
1595    #[doc = "\n Priority.\n"]
1596    pub priority: cef_cookie_priority_t,
1597}
1598#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1599const _: () = {
1600    ["Size of _cef_cookie_t"][::std::mem::size_of::<_cef_cookie_t>() - 152usize];
1601    ["Alignment of _cef_cookie_t"][::std::mem::align_of::<_cef_cookie_t>() - 8usize];
1602    ["Offset of field: _cef_cookie_t::size"][::std::mem::offset_of!(_cef_cookie_t, size) - 0usize];
1603    ["Offset of field: _cef_cookie_t::name"][::std::mem::offset_of!(_cef_cookie_t, name) - 8usize];
1604    ["Offset of field: _cef_cookie_t::value"]
1605        [::std::mem::offset_of!(_cef_cookie_t, value) - 32usize];
1606    ["Offset of field: _cef_cookie_t::domain"]
1607        [::std::mem::offset_of!(_cef_cookie_t, domain) - 56usize];
1608    ["Offset of field: _cef_cookie_t::path"][::std::mem::offset_of!(_cef_cookie_t, path) - 80usize];
1609    ["Offset of field: _cef_cookie_t::secure"]
1610        [::std::mem::offset_of!(_cef_cookie_t, secure) - 104usize];
1611    ["Offset of field: _cef_cookie_t::httponly"]
1612        [::std::mem::offset_of!(_cef_cookie_t, httponly) - 108usize];
1613    ["Offset of field: _cef_cookie_t::creation"]
1614        [::std::mem::offset_of!(_cef_cookie_t, creation) - 112usize];
1615    ["Offset of field: _cef_cookie_t::last_access"]
1616        [::std::mem::offset_of!(_cef_cookie_t, last_access) - 120usize];
1617    ["Offset of field: _cef_cookie_t::has_expires"]
1618        [::std::mem::offset_of!(_cef_cookie_t, has_expires) - 128usize];
1619    ["Offset of field: _cef_cookie_t::expires"]
1620        [::std::mem::offset_of!(_cef_cookie_t, expires) - 136usize];
1621    ["Offset of field: _cef_cookie_t::same_site"]
1622        [::std::mem::offset_of!(_cef_cookie_t, same_site) - 144usize];
1623    ["Offset of field: _cef_cookie_t::priority"]
1624        [::std::mem::offset_of!(_cef_cookie_t, priority) - 148usize];
1625};
1626#[doc = "\n Cookie information.\n"]
1627pub type cef_cookie_t = _cef_cookie_t;
1628#[repr(u32)]
1629#[non_exhaustive]
1630#[doc = "\n Process termination status values.\n"]
1631#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1632pub enum cef_termination_status_t {
1633    #[doc = "\n Non-zero exit status.\n"]
1634    TS_ABNORMAL_TERMINATION = 0,
1635    #[doc = "\n SIGKILL or task manager kill.\n"]
1636    TS_PROCESS_WAS_KILLED = 1,
1637    #[doc = "\n Segmentation fault.\n"]
1638    TS_PROCESS_CRASHED = 2,
1639    #[doc = "\n Out of memory. Some platforms may use TS_PROCESS_CRASHED instead.\n"]
1640    TS_PROCESS_OOM = 3,
1641    #[doc = "\n Child process never launched.\n"]
1642    TS_LAUNCH_FAILED = 4,
1643    #[doc = "\n On Windows, the OS terminated the process due to code integrity failure.\n"]
1644    TS_INTEGRITY_FAILURE = 5,
1645    #[doc = "\n On Windows, the OS terminated the process due to code integrity failure.\n"]
1646    TS_NUM_VALUES = 6,
1647}
1648#[repr(u32)]
1649#[non_exhaustive]
1650#[doc = "\n Path key values.\n"]
1651#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1652pub enum cef_path_key_t {
1653    #[doc = "\n Current directory.\n"]
1654    PK_DIR_CURRENT = 0,
1655    #[doc = "\n Directory containing PK_FILE_EXE.\n"]
1656    PK_DIR_EXE = 1,
1657    #[doc = "\n Directory containing PK_FILE_MODULE.\n"]
1658    PK_DIR_MODULE = 2,
1659    #[doc = "\n Temporary directory.\n"]
1660    PK_DIR_TEMP = 3,
1661    #[doc = "\n Path and filename of the current executable.\n"]
1662    PK_FILE_EXE = 4,
1663    #[doc = "\n Path and filename of the module containing the CEF code (usually the\n libcef module).\n"]
1664    PK_FILE_MODULE = 5,
1665    #[doc = "\n \"Local Settings\\Application Data\" directory under the user profile\n directory on Windows.\n"]
1666    PK_LOCAL_APP_DATA = 6,
1667    #[doc = "\n \"Application Data\" directory under the user profile directory on Windows\n and \"~/Library/Application Support\" directory on MacOS.\n"]
1668    PK_USER_DATA = 7,
1669    #[doc = "\n Directory containing application resources. Can be configured via\n CefSettings.resources_dir_path.\n"]
1670    PK_DIR_RESOURCES = 8,
1671    #[doc = "\n Directory containing application resources. Can be configured via\n CefSettings.resources_dir_path.\n"]
1672    PK_NUM_VALUES = 9,
1673}
1674#[repr(u32)]
1675#[non_exhaustive]
1676#[doc = "\n Storage types.\n"]
1677#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1678pub enum cef_storage_type_t {
1679    ST_LOCALSTORAGE = 0,
1680    ST_SESSIONSTORAGE = 1,
1681}
1682#[repr(i32)]
1683#[non_exhaustive]
1684#[doc = "\n Supported error code values. For the complete list of error values see\n \"include/base/internal/cef_net_error_list.h\".\n"]
1685#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1686pub enum cef_errorcode_t {
1687    ERR_NONE = 0,
1688    ERR_IO_PENDING = -1,
1689    ERR_FAILED = -2,
1690    ERR_ABORTED = -3,
1691    ERR_INVALID_ARGUMENT = -4,
1692    ERR_INVALID_HANDLE = -5,
1693    ERR_FILE_NOT_FOUND = -6,
1694    ERR_TIMED_OUT = -7,
1695    ERR_FILE_TOO_BIG = -8,
1696    ERR_UNEXPECTED = -9,
1697    ERR_ACCESS_DENIED = -10,
1698    ERR_NOT_IMPLEMENTED = -11,
1699    ERR_INSUFFICIENT_RESOURCES = -12,
1700    ERR_OUT_OF_MEMORY = -13,
1701    ERR_UPLOAD_FILE_CHANGED = -14,
1702    ERR_SOCKET_NOT_CONNECTED = -15,
1703    ERR_FILE_EXISTS = -16,
1704    ERR_FILE_PATH_TOO_LONG = -17,
1705    ERR_FILE_NO_SPACE = -18,
1706    ERR_FILE_VIRUS_INFECTED = -19,
1707    ERR_BLOCKED_BY_CLIENT = -20,
1708    ERR_NETWORK_CHANGED = -21,
1709    ERR_BLOCKED_BY_ADMINISTRATOR = -22,
1710    ERR_SOCKET_IS_CONNECTED = -23,
1711    ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED = -25,
1712    ERR_CONTEXT_SHUT_DOWN = -26,
1713    ERR_BLOCKED_BY_RESPONSE = -27,
1714    ERR_CLEARTEXT_NOT_PERMITTED = -29,
1715    ERR_BLOCKED_BY_CSP = -30,
1716    ERR_BLOCKED_BY_ORB = -32,
1717    ERR_NETWORK_ACCESS_REVOKED = -33,
1718    ERR_BLOCKED_BY_FINGERPRINTING_PROTECTION = -34,
1719    ERR_BLOCKED_IN_INCOGNITO_BY_ADMINISTRATOR = -35,
1720    ERR_LOCAL_NETWORK_PERMISSION_MISSING = -36,
1721    ERR_CONNECTION_CLOSED = -100,
1722    ERR_CONNECTION_RESET = -101,
1723    ERR_CONNECTION_REFUSED = -102,
1724    ERR_CONNECTION_ABORTED = -103,
1725    ERR_CONNECTION_FAILED = -104,
1726    ERR_NAME_NOT_RESOLVED = -105,
1727    ERR_INTERNET_DISCONNECTED = -106,
1728    ERR_SSL_PROTOCOL_ERROR = -107,
1729    ERR_ADDRESS_INVALID = -108,
1730    ERR_ADDRESS_UNREACHABLE = -109,
1731    ERR_SSL_CLIENT_AUTH_CERT_NEEDED = -110,
1732    ERR_TUNNEL_CONNECTION_FAILED = -111,
1733    ERR_SSL_VERSION_OR_CIPHER_MISMATCH = -113,
1734    ERR_SSL_RENEGOTIATION_REQUESTED = -114,
1735    ERR_PROXY_AUTH_UNSUPPORTED = -115,
1736    ERR_BAD_SSL_CLIENT_AUTH_CERT = -117,
1737    ERR_CONNECTION_TIMED_OUT = -118,
1738    ERR_HOST_RESOLVER_QUEUE_TOO_LARGE = -119,
1739    ERR_SOCKS_CONNECTION_FAILED = -120,
1740    ERR_SOCKS_CONNECTION_HOST_UNREACHABLE = -121,
1741    ERR_ALPN_NEGOTIATION_FAILED = -122,
1742    ERR_SSL_NO_RENEGOTIATION = -123,
1743    ERR_WINSOCK_UNEXPECTED_WRITTEN_BYTES = -124,
1744    ERR_SSL_DECOMPRESSION_FAILURE_ALERT = -125,
1745    ERR_SSL_BAD_RECORD_MAC_ALERT = -126,
1746    ERR_PROXY_AUTH_REQUESTED = -127,
1747    ERR_PROXY_CONNECTION_FAILED = -130,
1748    ERR_MANDATORY_PROXY_CONFIGURATION_FAILED = -131,
1749    ERR_PRECONNECT_MAX_SOCKET_LIMIT = -133,
1750    ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED = -134,
1751    ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY = -135,
1752    ERR_PROXY_CERTIFICATE_INVALID = -136,
1753    ERR_NAME_RESOLUTION_FAILED = -137,
1754    ERR_NETWORK_ACCESS_DENIED = -138,
1755    ERR_TEMPORARILY_THROTTLED = -139,
1756    ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED = -141,
1757    ERR_MSG_TOO_BIG = -142,
1758    ERR_WS_PROTOCOL_ERROR = -145,
1759    ERR_ADDRESS_IN_USE = -147,
1760    ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN = -150,
1761    ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED = -151,
1762    ERR_SSL_DECRYPT_ERROR_ALERT = -153,
1763    ERR_WS_THROTTLE_QUEUE_TOO_LARGE = -154,
1764    ERR_SSL_SERVER_CERT_CHANGED = -156,
1765    ERR_SSL_UNRECOGNIZED_NAME_ALERT = -159,
1766    ERR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR = -160,
1767    ERR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR = -161,
1768    ERR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE = -162,
1769    ERR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE = -163,
1770    ERR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT = -164,
1771    ERR_ICANN_NAME_COLLISION = -166,
1772    ERR_SSL_SERVER_CERT_BAD_FORMAT = -167,
1773    ERR_CT_STH_PARSING_FAILED = -168,
1774    ERR_CT_STH_INCOMPLETE = -169,
1775    ERR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH = -170,
1776    ERR_CT_CONSISTENCY_PROOF_PARSING_FAILED = -171,
1777    ERR_SSL_OBSOLETE_CIPHER = -172,
1778    ERR_WS_UPGRADE = -173,
1779    ERR_READ_IF_READY_NOT_IMPLEMENTED = -174,
1780    ERR_NO_BUFFER_SPACE = -176,
1781    ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS = -177,
1782    ERR_EARLY_DATA_REJECTED = -178,
1783    ERR_WRONG_VERSION_ON_EARLY_DATA = -179,
1784    ERR_TLS13_DOWNGRADE_DETECTED = -180,
1785    ERR_SSL_KEY_USAGE_INCOMPATIBLE = -181,
1786    ERR_INVALID_ECH_CONFIG_LIST = -182,
1787    ERR_ECH_NOT_NEGOTIATED = -183,
1788    ERR_ECH_FALLBACK_CERTIFICATE_INVALID = -184,
1789    ERR_PROXY_UNABLE_TO_CONNECT_TO_DESTINATION = -186,
1790    ERR_PROXY_DELEGATE_CANCELED_CONNECT_REQUEST = -187,
1791    ERR_PROXY_DELEGATE_CANCELED_CONNECT_RESPONSE = -188,
1792    ERR_CERT_COMMON_NAME_INVALID = -200,
1793    ERR_CERT_DATE_INVALID = -201,
1794    ERR_CERT_AUTHORITY_INVALID = -202,
1795    ERR_CERT_CONTAINS_ERRORS = -203,
1796    ERR_CERT_NO_REVOCATION_MECHANISM = -204,
1797    ERR_CERT_UNABLE_TO_CHECK_REVOCATION = -205,
1798    ERR_CERT_REVOKED = -206,
1799    ERR_CERT_INVALID = -207,
1800    ERR_CERT_WEAK_SIGNATURE_ALGORITHM = -208,
1801    ERR_CERT_NON_UNIQUE_NAME = -210,
1802    ERR_CERT_WEAK_KEY = -211,
1803    ERR_CERT_NAME_CONSTRAINT_VIOLATION = -212,
1804    ERR_CERT_VALIDITY_TOO_LONG = -213,
1805    ERR_CERTIFICATE_TRANSPARENCY_REQUIRED = -214,
1806    ERR_CERT_KNOWN_INTERCEPTION_BLOCKED = -217,
1807    ERR_CERT_SELF_SIGNED_LOCAL_NETWORK = -219,
1808    ERR_CERT_END = -220,
1809    ERR_INVALID_URL = -300,
1810    ERR_DISALLOWED_URL_SCHEME = -301,
1811    ERR_UNKNOWN_URL_SCHEME = -302,
1812    ERR_INVALID_REDIRECT = -303,
1813    ERR_TOO_MANY_REDIRECTS = -310,
1814    ERR_UNSAFE_REDIRECT = -311,
1815    ERR_UNSAFE_PORT = -312,
1816    ERR_INVALID_RESPONSE = -320,
1817    ERR_INVALID_CHUNKED_ENCODING = -321,
1818    ERR_METHOD_NOT_SUPPORTED = -322,
1819    ERR_UNEXPECTED_PROXY_AUTH = -323,
1820    ERR_EMPTY_RESPONSE = -324,
1821    ERR_RESPONSE_HEADERS_TOO_BIG = -325,
1822    ERR_PAC_SCRIPT_FAILED = -327,
1823    ERR_REQUEST_RANGE_NOT_SATISFIABLE = -328,
1824    ERR_MALFORMED_IDENTITY = -329,
1825    ERR_CONTENT_DECODING_FAILED = -330,
1826    ERR_NETWORK_IO_SUSPENDED = -331,
1827    ERR_NO_SUPPORTED_PROXIES = -336,
1828    ERR_HTTP2_PROTOCOL_ERROR = -337,
1829    ERR_INVALID_AUTH_CREDENTIALS = -338,
1830    ERR_UNSUPPORTED_AUTH_SCHEME = -339,
1831    ERR_ENCODING_DETECTION_FAILED = -340,
1832    ERR_MISSING_AUTH_CREDENTIALS = -341,
1833    ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS = -342,
1834    ERR_MISCONFIGURED_AUTH_ENVIRONMENT = -343,
1835    ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS = -344,
1836    ERR_RESPONSE_BODY_TOO_BIG_TO_DRAIN = -345,
1837    ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH = -346,
1838    ERR_INCOMPLETE_HTTP2_HEADERS = -347,
1839    ERR_PAC_NOT_IN_DHCP = -348,
1840    ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION = -349,
1841    ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION = -350,
1842    ERR_HTTP2_SERVER_REFUSED_STREAM = -351,
1843    ERR_HTTP2_PING_FAILED = -352,
1844    ERR_CONTENT_LENGTH_MISMATCH = -354,
1845    ERR_INCOMPLETE_CHUNKED_ENCODING = -355,
1846    ERR_QUIC_PROTOCOL_ERROR = -356,
1847    ERR_RESPONSE_HEADERS_TRUNCATED = -357,
1848    ERR_QUIC_HANDSHAKE_FAILED = -358,
1849    ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY = -360,
1850    ERR_HTTP2_FLOW_CONTROL_ERROR = -361,
1851    ERR_HTTP2_FRAME_SIZE_ERROR = -362,
1852    ERR_HTTP2_COMPRESSION_ERROR = -363,
1853    ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION = -364,
1854    ERR_HTTP_1_1_REQUIRED = -365,
1855    ERR_PROXY_HTTP_1_1_REQUIRED = -366,
1856    ERR_PAC_SCRIPT_TERMINATED = -367,
1857    ERR_INVALID_HTTP_RESPONSE = -370,
1858    ERR_CONTENT_DECODING_INIT_FAILED = -371,
1859    ERR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED = -372,
1860    ERR_TOO_MANY_RETRIES = -375,
1861    ERR_HTTP2_STREAM_CLOSED = -376,
1862    ERR_HTTP_RESPONSE_CODE_FAILURE = -379,
1863    ERR_QUIC_CERT_ROOT_NOT_KNOWN = -380,
1864    ERR_QUIC_GOAWAY_REQUEST_CAN_BE_RETRIED = -381,
1865    ERR_TOO_MANY_ACCEPT_CH_RESTARTS = -382,
1866    ERR_INCONSISTENT_IP_ADDRESS_SPACE = -383,
1867    ERR_CACHED_IP_ADDRESS_SPACE_BLOCKED_BY_LOCAL_NETWORK_ACCESS_POLICY = -384,
1868    ERR_BLOCKED_BY_LOCAL_NETWORK_ACCESS_CHECKS = -385,
1869    ERR_ZSTD_WINDOW_SIZE_TOO_BIG = -386,
1870    ERR_DICTIONARY_LOAD_FAILED = -387,
1871    ERR_UNEXPECTED_CONTENT_DICTIONARY_HEADER = -388,
1872    ERR_CACHE_MISS = -400,
1873    ERR_CACHE_READ_FAILURE = -401,
1874    ERR_CACHE_WRITE_FAILURE = -402,
1875    ERR_CACHE_OPERATION_NOT_SUPPORTED = -403,
1876    ERR_CACHE_OPEN_FAILURE = -404,
1877    ERR_CACHE_CREATE_FAILURE = -405,
1878    ERR_CACHE_RACE = -406,
1879    ERR_CACHE_CHECKSUM_READ_FAILURE = -407,
1880    ERR_CACHE_CHECKSUM_MISMATCH = -408,
1881    ERR_CACHE_LOCK_TIMEOUT = -409,
1882    ERR_CACHE_AUTH_FAILURE_AFTER_READ = -410,
1883    ERR_CACHE_ENTRY_NOT_SUITABLE = -411,
1884    ERR_CACHE_DOOM_FAILURE = -412,
1885    ERR_CACHE_OPEN_OR_CREATE_FAILURE = -413,
1886    ERR_INSECURE_RESPONSE = -501,
1887    ERR_NO_PRIVATE_KEY_FOR_CERT = -502,
1888    ERR_ADD_USER_CERT_FAILED = -503,
1889    ERR_INVALID_SIGNED_EXCHANGE = -504,
1890    ERR_INVALID_WEB_BUNDLE = -505,
1891    ERR_TRUST_TOKEN_OPERATION_FAILED = -506,
1892    ERR_TRUST_TOKEN_OPERATION_SUCCESS_WITHOUT_SENDING_REQUEST = -507,
1893    ERR_HTTPENGINE_PROVIDER_IN_USE = -508,
1894    ERR_PKCS12_IMPORT_BAD_PASSWORD = -701,
1895    ERR_PKCS12_IMPORT_FAILED = -702,
1896    ERR_IMPORT_CA_CERT_NOT_CA = -703,
1897    ERR_IMPORT_CERT_ALREADY_EXISTS = -704,
1898    ERR_IMPORT_CA_CERT_FAILED = -705,
1899    ERR_IMPORT_SERVER_CERT_FAILED = -706,
1900    ERR_PKCS12_IMPORT_INVALID_MAC = -707,
1901    ERR_PKCS12_IMPORT_INVALID_FILE = -708,
1902    ERR_PKCS12_IMPORT_UNSUPPORTED = -709,
1903    ERR_KEY_GENERATION_FAILED = -710,
1904    ERR_PRIVATE_KEY_EXPORT_FAILED = -712,
1905    ERR_SELF_SIGNED_CERT_GENERATION_FAILED = -713,
1906    ERR_CERT_DATABASE_CHANGED = -714,
1907    ERR_CERT_VERIFIER_CHANGED = -716,
1908    ERR_DNS_MALFORMED_RESPONSE = -800,
1909    ERR_DNS_SERVER_REQUIRES_TCP = -801,
1910    ERR_DNS_TIMED_OUT = -803,
1911    ERR_DNS_CACHE_MISS = -804,
1912    ERR_DNS_SEARCH_EMPTY = -805,
1913    ERR_DNS_SORT_ERROR = -806,
1914    ERR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED = -808,
1915    ERR_DNS_NAME_HTTPS_ONLY = -809,
1916    ERR_DNS_REQUEST_CANCELLED = -810,
1917    ERR_DNS_NO_MATCHING_SUPPORTED_ALPN = -811,
1918    ERR_DNS_SECURE_PROBE_RECORD_INVALID = -814,
1919    ERR_DNS_CACHE_INVALIDATION_IN_PROGRESS = -815,
1920    ERR_DNS_FORMAT_ERROR = -816,
1921    ERR_DNS_SERVER_FAILURE = -817,
1922    ERR_DNS_NOT_IMPLEMENTED = -818,
1923    ERR_DNS_REFUSED = -819,
1924    ERR_DNS_OTHER_FAILURE = -820,
1925    ERR_BLOB_INVALID_CONSTRUCTION_ARGUMENTS = -900,
1926    ERR_BLOB_OUT_OF_MEMORY = -901,
1927    ERR_BLOB_FILE_WRITE_FAILED = -902,
1928    ERR_BLOB_SOURCE_DIED_IN_TRANSIT = -903,
1929    ERR_BLOB_DEREFERENCED_WHILE_BUILDING = -904,
1930    ERR_BLOB_REFERENCED_BLOB_BROKEN = -905,
1931    ERR_BLOB_REFERENCED_FILE_UNAVAILABLE = -906,
1932}
1933#[repr(u32)]
1934#[non_exhaustive]
1935#[doc = "\n Supported certificate status code values. See net\\cert\\cert_status_flags.h\n for more information. CERT_STATUS_NONE is new in CEF because we use an\n enum while cert_status_flags.h uses a typedef and static const variables.\n"]
1936#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1937pub enum cef_cert_status_t {
1938    CERT_STATUS_NONE = 0,
1939    CERT_STATUS_COMMON_NAME_INVALID = 1,
1940    CERT_STATUS_DATE_INVALID = 2,
1941    CERT_STATUS_AUTHORITY_INVALID = 4,
1942    CERT_STATUS_NO_REVOCATION_MECHANISM = 16,
1943    CERT_STATUS_UNABLE_TO_CHECK_REVOCATION = 32,
1944    CERT_STATUS_REVOKED = 64,
1945    CERT_STATUS_INVALID = 128,
1946    CERT_STATUS_WEAK_SIGNATURE_ALGORITHM = 256,
1947    CERT_STATUS_NON_UNIQUE_NAME = 1024,
1948    CERT_STATUS_WEAK_KEY = 2048,
1949    CERT_STATUS_PINNED_KEY_MISSING = 8192,
1950    CERT_STATUS_NAME_CONSTRAINT_VIOLATION = 16384,
1951    CERT_STATUS_VALIDITY_TOO_LONG = 32768,
1952    CERT_STATUS_IS_EV = 65536,
1953    CERT_STATUS_REV_CHECKING_ENABLED = 131072,
1954    CERT_STATUS_SHA1_SIGNATURE_PRESENT = 524288,
1955    CERT_STATUS_CT_COMPLIANCE_FAILED = 1048576,
1956}
1957impl cef_resultcode_t {
1958    pub const CEF_RESULT_CODE_SANDBOX_FATAL_INTEGRITY: cef_resultcode_t =
1959        cef_resultcode_t::CEF_RESULT_CODE_SANDBOX_FATAL_FIRST;
1960}
1961#[repr(u32)]
1962#[non_exhaustive]
1963#[doc = "\n Process result codes. This is not a comprehensive list, as result codes\n might also include platform-specific crash values (Posix signal or Windows\n hardware exception), or internal-only implementation values.\n"]
1964#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1965pub enum cef_resultcode_t {
1966    CEF_RESULT_CODE_NORMAL_EXIT = 0,
1967    #[doc = " Process was killed by user or system."]
1968    CEF_RESULT_CODE_KILLED = 1,
1969    #[doc = " Process hung."]
1970    CEF_RESULT_CODE_HUNG = 2,
1971    #[doc = " A bad message caused the process termination."]
1972    CEF_RESULT_CODE_KILLED_BAD_MESSAGE = 3,
1973    #[doc = " The GPU process exited because initialization failed."]
1974    CEF_RESULT_CODE_GPU_DEAD_ON_ARRIVAL = 4,
1975    #[doc = " The GPU process exited because initialization failed."]
1976    CEF_RESULT_CODE_CHROME_FIRST = 5,
1977    #[doc = " The process is of an unknown type."]
1978    CEF_RESULT_CODE_BAD_PROCESS_TYPE = 6,
1979    #[doc = " A critical chrome file is missing."]
1980    CEF_RESULT_CODE_MISSING_DATA = 7,
1981    #[doc = " Command line parameter is not supported."]
1982    CEF_RESULT_CODE_UNSUPPORTED_PARAM = 13,
1983    #[doc = " The profile was in use on another host."]
1984    CEF_RESULT_CODE_PROFILE_IN_USE = 21,
1985    #[doc = " Failed to pack an extension via the command line."]
1986    CEF_RESULT_CODE_PACK_EXTENSION_ERROR = 22,
1987    #[doc = " The browser process exited early by passing the command line to another\n running browser."]
1988    CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED = 24,
1989    #[doc = " A browser process was sandboxed. This should never happen."]
1990    CEF_RESULT_CODE_INVALID_SANDBOX_STATE = 31,
1991    #[doc = " Cloud policy enrollment failed or was given up by user."]
1992    CEF_RESULT_CODE_CLOUD_POLICY_ENROLLMENT_FAILED = 32,
1993    #[doc = " The GPU process was terminated due to context lost."]
1994    CEF_RESULT_CODE_GPU_EXIT_ON_CONTEXT_LOST = 34,
1995    #[doc = " An early startup command was executed and the browser must exit."]
1996    CEF_RESULT_CODE_NORMAL_EXIT_PACK_EXTENSION_SUCCESS = 36,
1997    #[doc = " The browser process exited because system resources are exhausted. The\n system state can't be recovered and will be unstable."]
1998    CEF_RESULT_CODE_SYSTEM_RESOURCE_EXHAUSTED = 37,
1999    #[doc = " The browser process exited because it was re-launched without elevation."]
2000    CEF_RESULT_CODE_NORMAL_EXIT_AUTO_DE_ELEVATED = 38,
2001    #[doc = " Upon encountering a commit failure in a process, PartitionAlloc terminated\n another process deemed less important."]
2002    CEF_RESULT_CODE_TERMINATED_BY_OTHER_PROCESS_ON_COMMIT_FAILURE = 39,
2003    #[doc = " The isolated browser process launched but it was not possible to wait on\n the exit of the process, so the browser must exit."]
2004    CEF_RESULT_CODE_INVALID_ISOLATED_BROWSER_PROCESS = 40,
2005    CEF_RESULT_CODE_CHROME_LAST = 41,
2006    CEF_RESULT_CODE_SANDBOX_FATAL_FIRST = 7006,
2007    #[doc = " Windows sandbox could not lower the token."]
2008    CEF_RESULT_CODE_SANDBOX_FATAL_DROPTOKEN = 7007,
2009    #[doc = " Windows sandbox failed to flush registry handles."]
2010    CEF_RESULT_CODE_SANDBOX_FATAL_FLUSHANDLES = 7008,
2011    #[doc = " Windows sandbox failed to forbid HCKU caching."]
2012    CEF_RESULT_CODE_SANDBOX_FATAL_CACHEDISABLE = 7009,
2013    #[doc = " Windows sandbox failed to close pending handles."]
2014    CEF_RESULT_CODE_SANDBOX_FATAL_CLOSEHANDLES = 7010,
2015    #[doc = " Windows sandbox could not set the mitigation policy."]
2016    CEF_RESULT_CODE_SANDBOX_FATAL_MITIGATION = 7011,
2017    #[doc = " Windows sandbox exceeded the job memory limit."]
2018    CEF_RESULT_CODE_SANDBOX_FATAL_MEMORY_EXCEEDED = 7012,
2019    #[doc = " Windows sandbox failed to warmup."]
2020    CEF_RESULT_CODE_SANDBOX_FATAL_WARMUP = 7013,
2021    #[doc = " Windows sandbox failed to warmup."]
2022    CEF_RESULT_CODE_SANDBOX_FATAL_BROKER_SHUTDOWN_HUNG = 7014,
2023    #[doc = " Windows sandbox failed to warmup."]
2024    CEF_RESULT_CODE_SANDBOX_FATAL_LAST = 7015,
2025    #[doc = " Windows sandbox failed to warmup."]
2026    CEF_RESULT_CODE_NUM_VALUES = 7016,
2027}
2028#[repr(u32)]
2029#[non_exhaustive]
2030#[doc = "\n The manner in which a link click should be opened. These constants match\n their equivalents in Chromium's window_open_disposition.h and should not be\n renumbered.\n"]
2031#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2032pub enum cef_window_open_disposition_t {
2033    CEF_WOD_UNKNOWN = 0,
2034    #[doc = "\n Current tab. This is the default in most cases.\n"]
2035    CEF_WOD_CURRENT_TAB = 1,
2036    #[doc = "\n Indicates that only one tab with the url should exist in the same window.\n"]
2037    CEF_WOD_SINGLETON_TAB = 2,
2038    #[doc = "\n Shift key + Middle mouse button or meta/ctrl key while clicking.\n"]
2039    CEF_WOD_NEW_FOREGROUND_TAB = 3,
2040    #[doc = "\n Middle mouse button or meta/ctrl key while clicking.\n"]
2041    CEF_WOD_NEW_BACKGROUND_TAB = 4,
2042    #[doc = "\n New popup window.\n"]
2043    CEF_WOD_NEW_POPUP = 5,
2044    #[doc = "\n Shift key while clicking.\n"]
2045    CEF_WOD_NEW_WINDOW = 6,
2046    #[doc = "\n Alt key while clicking.\n"]
2047    CEF_WOD_SAVE_TO_DISK = 7,
2048    #[doc = "\n New off-the-record (incognito) window.\n"]
2049    CEF_WOD_OFF_THE_RECORD = 8,
2050    #[doc = "\n Special case error condition from the renderer.\n"]
2051    CEF_WOD_IGNORE_ACTION = 9,
2052    #[doc = "\n Activates an existing tab containing the url, rather than navigating.\n This is similar to SINGLETON_TAB, but searches across all windows from\n the current profile and anonymity (instead of just the current one);\n closes the current tab on switching if the current tab was the NTP with\n no session history; and behaves like CURRENT_TAB instead of\n NEW_FOREGROUND_TAB when no existing tab is found.\n"]
2053    CEF_WOD_SWITCH_TO_TAB = 10,
2054    #[doc = "\n Creates a new document picture-in-picture window showing a child WebView.\n"]
2055    CEF_WOD_NEW_PICTURE_IN_PICTURE = 11,
2056    #[doc = "\n Opens a link in a split view alongside the current tab.\n"]
2057    CEF_WOD_NEW_SPLIT_VIEW = 12,
2058    CEF_WOD_NUM_VALUES = 13,
2059}
2060impl cef_drag_operations_mask_t {
2061    pub const DRAG_OPERATION_NONE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(0);
2062    pub const DRAG_OPERATION_COPY: cef_drag_operations_mask_t = cef_drag_operations_mask_t(1);
2063    pub const DRAG_OPERATION_LINK: cef_drag_operations_mask_t = cef_drag_operations_mask_t(2);
2064    pub const DRAG_OPERATION_GENERIC: cef_drag_operations_mask_t = cef_drag_operations_mask_t(4);
2065    pub const DRAG_OPERATION_PRIVATE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(8);
2066    pub const DRAG_OPERATION_MOVE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(16);
2067    pub const DRAG_OPERATION_DELETE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(32);
2068    pub const DRAG_OPERATION_EVERY: cef_drag_operations_mask_t =
2069        cef_drag_operations_mask_t(4294967295);
2070}
2071impl ::std::ops::BitOr<cef_drag_operations_mask_t> for cef_drag_operations_mask_t {
2072    type Output = Self;
2073    #[inline]
2074    fn bitor(self, other: Self) -> Self {
2075        cef_drag_operations_mask_t(self.0 | other.0)
2076    }
2077}
2078impl ::std::ops::BitOrAssign for cef_drag_operations_mask_t {
2079    #[inline]
2080    fn bitor_assign(&mut self, rhs: cef_drag_operations_mask_t) {
2081        self.0 |= rhs.0;
2082    }
2083}
2084impl ::std::ops::BitAnd<cef_drag_operations_mask_t> for cef_drag_operations_mask_t {
2085    type Output = Self;
2086    #[inline]
2087    fn bitand(self, other: Self) -> Self {
2088        cef_drag_operations_mask_t(self.0 & other.0)
2089    }
2090}
2091impl ::std::ops::BitAndAssign for cef_drag_operations_mask_t {
2092    #[inline]
2093    fn bitand_assign(&mut self, rhs: cef_drag_operations_mask_t) {
2094        self.0 &= rhs.0;
2095    }
2096}
2097#[repr(transparent)]
2098#[doc = "\n \"Verb\" of a drag-and-drop operation as negotiated between the source and\n destination. These constants match their equivalents in WebCore's\n DragActions.h and should not be renumbered.\n"]
2099#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2100pub struct cef_drag_operations_mask_t(pub ::std::os::raw::c_uint);
2101#[repr(u32)]
2102#[non_exhaustive]
2103#[doc = "\n Input mode of a virtual keyboard. These constants match their equivalents\n in Chromium's text_input_mode.h and should not be renumbered.\n See https://html.spec.whatwg.org/#input-modalities:-the-inputmode-attribute\n"]
2104#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2105pub enum cef_text_input_mode_t {
2106    CEF_TEXT_INPUT_MODE_DEFAULT = 0,
2107    CEF_TEXT_INPUT_MODE_NONE = 1,
2108    CEF_TEXT_INPUT_MODE_TEXT = 2,
2109    CEF_TEXT_INPUT_MODE_TEL = 3,
2110    CEF_TEXT_INPUT_MODE_URL = 4,
2111    CEF_TEXT_INPUT_MODE_EMAIL = 5,
2112    CEF_TEXT_INPUT_MODE_NUMERIC = 6,
2113    CEF_TEXT_INPUT_MODE_DECIMAL = 7,
2114    CEF_TEXT_INPUT_MODE_SEARCH = 8,
2115    CEF_TEXT_INPUT_MODE_NUM_VALUES = 9,
2116}
2117impl cef_v8_propertyattribute_t {
2118    #[doc = "\n Writeable, Enumerable, Configurable\n"]
2119    pub const V8_PROPERTY_ATTRIBUTE_NONE: cef_v8_propertyattribute_t =
2120        cef_v8_propertyattribute_t(0);
2121    #[doc = "\n Not writeable\n"]
2122    pub const V8_PROPERTY_ATTRIBUTE_READONLY: cef_v8_propertyattribute_t =
2123        cef_v8_propertyattribute_t(1);
2124    #[doc = "\n Not enumerable\n"]
2125    pub const V8_PROPERTY_ATTRIBUTE_DONTENUM: cef_v8_propertyattribute_t =
2126        cef_v8_propertyattribute_t(2);
2127    #[doc = "\n Not configurable\n"]
2128    pub const V8_PROPERTY_ATTRIBUTE_DONTDELETE: cef_v8_propertyattribute_t =
2129        cef_v8_propertyattribute_t(4);
2130}
2131impl ::std::ops::BitOr<cef_v8_propertyattribute_t> for cef_v8_propertyattribute_t {
2132    type Output = Self;
2133    #[inline]
2134    fn bitor(self, other: Self) -> Self {
2135        cef_v8_propertyattribute_t(self.0 | other.0)
2136    }
2137}
2138impl ::std::ops::BitOrAssign for cef_v8_propertyattribute_t {
2139    #[inline]
2140    fn bitor_assign(&mut self, rhs: cef_v8_propertyattribute_t) {
2141        self.0 |= rhs.0;
2142    }
2143}
2144impl ::std::ops::BitAnd<cef_v8_propertyattribute_t> for cef_v8_propertyattribute_t {
2145    type Output = Self;
2146    #[inline]
2147    fn bitand(self, other: Self) -> Self {
2148        cef_v8_propertyattribute_t(self.0 & other.0)
2149    }
2150}
2151impl ::std::ops::BitAndAssign for cef_v8_propertyattribute_t {
2152    #[inline]
2153    fn bitand_assign(&mut self, rhs: cef_v8_propertyattribute_t) {
2154        self.0 &= rhs.0;
2155    }
2156}
2157#[repr(transparent)]
2158#[doc = "\n V8 property attribute values.\n"]
2159#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2160pub struct cef_v8_propertyattribute_t(pub ::std::os::raw::c_uint);
2161#[repr(u32)]
2162#[non_exhaustive]
2163#[doc = "\n Post data elements may represent either bytes or files.\n"]
2164#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2165pub enum cef_postdataelement_type_t {
2166    PDE_TYPE_EMPTY = 0,
2167    PDE_TYPE_BYTES = 1,
2168    PDE_TYPE_FILE = 2,
2169    PDE_TYPE_NUM_VALUES = 3,
2170}
2171#[repr(u32)]
2172#[non_exhaustive]
2173#[doc = "\n Resource type for a request. These constants match their equivalents in\n Chromium's ResourceType and should not be renumbered.\n"]
2174#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2175pub enum cef_resource_type_t {
2176    #[doc = "\n Top level page.\n"]
2177    RT_MAIN_FRAME = 0,
2178    #[doc = "\n Frame or iframe.\n"]
2179    RT_SUB_FRAME = 1,
2180    #[doc = "\n CSS stylesheet.\n"]
2181    RT_STYLESHEET = 2,
2182    #[doc = "\n External script.\n"]
2183    RT_SCRIPT = 3,
2184    #[doc = "\n Image (jpg/gif/png/etc).\n"]
2185    RT_IMAGE = 4,
2186    #[doc = "\n Font.\n"]
2187    RT_FONT_RESOURCE = 5,
2188    #[doc = "\n Some other subresource. This is the default type if the actual type is\n unknown.\n"]
2189    RT_SUB_RESOURCE = 6,
2190    #[doc = "\n Object (or embed) tag for a plugin, or a resource that a plugin requested.\n"]
2191    RT_OBJECT = 7,
2192    #[doc = "\n Media resource.\n"]
2193    RT_MEDIA = 8,
2194    #[doc = "\n Main resource of a dedicated worker.\n"]
2195    RT_WORKER = 9,
2196    #[doc = "\n Main resource of a shared worker.\n"]
2197    RT_SHARED_WORKER = 10,
2198    #[doc = "\n Explicitly requested prefetch.\n"]
2199    RT_PREFETCH = 11,
2200    #[doc = "\n Favicon.\n"]
2201    RT_FAVICON = 12,
2202    #[doc = "\n XMLHttpRequest.\n"]
2203    RT_XHR = 13,
2204    #[doc = "\n A request for a \"<ping>\".\n"]
2205    RT_PING = 14,
2206    #[doc = "\n Main resource of a service worker.\n"]
2207    RT_SERVICE_WORKER = 15,
2208    #[doc = "\n A report of Content Security Policy violations.\n"]
2209    RT_CSP_REPORT = 16,
2210    #[doc = "\n A resource that a plugin requested.\n"]
2211    RT_PLUGIN_RESOURCE = 17,
2212    #[doc = "\n A main-frame service worker navigation preload request.\n"]
2213    RT_NAVIGATION_PRELOAD_MAIN_FRAME = 19,
2214    #[doc = "\n A sub-frame service worker navigation preload request.\n"]
2215    RT_NAVIGATION_PRELOAD_SUB_FRAME = 20,
2216    #[doc = "\n A sub-frame service worker navigation preload request.\n"]
2217    RT_NUM_VALUES = 21,
2218}
2219#[repr(u32)]
2220#[non_exhaustive]
2221#[doc = "\n Transition type for a request. Made up of one source value and 0 or more\n qualifiers.\n"]
2222#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2223pub enum cef_transition_type_t {
2224    #[doc = "\n Source is a link click or the JavaScript window.open function. This is\n also the default value for requests like sub-resource loads that are not\n navigations.\n"]
2225    TT_LINK = 0,
2226    #[doc = "\n Source is some other \"explicit\" navigation. This is the default value for\n navigations where the actual type is unknown. See also\n TT_DIRECT_LOAD_FLAG.\n"]
2227    TT_EXPLICIT = 1,
2228    #[doc = "\n User got to this page through a suggestion in the UI (for example, via the\n destinations page). Chrome style only.\n"]
2229    TT_AUTO_BOOKMARK = 2,
2230    #[doc = "\n Source is a subframe navigation. This is any content that is automatically\n loaded in a non-toplevel frame. For example, if a page consists of several\n frames containing ads, those ad URLs will have this transition type.\n The user may not even realize the content in these pages is a separate\n frame, so may not care about the URL.\n"]
2231    TT_AUTO_SUBFRAME = 3,
2232    #[doc = "\n Source is a subframe navigation explicitly requested by the user that will\n generate new navigation entries in the back/forward list. These are\n probably more important than frames that were automatically loaded in\n the background because the user probably cares about the fact that this\n link was loaded.\n"]
2233    TT_MANUAL_SUBFRAME = 4,
2234    #[doc = "\n User got to this page by typing in the URL bar and selecting an entry\n that did not look like a URL.  For example, a match might have the URL\n of a Google search result page, but appear like \"Search Google for ...\".\n These are not quite the same as EXPLICIT navigations because the user\n didn't type or see the destination URL. Chrome style only.\n See also TT_KEYWORD.\n"]
2235    TT_GENERATED = 5,
2236    #[doc = "\n This is a toplevel navigation. This is any content that is automatically\n loaded in a toplevel frame.  For example, opening a tab to show the ASH\n screen saver, opening the devtools window, opening the NTP after the safe\n browsing warning, opening web-based dialog boxes are examples of\n AUTO_TOPLEVEL navigations. Chrome style only.\n"]
2237    TT_AUTO_TOPLEVEL = 6,
2238    #[doc = "\n Source is a form submission by the user. NOTE: In some situations\n submitting a form does not result in this transition type. This can happen\n if the form uses a script to submit the contents.\n"]
2239    TT_FORM_SUBMIT = 7,
2240    #[doc = "\n Source is a \"reload\" of the page via the Reload function or by re-visiting\n the same URL. NOTE: This is distinct from the concept of whether a\n particular load uses \"reload semantics\" (i.e. bypasses cached data).\n"]
2241    TT_RELOAD = 8,
2242    #[doc = "\n The url was generated from a replaceable keyword other than the default\n search provider. If the user types a keyword (which also applies to\n tab-to-search) in the omnibox this qualifier is applied to the transition\n type of the generated url. TemplateURLModel then may generate an\n additional visit with a transition type of TT_KEYWORD_GENERATED against\n the url 'http://' + keyword. For example, if you do a tab-to-search\n against wikipedia the generated url has a transition qualifer of\n TT_KEYWORD, and TemplateURLModel generates a visit for 'wikipedia.org'\n with a transition type of TT_KEYWORD_GENERATED. Chrome style only.\n"]
2243    TT_KEYWORD = 9,
2244    #[doc = "\n Corresponds to a visit generated for a keyword. See description of\n TT_KEYWORD for more details. Chrome style only.\n"]
2245    TT_KEYWORD_GENERATED = 10,
2246    #[doc = "\n Corresponds to a visit generated for a keyword. See description of\n TT_KEYWORD for more details. Chrome style only.\n"]
2247    TT_NUM_VALUES = 11,
2248    #[doc = "\n General mask defining the bits used for the source values.\n"]
2249    TT_SOURCE_MASK = 255,
2250    #[doc = "\n Attempted to visit a URL but was blocked.\n"]
2251    TT_BLOCKED_FLAG = 8388608,
2252    #[doc = "\n Used the Forward or Back function to navigate among browsing history.\n Will be ORed to the transition type for the original load.\n"]
2253    TT_FORWARD_BACK_FLAG = 16777216,
2254    #[doc = "\n Loaded a URL directly via CreateBrowser, LoadURL or LoadRequest.\n"]
2255    TT_DIRECT_LOAD_FLAG = 33554432,
2256    #[doc = "\n User is navigating to the home page. Chrome style only.\n"]
2257    TT_HOME_PAGE_FLAG = 67108864,
2258    #[doc = "\n The transition originated from an external application; the exact\n definition of this is embedder dependent. Chrome style only.\n"]
2259    TT_FROM_API_FLAG = 134217728,
2260    #[doc = "\n The beginning of a navigation chain.\n"]
2261    TT_CHAIN_START_FLAG = 268435456,
2262    #[doc = "\n The last transition in a redirect chain.\n"]
2263    TT_CHAIN_END_FLAG = 536870912,
2264    #[doc = "\n Redirects caused by JavaScript or a meta refresh tag on the page.\n"]
2265    TT_CLIENT_REDIRECT_FLAG = 1073741824,
2266    #[doc = "\n Redirects sent from the server by HTTP headers.\n"]
2267    TT_SERVER_REDIRECT_FLAG = 2147483648,
2268    #[doc = "\n Used to test whether a transition involves a redirect.\n"]
2269    TT_IS_REDIRECT_MASK = 3221225472,
2270    #[doc = "\n General mask defining the bits used for the qualifiers.\n"]
2271    TT_QUALIFIER_MASK = 4294967040,
2272}
2273impl cef_urlrequest_flags_t {
2274    #[doc = "\n Default behavior.\n"]
2275    pub const UR_FLAG_NONE: cef_urlrequest_flags_t = cef_urlrequest_flags_t(0);
2276    #[doc = "\n If set the cache will be skipped when handling the request. Setting this\n value is equivalent to specifying the \"Cache-Control: no-cache\" request\n header. Setting this value in combination with UR_FLAG_ONLY_FROM_CACHE\n will cause the request to fail.\n"]
2277    pub const UR_FLAG_SKIP_CACHE: cef_urlrequest_flags_t = cef_urlrequest_flags_t(1);
2278    #[doc = "\n If set the request will fail if it cannot be served from the cache (or\n some equivalent local store). Setting this value is equivalent to\n specifying the \"Cache-Control: only-if-cached\" request header. Setting\n this value in combination with UR_FLAG_SKIP_CACHE or UR_FLAG_DISABLE_CACHE\n will cause the request to fail.\n"]
2279    pub const UR_FLAG_ONLY_FROM_CACHE: cef_urlrequest_flags_t = cef_urlrequest_flags_t(2);
2280    #[doc = "\n If set the cache will not be used at all. Setting this value is equivalent\n to specifying the \"Cache-Control: no-store\" request header. Setting this\n value in combination with UR_FLAG_ONLY_FROM_CACHE will cause the request\n to fail.\n"]
2281    pub const UR_FLAG_DISABLE_CACHE: cef_urlrequest_flags_t = cef_urlrequest_flags_t(4);
2282    #[doc = "\n If set user name, password, and cookies may be sent with the request, and\n cookies may be saved from the response.\n"]
2283    pub const UR_FLAG_ALLOW_STORED_CREDENTIALS: cef_urlrequest_flags_t = cef_urlrequest_flags_t(8);
2284    #[doc = "\n If set upload progress events will be generated when a request has a body.\n"]
2285    pub const UR_FLAG_REPORT_UPLOAD_PROGRESS: cef_urlrequest_flags_t = cef_urlrequest_flags_t(16);
2286    #[doc = "\n If set the CefURLRequestClient::OnDownloadData method will not be called.\n"]
2287    pub const UR_FLAG_NO_DOWNLOAD_DATA: cef_urlrequest_flags_t = cef_urlrequest_flags_t(32);
2288    #[doc = "\n If set 5XX redirect errors will be propagated to the observer instead of\n automatically re-tried. This currently only applies for requests\n originated in the browser process.\n"]
2289    pub const UR_FLAG_NO_RETRY_ON_5XX: cef_urlrequest_flags_t = cef_urlrequest_flags_t(64);
2290    #[doc = "\n If set 3XX responses will cause the fetch to halt immediately rather than\n continue through the redirect.\n"]
2291    pub const UR_FLAG_STOP_ON_REDIRECT: cef_urlrequest_flags_t = cef_urlrequest_flags_t(128);
2292}
2293impl ::std::ops::BitOr<cef_urlrequest_flags_t> for cef_urlrequest_flags_t {
2294    type Output = Self;
2295    #[inline]
2296    fn bitor(self, other: Self) -> Self {
2297        cef_urlrequest_flags_t(self.0 | other.0)
2298    }
2299}
2300impl ::std::ops::BitOrAssign for cef_urlrequest_flags_t {
2301    #[inline]
2302    fn bitor_assign(&mut self, rhs: cef_urlrequest_flags_t) {
2303        self.0 |= rhs.0;
2304    }
2305}
2306impl ::std::ops::BitAnd<cef_urlrequest_flags_t> for cef_urlrequest_flags_t {
2307    type Output = Self;
2308    #[inline]
2309    fn bitand(self, other: Self) -> Self {
2310        cef_urlrequest_flags_t(self.0 & other.0)
2311    }
2312}
2313impl ::std::ops::BitAndAssign for cef_urlrequest_flags_t {
2314    #[inline]
2315    fn bitand_assign(&mut self, rhs: cef_urlrequest_flags_t) {
2316        self.0 &= rhs.0;
2317    }
2318}
2319#[repr(transparent)]
2320#[doc = "\n Flags used to customize the behavior of CefURLRequest.\n"]
2321#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2322pub struct cef_urlrequest_flags_t(pub ::std::os::raw::c_uint);
2323#[repr(u32)]
2324#[non_exhaustive]
2325#[doc = "\n Flags that represent CefURLRequest status.\n"]
2326#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2327pub enum cef_urlrequest_status_t {
2328    #[doc = "\n Unknown status.\n"]
2329    UR_UNKNOWN = 0,
2330    #[doc = "\n Request succeeded.\n"]
2331    UR_SUCCESS = 1,
2332    #[doc = "\n An IO request is pending, and the caller will be informed when it is\n completed.\n"]
2333    UR_IO_PENDING = 2,
2334    #[doc = "\n Request was canceled programatically.\n"]
2335    UR_CANCELED = 3,
2336    #[doc = "\n Request failed for some reason.\n"]
2337    UR_FAILED = 4,
2338    #[doc = "\n Request failed for some reason.\n"]
2339    UR_NUM_VALUES = 5,
2340}
2341#[doc = " Structure representing a draggable region.\n"]
2342#[repr(C)]
2343#[derive(Debug, Copy, Clone)]
2344pub struct _cef_draggable_region_t {
2345    #[doc = "\n Bounds of the region.\n"]
2346    pub bounds: cef_rect_t,
2347    #[doc = "\n True (1) this this region is draggable and false (0) otherwise.\n"]
2348    pub draggable: ::std::os::raw::c_int,
2349}
2350#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2351const _: () = {
2352    ["Size of _cef_draggable_region_t"][::std::mem::size_of::<_cef_draggable_region_t>() - 20usize];
2353    ["Alignment of _cef_draggable_region_t"]
2354        [::std::mem::align_of::<_cef_draggable_region_t>() - 4usize];
2355    ["Offset of field: _cef_draggable_region_t::bounds"]
2356        [::std::mem::offset_of!(_cef_draggable_region_t, bounds) - 0usize];
2357    ["Offset of field: _cef_draggable_region_t::draggable"]
2358        [::std::mem::offset_of!(_cef_draggable_region_t, draggable) - 16usize];
2359};
2360#[doc = " Structure representing a draggable region.\n"]
2361pub type cef_draggable_region_t = _cef_draggable_region_t;
2362#[repr(u32)]
2363#[non_exhaustive]
2364#[doc = "\n Existing process IDs.\n"]
2365#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2366pub enum cef_process_id_t {
2367    #[doc = "\n Browser process.\n"]
2368    PID_BROWSER = 0,
2369    #[doc = "\n Renderer process.\n"]
2370    PID_RENDERER = 1,
2371}
2372#[repr(u32)]
2373#[non_exhaustive]
2374#[doc = "\n Existing thread IDs.\n"]
2375#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2376pub enum cef_thread_id_t {
2377    #[doc = "\n The main thread in the browser. This will be the same as the main\n application thread if CefInitialize() is called with a\n CefSettings.multi_threaded_message_loop value of false. Do not perform\n blocking tasks on this thread. All tasks posted after\n CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown()\n are guaranteed to run. This thread will outlive all other CEF threads.\n"]
2378    TID_UI = 0,
2379    #[doc = "\n Used for blocking tasks like file system access where the user won't\n notice if the task takes an arbitrarily long time to complete. All tasks\n posted after CefBrowserProcessHandler::OnContextInitialized() and before\n CefShutdown() are guaranteed to run.\n"]
2380    TID_FILE_BACKGROUND = 1,
2381    #[doc = "\n Used for blocking tasks like file system access that affect UI or\n responsiveness of future user interactions. Do not use if an immediate\n response to a user interaction is expected. All tasks posted after\n CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown()\n are guaranteed to run.\n Examples:\n - Updating the UI to reflect progress on a long task.\n - Loading data that might be shown in the UI after a future user\n   interaction.\n"]
2382    TID_FILE_USER_VISIBLE = 2,
2383    #[doc = "\n Used for blocking tasks like file system access that affect UI\n immediately after a user interaction. All tasks posted after\n CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown()\n are guaranteed to run.\n Example: Generating data shown in the UI immediately after a click.\n"]
2384    TID_FILE_USER_BLOCKING = 3,
2385    #[doc = "\n Used to launch and terminate browser processes.\n"]
2386    TID_PROCESS_LAUNCHER = 4,
2387    #[doc = "\n Used to process IPC and network messages. Do not perform blocking tasks on\n this thread. All tasks posted after\n CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown()\n are guaranteed to run.\n"]
2388    TID_IO = 5,
2389    #[doc = "\n The main thread in the renderer. Used for all WebKit and V8 interaction.\n Tasks may be posted to this thread after\n CefRenderProcessHandler::OnWebKitInitialized but are not guaranteed to\n run before sub-process termination (sub-processes may be killed at any\n time without warning).\n"]
2390    TID_RENDERER = 6,
2391    #[doc = "\n The main thread in the renderer. Used for all WebKit and V8 interaction.\n Tasks may be posted to this thread after\n CefRenderProcessHandler::OnWebKitInitialized but are not guaranteed to\n run before sub-process termination (sub-processes may be killed at any\n time without warning).\n"]
2392    TID_NUM_VALUES = 7,
2393}
2394#[repr(u32)]
2395#[non_exhaustive]
2396#[doc = "\n Thread priority values listed in increasing order of importance.\n"]
2397#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2398pub enum cef_thread_priority_t {
2399    #[doc = "\n Suitable for threads that shouldn't disrupt high priority work.\n"]
2400    TP_BACKGROUND = 0,
2401    #[doc = "\n Default priority level.\n"]
2402    TP_NORMAL = 1,
2403    #[doc = "\n Suitable for threads which generate data for the display (at ~60Hz).\n"]
2404    TP_DISPLAY = 2,
2405    #[doc = "\n Suitable for low-latency, glitch-resistant audio.\n"]
2406    TP_REALTIME_AUDIO = 3,
2407    #[doc = "\n Suitable for low-latency, glitch-resistant audio.\n"]
2408    TP_NUM_VALUES = 4,
2409}
2410#[repr(u32)]
2411#[non_exhaustive]
2412#[doc = "\n Message loop types. Indicates the set of asynchronous events that a message\n loop can process.\n"]
2413#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2414pub enum cef_message_loop_type_t {
2415    #[doc = "\n Supports tasks and timers.\n"]
2416    ML_TYPE_DEFAULT = 0,
2417    #[doc = "\n Supports tasks, timers and native UI events (e.g. Windows messages).\n"]
2418    ML_TYPE_UI = 1,
2419    #[doc = "\n Supports tasks, timers and asynchronous IO events.\n"]
2420    ML_TYPE_IO = 2,
2421    #[doc = "\n Supports tasks, timers and asynchronous IO events.\n"]
2422    ML_NUM_VALUES = 3,
2423}
2424#[repr(u32)]
2425#[non_exhaustive]
2426#[doc = "\n Windows COM initialization mode. Specifies how COM will be initialized for a\n new thread.\n"]
2427#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2428pub enum cef_com_init_mode_t {
2429    #[doc = "\n No COM initialization.\n"]
2430    COM_INIT_MODE_NONE = 0,
2431    #[doc = "\n Initialize COM using single-threaded apartments.\n"]
2432    COM_INIT_MODE_STA = 1,
2433    #[doc = "\n Initialize COM using multi-threaded apartments.\n"]
2434    COM_INIT_MODE_MTA = 2,
2435}
2436#[repr(u32)]
2437#[non_exhaustive]
2438#[doc = "\n Supported value types.\n"]
2439#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2440pub enum cef_value_type_t {
2441    VTYPE_INVALID = 0,
2442    VTYPE_NULL = 1,
2443    VTYPE_BOOL = 2,
2444    VTYPE_INT = 3,
2445    VTYPE_DOUBLE = 4,
2446    VTYPE_STRING = 5,
2447    VTYPE_BINARY = 6,
2448    VTYPE_DICTIONARY = 7,
2449    VTYPE_LIST = 8,
2450    VTYPE_NUM_VALUES = 9,
2451}
2452#[repr(u32)]
2453#[non_exhaustive]
2454#[doc = "\n Supported JavaScript dialog types.\n"]
2455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2456pub enum cef_jsdialog_type_t {
2457    JSDIALOGTYPE_ALERT = 0,
2458    JSDIALOGTYPE_CONFIRM = 1,
2459    JSDIALOGTYPE_PROMPT = 2,
2460    JSDIALOGTYPE_NUM_VALUES = 3,
2461}
2462#[doc = "\n Screen information used when window rendering is disabled. This structure is\n passed as a parameter to CefRenderHandler::GetScreenInfo and should be\n filled in by the client.\n"]
2463#[repr(C)]
2464#[derive(Debug, Copy, Clone)]
2465pub struct _cef_screen_info_t {
2466    #[doc = "\n Size of this structure.\n"]
2467    pub size: usize,
2468    #[doc = "\n Device scale factor. Specifies the ratio between physical and logical\n pixels.\n"]
2469    pub device_scale_factor: f32,
2470    #[doc = "\n The screen depth in bits per pixel.\n"]
2471    pub depth: ::std::os::raw::c_int,
2472    #[doc = "\n The bits per color component. This assumes that the colors are balanced\n equally.\n"]
2473    pub depth_per_component: ::std::os::raw::c_int,
2474    #[doc = "\n This can be true for black and white printers.\n"]
2475    pub is_monochrome: ::std::os::raw::c_int,
2476    #[doc = " The |rect| and |available_rect| properties are used to determine the\n available surface for rendering popup views.\n"]
2477    pub rect: cef_rect_t,
2478    #[doc = " The |rect| and |available_rect| properties are used to determine the\n available surface for rendering popup views.\n"]
2479    pub available_rect: cef_rect_t,
2480}
2481#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2482const _: () = {
2483    ["Size of _cef_screen_info_t"][::std::mem::size_of::<_cef_screen_info_t>() - 56usize];
2484    ["Alignment of _cef_screen_info_t"][::std::mem::align_of::<_cef_screen_info_t>() - 8usize];
2485    ["Offset of field: _cef_screen_info_t::size"]
2486        [::std::mem::offset_of!(_cef_screen_info_t, size) - 0usize];
2487    ["Offset of field: _cef_screen_info_t::device_scale_factor"]
2488        [::std::mem::offset_of!(_cef_screen_info_t, device_scale_factor) - 8usize];
2489    ["Offset of field: _cef_screen_info_t::depth"]
2490        [::std::mem::offset_of!(_cef_screen_info_t, depth) - 12usize];
2491    ["Offset of field: _cef_screen_info_t::depth_per_component"]
2492        [::std::mem::offset_of!(_cef_screen_info_t, depth_per_component) - 16usize];
2493    ["Offset of field: _cef_screen_info_t::is_monochrome"]
2494        [::std::mem::offset_of!(_cef_screen_info_t, is_monochrome) - 20usize];
2495    ["Offset of field: _cef_screen_info_t::rect"]
2496        [::std::mem::offset_of!(_cef_screen_info_t, rect) - 24usize];
2497    ["Offset of field: _cef_screen_info_t::available_rect"]
2498        [::std::mem::offset_of!(_cef_screen_info_t, available_rect) - 40usize];
2499};
2500#[doc = "\n Screen information used when window rendering is disabled. This structure is\n passed as a parameter to CefRenderHandler::GetScreenInfo and should be\n filled in by the client.\n"]
2501pub type cef_screen_info_t = _cef_screen_info_t;
2502#[doc = "\n Linux window properties, such as X11's WM_CLASS or Wayland's app_id.\n Those are passed to CefWindowDelegate, so the client can set them\n for the CefWindow's top-level. Thus, allowing window managers to correctly\n display the application's information (e.g., icons).\n"]
2503#[repr(C)]
2504#[derive(Debug, Copy, Clone)]
2505pub struct _cef_linux_window_properties_t {
2506    #[doc = "\n Size of this structure.\n"]
2507    pub size: usize,
2508    #[doc = "\n Main window's Wayland's app_id\n"]
2509    pub wayland_app_id: cef_string_t,
2510    #[doc = "\n Main window's WM_CLASS_CLASS in X11\n"]
2511    pub wm_class_class: cef_string_t,
2512    #[doc = "\n Main window's WM_CLASS_NAME in X11\n"]
2513    pub wm_class_name: cef_string_t,
2514    #[doc = "\n Main window's WM_WINDOW_ROLE in X11\n"]
2515    pub wm_role_name: cef_string_t,
2516}
2517#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2518const _: () = {
2519    ["Size of _cef_linux_window_properties_t"]
2520        [::std::mem::size_of::<_cef_linux_window_properties_t>() - 104usize];
2521    ["Alignment of _cef_linux_window_properties_t"]
2522        [::std::mem::align_of::<_cef_linux_window_properties_t>() - 8usize];
2523    ["Offset of field: _cef_linux_window_properties_t::size"]
2524        [::std::mem::offset_of!(_cef_linux_window_properties_t, size) - 0usize];
2525    ["Offset of field: _cef_linux_window_properties_t::wayland_app_id"]
2526        [::std::mem::offset_of!(_cef_linux_window_properties_t, wayland_app_id) - 8usize];
2527    ["Offset of field: _cef_linux_window_properties_t::wm_class_class"]
2528        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_class_class) - 32usize];
2529    ["Offset of field: _cef_linux_window_properties_t::wm_class_name"]
2530        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_class_name) - 56usize];
2531    ["Offset of field: _cef_linux_window_properties_t::wm_role_name"]
2532        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_role_name) - 80usize];
2533};
2534#[doc = "\n Linux window properties, such as X11's WM_CLASS or Wayland's app_id.\n Those are passed to CefWindowDelegate, so the client can set them\n for the CefWindow's top-level. Thus, allowing window managers to correctly\n display the application's information (e.g., icons).\n"]
2535pub type cef_linux_window_properties_t = _cef_linux_window_properties_t;
2536impl cef_menu_id_t {
2537    pub const MENU_ID_SPELLCHECK_SUGGESTION_LAST: cef_menu_id_t =
2538        cef_menu_id_t::MENU_ID_SPELLCHECK_SUGGESTION_4;
2539}
2540#[repr(u32)]
2541#[non_exhaustive]
2542#[doc = "\n Supported menu IDs. Non-English translations can be provided for the\n IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString().\n"]
2543#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2544pub enum cef_menu_id_t {
2545    MENU_ID_BACK = 100,
2546    MENU_ID_FORWARD = 101,
2547    MENU_ID_RELOAD = 102,
2548    MENU_ID_RELOAD_NOCACHE = 103,
2549    MENU_ID_STOPLOAD = 104,
2550    MENU_ID_UNDO = 110,
2551    MENU_ID_REDO = 111,
2552    MENU_ID_CUT = 112,
2553    MENU_ID_COPY = 113,
2554    MENU_ID_PASTE = 114,
2555    MENU_ID_PASTE_MATCH_STYLE = 115,
2556    MENU_ID_DELETE = 116,
2557    MENU_ID_SELECT_ALL = 117,
2558    MENU_ID_FIND = 130,
2559    MENU_ID_PRINT = 131,
2560    MENU_ID_VIEW_SOURCE = 132,
2561    MENU_ID_SPELLCHECK_SUGGESTION_0 = 200,
2562    MENU_ID_SPELLCHECK_SUGGESTION_1 = 201,
2563    MENU_ID_SPELLCHECK_SUGGESTION_2 = 202,
2564    MENU_ID_SPELLCHECK_SUGGESTION_3 = 203,
2565    MENU_ID_SPELLCHECK_SUGGESTION_4 = 204,
2566    MENU_ID_NO_SPELLING_SUGGESTIONS = 205,
2567    MENU_ID_ADD_TO_DICTIONARY = 206,
2568    MENU_ID_CUSTOM_FIRST = 220,
2569    MENU_ID_CUSTOM_LAST = 250,
2570    MENU_ID_USER_FIRST = 26500,
2571    MENU_ID_USER_LAST = 28500,
2572}
2573#[repr(u32)]
2574#[non_exhaustive]
2575#[doc = "\n Mouse button types.\n"]
2576#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2577pub enum cef_mouse_button_type_t {
2578    MBT_LEFT = 0,
2579    MBT_MIDDLE = 1,
2580    MBT_RIGHT = 2,
2581}
2582#[doc = "\n Structure representing mouse event information.\n"]
2583#[repr(C)]
2584#[derive(Debug, Copy, Clone)]
2585pub struct _cef_mouse_event_t {
2586    #[doc = "\n X coordinate relative to the left side of the view.\n"]
2587    pub x: ::std::os::raw::c_int,
2588    #[doc = "\n Y coordinate relative to the top side of the view.\n"]
2589    pub y: ::std::os::raw::c_int,
2590    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
2591    pub modifiers: u32,
2592}
2593#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2594const _: () = {
2595    ["Size of _cef_mouse_event_t"][::std::mem::size_of::<_cef_mouse_event_t>() - 12usize];
2596    ["Alignment of _cef_mouse_event_t"][::std::mem::align_of::<_cef_mouse_event_t>() - 4usize];
2597    ["Offset of field: _cef_mouse_event_t::x"]
2598        [::std::mem::offset_of!(_cef_mouse_event_t, x) - 0usize];
2599    ["Offset of field: _cef_mouse_event_t::y"]
2600        [::std::mem::offset_of!(_cef_mouse_event_t, y) - 4usize];
2601    ["Offset of field: _cef_mouse_event_t::modifiers"]
2602        [::std::mem::offset_of!(_cef_mouse_event_t, modifiers) - 8usize];
2603};
2604#[doc = "\n Structure representing mouse event information.\n"]
2605pub type cef_mouse_event_t = _cef_mouse_event_t;
2606#[repr(u32)]
2607#[non_exhaustive]
2608#[doc = "\n Touch points states types.\n"]
2609#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2610pub enum cef_touch_event_type_t {
2611    CEF_TET_RELEASED = 0,
2612    CEF_TET_PRESSED = 1,
2613    CEF_TET_MOVED = 2,
2614    CEF_TET_CANCELLED = 3,
2615}
2616#[repr(u32)]
2617#[non_exhaustive]
2618#[doc = "\n The device type that caused the event.\n"]
2619#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2620pub enum cef_pointer_type_t {
2621    CEF_POINTER_TYPE_TOUCH = 0,
2622    CEF_POINTER_TYPE_MOUSE = 1,
2623    CEF_POINTER_TYPE_PEN = 2,
2624    CEF_POINTER_TYPE_ERASER = 3,
2625    CEF_POINTER_TYPE_UNKNOWN = 4,
2626}
2627#[doc = "\n Structure representing touch event information.\n"]
2628#[repr(C)]
2629#[derive(Debug, Copy, Clone)]
2630pub struct _cef_touch_event_t {
2631    #[doc = "\n Id of a touch point. Must be unique per touch, can be any number except\n -1. Note that a maximum of 16 concurrent touches will be tracked; touches\n beyond that will be ignored.\n"]
2632    pub id: ::std::os::raw::c_int,
2633    #[doc = "\n X coordinate relative to the left side of the view.\n"]
2634    pub x: f32,
2635    #[doc = "\n Y coordinate relative to the top side of the view.\n"]
2636    pub y: f32,
2637    #[doc = "\n X radius in pixels. Set to 0 if not applicable.\n"]
2638    pub radius_x: f32,
2639    #[doc = "\n Y radius in pixels. Set to 0 if not applicable.\n"]
2640    pub radius_y: f32,
2641    #[doc = "\n Rotation angle in radians. Set to 0 if not applicable.\n"]
2642    pub rotation_angle: f32,
2643    #[doc = "\n The normalized pressure of the pointer input in the range of [0,1].\n Set to 0 if not applicable.\n"]
2644    pub pressure: f32,
2645    #[doc = "\n The state of the touch point. Touches begin with one CEF_TET_PRESSED event\n followed by zero or more CEF_TET_MOVED events and finally one\n CEF_TET_RELEASED or CEF_TET_CANCELLED event. Events not respecting this\n order will be ignored.\n"]
2646    pub type_: cef_touch_event_type_t,
2647    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
2648    pub modifiers: u32,
2649    #[doc = "\n The device type that caused the event.\n"]
2650    pub pointer_type: cef_pointer_type_t,
2651}
2652#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2653const _: () = {
2654    ["Size of _cef_touch_event_t"][::std::mem::size_of::<_cef_touch_event_t>() - 40usize];
2655    ["Alignment of _cef_touch_event_t"][::std::mem::align_of::<_cef_touch_event_t>() - 4usize];
2656    ["Offset of field: _cef_touch_event_t::id"]
2657        [::std::mem::offset_of!(_cef_touch_event_t, id) - 0usize];
2658    ["Offset of field: _cef_touch_event_t::x"]
2659        [::std::mem::offset_of!(_cef_touch_event_t, x) - 4usize];
2660    ["Offset of field: _cef_touch_event_t::y"]
2661        [::std::mem::offset_of!(_cef_touch_event_t, y) - 8usize];
2662    ["Offset of field: _cef_touch_event_t::radius_x"]
2663        [::std::mem::offset_of!(_cef_touch_event_t, radius_x) - 12usize];
2664    ["Offset of field: _cef_touch_event_t::radius_y"]
2665        [::std::mem::offset_of!(_cef_touch_event_t, radius_y) - 16usize];
2666    ["Offset of field: _cef_touch_event_t::rotation_angle"]
2667        [::std::mem::offset_of!(_cef_touch_event_t, rotation_angle) - 20usize];
2668    ["Offset of field: _cef_touch_event_t::pressure"]
2669        [::std::mem::offset_of!(_cef_touch_event_t, pressure) - 24usize];
2670    ["Offset of field: _cef_touch_event_t::type_"]
2671        [::std::mem::offset_of!(_cef_touch_event_t, type_) - 28usize];
2672    ["Offset of field: _cef_touch_event_t::modifiers"]
2673        [::std::mem::offset_of!(_cef_touch_event_t, modifiers) - 32usize];
2674    ["Offset of field: _cef_touch_event_t::pointer_type"]
2675        [::std::mem::offset_of!(_cef_touch_event_t, pointer_type) - 36usize];
2676};
2677#[doc = "\n Structure representing touch event information.\n"]
2678pub type cef_touch_event_t = _cef_touch_event_t;
2679#[repr(u32)]
2680#[non_exhaustive]
2681#[doc = "\n Paint element types.\n"]
2682#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2683pub enum cef_paint_element_type_t {
2684    PET_VIEW = 0,
2685    PET_POPUP = 1,
2686}
2687impl cef_event_flags_t {
2688    pub const EVENTFLAG_NONE: cef_event_flags_t = cef_event_flags_t(0);
2689    pub const EVENTFLAG_CAPS_LOCK_ON: cef_event_flags_t = cef_event_flags_t(1);
2690    pub const EVENTFLAG_SHIFT_DOWN: cef_event_flags_t = cef_event_flags_t(2);
2691    pub const EVENTFLAG_CONTROL_DOWN: cef_event_flags_t = cef_event_flags_t(4);
2692    pub const EVENTFLAG_ALT_DOWN: cef_event_flags_t = cef_event_flags_t(8);
2693    pub const EVENTFLAG_LEFT_MOUSE_BUTTON: cef_event_flags_t = cef_event_flags_t(16);
2694    pub const EVENTFLAG_MIDDLE_MOUSE_BUTTON: cef_event_flags_t = cef_event_flags_t(32);
2695    pub const EVENTFLAG_RIGHT_MOUSE_BUTTON: cef_event_flags_t = cef_event_flags_t(64);
2696    #[doc = " Mac OS-X command key."]
2697    pub const EVENTFLAG_COMMAND_DOWN: cef_event_flags_t = cef_event_flags_t(128);
2698    #[doc = " Mac OS-X command key."]
2699    pub const EVENTFLAG_NUM_LOCK_ON: cef_event_flags_t = cef_event_flags_t(256);
2700    #[doc = " Mac OS-X command key."]
2701    pub const EVENTFLAG_IS_KEY_PAD: cef_event_flags_t = cef_event_flags_t(512);
2702    #[doc = " Mac OS-X command key."]
2703    pub const EVENTFLAG_IS_LEFT: cef_event_flags_t = cef_event_flags_t(1024);
2704    #[doc = " Mac OS-X command key."]
2705    pub const EVENTFLAG_IS_RIGHT: cef_event_flags_t = cef_event_flags_t(2048);
2706    #[doc = " Mac OS-X command key."]
2707    pub const EVENTFLAG_ALTGR_DOWN: cef_event_flags_t = cef_event_flags_t(4096);
2708    #[doc = " Mac OS-X command key."]
2709    pub const EVENTFLAG_IS_REPEAT: cef_event_flags_t = cef_event_flags_t(8192);
2710    #[doc = " Mac OS-X command key."]
2711    pub const EVENTFLAG_PRECISION_SCROLLING_DELTA: cef_event_flags_t = cef_event_flags_t(16384);
2712    #[doc = " Mac OS-X command key."]
2713    pub const EVENTFLAG_SCROLL_BY_PAGE: cef_event_flags_t = cef_event_flags_t(32768);
2714}
2715impl ::std::ops::BitOr<cef_event_flags_t> for cef_event_flags_t {
2716    type Output = Self;
2717    #[inline]
2718    fn bitor(self, other: Self) -> Self {
2719        cef_event_flags_t(self.0 | other.0)
2720    }
2721}
2722impl ::std::ops::BitOrAssign for cef_event_flags_t {
2723    #[inline]
2724    fn bitor_assign(&mut self, rhs: cef_event_flags_t) {
2725        self.0 |= rhs.0;
2726    }
2727}
2728impl ::std::ops::BitAnd<cef_event_flags_t> for cef_event_flags_t {
2729    type Output = Self;
2730    #[inline]
2731    fn bitand(self, other: Self) -> Self {
2732        cef_event_flags_t(self.0 & other.0)
2733    }
2734}
2735impl ::std::ops::BitAndAssign for cef_event_flags_t {
2736    #[inline]
2737    fn bitand_assign(&mut self, rhs: cef_event_flags_t) {
2738        self.0 &= rhs.0;
2739    }
2740}
2741#[repr(transparent)]
2742#[doc = "\n Supported event bit flags.\n"]
2743#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2744pub struct cef_event_flags_t(pub ::std::os::raw::c_uint);
2745#[repr(u32)]
2746#[non_exhaustive]
2747#[doc = "\n Supported menu item types.\n"]
2748#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2749pub enum cef_menu_item_type_t {
2750    MENUITEMTYPE_NONE = 0,
2751    MENUITEMTYPE_COMMAND = 1,
2752    MENUITEMTYPE_CHECK = 2,
2753    MENUITEMTYPE_RADIO = 3,
2754    MENUITEMTYPE_SEPARATOR = 4,
2755    MENUITEMTYPE_SUBMENU = 5,
2756}
2757impl cef_context_menu_type_flags_t {
2758    #[doc = "\n No node is selected.\n"]
2759    pub const CM_TYPEFLAG_NONE: cef_context_menu_type_flags_t = cef_context_menu_type_flags_t(0);
2760    #[doc = "\n The top page is selected.\n"]
2761    pub const CM_TYPEFLAG_PAGE: cef_context_menu_type_flags_t = cef_context_menu_type_flags_t(1);
2762    #[doc = "\n A subframe page is selected.\n"]
2763    pub const CM_TYPEFLAG_FRAME: cef_context_menu_type_flags_t = cef_context_menu_type_flags_t(2);
2764    #[doc = "\n A link is selected.\n"]
2765    pub const CM_TYPEFLAG_LINK: cef_context_menu_type_flags_t = cef_context_menu_type_flags_t(4);
2766    #[doc = "\n A media node is selected.\n"]
2767    pub const CM_TYPEFLAG_MEDIA: cef_context_menu_type_flags_t = cef_context_menu_type_flags_t(8);
2768    #[doc = "\n There is a textual or mixed selection that is selected.\n"]
2769    pub const CM_TYPEFLAG_SELECTION: cef_context_menu_type_flags_t =
2770        cef_context_menu_type_flags_t(16);
2771    #[doc = "\n An editable element is selected.\n"]
2772    pub const CM_TYPEFLAG_EDITABLE: cef_context_menu_type_flags_t =
2773        cef_context_menu_type_flags_t(32);
2774}
2775impl ::std::ops::BitOr<cef_context_menu_type_flags_t> for cef_context_menu_type_flags_t {
2776    type Output = Self;
2777    #[inline]
2778    fn bitor(self, other: Self) -> Self {
2779        cef_context_menu_type_flags_t(self.0 | other.0)
2780    }
2781}
2782impl ::std::ops::BitOrAssign for cef_context_menu_type_flags_t {
2783    #[inline]
2784    fn bitor_assign(&mut self, rhs: cef_context_menu_type_flags_t) {
2785        self.0 |= rhs.0;
2786    }
2787}
2788impl ::std::ops::BitAnd<cef_context_menu_type_flags_t> for cef_context_menu_type_flags_t {
2789    type Output = Self;
2790    #[inline]
2791    fn bitand(self, other: Self) -> Self {
2792        cef_context_menu_type_flags_t(self.0 & other.0)
2793    }
2794}
2795impl ::std::ops::BitAndAssign for cef_context_menu_type_flags_t {
2796    #[inline]
2797    fn bitand_assign(&mut self, rhs: cef_context_menu_type_flags_t) {
2798        self.0 &= rhs.0;
2799    }
2800}
2801#[repr(transparent)]
2802#[doc = "\n Supported context menu type flags.\n"]
2803#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2804pub struct cef_context_menu_type_flags_t(pub ::std::os::raw::c_uint);
2805#[repr(u32)]
2806#[non_exhaustive]
2807#[doc = "\n Supported context menu media types. These constants match their equivalents\n in Chromium's ContextMenuDataMediaType and should not be renumbered.\n"]
2808#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2809pub enum cef_context_menu_media_type_t {
2810    #[doc = "\n No special node is in context.\n"]
2811    CM_MEDIATYPE_NONE = 0,
2812    #[doc = "\n An image node is selected.\n"]
2813    CM_MEDIATYPE_IMAGE = 1,
2814    #[doc = "\n A video node is selected.\n"]
2815    CM_MEDIATYPE_VIDEO = 2,
2816    #[doc = "\n An audio node is selected.\n"]
2817    CM_MEDIATYPE_AUDIO = 3,
2818    #[doc = "\n An canvas node is selected.\n"]
2819    CM_MEDIATYPE_CANVAS = 4,
2820    #[doc = "\n A file node is selected.\n"]
2821    CM_MEDIATYPE_FILE = 5,
2822    #[doc = "\n A plugin node is selected.\n"]
2823    CM_MEDIATYPE_PLUGIN = 6,
2824    #[doc = "\n A plugin node is selected.\n"]
2825    CM_MEDIATYPE_NUM_VALUES = 7,
2826}
2827impl cef_context_menu_media_state_flags_t {
2828    pub const CM_MEDIAFLAG_NONE: cef_context_menu_media_state_flags_t =
2829        cef_context_menu_media_state_flags_t(0);
2830    pub const CM_MEDIAFLAG_IN_ERROR: cef_context_menu_media_state_flags_t =
2831        cef_context_menu_media_state_flags_t(1);
2832    pub const CM_MEDIAFLAG_PAUSED: cef_context_menu_media_state_flags_t =
2833        cef_context_menu_media_state_flags_t(2);
2834    pub const CM_MEDIAFLAG_MUTED: cef_context_menu_media_state_flags_t =
2835        cef_context_menu_media_state_flags_t(4);
2836    pub const CM_MEDIAFLAG_LOOP: cef_context_menu_media_state_flags_t =
2837        cef_context_menu_media_state_flags_t(8);
2838    pub const CM_MEDIAFLAG_CAN_SAVE: cef_context_menu_media_state_flags_t =
2839        cef_context_menu_media_state_flags_t(16);
2840    pub const CM_MEDIAFLAG_HAS_AUDIO: cef_context_menu_media_state_flags_t =
2841        cef_context_menu_media_state_flags_t(32);
2842    pub const CM_MEDIAFLAG_CAN_TOGGLE_CONTROLS: cef_context_menu_media_state_flags_t =
2843        cef_context_menu_media_state_flags_t(64);
2844    pub const CM_MEDIAFLAG_CONTROLS: cef_context_menu_media_state_flags_t =
2845        cef_context_menu_media_state_flags_t(128);
2846    pub const CM_MEDIAFLAG_CAN_PRINT: cef_context_menu_media_state_flags_t =
2847        cef_context_menu_media_state_flags_t(256);
2848    pub const CM_MEDIAFLAG_CAN_ROTATE: cef_context_menu_media_state_flags_t =
2849        cef_context_menu_media_state_flags_t(512);
2850    pub const CM_MEDIAFLAG_CAN_PICTURE_IN_PICTURE: cef_context_menu_media_state_flags_t =
2851        cef_context_menu_media_state_flags_t(1024);
2852    pub const CM_MEDIAFLAG_PICTURE_IN_PICTURE: cef_context_menu_media_state_flags_t =
2853        cef_context_menu_media_state_flags_t(2048);
2854    pub const CM_MEDIAFLAG_CAN_LOOP: cef_context_menu_media_state_flags_t =
2855        cef_context_menu_media_state_flags_t(4096);
2856}
2857impl ::std::ops::BitOr<cef_context_menu_media_state_flags_t>
2858    for cef_context_menu_media_state_flags_t
2859{
2860    type Output = Self;
2861    #[inline]
2862    fn bitor(self, other: Self) -> Self {
2863        cef_context_menu_media_state_flags_t(self.0 | other.0)
2864    }
2865}
2866impl ::std::ops::BitOrAssign for cef_context_menu_media_state_flags_t {
2867    #[inline]
2868    fn bitor_assign(&mut self, rhs: cef_context_menu_media_state_flags_t) {
2869        self.0 |= rhs.0;
2870    }
2871}
2872impl ::std::ops::BitAnd<cef_context_menu_media_state_flags_t>
2873    for cef_context_menu_media_state_flags_t
2874{
2875    type Output = Self;
2876    #[inline]
2877    fn bitand(self, other: Self) -> Self {
2878        cef_context_menu_media_state_flags_t(self.0 & other.0)
2879    }
2880}
2881impl ::std::ops::BitAndAssign for cef_context_menu_media_state_flags_t {
2882    #[inline]
2883    fn bitand_assign(&mut self, rhs: cef_context_menu_media_state_flags_t) {
2884        self.0 &= rhs.0;
2885    }
2886}
2887#[repr(transparent)]
2888#[doc = "\n Supported context menu media state bit flags. These constants match their\n equivalents in Chromium's ContextMenuData::MediaFlags and should not be\n renumbered.\n"]
2889#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2890pub struct cef_context_menu_media_state_flags_t(pub ::std::os::raw::c_uint);
2891impl cef_context_menu_edit_state_flags_t {
2892    pub const CM_EDITFLAG_NONE: cef_context_menu_edit_state_flags_t =
2893        cef_context_menu_edit_state_flags_t(0);
2894    pub const CM_EDITFLAG_CAN_UNDO: cef_context_menu_edit_state_flags_t =
2895        cef_context_menu_edit_state_flags_t(1);
2896    pub const CM_EDITFLAG_CAN_REDO: cef_context_menu_edit_state_flags_t =
2897        cef_context_menu_edit_state_flags_t(2);
2898    pub const CM_EDITFLAG_CAN_CUT: cef_context_menu_edit_state_flags_t =
2899        cef_context_menu_edit_state_flags_t(4);
2900    pub const CM_EDITFLAG_CAN_COPY: cef_context_menu_edit_state_flags_t =
2901        cef_context_menu_edit_state_flags_t(8);
2902    pub const CM_EDITFLAG_CAN_PASTE: cef_context_menu_edit_state_flags_t =
2903        cef_context_menu_edit_state_flags_t(16);
2904    pub const CM_EDITFLAG_CAN_DELETE: cef_context_menu_edit_state_flags_t =
2905        cef_context_menu_edit_state_flags_t(32);
2906    pub const CM_EDITFLAG_CAN_SELECT_ALL: cef_context_menu_edit_state_flags_t =
2907        cef_context_menu_edit_state_flags_t(64);
2908    pub const CM_EDITFLAG_CAN_TRANSLATE: cef_context_menu_edit_state_flags_t =
2909        cef_context_menu_edit_state_flags_t(128);
2910    pub const CM_EDITFLAG_CAN_EDIT_RICHLY: cef_context_menu_edit_state_flags_t =
2911        cef_context_menu_edit_state_flags_t(256);
2912}
2913impl ::std::ops::BitOr<cef_context_menu_edit_state_flags_t>
2914    for cef_context_menu_edit_state_flags_t
2915{
2916    type Output = Self;
2917    #[inline]
2918    fn bitor(self, other: Self) -> Self {
2919        cef_context_menu_edit_state_flags_t(self.0 | other.0)
2920    }
2921}
2922impl ::std::ops::BitOrAssign for cef_context_menu_edit_state_flags_t {
2923    #[inline]
2924    fn bitor_assign(&mut self, rhs: cef_context_menu_edit_state_flags_t) {
2925        self.0 |= rhs.0;
2926    }
2927}
2928impl ::std::ops::BitAnd<cef_context_menu_edit_state_flags_t>
2929    for cef_context_menu_edit_state_flags_t
2930{
2931    type Output = Self;
2932    #[inline]
2933    fn bitand(self, other: Self) -> Self {
2934        cef_context_menu_edit_state_flags_t(self.0 & other.0)
2935    }
2936}
2937impl ::std::ops::BitAndAssign for cef_context_menu_edit_state_flags_t {
2938    #[inline]
2939    fn bitand_assign(&mut self, rhs: cef_context_menu_edit_state_flags_t) {
2940        self.0 &= rhs.0;
2941    }
2942}
2943#[repr(transparent)]
2944#[doc = "\n Supported context menu edit state bit flags. These constants match their\n equivalents in Chromium's ContextMenuDataEditFlags and should not be\n renumbered.\n"]
2945#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2946pub struct cef_context_menu_edit_state_flags_t(pub ::std::os::raw::c_uint);
2947impl cef_quick_menu_edit_state_flags_t {
2948    pub const QM_EDITFLAG_NONE: cef_quick_menu_edit_state_flags_t =
2949        cef_quick_menu_edit_state_flags_t(0);
2950    pub const QM_EDITFLAG_CAN_ELLIPSIS: cef_quick_menu_edit_state_flags_t =
2951        cef_quick_menu_edit_state_flags_t(1);
2952    pub const QM_EDITFLAG_CAN_CUT: cef_quick_menu_edit_state_flags_t =
2953        cef_quick_menu_edit_state_flags_t(2);
2954    pub const QM_EDITFLAG_CAN_COPY: cef_quick_menu_edit_state_flags_t =
2955        cef_quick_menu_edit_state_flags_t(4);
2956    pub const QM_EDITFLAG_CAN_PASTE: cef_quick_menu_edit_state_flags_t =
2957        cef_quick_menu_edit_state_flags_t(8);
2958}
2959impl ::std::ops::BitOr<cef_quick_menu_edit_state_flags_t> for cef_quick_menu_edit_state_flags_t {
2960    type Output = Self;
2961    #[inline]
2962    fn bitor(self, other: Self) -> Self {
2963        cef_quick_menu_edit_state_flags_t(self.0 | other.0)
2964    }
2965}
2966impl ::std::ops::BitOrAssign for cef_quick_menu_edit_state_flags_t {
2967    #[inline]
2968    fn bitor_assign(&mut self, rhs: cef_quick_menu_edit_state_flags_t) {
2969        self.0 |= rhs.0;
2970    }
2971}
2972impl ::std::ops::BitAnd<cef_quick_menu_edit_state_flags_t> for cef_quick_menu_edit_state_flags_t {
2973    type Output = Self;
2974    #[inline]
2975    fn bitand(self, other: Self) -> Self {
2976        cef_quick_menu_edit_state_flags_t(self.0 & other.0)
2977    }
2978}
2979impl ::std::ops::BitAndAssign for cef_quick_menu_edit_state_flags_t {
2980    #[inline]
2981    fn bitand_assign(&mut self, rhs: cef_quick_menu_edit_state_flags_t) {
2982        self.0 &= rhs.0;
2983    }
2984}
2985#[repr(transparent)]
2986#[doc = "\n Supported quick menu state bit flags.\n"]
2987#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2988pub struct cef_quick_menu_edit_state_flags_t(pub ::std::os::raw::c_uint);
2989#[repr(u32)]
2990#[non_exhaustive]
2991#[doc = "\n Key event types.\n"]
2992#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2993pub enum cef_key_event_type_t {
2994    #[doc = "\n Notification that a key transitioned from \"up\" to \"down\".\n"]
2995    KEYEVENT_RAWKEYDOWN = 0,
2996    #[doc = "\n Notification that a key was pressed. This does not necessarily correspond\n to a character depending on the key and language. Use KEYEVENT_CHAR for\n character input.\n"]
2997    KEYEVENT_KEYDOWN = 1,
2998    #[doc = "\n Notification that a key was released.\n"]
2999    KEYEVENT_KEYUP = 2,
3000    #[doc = "\n Notification that a character was typed. Use this for text input. Key\n down events may generate 0, 1, or more than one character event depending\n on the key, locale, and operating system.\n"]
3001    KEYEVENT_CHAR = 3,
3002}
3003#[doc = "\n Structure representing keyboard event information.\n"]
3004#[repr(C)]
3005#[derive(Debug, Copy, Clone)]
3006pub struct _cef_key_event_t {
3007    #[doc = "\n Size of this structure.\n"]
3008    pub size: usize,
3009    #[doc = "\n The type of keyboard event.\n"]
3010    pub type_: cef_key_event_type_t,
3011    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
3012    pub modifiers: u32,
3013    #[doc = "\n The Windows key code for the key event. This value is used by the DOM\n specification. Sometimes it comes directly from the event (i.e. on\n Windows) and sometimes it's determined using a mapping function. See\n WebCore/platform/chromium/KeyboardCodes.h for the list of values.\n"]
3014    pub windows_key_code: ::std::os::raw::c_int,
3015    #[doc = "\n The actual key code genenerated by the platform.\n"]
3016    pub native_key_code: ::std::os::raw::c_int,
3017    #[doc = "\n Indicates whether the event is considered a \"system key\" event (see\n http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details).\n This value will always be false on non-Windows platforms.\n"]
3018    pub is_system_key: ::std::os::raw::c_int,
3019    #[doc = "\n The character generated by the keystroke.\n"]
3020    pub character: char16_t,
3021    #[doc = "\n Same as |character| but unmodified by any concurrently-held modifiers\n (except shift). This is useful for working out shortcut keys.\n"]
3022    pub unmodified_character: char16_t,
3023    #[doc = "\n True if the focus is currently on an editable field on the page. This is\n useful for determining if standard key events should be intercepted.\n"]
3024    pub focus_on_editable_field: ::std::os::raw::c_int,
3025}
3026#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3027const _: () = {
3028    ["Size of _cef_key_event_t"][::std::mem::size_of::<_cef_key_event_t>() - 40usize];
3029    ["Alignment of _cef_key_event_t"][::std::mem::align_of::<_cef_key_event_t>() - 8usize];
3030    ["Offset of field: _cef_key_event_t::size"]
3031        [::std::mem::offset_of!(_cef_key_event_t, size) - 0usize];
3032    ["Offset of field: _cef_key_event_t::type_"]
3033        [::std::mem::offset_of!(_cef_key_event_t, type_) - 8usize];
3034    ["Offset of field: _cef_key_event_t::modifiers"]
3035        [::std::mem::offset_of!(_cef_key_event_t, modifiers) - 12usize];
3036    ["Offset of field: _cef_key_event_t::windows_key_code"]
3037        [::std::mem::offset_of!(_cef_key_event_t, windows_key_code) - 16usize];
3038    ["Offset of field: _cef_key_event_t::native_key_code"]
3039        [::std::mem::offset_of!(_cef_key_event_t, native_key_code) - 20usize];
3040    ["Offset of field: _cef_key_event_t::is_system_key"]
3041        [::std::mem::offset_of!(_cef_key_event_t, is_system_key) - 24usize];
3042    ["Offset of field: _cef_key_event_t::character"]
3043        [::std::mem::offset_of!(_cef_key_event_t, character) - 28usize];
3044    ["Offset of field: _cef_key_event_t::unmodified_character"]
3045        [::std::mem::offset_of!(_cef_key_event_t, unmodified_character) - 30usize];
3046    ["Offset of field: _cef_key_event_t::focus_on_editable_field"]
3047        [::std::mem::offset_of!(_cef_key_event_t, focus_on_editable_field) - 32usize];
3048};
3049#[doc = "\n Structure representing keyboard event information.\n"]
3050pub type cef_key_event_t = _cef_key_event_t;
3051#[repr(u32)]
3052#[non_exhaustive]
3053#[doc = "\n Focus sources.\n"]
3054#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3055pub enum cef_focus_source_t {
3056    #[doc = "\n The source is explicit navigation via the API (LoadURL(), etc).\n"]
3057    FOCUS_SOURCE_NAVIGATION = 0,
3058    #[doc = "\n The source is a system-generated focus event.\n"]
3059    FOCUS_SOURCE_SYSTEM = 1,
3060    #[doc = "\n The source is a system-generated focus event.\n"]
3061    FOCUS_SOURCE_NUM_VALUES = 2,
3062}
3063#[repr(u32)]
3064#[non_exhaustive]
3065#[doc = "\n Navigation types.\n"]
3066#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3067pub enum cef_navigation_type_t {
3068    NAVIGATION_LINK_CLICKED = 0,
3069    NAVIGATION_FORM_SUBMITTED = 1,
3070    NAVIGATION_BACK_FORWARD = 2,
3071    NAVIGATION_RELOAD = 3,
3072    NAVIGATION_FORM_RESUBMITTED = 4,
3073    NAVIGATION_OTHER = 5,
3074    NAVIGATION_NUM_VALUES = 6,
3075}
3076#[repr(u32)]
3077#[non_exhaustive]
3078#[doc = "\n Supported XML encoding types. The parser supports ASCII, ISO-8859-1, and\n UTF16 (LE and BE) by default. All other types must be translated to UTF8\n before being passed to the parser. If a BOM is detected and the correct\n decoder is available then that decoder will be used automatically.\n"]
3079#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3080pub enum cef_xml_encoding_type_t {
3081    XML_ENCODING_NONE = 0,
3082    XML_ENCODING_UTF8 = 1,
3083    XML_ENCODING_UTF16LE = 2,
3084    XML_ENCODING_UTF16BE = 3,
3085    XML_ENCODING_ASCII = 4,
3086    XML_ENCODING_NUM_VALUES = 5,
3087}
3088#[repr(u32)]
3089#[non_exhaustive]
3090#[doc = "\n XML node types.\n"]
3091#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3092pub enum cef_xml_node_type_t {
3093    XML_NODE_UNSUPPORTED = 0,
3094    XML_NODE_PROCESSING_INSTRUCTION = 1,
3095    XML_NODE_DOCUMENT_TYPE = 2,
3096    XML_NODE_ELEMENT_START = 3,
3097    XML_NODE_ELEMENT_END = 4,
3098    XML_NODE_ATTRIBUTE = 5,
3099    XML_NODE_TEXT = 6,
3100    XML_NODE_CDATA = 7,
3101    XML_NODE_ENTITY_REFERENCE = 8,
3102    XML_NODE_WHITESPACE = 9,
3103    XML_NODE_COMMENT = 10,
3104    XML_NODE_NUM_VALUES = 11,
3105}
3106#[doc = "\n Popup window features.\n"]
3107#[repr(C)]
3108#[derive(Debug, Copy, Clone)]
3109pub struct _cef_popup_features_t {
3110    #[doc = "\n Size of this structure.\n"]
3111    pub size: usize,
3112    pub x: ::std::os::raw::c_int,
3113    pub xSet: ::std::os::raw::c_int,
3114    pub y: ::std::os::raw::c_int,
3115    pub ySet: ::std::os::raw::c_int,
3116    pub width: ::std::os::raw::c_int,
3117    pub widthSet: ::std::os::raw::c_int,
3118    pub height: ::std::os::raw::c_int,
3119    pub heightSet: ::std::os::raw::c_int,
3120    #[doc = "\n True (1) if browser interface elements should be hidden.\n"]
3121    pub isPopup: ::std::os::raw::c_int,
3122}
3123#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3124const _: () = {
3125    ["Size of _cef_popup_features_t"][::std::mem::size_of::<_cef_popup_features_t>() - 48usize];
3126    ["Alignment of _cef_popup_features_t"]
3127        [::std::mem::align_of::<_cef_popup_features_t>() - 8usize];
3128    ["Offset of field: _cef_popup_features_t::size"]
3129        [::std::mem::offset_of!(_cef_popup_features_t, size) - 0usize];
3130    ["Offset of field: _cef_popup_features_t::x"]
3131        [::std::mem::offset_of!(_cef_popup_features_t, x) - 8usize];
3132    ["Offset of field: _cef_popup_features_t::xSet"]
3133        [::std::mem::offset_of!(_cef_popup_features_t, xSet) - 12usize];
3134    ["Offset of field: _cef_popup_features_t::y"]
3135        [::std::mem::offset_of!(_cef_popup_features_t, y) - 16usize];
3136    ["Offset of field: _cef_popup_features_t::ySet"]
3137        [::std::mem::offset_of!(_cef_popup_features_t, ySet) - 20usize];
3138    ["Offset of field: _cef_popup_features_t::width"]
3139        [::std::mem::offset_of!(_cef_popup_features_t, width) - 24usize];
3140    ["Offset of field: _cef_popup_features_t::widthSet"]
3141        [::std::mem::offset_of!(_cef_popup_features_t, widthSet) - 28usize];
3142    ["Offset of field: _cef_popup_features_t::height"]
3143        [::std::mem::offset_of!(_cef_popup_features_t, height) - 32usize];
3144    ["Offset of field: _cef_popup_features_t::heightSet"]
3145        [::std::mem::offset_of!(_cef_popup_features_t, heightSet) - 36usize];
3146    ["Offset of field: _cef_popup_features_t::isPopup"]
3147        [::std::mem::offset_of!(_cef_popup_features_t, isPopup) - 40usize];
3148};
3149#[doc = "\n Popup window features.\n"]
3150pub type cef_popup_features_t = _cef_popup_features_t;
3151#[repr(u32)]
3152#[non_exhaustive]
3153#[doc = "\n DOM document types.\n"]
3154#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3155pub enum cef_dom_document_type_t {
3156    DOM_DOCUMENT_TYPE_UNKNOWN = 0,
3157    DOM_DOCUMENT_TYPE_HTML = 1,
3158    DOM_DOCUMENT_TYPE_XHTML = 2,
3159    DOM_DOCUMENT_TYPE_PLUGIN = 3,
3160    DOM_DOCUMENT_TYPE_NUM_VALUES = 4,
3161}
3162#[repr(u32)]
3163#[non_exhaustive]
3164#[doc = "\n DOM event category flags.\n"]
3165#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3166pub enum cef_dom_event_category_t {
3167    DOM_EVENT_CATEGORY_UNKNOWN = 0,
3168    DOM_EVENT_CATEGORY_UI = 1,
3169    DOM_EVENT_CATEGORY_MOUSE = 2,
3170    DOM_EVENT_CATEGORY_MUTATION = 4,
3171    DOM_EVENT_CATEGORY_KEYBOARD = 8,
3172    DOM_EVENT_CATEGORY_TEXT = 16,
3173    DOM_EVENT_CATEGORY_COMPOSITION = 32,
3174    DOM_EVENT_CATEGORY_DRAG = 64,
3175    DOM_EVENT_CATEGORY_CLIPBOARD = 128,
3176    DOM_EVENT_CATEGORY_MESSAGE = 256,
3177    DOM_EVENT_CATEGORY_WHEEL = 512,
3178    DOM_EVENT_CATEGORY_BEFORE_TEXT_INSERTED = 1024,
3179    DOM_EVENT_CATEGORY_OVERFLOW = 2048,
3180    DOM_EVENT_CATEGORY_PAGE_TRANSITION = 4096,
3181    DOM_EVENT_CATEGORY_POPSTATE = 8192,
3182    DOM_EVENT_CATEGORY_PROGRESS = 16384,
3183    DOM_EVENT_CATEGORY_XMLHTTPREQUEST_PROGRESS = 32768,
3184}
3185#[repr(u32)]
3186#[non_exhaustive]
3187#[doc = "\n DOM event processing phases.\n"]
3188#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3189pub enum cef_dom_event_phase_t {
3190    DOM_EVENT_PHASE_UNKNOWN = 0,
3191    DOM_EVENT_PHASE_CAPTURING = 1,
3192    DOM_EVENT_PHASE_AT_TARGET = 2,
3193    DOM_EVENT_PHASE_BUBBLING = 3,
3194    DOM_EVENT_PHASE_NUM_VALUES = 4,
3195}
3196#[repr(u32)]
3197#[non_exhaustive]
3198#[doc = "\n DOM node types.\n"]
3199#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3200pub enum cef_dom_node_type_t {
3201    DOM_NODE_TYPE_UNSUPPORTED = 0,
3202    DOM_NODE_TYPE_ELEMENT = 1,
3203    DOM_NODE_TYPE_ATTRIBUTE = 2,
3204    DOM_NODE_TYPE_TEXT = 3,
3205    DOM_NODE_TYPE_CDATA_SECTION = 4,
3206    DOM_NODE_TYPE_PROCESSING_INSTRUCTIONS = 5,
3207    DOM_NODE_TYPE_COMMENT = 6,
3208    DOM_NODE_TYPE_DOCUMENT = 7,
3209    DOM_NODE_TYPE_DOCUMENT_TYPE = 8,
3210    DOM_NODE_TYPE_DOCUMENT_FRAGMENT = 9,
3211    DOM_NODE_TYPE_NUM_VALUES = 10,
3212}
3213#[repr(u32)]
3214#[non_exhaustive]
3215#[doc = "\n DOM form control types. Should be kept in sync with Chromium's\n blink::mojom::FormControlType type.\n"]
3216#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3217pub enum cef_dom_form_control_type_t {
3218    DOM_FORM_CONTROL_TYPE_UNSUPPORTED = 0,
3219    DOM_FORM_CONTROL_TYPE_BUTTON_BUTTON = 1,
3220    DOM_FORM_CONTROL_TYPE_BUTTON_SUBMIT = 2,
3221    DOM_FORM_CONTROL_TYPE_BUTTON_RESET = 3,
3222    DOM_FORM_CONTROL_TYPE_BUTTON_POPOVER = 4,
3223    DOM_FORM_CONTROL_TYPE_FIELDSET = 5,
3224    DOM_FORM_CONTROL_TYPE_INPUT_BUTTON = 6,
3225    DOM_FORM_CONTROL_TYPE_INPUT_CHECKBOX = 7,
3226    DOM_FORM_CONTROL_TYPE_INPUT_COLOR = 8,
3227    DOM_FORM_CONTROL_TYPE_INPUT_DATE = 9,
3228    DOM_FORM_CONTROL_TYPE_INPUT_DATETIME_LOCAL = 10,
3229    DOM_FORM_CONTROL_TYPE_INPUT_EMAIL = 11,
3230    DOM_FORM_CONTROL_TYPE_INPUT_FILE = 12,
3231    DOM_FORM_CONTROL_TYPE_INPUT_HIDDEN = 13,
3232    DOM_FORM_CONTROL_TYPE_INPUT_IMAGE = 14,
3233    DOM_FORM_CONTROL_TYPE_INPUT_MONTH = 15,
3234    DOM_FORM_CONTROL_TYPE_INPUT_NUMBER = 16,
3235    DOM_FORM_CONTROL_TYPE_INPUT_PASSWORD = 17,
3236    DOM_FORM_CONTROL_TYPE_INPUT_RADIO = 18,
3237    DOM_FORM_CONTROL_TYPE_INPUT_RANGE = 19,
3238    DOM_FORM_CONTROL_TYPE_INPUT_RESET = 20,
3239    DOM_FORM_CONTROL_TYPE_INPUT_SEARCH = 21,
3240    DOM_FORM_CONTROL_TYPE_INPUT_SUBMIT = 22,
3241    DOM_FORM_CONTROL_TYPE_INPUT_TELEPHONE = 23,
3242    DOM_FORM_CONTROL_TYPE_INPUT_TEXT = 24,
3243    DOM_FORM_CONTROL_TYPE_INPUT_TIME = 25,
3244    DOM_FORM_CONTROL_TYPE_INPUT_URL = 26,
3245    DOM_FORM_CONTROL_TYPE_INPUT_WEEK = 27,
3246    DOM_FORM_CONTROL_TYPE_OUTPUT = 28,
3247    DOM_FORM_CONTROL_TYPE_SELECT_ONE = 29,
3248    DOM_FORM_CONTROL_TYPE_SELECT_MULTIPLE = 30,
3249    DOM_FORM_CONTROL_TYPE_TEXT_AREA = 31,
3250    DOM_FORM_CONTROL_TYPE_NUM_VALUES = 32,
3251}
3252#[repr(u32)]
3253#[non_exhaustive]
3254#[doc = "\n Supported file dialog modes.\n"]
3255#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3256pub enum cef_file_dialog_mode_t {
3257    #[doc = "\n Requires that the file exists before allowing the user to pick it.\n"]
3258    FILE_DIALOG_OPEN = 0,
3259    #[doc = "\n Like Open, but allows picking multiple files to open.\n"]
3260    FILE_DIALOG_OPEN_MULTIPLE = 1,
3261    #[doc = "\n Like Open, but selects a folder to open.\n"]
3262    FILE_DIALOG_OPEN_FOLDER = 2,
3263    #[doc = "\n Allows picking a nonexistent file, and prompts to overwrite if the file\n already exists.\n"]
3264    FILE_DIALOG_SAVE = 3,
3265    #[doc = "\n Allows picking a nonexistent file, and prompts to overwrite if the file\n already exists.\n"]
3266    FILE_DIALOG_NUM_VALUES = 4,
3267}
3268#[repr(u32)]
3269#[non_exhaustive]
3270#[doc = "\n Print job color mode values.\n"]
3271#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3272pub enum cef_color_model_t {
3273    COLOR_MODEL_UNKNOWN = 0,
3274    COLOR_MODEL_GRAY = 1,
3275    COLOR_MODEL_COLOR = 2,
3276    COLOR_MODEL_CMYK = 3,
3277    COLOR_MODEL_CMY = 4,
3278    COLOR_MODEL_KCMY = 5,
3279    COLOR_MODEL_CMY_K = 6,
3280    COLOR_MODEL_BLACK = 7,
3281    COLOR_MODEL_GRAYSCALE = 8,
3282    COLOR_MODEL_RGB = 9,
3283    COLOR_MODEL_RGB16 = 10,
3284    COLOR_MODEL_RGBA = 11,
3285    COLOR_MODEL_COLORMODE_COLOR = 12,
3286    COLOR_MODEL_COLORMODE_MONOCHROME = 13,
3287    COLOR_MODEL_HP_COLOR_COLOR = 14,
3288    COLOR_MODEL_HP_COLOR_BLACK = 15,
3289    COLOR_MODEL_PRINTOUTMODE_NORMAL = 16,
3290    COLOR_MODEL_PRINTOUTMODE_NORMAL_GRAY = 17,
3291    COLOR_MODEL_PROCESSCOLORMODEL_CMYK = 18,
3292    COLOR_MODEL_PROCESSCOLORMODEL_GREYSCALE = 19,
3293    COLOR_MODEL_PROCESSCOLORMODEL_RGB = 20,
3294    COLOR_MODEL_NUM_VALUES = 21,
3295}
3296#[repr(i32)]
3297#[non_exhaustive]
3298#[doc = "\n Print job duplex mode values.\n"]
3299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3300pub enum cef_duplex_mode_t {
3301    DUPLEX_MODE_UNKNOWN = -1,
3302    DUPLEX_MODE_SIMPLEX = 0,
3303    DUPLEX_MODE_LONG_EDGE = 1,
3304    DUPLEX_MODE_SHORT_EDGE = 2,
3305    DUPLEX_MODE_NUM_VALUES = 3,
3306}
3307#[repr(u32)]
3308#[non_exhaustive]
3309#[doc = "\n Cursor type values.\n"]
3310#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3311pub enum cef_cursor_type_t {
3312    CT_POINTER = 0,
3313    CT_CROSS = 1,
3314    CT_HAND = 2,
3315    CT_IBEAM = 3,
3316    CT_WAIT = 4,
3317    CT_HELP = 5,
3318    CT_EASTRESIZE = 6,
3319    CT_NORTHRESIZE = 7,
3320    CT_NORTHEASTRESIZE = 8,
3321    CT_NORTHWESTRESIZE = 9,
3322    CT_SOUTHRESIZE = 10,
3323    CT_SOUTHEASTRESIZE = 11,
3324    CT_SOUTHWESTRESIZE = 12,
3325    CT_WESTRESIZE = 13,
3326    CT_NORTHSOUTHRESIZE = 14,
3327    CT_EASTWESTRESIZE = 15,
3328    CT_NORTHEASTSOUTHWESTRESIZE = 16,
3329    CT_NORTHWESTSOUTHEASTRESIZE = 17,
3330    CT_COLUMNRESIZE = 18,
3331    CT_ROWRESIZE = 19,
3332    CT_MIDDLEPANNING = 20,
3333    CT_EASTPANNING = 21,
3334    CT_NORTHPANNING = 22,
3335    CT_NORTHEASTPANNING = 23,
3336    CT_NORTHWESTPANNING = 24,
3337    CT_SOUTHPANNING = 25,
3338    CT_SOUTHEASTPANNING = 26,
3339    CT_SOUTHWESTPANNING = 27,
3340    CT_WESTPANNING = 28,
3341    CT_MOVE = 29,
3342    CT_VERTICALTEXT = 30,
3343    CT_CELL = 31,
3344    CT_CONTEXTMENU = 32,
3345    CT_ALIAS = 33,
3346    CT_PROGRESS = 34,
3347    CT_NODROP = 35,
3348    CT_COPY = 36,
3349    CT_NONE = 37,
3350    CT_NOTALLOWED = 38,
3351    CT_ZOOMIN = 39,
3352    CT_ZOOMOUT = 40,
3353    CT_GRAB = 41,
3354    CT_GRABBING = 42,
3355    CT_MIDDLE_PANNING_VERTICAL = 43,
3356    CT_MIDDLE_PANNING_HORIZONTAL = 44,
3357    CT_CUSTOM = 45,
3358    CT_DND_NONE = 46,
3359    CT_DND_MOVE = 47,
3360    CT_DND_COPY = 48,
3361    CT_DND_LINK = 49,
3362    CT_NUM_VALUES = 50,
3363}
3364#[doc = "\n Structure representing cursor information. |buffer| will be\n |size.width|*|size.height|*4 bytes in size and represents a BGRA image with\n an upper-left origin.\n"]
3365#[repr(C)]
3366#[derive(Debug, Copy, Clone)]
3367pub struct _cef_cursor_info_t {
3368    pub hotspot: cef_point_t,
3369    pub image_scale_factor: f32,
3370    pub buffer: *mut ::std::os::raw::c_void,
3371    pub size: cef_size_t,
3372}
3373#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3374const _: () = {
3375    ["Size of _cef_cursor_info_t"][::std::mem::size_of::<_cef_cursor_info_t>() - 32usize];
3376    ["Alignment of _cef_cursor_info_t"][::std::mem::align_of::<_cef_cursor_info_t>() - 8usize];
3377    ["Offset of field: _cef_cursor_info_t::hotspot"]
3378        [::std::mem::offset_of!(_cef_cursor_info_t, hotspot) - 0usize];
3379    ["Offset of field: _cef_cursor_info_t::image_scale_factor"]
3380        [::std::mem::offset_of!(_cef_cursor_info_t, image_scale_factor) - 8usize];
3381    ["Offset of field: _cef_cursor_info_t::buffer"]
3382        [::std::mem::offset_of!(_cef_cursor_info_t, buffer) - 16usize];
3383    ["Offset of field: _cef_cursor_info_t::size"]
3384        [::std::mem::offset_of!(_cef_cursor_info_t, size) - 24usize];
3385};
3386#[doc = "\n Structure representing cursor information. |buffer| will be\n |size.width|*|size.height|*4 bytes in size and represents a BGRA image with\n an upper-left origin.\n"]
3387pub type cef_cursor_info_t = _cef_cursor_info_t;
3388#[repr(u32)]
3389#[non_exhaustive]
3390#[doc = "\n URI unescape rules passed to CefURIDecode().\n"]
3391#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3392pub enum cef_uri_unescape_rule_t {
3393    #[doc = "\n Don't unescape anything at all.\n"]
3394    UU_NONE = 0,
3395    #[doc = "\n Don't unescape anything special, but all normal unescaping will happen.\n This is a placeholder and can't be combined with other flags (since it's\n just the absence of them). All other unescape rules imply \"normal\" in\n addition to their special meaning. Things like escaped letters, digits,\n and most symbols will get unescaped with this mode.\n"]
3396    UU_NORMAL = 1,
3397    #[doc = "\n Convert %20 to spaces. In some places where we're showing URLs, we may\n want this. In places where the URL may be copied and pasted out, then\n you wouldn't want this since it might not be interpreted in one piece\n by other applications.\n"]
3398    UU_SPACES = 2,
3399    #[doc = "\n Unescapes '/' and '\\\\'. If these characters were unescaped, the resulting\n URL won't be the same as the source one. Moreover, they are dangerous to\n unescape in strings that will be used as file paths or names. This value\n should only be used when slashes don't have special meaning, like data\n URLs.\n"]
3400    UU_PATH_SEPARATORS = 4,
3401    #[doc = "\n Unescapes various characters that will change the meaning of URLs,\n including '%', '+', '&', '#'. Does not unescape path separators.\n If these characters were unescaped, the resulting URL won't be the same\n as the source one. This flag is used when generating final output like\n filenames for URLs where we won't be interpreting as a URL and want to do\n as much unescaping as possible.\n"]
3402    UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS = 8,
3403    #[doc = "\n URL queries use \"+\" for space. This flag controls that replacement.\n"]
3404    UU_REPLACE_PLUS_WITH_SPACE = 16,
3405}
3406#[repr(u32)]
3407#[non_exhaustive]
3408#[doc = "\n Options that can be passed to CefParseJSON.\n"]
3409#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3410pub enum cef_json_parser_options_t {
3411    #[doc = "\n Parses the input strictly according to RFC 4627. See comments in\n Chromium's base/json/json_reader.h file for known limitations/\n deviations from the RFC.\n"]
3412    JSON_PARSER_RFC = 0,
3413    #[doc = "\n Allows commas to exist after the last element in structures.\n"]
3414    JSON_PARSER_ALLOW_TRAILING_COMMAS = 1,
3415}
3416#[repr(u32)]
3417#[non_exhaustive]
3418#[doc = "\n Options that can be passed to CefWriteJSON.\n"]
3419#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3420pub enum cef_json_writer_options_t {
3421    #[doc = "\n Default behavior.\n"]
3422    JSON_WRITER_DEFAULT = 0,
3423    #[doc = "\n This option instructs the writer that if a Binary value is encountered,\n the value (and key if within a dictionary) will be omitted from the\n output, and success will be returned. Otherwise, if a binary value is\n encountered, failure will be returned.\n"]
3424    JSON_WRITER_OMIT_BINARY_VALUES = 1,
3425    #[doc = "\n This option instructs the writer to write doubles that have no fractional\n part as a normal integer (i.e., without using exponential notation\n or appending a '.0') as long as the value is within the range of a\n 64-bit int.\n"]
3426    JSON_WRITER_OMIT_DOUBLE_TYPE_PRESERVATION = 2,
3427    #[doc = "\n Return a slightly nicer formatted json string (pads with whitespace to\n help with readability).\n"]
3428    JSON_WRITER_PRETTY_PRINT = 4,
3429}
3430#[repr(u32)]
3431#[non_exhaustive]
3432#[doc = "\n Margin type for PDF printing.\n"]
3433#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3434pub enum cef_pdf_print_margin_type_t {
3435    #[doc = "\n Default margins of 1cm (~0.4 inches).\n"]
3436    PDF_PRINT_MARGIN_DEFAULT = 0,
3437    #[doc = "\n No margins.\n"]
3438    PDF_PRINT_MARGIN_NONE = 1,
3439    #[doc = "\n Custom margins using the |margin_*| values from cef_pdf_print_settings_t.\n"]
3440    PDF_PRINT_MARGIN_CUSTOM = 2,
3441}
3442#[doc = "\n Structure representing PDF print settings. These values match the parameters\n supported by the DevTools Page.printToPDF function. See\n https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF\n"]
3443#[repr(C)]
3444#[derive(Debug, Copy, Clone)]
3445pub struct _cef_pdf_print_settings_t {
3446    #[doc = "\n Size of this structure.\n"]
3447    pub size: usize,
3448    #[doc = "\n Set to true (1) for landscape mode or false (0) for portrait mode.\n"]
3449    pub landscape: ::std::os::raw::c_int,
3450    #[doc = "\n Set to true (1) to print background graphics.\n"]
3451    pub print_background: ::std::os::raw::c_int,
3452    #[doc = "\n The percentage to scale the PDF by before printing (e.g. .5 is 50%).\n If this value is less than or equal to zero the default value of 1.0\n will be used.\n"]
3453    pub scale: f64,
3454    #[doc = "\n Output paper size in inches. If either of these values is less than or\n equal to zero then the default paper size (letter, 8.5 x 11 inches) will\n be used.\n"]
3455    pub paper_width: f64,
3456    pub paper_height: f64,
3457    #[doc = "\n Set to true (1) to prefer page size as defined by css. Defaults to false\n (0), in which case the content will be scaled to fit the paper size.\n"]
3458    pub prefer_css_page_size: ::std::os::raw::c_int,
3459    #[doc = "\n Margin type.\n"]
3460    pub margin_type: cef_pdf_print_margin_type_t,
3461    #[doc = "\n Margins in inches. Only used if |margin_type| is set to\n PDF_PRINT_MARGIN_CUSTOM.\n"]
3462    pub margin_top: f64,
3463    pub margin_right: f64,
3464    pub margin_bottom: f64,
3465    pub margin_left: f64,
3466    #[doc = "\n Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are printed\n in the document order, not in the order specified, and no more than once.\n Defaults to empty string, which implies the entire document is printed.\n The page numbers are quietly capped to actual page count of the document,\n and ranges beyond the end of the document are ignored. If this results in\n no pages to print, an error is reported. It is an error to specify a range\n with start greater than end.\n"]
3467    pub page_ranges: cef_string_t,
3468    #[doc = "\n Set to true (1) to display the header and/or footer. Modify\n |header_template| and/or |footer_template| to customize the display.\n"]
3469    pub display_header_footer: ::std::os::raw::c_int,
3470    #[doc = "\n HTML template for the print header. Only displayed if\n |display_header_footer| is true (1). Should be valid HTML markup with\n the following classes used to inject printing values into them:\n\n - date: formatted print date\n - title: document title\n - url: document location\n - pageNumber: current page number\n - totalPages: total pages in the document\n\n For example, \"<span class=title></span>\" would generate a span containing\n the title.\n"]
3471    pub header_template: cef_string_t,
3472    #[doc = "\n HTML template for the print footer. Only displayed if\n |display_header_footer| is true (1). Uses the same format as\n |header_template|.\n"]
3473    pub footer_template: cef_string_t,
3474    #[doc = "\n Set to true (1) to generate tagged (accessible) PDF.\n"]
3475    pub generate_tagged_pdf: ::std::os::raw::c_int,
3476    #[doc = "\n Set to true (1) to generate a document outline.\n"]
3477    pub generate_document_outline: ::std::os::raw::c_int,
3478}
3479#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3480const _: () = {
3481    ["Size of _cef_pdf_print_settings_t"]
3482        [::std::mem::size_of::<_cef_pdf_print_settings_t>() - 168usize];
3483    ["Alignment of _cef_pdf_print_settings_t"]
3484        [::std::mem::align_of::<_cef_pdf_print_settings_t>() - 8usize];
3485    ["Offset of field: _cef_pdf_print_settings_t::size"]
3486        [::std::mem::offset_of!(_cef_pdf_print_settings_t, size) - 0usize];
3487    ["Offset of field: _cef_pdf_print_settings_t::landscape"]
3488        [::std::mem::offset_of!(_cef_pdf_print_settings_t, landscape) - 8usize];
3489    ["Offset of field: _cef_pdf_print_settings_t::print_background"]
3490        [::std::mem::offset_of!(_cef_pdf_print_settings_t, print_background) - 12usize];
3491    ["Offset of field: _cef_pdf_print_settings_t::scale"]
3492        [::std::mem::offset_of!(_cef_pdf_print_settings_t, scale) - 16usize];
3493    ["Offset of field: _cef_pdf_print_settings_t::paper_width"]
3494        [::std::mem::offset_of!(_cef_pdf_print_settings_t, paper_width) - 24usize];
3495    ["Offset of field: _cef_pdf_print_settings_t::paper_height"]
3496        [::std::mem::offset_of!(_cef_pdf_print_settings_t, paper_height) - 32usize];
3497    ["Offset of field: _cef_pdf_print_settings_t::prefer_css_page_size"]
3498        [::std::mem::offset_of!(_cef_pdf_print_settings_t, prefer_css_page_size) - 40usize];
3499    ["Offset of field: _cef_pdf_print_settings_t::margin_type"]
3500        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_type) - 44usize];
3501    ["Offset of field: _cef_pdf_print_settings_t::margin_top"]
3502        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_top) - 48usize];
3503    ["Offset of field: _cef_pdf_print_settings_t::margin_right"]
3504        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_right) - 56usize];
3505    ["Offset of field: _cef_pdf_print_settings_t::margin_bottom"]
3506        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_bottom) - 64usize];
3507    ["Offset of field: _cef_pdf_print_settings_t::margin_left"]
3508        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_left) - 72usize];
3509    ["Offset of field: _cef_pdf_print_settings_t::page_ranges"]
3510        [::std::mem::offset_of!(_cef_pdf_print_settings_t, page_ranges) - 80usize];
3511    ["Offset of field: _cef_pdf_print_settings_t::display_header_footer"]
3512        [::std::mem::offset_of!(_cef_pdf_print_settings_t, display_header_footer) - 104usize];
3513    ["Offset of field: _cef_pdf_print_settings_t::header_template"]
3514        [::std::mem::offset_of!(_cef_pdf_print_settings_t, header_template) - 112usize];
3515    ["Offset of field: _cef_pdf_print_settings_t::footer_template"]
3516        [::std::mem::offset_of!(_cef_pdf_print_settings_t, footer_template) - 136usize];
3517    ["Offset of field: _cef_pdf_print_settings_t::generate_tagged_pdf"]
3518        [::std::mem::offset_of!(_cef_pdf_print_settings_t, generate_tagged_pdf) - 160usize];
3519    ["Offset of field: _cef_pdf_print_settings_t::generate_document_outline"]
3520        [::std::mem::offset_of!(_cef_pdf_print_settings_t, generate_document_outline) - 164usize];
3521};
3522#[doc = "\n Structure representing PDF print settings. These values match the parameters\n supported by the DevTools Page.printToPDF function. See\n https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF\n"]
3523pub type cef_pdf_print_settings_t = _cef_pdf_print_settings_t;
3524#[repr(u32)]
3525#[non_exhaustive]
3526#[doc = "\n Supported UI scale factors for the platform. SCALE_FACTOR_NONE is used for\n density independent resources such as string, html/js files or an image that\n can be used for any scale factors (such as wallpapers).\n"]
3527#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3528pub enum cef_scale_factor_t {
3529    SCALE_FACTOR_NONE = 0,
3530    SCALE_FACTOR_100P = 1,
3531    SCALE_FACTOR_125P = 2,
3532    SCALE_FACTOR_133P = 3,
3533    SCALE_FACTOR_140P = 4,
3534    SCALE_FACTOR_150P = 5,
3535    SCALE_FACTOR_180P = 6,
3536    SCALE_FACTOR_200P = 7,
3537    SCALE_FACTOR_250P = 8,
3538    SCALE_FACTOR_300P = 9,
3539    SCALE_FACTOR_NUM_VALUES = 10,
3540}
3541impl cef_referrer_policy_t {
3542    pub const REFERRER_POLICY_DEFAULT: cef_referrer_policy_t =
3543        cef_referrer_policy_t::REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
3544}
3545#[repr(u32)]
3546#[non_exhaustive]
3547#[doc = "\n Policy for how the Referrer HTTP header value will be sent during\n navigation. If the `--no-referrers` command-line flag is specified then the\n policy value will be ignored and the Referrer value will never be sent. Must\n be kept synchronized with net::URLRequest::ReferrerPolicy from Chromium.\n"]
3548#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3549pub enum cef_referrer_policy_t {
3550    #[doc = "\n Clear the referrer header if the header value is HTTPS but the request\n destination is HTTP. This is the default behavior.\n"]
3551    REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 0,
3552    #[doc = "\n A slight variant on CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE:\n If the request destination is HTTP, an HTTPS referrer will be cleared. If\n the request's destination is cross-origin with the referrer (but does not\n downgrade), the referrer's granularity will be stripped down to an origin\n rather than a full URL. Same-origin requests will send the full referrer.\n"]
3553    REFERRER_POLICY_REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN = 1,
3554    #[doc = "\n Strip the referrer down to an origin when the origin of the referrer is\n different from the destination's origin.\n"]
3555    REFERRER_POLICY_ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN = 2,
3556    #[doc = "\n Never change the referrer.\n"]
3557    REFERRER_POLICY_NEVER_CLEAR_REFERRER = 3,
3558    #[doc = "\n Strip the referrer down to the origin regardless of the redirect location.\n"]
3559    REFERRER_POLICY_ORIGIN = 4,
3560    #[doc = "\n Clear the referrer when the request's referrer is cross-origin with the\n request's destination.\n"]
3561    REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN = 5,
3562    #[doc = "\n Strip the referrer down to the origin, but clear it entirely if the\n referrer value is HTTPS and the destination is HTTP.\n"]
3563    REFERRER_POLICY_ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 6,
3564    #[doc = "\n Always clear the referrer regardless of the request destination.\n"]
3565    REFERRER_POLICY_NO_REFERRER = 7,
3566    #[doc = " Always the last value in this enumeration."]
3567    REFERRER_POLICY_NUM_VALUES = 8,
3568}
3569#[repr(u32)]
3570#[non_exhaustive]
3571#[doc = "\n Return values for CefResponseFilter::Filter().\n"]
3572#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3573pub enum cef_response_filter_status_t {
3574    #[doc = "\n Some or all of the pre-filter data was read successfully but more data is\n needed in order to continue filtering (filtered output is pending).\n"]
3575    RESPONSE_FILTER_NEED_MORE_DATA = 0,
3576    #[doc = "\n Some or all of the pre-filter data was read successfully and all available\n filtered output has been written.\n"]
3577    RESPONSE_FILTER_DONE = 1,
3578    #[doc = "\n An error occurred during filtering.\n"]
3579    RESPONSE_FILTER_ERROR = 2,
3580}
3581#[repr(u32)]
3582#[non_exhaustive]
3583#[doc = "\n Describes how to interpret the alpha component of a pixel.\n"]
3584#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3585pub enum cef_alpha_type_t {
3586    #[doc = "\n No transparency. The alpha component is ignored.\n"]
3587    CEF_ALPHA_TYPE_OPAQUE = 0,
3588    #[doc = "\n Transparency with pre-multiplied alpha component.\n"]
3589    CEF_ALPHA_TYPE_PREMULTIPLIED = 1,
3590    #[doc = "\n Transparency with post-multiplied alpha component.\n"]
3591    CEF_ALPHA_TYPE_POSTMULTIPLIED = 2,
3592}
3593#[repr(u32)]
3594#[non_exhaustive]
3595#[doc = "\n Text style types. Should be kepy in sync with gfx::TextStyle.\n"]
3596#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3597pub enum cef_text_style_t {
3598    CEF_TEXT_STYLE_BOLD = 0,
3599    CEF_TEXT_STYLE_ITALIC = 1,
3600    CEF_TEXT_STYLE_STRIKE = 2,
3601    CEF_TEXT_STYLE_DIAGONAL_STRIKE = 3,
3602    CEF_TEXT_STYLE_UNDERLINE = 4,
3603    CEF_TEXT_STYLE_NUM_VALUES = 5,
3604}
3605#[repr(u32)]
3606#[non_exhaustive]
3607#[doc = "\n Specifies where along the axis the CefBoxLayout child views should be laid\n out. Should be kept in sync with Chromium's views::LayoutAlignment type.\n"]
3608#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3609pub enum cef_axis_alignment_t {
3610    #[doc = " Child views will be left/top-aligned."]
3611    CEF_AXIS_ALIGNMENT_START = 0,
3612    #[doc = " Child views will be center-aligned."]
3613    CEF_AXIS_ALIGNMENT_CENTER = 1,
3614    #[doc = " Child views will be right/bottom-aligned."]
3615    CEF_AXIS_ALIGNMENT_END = 2,
3616    #[doc = " Child views will be stretched to fit."]
3617    CEF_AXIS_ALIGNMENT_STRETCH = 3,
3618    #[doc = " Child views will be stretched to fit."]
3619    CEF_AXIS_ALIGNMENT_NUM_VALUES = 4,
3620}
3621#[doc = "\n Settings used when initializing a CefBoxLayout.\n"]
3622#[repr(C)]
3623#[derive(Debug, Copy, Clone)]
3624pub struct _cef_box_layout_settings_t {
3625    #[doc = "\n Size of this structure.\n"]
3626    pub size: usize,
3627    #[doc = "\n If true (1) the layout will be horizontal, otherwise the layout will be\n vertical.\n"]
3628    pub horizontal: ::std::os::raw::c_int,
3629    #[doc = "\n Adds additional horizontal space between the child view area and the host\n view border.\n"]
3630    pub inside_border_horizontal_spacing: ::std::os::raw::c_int,
3631    #[doc = "\n Adds additional vertical space between the child view area and the host\n view border.\n"]
3632    pub inside_border_vertical_spacing: ::std::os::raw::c_int,
3633    #[doc = "\n Adds additional space around the child view area.\n"]
3634    pub inside_border_insets: cef_insets_t,
3635    #[doc = "\n Adds additional space between child views.\n"]
3636    pub between_child_spacing: ::std::os::raw::c_int,
3637    #[doc = "\n Specifies where along the main axis the child views should be laid out.\n"]
3638    pub main_axis_alignment: cef_axis_alignment_t,
3639    #[doc = "\n Specifies where along the cross axis the child views should be laid out.\n"]
3640    pub cross_axis_alignment: cef_axis_alignment_t,
3641    #[doc = "\n Minimum cross axis size.\n"]
3642    pub minimum_cross_axis_size: ::std::os::raw::c_int,
3643    #[doc = "\n Default flex for views when none is specified via CefBoxLayout methods.\n Using the preferred size as the basis, free space along the main axis is\n distributed to views in the ratio of their flex weights. Similarly, if the\n views will overflow the parent, space is subtracted in these ratios. A\n flex of 0 means this view is not resized. Flex values must not be\n negative.\n"]
3644    pub default_flex: ::std::os::raw::c_int,
3645}
3646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3647const _: () = {
3648    ["Size of _cef_box_layout_settings_t"]
3649        [::std::mem::size_of::<_cef_box_layout_settings_t>() - 56usize];
3650    ["Alignment of _cef_box_layout_settings_t"]
3651        [::std::mem::align_of::<_cef_box_layout_settings_t>() - 8usize];
3652    ["Offset of field: _cef_box_layout_settings_t::size"]
3653        [::std::mem::offset_of!(_cef_box_layout_settings_t, size) - 0usize];
3654    ["Offset of field: _cef_box_layout_settings_t::horizontal"]
3655        [::std::mem::offset_of!(_cef_box_layout_settings_t, horizontal) - 8usize];
3656    ["Offset of field: _cef_box_layout_settings_t::inside_border_horizontal_spacing"][::std::mem::offset_of!(
3657        _cef_box_layout_settings_t,
3658        inside_border_horizontal_spacing
3659    ) - 12usize];
3660    ["Offset of field: _cef_box_layout_settings_t::inside_border_vertical_spacing"][::std::mem::offset_of!(
3661        _cef_box_layout_settings_t,
3662        inside_border_vertical_spacing
3663    ) - 16usize];
3664    ["Offset of field: _cef_box_layout_settings_t::inside_border_insets"]
3665        [::std::mem::offset_of!(_cef_box_layout_settings_t, inside_border_insets) - 20usize];
3666    ["Offset of field: _cef_box_layout_settings_t::between_child_spacing"]
3667        [::std::mem::offset_of!(_cef_box_layout_settings_t, between_child_spacing) - 36usize];
3668    ["Offset of field: _cef_box_layout_settings_t::main_axis_alignment"]
3669        [::std::mem::offset_of!(_cef_box_layout_settings_t, main_axis_alignment) - 40usize];
3670    ["Offset of field: _cef_box_layout_settings_t::cross_axis_alignment"]
3671        [::std::mem::offset_of!(_cef_box_layout_settings_t, cross_axis_alignment) - 44usize];
3672    ["Offset of field: _cef_box_layout_settings_t::minimum_cross_axis_size"]
3673        [::std::mem::offset_of!(_cef_box_layout_settings_t, minimum_cross_axis_size) - 48usize];
3674    ["Offset of field: _cef_box_layout_settings_t::default_flex"]
3675        [::std::mem::offset_of!(_cef_box_layout_settings_t, default_flex) - 52usize];
3676};
3677#[doc = "\n Settings used when initializing a CefBoxLayout.\n"]
3678pub type cef_box_layout_settings_t = _cef_box_layout_settings_t;
3679#[repr(u32)]
3680#[non_exhaustive]
3681#[doc = "\n Specifies the button display state.\n"]
3682#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3683pub enum cef_button_state_t {
3684    CEF_BUTTON_STATE_NORMAL = 0,
3685    CEF_BUTTON_STATE_HOVERED = 1,
3686    CEF_BUTTON_STATE_PRESSED = 2,
3687    CEF_BUTTON_STATE_DISABLED = 3,
3688    CEF_BUTTON_STATE_NUM_VALUES = 4,
3689}
3690#[repr(u32)]
3691#[non_exhaustive]
3692#[doc = "\n Specifies the horizontal text alignment mode.\n"]
3693#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3694pub enum cef_horizontal_alignment_t {
3695    #[doc = "\n Align the text's left edge with that of its display area.\n"]
3696    CEF_HORIZONTAL_ALIGNMENT_LEFT = 0,
3697    #[doc = "\n Align the text's center with that of its display area.\n"]
3698    CEF_HORIZONTAL_ALIGNMENT_CENTER = 1,
3699    #[doc = "\n Align the text's right edge with that of its display area.\n"]
3700    CEF_HORIZONTAL_ALIGNMENT_RIGHT = 2,
3701}
3702#[repr(u32)]
3703#[non_exhaustive]
3704#[doc = "\n Specifies how a menu will be anchored for non-RTL languages. The opposite\n position will be used for RTL languages.\n"]
3705#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3706pub enum cef_menu_anchor_position_t {
3707    CEF_MENU_ANCHOR_TOPLEFT = 0,
3708    CEF_MENU_ANCHOR_TOPRIGHT = 1,
3709    CEF_MENU_ANCHOR_BOTTOMCENTER = 2,
3710    CEF_MENU_ANCHOR_NUM_VALUES = 3,
3711}
3712#[repr(u32)]
3713#[non_exhaustive]
3714#[doc = "\n Supported color types for menu items.\n"]
3715#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3716pub enum cef_menu_color_type_t {
3717    CEF_MENU_COLOR_TEXT = 0,
3718    CEF_MENU_COLOR_TEXT_HOVERED = 1,
3719    CEF_MENU_COLOR_TEXT_ACCELERATOR = 2,
3720    CEF_MENU_COLOR_TEXT_ACCELERATOR_HOVERED = 3,
3721    CEF_MENU_COLOR_BACKGROUND = 4,
3722    CEF_MENU_COLOR_BACKGROUND_HOVERED = 5,
3723    CEF_MENU_COLOR_NUM_VALUES = 6,
3724}
3725#[repr(u32)]
3726#[non_exhaustive]
3727#[doc = " Supported SSL version values. See net/ssl/ssl_connection_status_flags.h\n for more information."]
3728#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3729pub enum cef_ssl_version_t {
3730    #[doc = " Unknown SSL version."]
3731    SSL_CONNECTION_VERSION_UNKNOWN = 0,
3732    #[doc = " Unknown SSL version."]
3733    SSL_CONNECTION_VERSION_SSL2 = 1,
3734    #[doc = " Unknown SSL version."]
3735    SSL_CONNECTION_VERSION_SSL3 = 2,
3736    #[doc = " Unknown SSL version."]
3737    SSL_CONNECTION_VERSION_TLS1 = 3,
3738    #[doc = " Unknown SSL version."]
3739    SSL_CONNECTION_VERSION_TLS1_1 = 4,
3740    #[doc = " Unknown SSL version."]
3741    SSL_CONNECTION_VERSION_TLS1_2 = 5,
3742    #[doc = " Unknown SSL version."]
3743    SSL_CONNECTION_VERSION_TLS1_3 = 6,
3744    #[doc = " Unknown SSL version."]
3745    SSL_CONNECTION_VERSION_QUIC = 7,
3746    #[doc = " Unknown SSL version."]
3747    SSL_CONNECTION_VERSION_NUM_VALUES = 8,
3748}
3749#[repr(u32)]
3750#[non_exhaustive]
3751#[doc = " Supported SSL content status flags. See content/public/common/ssl_status.h\n for more information."]
3752#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3753pub enum cef_ssl_content_status_t {
3754    SSL_CONTENT_NORMAL_CONTENT = 0,
3755    SSL_CONTENT_DISPLAYED_INSECURE_CONTENT = 1,
3756    SSL_CONTENT_RAN_INSECURE_CONTENT = 2,
3757}
3758#[repr(u32)]
3759#[non_exhaustive]
3760#[doc = " Configuration options for registering a custom scheme.\n These values are used when calling AddCustomScheme."]
3761#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3762pub enum cef_scheme_options_t {
3763    CEF_SCHEME_OPTION_NONE = 0,
3764    #[doc = " For non-standard scheme URLs only the \"scheme:\" component is parsed and\n canonicalized. The remainder of the URL will be passed to the handler as-\n is. For example, \"scheme:///some%20text\" will remain the same.\n Non-standard scheme URLs cannot be used as a target for form submission.\n"]
3765    CEF_SCHEME_OPTION_STANDARD = 1,
3766    #[doc = "\n If CEF_SCHEME_OPTION_LOCAL is set the scheme will be treated with the same\n security rules as those applied to \"file\" URLs. Normal pages cannot link\n to or access local URLs. Also, by default, local URLs can only perform\n XMLHttpRequest calls to the same URL (origin + path) that originated the\n request. To allow XMLHttpRequest calls from a local URL to other URLs with\n the same origin set the CefSettings.file_access_from_file_urls_allowed\n value to true (1). To allow XMLHttpRequest calls from a local URL to all\n origins set the CefSettings.universal_access_from_file_urls_allowed value\n to true (1).\n"]
3767    CEF_SCHEME_OPTION_LOCAL = 2,
3768    #[doc = "\n If CEF_SCHEME_OPTION_DISPLAY_ISOLATED is set the scheme can only be\n displayed from other content hosted with the same scheme. For example,\n pages in other origins cannot create iframes or hyperlinks to URLs with\n the scheme. For schemes that must be accessible from other schemes don't\n set this, set CEF_SCHEME_OPTION_CORS_ENABLED, and use CORS\n \"Access-Control-Allow-Origin\" headers to further restrict access.\n"]
3769    CEF_SCHEME_OPTION_DISPLAY_ISOLATED = 4,
3770    #[doc = "\n If CEF_SCHEME_OPTION_SECURE is set the scheme will be treated with the\n same security rules as those applied to \"https\" URLs. For example, loading\n this scheme from other secure schemes will not trigger mixed content\n warnings.\n"]
3771    CEF_SCHEME_OPTION_SECURE = 8,
3772    #[doc = "\n If CEF_SCHEME_OPTION_CORS_ENABLED is set the scheme can be sent CORS\n requests. This value should be set in most cases where\n CEF_SCHEME_OPTION_STANDARD is set.\n"]
3773    CEF_SCHEME_OPTION_CORS_ENABLED = 16,
3774    #[doc = "\n If CEF_SCHEME_OPTION_CSP_BYPASSING is set the scheme can bypass Content-\n Security-Policy (CSP) checks. This value should not be set in most cases\n where CEF_SCHEME_OPTION_STANDARD is set.\n"]
3775    CEF_SCHEME_OPTION_CSP_BYPASSING = 32,
3776    #[doc = "\n If CEF_SCHEME_OPTION_FETCH_ENABLED is set the scheme can perform Fetch API\n requests.\n"]
3777    CEF_SCHEME_OPTION_FETCH_ENABLED = 64,
3778}
3779#[doc = "\n Structure representing a range.\n"]
3780#[repr(C)]
3781#[derive(Debug, Copy, Clone)]
3782pub struct _cef_range_t {
3783    pub from: u32,
3784    pub to: u32,
3785}
3786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3787const _: () = {
3788    ["Size of _cef_range_t"][::std::mem::size_of::<_cef_range_t>() - 8usize];
3789    ["Alignment of _cef_range_t"][::std::mem::align_of::<_cef_range_t>() - 4usize];
3790    ["Offset of field: _cef_range_t::from"][::std::mem::offset_of!(_cef_range_t, from) - 0usize];
3791    ["Offset of field: _cef_range_t::to"][::std::mem::offset_of!(_cef_range_t, to) - 4usize];
3792};
3793#[doc = "\n Structure representing a range.\n"]
3794pub type cef_range_t = _cef_range_t;
3795#[repr(u32)]
3796#[non_exhaustive]
3797#[doc = "\n Composition underline style.\n"]
3798#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3799pub enum cef_composition_underline_style_t {
3800    CEF_CUS_SOLID = 0,
3801    CEF_CUS_DOT = 1,
3802    CEF_CUS_DASH = 2,
3803    CEF_CUS_NONE = 3,
3804    CEF_CUS_NUM_VALUES = 4,
3805}
3806#[doc = "\n Structure representing IME composition underline information. This is a thin\n wrapper around Blink's WebCompositionUnderline class and should be kept in\n sync with that.\n"]
3807#[repr(C)]
3808#[derive(Debug, Copy, Clone)]
3809pub struct _cef_composition_underline_t {
3810    #[doc = "\n Size of this structure.\n"]
3811    pub size: usize,
3812    #[doc = "\n Underline character range.\n"]
3813    pub range: cef_range_t,
3814    #[doc = "\n Text color.\n"]
3815    pub color: cef_color_t,
3816    #[doc = "\n Background color.\n"]
3817    pub background_color: cef_color_t,
3818    #[doc = "\n Set to true (1) for thick underline.\n"]
3819    pub thick: ::std::os::raw::c_int,
3820    #[doc = "\n Style.\n"]
3821    pub style: cef_composition_underline_style_t,
3822}
3823#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3824const _: () = {
3825    ["Size of _cef_composition_underline_t"]
3826        [::std::mem::size_of::<_cef_composition_underline_t>() - 32usize];
3827    ["Alignment of _cef_composition_underline_t"]
3828        [::std::mem::align_of::<_cef_composition_underline_t>() - 8usize];
3829    ["Offset of field: _cef_composition_underline_t::size"]
3830        [::std::mem::offset_of!(_cef_composition_underline_t, size) - 0usize];
3831    ["Offset of field: _cef_composition_underline_t::range"]
3832        [::std::mem::offset_of!(_cef_composition_underline_t, range) - 8usize];
3833    ["Offset of field: _cef_composition_underline_t::color"]
3834        [::std::mem::offset_of!(_cef_composition_underline_t, color) - 16usize];
3835    ["Offset of field: _cef_composition_underline_t::background_color"]
3836        [::std::mem::offset_of!(_cef_composition_underline_t, background_color) - 20usize];
3837    ["Offset of field: _cef_composition_underline_t::thick"]
3838        [::std::mem::offset_of!(_cef_composition_underline_t, thick) - 24usize];
3839    ["Offset of field: _cef_composition_underline_t::style"]
3840        [::std::mem::offset_of!(_cef_composition_underline_t, style) - 28usize];
3841};
3842#[doc = "\n Structure representing IME composition underline information. This is a thin\n wrapper around Blink's WebCompositionUnderline class and should be kept in\n sync with that.\n"]
3843pub type cef_composition_underline_t = _cef_composition_underline_t;
3844#[repr(u32)]
3845#[non_exhaustive]
3846#[doc = "\n Enumerates the various representations of the ordering of audio channels.\n Must be kept synchronized with media::ChannelLayout from Chromium.\n See media\\base\\channel_layout.h\n"]
3847#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3848pub enum cef_channel_layout_t {
3849    CEF_CHANNEL_LAYOUT_NONE = 0,
3850    CEF_CHANNEL_LAYOUT_UNSUPPORTED = 1,
3851    #[doc = " Front C"]
3852    CEF_CHANNEL_LAYOUT_MONO = 2,
3853    #[doc = " Front L, Front R"]
3854    CEF_CHANNEL_LAYOUT_STEREO = 3,
3855    #[doc = " Front L, Front R, Back C"]
3856    CEF_CHANNEL_LAYOUT_2_1 = 4,
3857    #[doc = " Front L, Front R, Front C"]
3858    CEF_CHANNEL_LAYOUT_SURROUND = 5,
3859    #[doc = " Front L, Front R, Front C, Back C"]
3860    CEF_CHANNEL_LAYOUT_4_0 = 6,
3861    #[doc = " Front L, Front R, Side L, Side R"]
3862    CEF_CHANNEL_LAYOUT_2_2 = 7,
3863    #[doc = " Front L, Front R, Back L, Back R"]
3864    CEF_CHANNEL_LAYOUT_QUAD = 8,
3865    #[doc = " Front L, Front R, Front C, Side L, Side R"]
3866    CEF_CHANNEL_LAYOUT_5_0 = 9,
3867    #[doc = " Front L, Front R, Front C, LFE, Side L, Side R"]
3868    CEF_CHANNEL_LAYOUT_5_1 = 10,
3869    #[doc = " Front L, Front R, Front C, Back L, Back R"]
3870    CEF_CHANNEL_LAYOUT_5_0_BACK = 11,
3871    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R"]
3872    CEF_CHANNEL_LAYOUT_5_1_BACK = 12,
3873    #[doc = " Front L, Front R, Front C, Back L, Back R, Side L, Side R"]
3874    CEF_CHANNEL_LAYOUT_7_0 = 13,
3875    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Side L, Side R"]
3876    CEF_CHANNEL_LAYOUT_7_1 = 14,
3877    #[doc = " Front L, Front R, Front C, LFE, Front LofC, Front RofC, Side L, Side R"]
3878    CEF_CHANNEL_LAYOUT_7_1_WIDE = 15,
3879    #[doc = " Front L, Front R"]
3880    CEF_CHANNEL_LAYOUT_STEREO_DOWNMIX = 16,
3881    #[doc = " Front L, Front R, LFE"]
3882    CEF_CHANNEL_LAYOUT_2POINT1 = 17,
3883    #[doc = " Front L, Front R, Front C, LFE"]
3884    CEF_CHANNEL_LAYOUT_3_1 = 18,
3885    #[doc = " Front L, Front R, Front C, LFE, Back C"]
3886    CEF_CHANNEL_LAYOUT_4_1 = 19,
3887    #[doc = " Front L, Front R, Front C, Back C, Side L, Side R"]
3888    CEF_CHANNEL_LAYOUT_6_0 = 20,
3889    #[doc = " Front L, Front R, Front LofC, Front RofC, Side L, Side R"]
3890    CEF_CHANNEL_LAYOUT_6_0_FRONT = 21,
3891    #[doc = " Front L, Front R, Front C, Back L, Back R, Back C"]
3892    CEF_CHANNEL_LAYOUT_HEXAGONAL = 22,
3893    #[doc = " Front L, Front R, Front C, LFE, Back C, Side L, Side R"]
3894    CEF_CHANNEL_LAYOUT_6_1 = 23,
3895    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Back C"]
3896    CEF_CHANNEL_LAYOUT_6_1_BACK = 24,
3897    #[doc = " Front L, Front R, LFE, Front LofC, Front RofC, Side L, Side R"]
3898    CEF_CHANNEL_LAYOUT_6_1_FRONT = 25,
3899    #[doc = " Front L, Front R, Front C, Front LofC, Front RofC, Side L, Side R"]
3900    CEF_CHANNEL_LAYOUT_7_0_FRONT = 26,
3901    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Front LofC, Front RofC"]
3902    CEF_CHANNEL_LAYOUT_7_1_WIDE_BACK = 27,
3903    #[doc = " Front L, Front R, Front C, Back L, Back R, Back C, Side L, Side R"]
3904    CEF_CHANNEL_LAYOUT_OCTAGONAL = 28,
3905    #[doc = " Channels are not explicitly mapped to speakers."]
3906    CEF_CHANNEL_LAYOUT_DISCRETE = 29,
3907    #[doc = " Deprecated, but keeping the enum value for UMA consistency.\n Front L, Front R, Front C. Front C contains the keyboard mic audio. This\n layout is only intended for input for WebRTC. The Front C channel\n is stripped away in the WebRTC audio input pipeline and never seen outside\n of that."]
3908    CEF_CHANNEL_LAYOUT_STEREO_AND_KEYBOARD_MIC = 30,
3909    #[doc = " Front L, Front R, LFE, Side L, Side R"]
3910    CEF_CHANNEL_LAYOUT_4_1_QUAD_SIDE = 31,
3911    #[doc = " Actual channel layout is specified in the bitstream and the actual channel\n count is unknown at Chromium media pipeline level (useful for audio\n pass-through mode)."]
3912    CEF_CHANNEL_LAYOUT_BITSTREAM = 32,
3913    #[doc = " Front L, Front R, Front C, LFE, Side L, Side R,\n Front Height L, Front Height R, Rear Height L, Rear Height R\n Will be represented as six channels (5.1) due to eight channel limit\n kMaxConcurrentChannels"]
3914    CEF_CHANNEL_LAYOUT_5_1_4_DOWNMIX = 33,
3915    #[doc = " Front C, LFE"]
3916    CEF_CHANNEL_LAYOUT_1_1 = 34,
3917    #[doc = " Front L, Front R, LFE, Back C"]
3918    CEF_CHANNEL_LAYOUT_3_1_BACK = 35,
3919    #[doc = " Front L, Front R, Front C, LFE, Side L, Side R,\n Top Front L, Top Front R, Top Back L, Top Back R"]
3920    CEF_CHANNEL_LAYOUT_5_1_4 = 36,
3921    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Side L, Side R,\n Top Front L, Top Front R, Top Back L, Top Back R"]
3922    CEF_CHANNEL_LAYOUT_7_1_4 = 37,
3923    CEF_CHANNEL_NUM_VALUES = 38,
3924}
3925#[doc = "\n Structure representing the audio parameters for setting up the audio\n handler.\n"]
3926#[repr(C)]
3927#[derive(Debug, Copy, Clone)]
3928pub struct _cef_audio_parameters_t {
3929    #[doc = "\n Size of this structure.\n"]
3930    pub size: usize,
3931    #[doc = "\n Layout of the audio channels\n"]
3932    pub channel_layout: cef_channel_layout_t,
3933    #[doc = "\n Sample rate"]
3934    pub sample_rate: ::std::os::raw::c_int,
3935    #[doc = "\n Number of frames per buffer\n"]
3936    pub frames_per_buffer: ::std::os::raw::c_int,
3937}
3938#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3939const _: () = {
3940    ["Size of _cef_audio_parameters_t"][::std::mem::size_of::<_cef_audio_parameters_t>() - 24usize];
3941    ["Alignment of _cef_audio_parameters_t"]
3942        [::std::mem::align_of::<_cef_audio_parameters_t>() - 8usize];
3943    ["Offset of field: _cef_audio_parameters_t::size"]
3944        [::std::mem::offset_of!(_cef_audio_parameters_t, size) - 0usize];
3945    ["Offset of field: _cef_audio_parameters_t::channel_layout"]
3946        [::std::mem::offset_of!(_cef_audio_parameters_t, channel_layout) - 8usize];
3947    ["Offset of field: _cef_audio_parameters_t::sample_rate"]
3948        [::std::mem::offset_of!(_cef_audio_parameters_t, sample_rate) - 12usize];
3949    ["Offset of field: _cef_audio_parameters_t::frames_per_buffer"]
3950        [::std::mem::offset_of!(_cef_audio_parameters_t, frames_per_buffer) - 16usize];
3951};
3952#[doc = "\n Structure representing the audio parameters for setting up the audio\n handler.\n"]
3953pub type cef_audio_parameters_t = _cef_audio_parameters_t;
3954#[repr(u32)]
3955#[non_exhaustive]
3956#[doc = "\n Result codes for CefMediaRouter::CreateRoute. Should be kept in sync with\n Chromium's media_router::mojom::RouteRequestResultCode type.\n"]
3957#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3958pub enum cef_media_route_create_result_t {
3959    CEF_MRCR_UNKNOWN_ERROR = 0,
3960    CEF_MRCR_OK = 1,
3961    CEF_MRCR_TIMED_OUT = 2,
3962    CEF_MRCR_ROUTE_NOT_FOUND = 3,
3963    CEF_MRCR_SINK_NOT_FOUND = 4,
3964    CEF_MRCR_INVALID_ORIGIN = 5,
3965    CEF_MRCR_OFF_THE_RECORD_MISMATCH_DEPRECATED = 6,
3966    CEF_MRCR_NO_SUPPORTED_PROVIDER = 7,
3967    CEF_MRCR_CANCELLED = 8,
3968    CEF_MRCR_ROUTE_ALREADY_EXISTS = 9,
3969    CEF_MRCR_DESKTOP_PICKER_FAILED = 10,
3970    CEF_MRCR_ROUTE_ALREADY_TERMINATED = 11,
3971    CEF_MRCR_REDUNDANT_REQUEST = 12,
3972    CEF_MRCR_USER_NOT_ALLOWED = 13,
3973    CEF_MRCR_NOTIFICATION_DISABLED = 14,
3974    CEF_MRCR_NUM_VALUES = 15,
3975}
3976#[repr(i32)]
3977#[non_exhaustive]
3978#[doc = "\n Connection state for a MediaRoute object. Should be kept in sync with\n Chromium's blink::mojom::PresentationConnectionState type.\n"]
3979#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3980pub enum cef_media_route_connection_state_t {
3981    CEF_MRCS_UNKNOWN = -1,
3982    CEF_MRCS_CONNECTING = 0,
3983    CEF_MRCS_CONNECTED = 1,
3984    CEF_MRCS_CLOSED = 2,
3985    CEF_MRCS_TERMINATED = 3,
3986    CEF_MRCS_NUM_VALUES = 4,
3987}
3988#[repr(u32)]
3989#[non_exhaustive]
3990#[doc = "\n Icon types for a MediaSink object. Should be kept in sync with Chromium's\n media_router::SinkIconType type.\n"]
3991#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3992pub enum cef_media_sink_icon_type_t {
3993    CEF_MSIT_CAST = 0,
3994    CEF_MSIT_CAST_AUDIO_GROUP = 1,
3995    CEF_MSIT_CAST_AUDIO = 2,
3996    CEF_MSIT_MEETING = 3,
3997    CEF_MSIT_HANGOUT = 4,
3998    CEF_MSIT_EDUCATION = 5,
3999    CEF_MSIT_WIRED_DISPLAY = 6,
4000    CEF_MSIT_GENERIC = 7,
4001    CEF_MSIT_NUM_VALUES = 8,
4002}
4003#[doc = "\n Device information for a MediaSink object.\n"]
4004#[repr(C)]
4005#[derive(Debug, Copy, Clone)]
4006pub struct _cef_media_sink_device_info_t {
4007    #[doc = "\n Size of this structure.\n"]
4008    pub size: usize,
4009    pub ip_address: cef_string_t,
4010    pub port: ::std::os::raw::c_int,
4011    pub model_name: cef_string_t,
4012}
4013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4014const _: () = {
4015    ["Size of _cef_media_sink_device_info_t"]
4016        [::std::mem::size_of::<_cef_media_sink_device_info_t>() - 64usize];
4017    ["Alignment of _cef_media_sink_device_info_t"]
4018        [::std::mem::align_of::<_cef_media_sink_device_info_t>() - 8usize];
4019    ["Offset of field: _cef_media_sink_device_info_t::size"]
4020        [::std::mem::offset_of!(_cef_media_sink_device_info_t, size) - 0usize];
4021    ["Offset of field: _cef_media_sink_device_info_t::ip_address"]
4022        [::std::mem::offset_of!(_cef_media_sink_device_info_t, ip_address) - 8usize];
4023    ["Offset of field: _cef_media_sink_device_info_t::port"]
4024        [::std::mem::offset_of!(_cef_media_sink_device_info_t, port) - 32usize];
4025    ["Offset of field: _cef_media_sink_device_info_t::model_name"]
4026        [::std::mem::offset_of!(_cef_media_sink_device_info_t, model_name) - 40usize];
4027};
4028#[doc = "\n Device information for a MediaSink object.\n"]
4029pub type cef_media_sink_device_info_t = _cef_media_sink_device_info_t;
4030#[repr(u32)]
4031#[non_exhaustive]
4032#[doc = "\n Represents commands available to TextField. Should be kept in sync with\n Chromium's views::TextField::MenuCommands type.\n"]
4033#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4034pub enum cef_text_field_commands_t {
4035    CEF_TFC_UNKNOWN = 0,
4036    CEF_TFC_CUT = 1,
4037    CEF_TFC_COPY = 2,
4038    CEF_TFC_PASTE = 3,
4039    CEF_TFC_SELECT_ALL = 4,
4040    CEF_TFC_SELECT_WORD = 5,
4041    CEF_TFC_UNDO = 6,
4042    CEF_TFC_DELETE = 7,
4043    CEF_TFC_NUM_VALUES = 8,
4044}
4045#[repr(u32)]
4046#[non_exhaustive]
4047#[doc = "\n Chrome toolbar types.\n"]
4048#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4049pub enum cef_chrome_toolbar_type_t {
4050    CEF_CTT_UNKNOWN = 0,
4051    CEF_CTT_NONE = 1,
4052    CEF_CTT_NORMAL = 2,
4053    CEF_CTT_LOCATION = 3,
4054    CEF_CTT_NUM_VALUES = 4,
4055}
4056#[repr(u32)]
4057#[non_exhaustive]
4058#[doc = "\n Chrome page action icon types. Should be kept in sync with Chromium's\n PageActionIconType type.\n"]
4059#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4060pub enum cef_chrome_page_action_icon_type_t {
4061    CEF_CPAIT_BOOKMARK_STAR = 0,
4062    CEF_CPAIT_CLICK_TO_CALL = 1,
4063    CEF_CPAIT_COOKIE_CONTROLS = 2,
4064    CEF_CPAIT_FILE_SYSTEM_ACCESS = 3,
4065    CEF_CPAIT_FIND = 4,
4066    CEF_CPAIT_MEMORY_SAVER = 5,
4067    CEF_CPAIT_INTENT_PICKER = 6,
4068    CEF_CPAIT_LOCAL_CARD_MIGRATION = 7,
4069    CEF_CPAIT_MANAGE_PASSWORDS = 8,
4070    CEF_CPAIT_PAYMENTS_OFFER_NOTIFICATION = 9,
4071    CEF_CPAIT_PRICE_TRACKING = 10,
4072    CEF_CPAIT_PWA_INSTALL = 11,
4073    CEF_CPAIT_QR_CODE_GENERATOR_DEPRECATED = 12,
4074    CEF_CPAIT_READER_MODE_DEPRECATED = 13,
4075    CEF_CPAIT_SAVE_AUTOFILL_ADDRESS = 14,
4076    CEF_CPAIT_SAVE_CARD = 15,
4077    CEF_CPAIT_SEND_TAB_TO_SELF_DEPRECATED = 16,
4078    CEF_CPAIT_SHARING_HUB = 17,
4079    CEF_CPAIT_SIDE_SEARCH_DEPRECATED = 18,
4080    CEF_CPAIT_SMS_REMOTE_FETCHER = 19,
4081    CEF_CPAIT_TRANSLATE = 20,
4082    CEF_CPAIT_VIRTUAL_CARD_ENROLL = 21,
4083    CEF_CPAIT_VIRTUAL_CARD_INFORMATION = 22,
4084    CEF_CPAIT_ZOOM = 23,
4085    CEF_CPAIT_SAVE_IBAN = 24,
4086    CEF_CPAIT_MANDATORY_REAUTH = 25,
4087    CEF_CPAIT_PRICE_INSIGHTS = 26,
4088    CEF_CPAIT_READ_ANYTHING_DEPRECATED = 27,
4089    CEF_CPAIT_PRODUCT_SPECIFICATIONS = 28,
4090    CEF_CPAIT_LENS_OVERLAY = 29,
4091    CEF_CPAIT_DISCOUNTS = 30,
4092    CEF_CPAIT_OPTIMIZATION_GUIDE = 31,
4093    CEF_CPAIT_COLLABORATION_MESSAGING = 32,
4094    CEF_CPAIT_CHANGE_PASSWORD = 33,
4095    CEF_CPAIT_LENS_OVERLAY_HOMEWORK = 34,
4096    CEF_CPAIT_AI_MODE = 35,
4097    CEF_CPAIT_READING_MODE = 36,
4098    CEF_CPAIT_CONTEXTUAL_SIDE_PANEL = 37,
4099    CEF_CPAIT_JS_OPTIMIZATIONS = 38,
4100    CEF_CPAIT_RECORD_REPLAY = 39,
4101    CEF_CPAIT_INDIGO = 40,
4102    CEF_CPAIT_FEDERATION = 41,
4103    CEF_CPAIT_GLIC = 42,
4104    CEF_CPAIT_NUM_VALUES = 43,
4105}
4106#[repr(u32)]
4107#[non_exhaustive]
4108#[doc = "\n Chrome toolbar button types. Should be kept in sync with CEF's internal\n ToolbarButtonType type.\n"]
4109#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4110pub enum cef_chrome_toolbar_button_type_t {
4111    CEF_CTBT_CAST_DEPRECATED = 0,
4112    CEF_CTBT_DOWNLOAD_DEPRECATED = 1,
4113    CEF_CTBT_SEND_TAB_TO_SELF_DEPRECATED = 2,
4114    CEF_CTBT_SIDE_PANEL_DEPRECATED = 3,
4115    CEF_CTBT_MEDIA = 4,
4116    CEF_CTBT_TAB_SEARCH = 5,
4117    CEF_CTBT_BATTERY_SAVER = 6,
4118    CEF_CTBT_AVATAR = 7,
4119    CEF_CTBT_NUM_VALUES = 8,
4120}
4121#[repr(u32)]
4122#[non_exhaustive]
4123#[doc = "\n Docking modes supported by CefWindow::AddOverlay.\n"]
4124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4125pub enum cef_docking_mode_t {
4126    CEF_DOCKING_MODE_TOP_LEFT = 0,
4127    CEF_DOCKING_MODE_TOP_RIGHT = 1,
4128    CEF_DOCKING_MODE_BOTTOM_LEFT = 2,
4129    CEF_DOCKING_MODE_BOTTOM_RIGHT = 3,
4130    CEF_DOCKING_MODE_CUSTOM = 4,
4131    CEF_DOCKING_MODE_NUM_VALUES = 5,
4132}
4133#[repr(u32)]
4134#[non_exhaustive]
4135#[doc = "\n Show states supported by CefWindowDelegate::GetInitialShowState.\n"]
4136#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4137pub enum cef_show_state_t {
4138    CEF_SHOW_STATE_NORMAL = 0,
4139    CEF_SHOW_STATE_MINIMIZED = 1,
4140    CEF_SHOW_STATE_MAXIMIZED = 2,
4141    CEF_SHOW_STATE_FULLSCREEN = 3,
4142    CEF_SHOW_STATE_HIDDEN = 4,
4143    CEF_SHOW_STATE_NUM_VALUES = 5,
4144}
4145impl cef_touch_handle_state_flags_t {
4146    pub const CEF_THS_FLAG_NONE: cef_touch_handle_state_flags_t = cef_touch_handle_state_flags_t(0);
4147    pub const CEF_THS_FLAG_ENABLED: cef_touch_handle_state_flags_t =
4148        cef_touch_handle_state_flags_t(1);
4149    pub const CEF_THS_FLAG_ORIENTATION: cef_touch_handle_state_flags_t =
4150        cef_touch_handle_state_flags_t(2);
4151    pub const CEF_THS_FLAG_ORIGIN: cef_touch_handle_state_flags_t =
4152        cef_touch_handle_state_flags_t(4);
4153    pub const CEF_THS_FLAG_ALPHA: cef_touch_handle_state_flags_t =
4154        cef_touch_handle_state_flags_t(8);
4155}
4156impl ::std::ops::BitOr<cef_touch_handle_state_flags_t> for cef_touch_handle_state_flags_t {
4157    type Output = Self;
4158    #[inline]
4159    fn bitor(self, other: Self) -> Self {
4160        cef_touch_handle_state_flags_t(self.0 | other.0)
4161    }
4162}
4163impl ::std::ops::BitOrAssign for cef_touch_handle_state_flags_t {
4164    #[inline]
4165    fn bitor_assign(&mut self, rhs: cef_touch_handle_state_flags_t) {
4166        self.0 |= rhs.0;
4167    }
4168}
4169impl ::std::ops::BitAnd<cef_touch_handle_state_flags_t> for cef_touch_handle_state_flags_t {
4170    type Output = Self;
4171    #[inline]
4172    fn bitand(self, other: Self) -> Self {
4173        cef_touch_handle_state_flags_t(self.0 & other.0)
4174    }
4175}
4176impl ::std::ops::BitAndAssign for cef_touch_handle_state_flags_t {
4177    #[inline]
4178    fn bitand_assign(&mut self, rhs: cef_touch_handle_state_flags_t) {
4179        self.0 &= rhs.0;
4180    }
4181}
4182#[repr(transparent)]
4183#[doc = "\n Values indicating what state of the touch handle is set.\n"]
4184#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4185pub struct cef_touch_handle_state_flags_t(pub ::std::os::raw::c_uint);
4186#[repr(C)]
4187#[derive(Debug, Copy, Clone)]
4188pub struct _cef_touch_handle_state_t {
4189    #[doc = "\n Size of this structure.\n"]
4190    pub size: usize,
4191    #[doc = "\n Touch handle id. Increments for each new touch handle.\n"]
4192    pub touch_handle_id: ::std::os::raw::c_int,
4193    #[doc = "\n Combination of cef_touch_handle_state_flags_t values indicating what state\n is set.\n"]
4194    pub flags: u32,
4195    #[doc = "\n Enabled state. Only set if |flags| contains CEF_THS_FLAG_ENABLED.\n"]
4196    pub enabled: ::std::os::raw::c_int,
4197    #[doc = "\n Orientation state. Only set if |flags| contains CEF_THS_FLAG_ORIENTATION.\n"]
4198    pub orientation: cef_horizontal_alignment_t,
4199    pub mirror_vertical: ::std::os::raw::c_int,
4200    pub mirror_horizontal: ::std::os::raw::c_int,
4201    #[doc = "\n Origin state. Only set if |flags| contains CEF_THS_FLAG_ORIGIN.\n"]
4202    pub origin: cef_point_t,
4203    #[doc = "\n Alpha state. Only set if |flags| contains CEF_THS_FLAG_ALPHA.\n"]
4204    pub alpha: f32,
4205}
4206#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4207const _: () = {
4208    ["Size of _cef_touch_handle_state_t"]
4209        [::std::mem::size_of::<_cef_touch_handle_state_t>() - 48usize];
4210    ["Alignment of _cef_touch_handle_state_t"]
4211        [::std::mem::align_of::<_cef_touch_handle_state_t>() - 8usize];
4212    ["Offset of field: _cef_touch_handle_state_t::size"]
4213        [::std::mem::offset_of!(_cef_touch_handle_state_t, size) - 0usize];
4214    ["Offset of field: _cef_touch_handle_state_t::touch_handle_id"]
4215        [::std::mem::offset_of!(_cef_touch_handle_state_t, touch_handle_id) - 8usize];
4216    ["Offset of field: _cef_touch_handle_state_t::flags"]
4217        [::std::mem::offset_of!(_cef_touch_handle_state_t, flags) - 12usize];
4218    ["Offset of field: _cef_touch_handle_state_t::enabled"]
4219        [::std::mem::offset_of!(_cef_touch_handle_state_t, enabled) - 16usize];
4220    ["Offset of field: _cef_touch_handle_state_t::orientation"]
4221        [::std::mem::offset_of!(_cef_touch_handle_state_t, orientation) - 20usize];
4222    ["Offset of field: _cef_touch_handle_state_t::mirror_vertical"]
4223        [::std::mem::offset_of!(_cef_touch_handle_state_t, mirror_vertical) - 24usize];
4224    ["Offset of field: _cef_touch_handle_state_t::mirror_horizontal"]
4225        [::std::mem::offset_of!(_cef_touch_handle_state_t, mirror_horizontal) - 28usize];
4226    ["Offset of field: _cef_touch_handle_state_t::origin"]
4227        [::std::mem::offset_of!(_cef_touch_handle_state_t, origin) - 32usize];
4228    ["Offset of field: _cef_touch_handle_state_t::alpha"]
4229        [::std::mem::offset_of!(_cef_touch_handle_state_t, alpha) - 40usize];
4230};
4231pub type cef_touch_handle_state_t = _cef_touch_handle_state_t;
4232#[repr(u32)]
4233#[non_exhaustive]
4234#[doc = "\n Media access permissions used by OnRequestMediaAccessPermission.\n"]
4235#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4236pub enum cef_media_access_permission_types_t {
4237    #[doc = "\n No permission.\n"]
4238    CEF_MEDIA_PERMISSION_NONE = 0,
4239    #[doc = "\n Device audio capture permission.\n"]
4240    CEF_MEDIA_PERMISSION_DEVICE_AUDIO_CAPTURE = 1,
4241    #[doc = "\n Device video capture permission.\n"]
4242    CEF_MEDIA_PERMISSION_DEVICE_VIDEO_CAPTURE = 2,
4243    #[doc = "\n Desktop audio capture permission.\n"]
4244    CEF_MEDIA_PERMISSION_DESKTOP_AUDIO_CAPTURE = 4,
4245    #[doc = "\n Desktop video capture permission.\n"]
4246    CEF_MEDIA_PERMISSION_DESKTOP_VIDEO_CAPTURE = 8,
4247}
4248#[repr(u32)]
4249#[non_exhaustive]
4250#[doc = "\n Permission types used with OnShowPermissionPrompt. Some types are\n platform-specific or only supported with Chrome style. Should be kept\n in sync with Chromium's permissions::RequestType type.\n"]
4251#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4252pub enum cef_permission_request_types_t {
4253    CEF_PERMISSION_TYPE_NONE = 0,
4254    CEF_PERMISSION_TYPE_AR_SESSION = 1,
4255    CEF_PERMISSION_TYPE_CAMERA_PAN_TILT_ZOOM = 2,
4256    CEF_PERMISSION_TYPE_CAMERA_STREAM = 4,
4257    CEF_PERMISSION_TYPE_CAPTURED_SURFACE_CONTROL = 8,
4258    CEF_PERMISSION_TYPE_CLIPBOARD = 16,
4259    CEF_PERMISSION_TYPE_TOP_LEVEL_STORAGE_ACCESS = 32,
4260    CEF_PERMISSION_TYPE_DISK_QUOTA = 64,
4261    CEF_PERMISSION_TYPE_LOCAL_FONTS = 128,
4262    CEF_PERMISSION_TYPE_GEOLOCATION = 256,
4263    CEF_PERMISSION_TYPE_HAND_TRACKING = 512,
4264    CEF_PERMISSION_TYPE_IDENTITY_PROVIDER = 1024,
4265    CEF_PERMISSION_TYPE_IDLE_DETECTION = 2048,
4266    CEF_PERMISSION_TYPE_MIC_STREAM = 4096,
4267    CEF_PERMISSION_TYPE_MIDI_SYSEX = 8192,
4268    CEF_PERMISSION_TYPE_MULTIPLE_DOWNLOADS = 16384,
4269    CEF_PERMISSION_TYPE_NOTIFICATIONS = 32768,
4270    CEF_PERMISSION_TYPE_KEYBOARD_LOCK = 65536,
4271    CEF_PERMISSION_TYPE_POINTER_LOCK = 131072,
4272    CEF_PERMISSION_TYPE_PROTECTED_MEDIA_IDENTIFIER = 262144,
4273    CEF_PERMISSION_TYPE_REGISTER_PROTOCOL_HANDLER = 524288,
4274    CEF_PERMISSION_TYPE_STORAGE_ACCESS = 1048576,
4275    CEF_PERMISSION_TYPE_VR_SESSION = 2097152,
4276    CEF_PERMISSION_TYPE_WEB_APP_INSTALLATION = 4194304,
4277    CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT = 8388608,
4278    CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS = 16777216,
4279    CEF_PERMISSION_TYPE_LOCAL_NETWORK_ACCESS = 33554432,
4280    CEF_PERMISSION_TYPE_LOCAL_NETWORK = 67108864,
4281    CEF_PERMISSION_TYPE_LOOPBACK_NETWORK = 134217728,
4282    CEF_PERMISSION_TYPE_SENSORS = 268435456,
4283}
4284#[repr(u32)]
4285#[non_exhaustive]
4286#[doc = "\n Permission request results.\n"]
4287#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4288pub enum cef_permission_request_result_t {
4289    #[doc = "\n Accept the permission request as an explicit user action.\n"]
4290    CEF_PERMISSION_RESULT_ACCEPT = 0,
4291    #[doc = "\n Deny the permission request as an explicit user action.\n"]
4292    CEF_PERMISSION_RESULT_DENY = 1,
4293    #[doc = "\n Dismiss the permission request as an explicit user action.\n"]
4294    CEF_PERMISSION_RESULT_DISMISS = 2,
4295    #[doc = "\n Ignore the permission request. If the prompt remains unhandled (e.g.\n OnShowPermissionPrompt returns false and there is no default permissions\n UI) then any related promises may remain unresolved.\n"]
4296    CEF_PERMISSION_RESULT_IGNORE = 3,
4297    #[doc = "\n Ignore the permission request. If the prompt remains unhandled (e.g.\n OnShowPermissionPrompt returns false and there is no default permissions\n UI) then any related promises may remain unresolved.\n"]
4298    CEF_PERMISSION_RESULT_NUM_VALUES = 4,
4299}
4300#[repr(u32)]
4301#[non_exhaustive]
4302#[doc = "\n Certificate types supported by CefTestServer::CreateAndStart. The matching\n certificate file must exist in the \"net/data/ssl/certificates\" directory.\n See CefSetDataDirectoryForTests() for related configuration.\n"]
4303#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4304pub enum cef_test_cert_type_t {
4305    #[doc = " Valid certificate using the IP (127.0.0.1). Loads the \"ok_cert.pem\" file."]
4306    CEF_TEST_CERT_OK_IP = 0,
4307    #[doc = " Valid certificate using the domain (\"localhost\"). Loads the\n \"localhost_cert.pem\" file."]
4308    CEF_TEST_CERT_OK_DOMAIN = 1,
4309    #[doc = " Expired certificate. Loads the \"expired_cert.pem\" file."]
4310    CEF_TEST_CERT_EXPIRED = 2,
4311    #[doc = " Expired certificate. Loads the \"expired_cert.pem\" file."]
4312    CEF_TEST_CERT_NUM_VALUES = 3,
4313}
4314#[repr(u32)]
4315#[non_exhaustive]
4316#[doc = "\n Preferences type passed to\n CefBrowserProcessHandler::OnRegisterCustomPreferences.\n"]
4317#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4318pub enum cef_preferences_type_t {
4319    #[doc = " Global preferences registered a single time at application startup."]
4320    CEF_PREFERENCES_TYPE_GLOBAL = 0,
4321    #[doc = " Request context preferences registered each time a new CefRequestContext\n is created."]
4322    CEF_PREFERENCES_TYPE_REQUEST_CONTEXT = 1,
4323    #[doc = " Request context preferences registered each time a new CefRequestContext\n is created."]
4324    CEF_PREFERENCES_TYPE_NUM_VALUES = 2,
4325}
4326#[repr(u32)]
4327#[non_exhaustive]
4328#[doc = "\n Download interrupt reasons. Should be kept in sync with\n Chromium's download::DownloadInterruptReason type.\n"]
4329#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4330pub enum cef_download_interrupt_reason_t {
4331    CEF_DOWNLOAD_INTERRUPT_REASON_NONE = 0,
4332    #[doc = " Generic file operation failure."]
4333    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED = 1,
4334    #[doc = " The file cannot be accessed due to security restrictions."]
4335    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED = 2,
4336    #[doc = " There is not enough room on the drive."]
4337    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE = 3,
4338    #[doc = " The directory or file name is too long."]
4339    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG = 5,
4340    #[doc = " The file is too large for the file system to handle."]
4341    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE = 6,
4342    #[doc = " The file contains a virus."]
4343    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED = 7,
4344    #[doc = " The file was in use. Too many files are opened at once. We have run out of\n memory."]
4345    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR = 10,
4346    #[doc = " The file was blocked due to local policy."]
4347    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED = 11,
4348    #[doc = " An attempt to check the safety of the download failed due to unexpected\n reasons. See http://crbug.com/153212."]
4349    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED = 12,
4350    #[doc = " An attempt was made to seek past the end of a file in opening\n a file (as part of resuming a previously interrupted download)."]
4351    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT = 13,
4352    #[doc = " The partial file didn't match the expected hash."]
4353    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH = 14,
4354    #[doc = " The source and the target of the download were the same."]
4355    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_SAME_AS_SOURCE = 15,
4356    #[doc = " Generic network failure."]
4357    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED = 20,
4358    #[doc = " The network operation timed out."]
4359    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT = 21,
4360    #[doc = " The network connection has been lost."]
4361    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED = 22,
4362    #[doc = " The server has gone down."]
4363    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN = 23,
4364    #[doc = " The network request was invalid. This may be due to the original URL or a\n redirected URL:\n - Having an unsupported scheme.\n - Being an invalid URL.\n - Being disallowed by policy."]
4365    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST = 24,
4366    #[doc = " The server indicates that the operation has failed (generic)."]
4367    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED = 30,
4368    #[doc = " The server does not support range requests.\n Internal use only:  must restart from the beginning."]
4369    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE = 31,
4370    #[doc = " The server does not have the requested data."]
4371    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT = 33,
4372    #[doc = " Server didn't authorize access to resource."]
4373    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED = 34,
4374    #[doc = " Server certificate problem."]
4375    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CERT_PROBLEM = 35,
4376    #[doc = " Server access forbidden."]
4377    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN = 36,
4378    #[doc = " Unexpected server response. This might indicate that the responding server\n may not be the intended server."]
4379    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_UNREACHABLE = 37,
4380    #[doc = " The server sent fewer bytes than the content-length header. It may\n indicate that the connection was closed prematurely, or the Content-Length\n header was invalid. The download is only interrupted if strong validators\n are present. Otherwise, it is treated as finished."]
4381    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH = 38,
4382    #[doc = " An unexpected cross-origin redirect happened."]
4383    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT = 39,
4384    #[doc = " The user canceled the download."]
4385    CEF_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED = 40,
4386    #[doc = " The user shut down the browser.\n Internal use only:  resume pending downloads if possible."]
4387    CEF_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN = 41,
4388    #[doc = " The browser crashed.\n Internal use only:  resume pending downloads if possible."]
4389    CEF_DOWNLOAD_INTERRUPT_REASON_CRASH = 50,
4390}
4391#[repr(u32)]
4392#[non_exhaustive]
4393#[doc = "\n Specifies the gesture commands.\n"]
4394#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4395pub enum cef_gesture_command_t {
4396    CEF_GESTURE_COMMAND_BACK = 0,
4397    CEF_GESTURE_COMMAND_FORWARD = 1,
4398}
4399#[repr(u32)]
4400#[non_exhaustive]
4401#[doc = "\n Specifies the zoom commands supported by CefBrowserHost::Zoom.\n"]
4402#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4403pub enum cef_zoom_command_t {
4404    CEF_ZOOM_COMMAND_OUT = 0,
4405    CEF_ZOOM_COMMAND_RESET = 1,
4406    CEF_ZOOM_COMMAND_IN = 2,
4407}
4408#[repr(u32)]
4409#[non_exhaustive]
4410#[doc = "\n Specifies the color variants supported by\n CefRequestContext::SetChromeThemeColor.\n"]
4411#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4412pub enum cef_color_variant_t {
4413    CEF_COLOR_VARIANT_SYSTEM = 0,
4414    CEF_COLOR_VARIANT_LIGHT = 1,
4415    CEF_COLOR_VARIANT_DARK = 2,
4416    CEF_COLOR_VARIANT_TONAL_SPOT = 3,
4417    CEF_COLOR_VARIANT_NEUTRAL = 4,
4418    CEF_COLOR_VARIANT_VIBRANT = 5,
4419    CEF_COLOR_VARIANT_EXPRESSIVE = 6,
4420    CEF_COLOR_VARIANT_NUM_VALUES = 7,
4421}
4422#[repr(u32)]
4423#[non_exhaustive]
4424#[doc = "\n Specifies the task type variants supported by CefTaskManager.\n Should be kept in sync with Chromium's task_manager::Task::Type type.\n"]
4425#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4426pub enum cef_task_type_t {
4427    CEF_TASK_TYPE_UNKNOWN = 0,
4428    #[doc = " The main browser process."]
4429    CEF_TASK_TYPE_BROWSER = 1,
4430    #[doc = " A graphics process."]
4431    CEF_TASK_TYPE_GPU = 2,
4432    #[doc = " A Linux zygote process."]
4433    CEF_TASK_TYPE_ZYGOTE = 3,
4434    #[doc = " A browser utility process."]
4435    CEF_TASK_TYPE_UTILITY = 4,
4436    #[doc = " A normal WebContents renderer process."]
4437    CEF_TASK_TYPE_RENDERER = 5,
4438    #[doc = " An extension or app process."]
4439    CEF_TASK_TYPE_EXTENSION = 6,
4440    #[doc = " A browser plugin guest process."]
4441    CEF_TASK_TYPE_GUEST = 7,
4442    CEF_TASK_TYPE_PLUGIN_DEPRECATED = 8,
4443    #[doc = " A sandbox helper process"]
4444    CEF_TASK_TYPE_SANDBOX_HELPER = 9,
4445    #[doc = " A dedicated worker running on the renderer process."]
4446    CEF_TASK_TYPE_DEDICATED_WORKER = 10,
4447    #[doc = " A shared worker running on the renderer process."]
4448    CEF_TASK_TYPE_SHARED_WORKER = 11,
4449    #[doc = " A service worker running on the renderer process."]
4450    CEF_TASK_TYPE_SERVICE_WORKER = 12,
4451    #[doc = " A service worker running on the renderer process."]
4452    CEF_TASK_TYPE_NUM_VALUES = 13,
4453}
4454#[doc = "\n Structure representing task information provided by CefTaskManager.\n"]
4455#[repr(C)]
4456#[derive(Debug, Copy, Clone)]
4457pub struct _cef_task_info_t {
4458    #[doc = "\n Size of this structure.\n"]
4459    pub size: usize,
4460    #[doc = " The task ID."]
4461    pub id: i64,
4462    #[doc = " The task type."]
4463    pub type_: cef_task_type_t,
4464    #[doc = " Set to true (1) if the task is killable."]
4465    pub is_killable: ::std::os::raw::c_int,
4466    #[doc = " The task title."]
4467    pub title: cef_string_t,
4468    #[doc = " The CPU usage of the process on which the task is running. The value is\n in the range zero to number_of_processors * 100%."]
4469    pub cpu_usage: f64,
4470    #[doc = " The number of processors available on the system."]
4471    pub number_of_processors: ::std::os::raw::c_int,
4472    #[doc = " The memory footprint of the task in bytes. A value of -1 means no valid\n value is currently available."]
4473    pub memory: i64,
4474    #[doc = " The GPU memory usage of the task in bytes. A value of -1 means no valid\n value is currently available."]
4475    pub gpu_memory: i64,
4476    #[doc = " Set to true (1) if this task process' GPU resource count is inflated\n because it is counting other processes' resources (e.g, the GPU process\n has this value set to true because it is the aggregate of all processes)."]
4477    pub is_gpu_memory_inflated: ::std::os::raw::c_int,
4478}
4479#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4480const _: () = {
4481    ["Size of _cef_task_info_t"][::std::mem::size_of::<_cef_task_info_t>() - 88usize];
4482    ["Alignment of _cef_task_info_t"][::std::mem::align_of::<_cef_task_info_t>() - 8usize];
4483    ["Offset of field: _cef_task_info_t::size"]
4484        [::std::mem::offset_of!(_cef_task_info_t, size) - 0usize];
4485    ["Offset of field: _cef_task_info_t::id"]
4486        [::std::mem::offset_of!(_cef_task_info_t, id) - 8usize];
4487    ["Offset of field: _cef_task_info_t::type_"]
4488        [::std::mem::offset_of!(_cef_task_info_t, type_) - 16usize];
4489    ["Offset of field: _cef_task_info_t::is_killable"]
4490        [::std::mem::offset_of!(_cef_task_info_t, is_killable) - 20usize];
4491    ["Offset of field: _cef_task_info_t::title"]
4492        [::std::mem::offset_of!(_cef_task_info_t, title) - 24usize];
4493    ["Offset of field: _cef_task_info_t::cpu_usage"]
4494        [::std::mem::offset_of!(_cef_task_info_t, cpu_usage) - 48usize];
4495    ["Offset of field: _cef_task_info_t::number_of_processors"]
4496        [::std::mem::offset_of!(_cef_task_info_t, number_of_processors) - 56usize];
4497    ["Offset of field: _cef_task_info_t::memory"]
4498        [::std::mem::offset_of!(_cef_task_info_t, memory) - 64usize];
4499    ["Offset of field: _cef_task_info_t::gpu_memory"]
4500        [::std::mem::offset_of!(_cef_task_info_t, gpu_memory) - 72usize];
4501    ["Offset of field: _cef_task_info_t::is_gpu_memory_inflated"]
4502        [::std::mem::offset_of!(_cef_task_info_t, is_gpu_memory_inflated) - 80usize];
4503};
4504#[doc = "\n Structure representing task information provided by CefTaskManager.\n"]
4505pub type cef_task_info_t = _cef_task_info_t;
4506#[doc = "\n All ref-counted framework structures must include this structure first.\n"]
4507#[repr(C)]
4508#[derive(Debug, Copy, Clone)]
4509pub struct _cef_base_ref_counted_t {
4510    #[doc = "\n Size of the data structure.\n"]
4511    pub size: usize,
4512    #[doc = "\n Called to increment the reference count for the object. Should be called\n for every new copy of a pointer to a given object.\n"]
4513    pub add_ref: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t)>,
4514    #[doc = "\n Called to decrement the reference count for the object. If the reference\n count falls to 0 the object should self-delete. Returns true (1) if the\n resulting reference count is 0.\n"]
4515    pub release: ::std::option::Option<
4516        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4517    >,
4518    #[doc = "\n Returns true (1) if the current reference count is 1.\n"]
4519    pub has_one_ref: ::std::option::Option<
4520        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4521    >,
4522    #[doc = "\n Returns true (1) if the current reference count is at least 1.\n"]
4523    pub has_at_least_one_ref: ::std::option::Option<
4524        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4525    >,
4526}
4527#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4528const _: () = {
4529    ["Size of _cef_base_ref_counted_t"][::std::mem::size_of::<_cef_base_ref_counted_t>() - 40usize];
4530    ["Alignment of _cef_base_ref_counted_t"]
4531        [::std::mem::align_of::<_cef_base_ref_counted_t>() - 8usize];
4532    ["Offset of field: _cef_base_ref_counted_t::size"]
4533        [::std::mem::offset_of!(_cef_base_ref_counted_t, size) - 0usize];
4534    ["Offset of field: _cef_base_ref_counted_t::add_ref"]
4535        [::std::mem::offset_of!(_cef_base_ref_counted_t, add_ref) - 8usize];
4536    ["Offset of field: _cef_base_ref_counted_t::release"]
4537        [::std::mem::offset_of!(_cef_base_ref_counted_t, release) - 16usize];
4538    ["Offset of field: _cef_base_ref_counted_t::has_one_ref"]
4539        [::std::mem::offset_of!(_cef_base_ref_counted_t, has_one_ref) - 24usize];
4540    ["Offset of field: _cef_base_ref_counted_t::has_at_least_one_ref"]
4541        [::std::mem::offset_of!(_cef_base_ref_counted_t, has_at_least_one_ref) - 32usize];
4542};
4543#[doc = "\n All ref-counted framework structures must include this structure first.\n"]
4544pub type cef_base_ref_counted_t = _cef_base_ref_counted_t;
4545#[doc = "\n All scoped framework structures must include this structure first.\n"]
4546#[repr(C)]
4547#[derive(Debug, Copy, Clone)]
4548pub struct _cef_base_scoped_t {
4549    #[doc = "\n Size of the data structure.\n"]
4550    pub size: usize,
4551    #[doc = "\n Called to delete this object. May be NULL if the object is not owned.\n"]
4552    pub del: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_base_scoped_t)>,
4553}
4554#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4555const _: () = {
4556    ["Size of _cef_base_scoped_t"][::std::mem::size_of::<_cef_base_scoped_t>() - 16usize];
4557    ["Alignment of _cef_base_scoped_t"][::std::mem::align_of::<_cef_base_scoped_t>() - 8usize];
4558    ["Offset of field: _cef_base_scoped_t::size"]
4559        [::std::mem::offset_of!(_cef_base_scoped_t, size) - 0usize];
4560    ["Offset of field: _cef_base_scoped_t::del"]
4561        [::std::mem::offset_of!(_cef_base_scoped_t, del) - 8usize];
4562};
4563#[doc = "\n All scoped framework structures must include this structure first.\n"]
4564pub type cef_base_scoped_t = _cef_base_scoped_t;
4565#[doc = "\n Structure that wraps other data value types. Complex types (binary,\n dictionary and list) will be referenced but not owned by this object. Can be\n used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
4566#[repr(C)]
4567#[derive(Debug, Copy, Clone)]
4568pub struct _cef_value_t {
4569    #[doc = "\n Base structure.\n"]
4570    pub base: cef_base_ref_counted_t,
4571    #[doc = "\n Returns true (1) if the underlying data is valid. This will always be true\n (1) for simple types. For complex types (binary, dictionary and list) the\n underlying data may become invalid if owned by another object (e.g. list\n or dictionary) and that other object is then modified or destroyed. This\n value object can be re-used by calling Set*() even if the underlying data\n is invalid.\n"]
4572    pub is_valid: ::std::option::Option<
4573        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4574    >,
4575    #[doc = "\n Returns true (1) if the underlying data is owned by another object.\n"]
4576    pub is_owned: ::std::option::Option<
4577        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4578    >,
4579    #[doc = "\n Returns true (1) if the underlying data is read-only. Some APIs may expose\n read-only objects.\n"]
4580    pub is_read_only: ::std::option::Option<
4581        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4582    >,
4583    #[doc = "\n Returns true (1) if this object and |that| object have the same underlying\n data. If true (1) modifications to this object will also affect |that|\n object and vice-versa.\n"]
4584    pub is_same: ::std::option::Option<
4585        unsafe extern "C" fn(
4586            self_: *mut _cef_value_t,
4587            that: *mut _cef_value_t,
4588        ) -> ::std::os::raw::c_int,
4589    >,
4590    #[doc = "\n Returns true (1) if this object and |that| object have an equivalent\n underlying value but are not necessarily the same object.\n"]
4591    pub is_equal: ::std::option::Option<
4592        unsafe extern "C" fn(
4593            self_: *mut _cef_value_t,
4594            that: *mut _cef_value_t,
4595        ) -> ::std::os::raw::c_int,
4596    >,
4597    #[doc = "\n Returns a copy of this object. The underlying data will also be copied.\n"]
4598    pub copy:
4599        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_value_t>,
4600    #[doc = "\n Returns the underlying value type.\n"]
4601    pub get_type:
4602        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> cef_value_type_t>,
4603    #[doc = "\n Returns the underlying value as type bool.\n"]
4604    pub get_bool: ::std::option::Option<
4605        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4606    >,
4607    #[doc = "\n Returns the underlying value as type int.\n"]
4608    pub get_int: ::std::option::Option<
4609        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4610    >,
4611    #[doc = "\n Returns the underlying value as type double.\n"]
4612    pub get_double: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> f64>,
4613    #[doc = "\n Returns the underlying value as type string.\n"]
4614    pub get_string: ::std::option::Option<
4615        unsafe extern "C" fn(self_: *mut _cef_value_t) -> cef_string_userfree_t,
4616    >,
4617    #[doc = "\n Returns the underlying value as type binary. The returned reference may\n become invalid if the value is owned by another object or if ownership is\n transferred to another object in the future. To maintain a reference to\n the value after assigning ownership to a dictionary or list pass this\n object to the set_value() function instead of passing the returned\n reference to set_binary().\n"]
4618    pub get_binary: ::std::option::Option<
4619        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_binary_value_t,
4620    >,
4621    #[doc = "\n Returns the underlying value as type dictionary. The returned reference\n may become invalid if the value is owned by another object or if ownership\n is transferred to another object in the future. To maintain a reference to\n the value after assigning ownership to a dictionary or list pass this\n object to the set_value() function instead of passing the returned\n reference to set_dictionary().\n"]
4622    pub get_dictionary: ::std::option::Option<
4623        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_dictionary_value_t,
4624    >,
4625    #[doc = "\n Returns the underlying value as type list. The returned reference may\n become invalid if the value is owned by another object or if ownership is\n transferred to another object in the future. To maintain a reference to\n the value after assigning ownership to a dictionary or list pass this\n object to the set_value() function instead of passing the returned\n reference to set_list().\n"]
4626    pub get_list: ::std::option::Option<
4627        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_list_value_t,
4628    >,
4629    #[doc = "\n Sets the underlying value as type null. Returns true (1) if the value was\n set successfully.\n"]
4630    pub set_null: ::std::option::Option<
4631        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4632    >,
4633    #[doc = "\n Sets the underlying value as type bool. Returns true (1) if the value was\n set successfully.\n"]
4634    pub set_bool: ::std::option::Option<
4635        unsafe extern "C" fn(
4636            self_: *mut _cef_value_t,
4637            value: ::std::os::raw::c_int,
4638        ) -> ::std::os::raw::c_int,
4639    >,
4640    #[doc = "\n Sets the underlying value as type int. Returns true (1) if the value was\n set successfully.\n"]
4641    pub set_int: ::std::option::Option<
4642        unsafe extern "C" fn(
4643            self_: *mut _cef_value_t,
4644            value: ::std::os::raw::c_int,
4645        ) -> ::std::os::raw::c_int,
4646    >,
4647    #[doc = "\n Sets the underlying value as type double. Returns true (1) if the value\n was set successfully.\n"]
4648    pub set_double: ::std::option::Option<
4649        unsafe extern "C" fn(self_: *mut _cef_value_t, value: f64) -> ::std::os::raw::c_int,
4650    >,
4651    #[doc = "\n Sets the underlying value as type string. Returns true (1) if the value\n was set successfully.\n"]
4652    pub set_string: ::std::option::Option<
4653        unsafe extern "C" fn(
4654            self_: *mut _cef_value_t,
4655            value: *const cef_string_t,
4656        ) -> ::std::os::raw::c_int,
4657    >,
4658    #[doc = "\n Sets the underlying value as type binary. Returns true (1) if the value\n was set successfully. This object keeps a reference to |value| and\n ownership of the underlying data remains unchanged.\n"]
4659    pub set_binary: ::std::option::Option<
4660        unsafe extern "C" fn(
4661            self_: *mut _cef_value_t,
4662            value: *mut _cef_binary_value_t,
4663        ) -> ::std::os::raw::c_int,
4664    >,
4665    #[doc = "\n Sets the underlying value as type dict. Returns true (1) if the value was\n set successfully. This object keeps a reference to |value| and ownership\n of the underlying data remains unchanged.\n"]
4666    pub set_dictionary: ::std::option::Option<
4667        unsafe extern "C" fn(
4668            self_: *mut _cef_value_t,
4669            value: *mut _cef_dictionary_value_t,
4670        ) -> ::std::os::raw::c_int,
4671    >,
4672    #[doc = "\n Sets the underlying value as type list. Returns true (1) if the value was\n set successfully. This object keeps a reference to |value| and ownership\n of the underlying data remains unchanged.\n"]
4673    pub set_list: ::std::option::Option<
4674        unsafe extern "C" fn(
4675            self_: *mut _cef_value_t,
4676            value: *mut _cef_list_value_t,
4677        ) -> ::std::os::raw::c_int,
4678    >,
4679}
4680#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4681const _: () = {
4682    ["Size of _cef_value_t"][::std::mem::size_of::<_cef_value_t>() - 216usize];
4683    ["Alignment of _cef_value_t"][::std::mem::align_of::<_cef_value_t>() - 8usize];
4684    ["Offset of field: _cef_value_t::base"][::std::mem::offset_of!(_cef_value_t, base) - 0usize];
4685    ["Offset of field: _cef_value_t::is_valid"]
4686        [::std::mem::offset_of!(_cef_value_t, is_valid) - 40usize];
4687    ["Offset of field: _cef_value_t::is_owned"]
4688        [::std::mem::offset_of!(_cef_value_t, is_owned) - 48usize];
4689    ["Offset of field: _cef_value_t::is_read_only"]
4690        [::std::mem::offset_of!(_cef_value_t, is_read_only) - 56usize];
4691    ["Offset of field: _cef_value_t::is_same"]
4692        [::std::mem::offset_of!(_cef_value_t, is_same) - 64usize];
4693    ["Offset of field: _cef_value_t::is_equal"]
4694        [::std::mem::offset_of!(_cef_value_t, is_equal) - 72usize];
4695    ["Offset of field: _cef_value_t::copy"][::std::mem::offset_of!(_cef_value_t, copy) - 80usize];
4696    ["Offset of field: _cef_value_t::get_type"]
4697        [::std::mem::offset_of!(_cef_value_t, get_type) - 88usize];
4698    ["Offset of field: _cef_value_t::get_bool"]
4699        [::std::mem::offset_of!(_cef_value_t, get_bool) - 96usize];
4700    ["Offset of field: _cef_value_t::get_int"]
4701        [::std::mem::offset_of!(_cef_value_t, get_int) - 104usize];
4702    ["Offset of field: _cef_value_t::get_double"]
4703        [::std::mem::offset_of!(_cef_value_t, get_double) - 112usize];
4704    ["Offset of field: _cef_value_t::get_string"]
4705        [::std::mem::offset_of!(_cef_value_t, get_string) - 120usize];
4706    ["Offset of field: _cef_value_t::get_binary"]
4707        [::std::mem::offset_of!(_cef_value_t, get_binary) - 128usize];
4708    ["Offset of field: _cef_value_t::get_dictionary"]
4709        [::std::mem::offset_of!(_cef_value_t, get_dictionary) - 136usize];
4710    ["Offset of field: _cef_value_t::get_list"]
4711        [::std::mem::offset_of!(_cef_value_t, get_list) - 144usize];
4712    ["Offset of field: _cef_value_t::set_null"]
4713        [::std::mem::offset_of!(_cef_value_t, set_null) - 152usize];
4714    ["Offset of field: _cef_value_t::set_bool"]
4715        [::std::mem::offset_of!(_cef_value_t, set_bool) - 160usize];
4716    ["Offset of field: _cef_value_t::set_int"]
4717        [::std::mem::offset_of!(_cef_value_t, set_int) - 168usize];
4718    ["Offset of field: _cef_value_t::set_double"]
4719        [::std::mem::offset_of!(_cef_value_t, set_double) - 176usize];
4720    ["Offset of field: _cef_value_t::set_string"]
4721        [::std::mem::offset_of!(_cef_value_t, set_string) - 184usize];
4722    ["Offset of field: _cef_value_t::set_binary"]
4723        [::std::mem::offset_of!(_cef_value_t, set_binary) - 192usize];
4724    ["Offset of field: _cef_value_t::set_dictionary"]
4725        [::std::mem::offset_of!(_cef_value_t, set_dictionary) - 200usize];
4726    ["Offset of field: _cef_value_t::set_list"]
4727        [::std::mem::offset_of!(_cef_value_t, set_list) - 208usize];
4728};
4729#[doc = "\n Structure that wraps other data value types. Complex types (binary,\n dictionary and list) will be referenced but not owned by this object. Can be\n used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
4730pub type cef_value_t = _cef_value_t;
4731unsafe extern "C" {
4732    #[doc = "\n Creates a new object.\n"]
4733    pub fn cef_value_create() -> *mut cef_value_t;
4734}
4735#[doc = "\n Structure representing a binary value. Can be used on any process and\n thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
4736#[repr(C)]
4737#[derive(Debug, Copy, Clone)]
4738pub struct _cef_binary_value_t {
4739    #[doc = "\n Base structure.\n"]
4740    pub base: cef_base_ref_counted_t,
4741    #[doc = "\n Returns true (1) if this object is valid. This object may become invalid\n if the underlying data is owned by another object (e.g. list or\n dictionary) and that other object is then modified or destroyed. Do not\n call any other functions if this function returns false (0).\n"]
4742    pub is_valid: ::std::option::Option<
4743        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> ::std::os::raw::c_int,
4744    >,
4745    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
4746    pub is_owned: ::std::option::Option<
4747        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> ::std::os::raw::c_int,
4748    >,
4749    #[doc = "\n Returns true (1) if this object and |that| object have the same underlying\n data.\n"]
4750    pub is_same: ::std::option::Option<
4751        unsafe extern "C" fn(
4752            self_: *mut _cef_binary_value_t,
4753            that: *mut _cef_binary_value_t,
4754        ) -> ::std::os::raw::c_int,
4755    >,
4756    #[doc = "\n Returns true (1) if this object and |that| object have an equivalent\n underlying value but are not necessarily the same object.\n"]
4757    pub is_equal: ::std::option::Option<
4758        unsafe extern "C" fn(
4759            self_: *mut _cef_binary_value_t,
4760            that: *mut _cef_binary_value_t,
4761        ) -> ::std::os::raw::c_int,
4762    >,
4763    #[doc = "\n Returns a copy of this object. The data in this object will also be\n copied.\n"]
4764    pub copy: ::std::option::Option<
4765        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> *mut _cef_binary_value_t,
4766    >,
4767    #[doc = "\n Returns a pointer to the beginning of the memory block. The returned\n pointer is valid as long as the cef_binary_value_t is alive.\n"]
4768    pub get_raw_data: ::std::option::Option<
4769        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> *const ::std::os::raw::c_void,
4770    >,
4771    #[doc = "\n Returns the data size.\n"]
4772    pub get_size:
4773        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> usize>,
4774    #[doc = "\n Read up to |buffer_size| number of bytes into |buffer|. Reading begins at\n the specified byte |data_offset|. Returns the number of bytes read.\n"]
4775    pub get_data: ::std::option::Option<
4776        unsafe extern "C" fn(
4777            self_: *mut _cef_binary_value_t,
4778            buffer: *mut ::std::os::raw::c_void,
4779            buffer_size: usize,
4780            data_offset: usize,
4781        ) -> usize,
4782    >,
4783}
4784#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4785const _: () = {
4786    ["Size of _cef_binary_value_t"][::std::mem::size_of::<_cef_binary_value_t>() - 104usize];
4787    ["Alignment of _cef_binary_value_t"][::std::mem::align_of::<_cef_binary_value_t>() - 8usize];
4788    ["Offset of field: _cef_binary_value_t::base"]
4789        [::std::mem::offset_of!(_cef_binary_value_t, base) - 0usize];
4790    ["Offset of field: _cef_binary_value_t::is_valid"]
4791        [::std::mem::offset_of!(_cef_binary_value_t, is_valid) - 40usize];
4792    ["Offset of field: _cef_binary_value_t::is_owned"]
4793        [::std::mem::offset_of!(_cef_binary_value_t, is_owned) - 48usize];
4794    ["Offset of field: _cef_binary_value_t::is_same"]
4795        [::std::mem::offset_of!(_cef_binary_value_t, is_same) - 56usize];
4796    ["Offset of field: _cef_binary_value_t::is_equal"]
4797        [::std::mem::offset_of!(_cef_binary_value_t, is_equal) - 64usize];
4798    ["Offset of field: _cef_binary_value_t::copy"]
4799        [::std::mem::offset_of!(_cef_binary_value_t, copy) - 72usize];
4800    ["Offset of field: _cef_binary_value_t::get_raw_data"]
4801        [::std::mem::offset_of!(_cef_binary_value_t, get_raw_data) - 80usize];
4802    ["Offset of field: _cef_binary_value_t::get_size"]
4803        [::std::mem::offset_of!(_cef_binary_value_t, get_size) - 88usize];
4804    ["Offset of field: _cef_binary_value_t::get_data"]
4805        [::std::mem::offset_of!(_cef_binary_value_t, get_data) - 96usize];
4806};
4807#[doc = "\n Structure representing a binary value. Can be used on any process and\n thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
4808pub type cef_binary_value_t = _cef_binary_value_t;
4809unsafe extern "C" {
4810    #[doc = "\n Creates a new object that is not owned by any other object. The specified\n |data| will be copied.\n"]
4811    pub fn cef_binary_value_create(
4812        data: *const ::std::os::raw::c_void,
4813        data_size: usize,
4814    ) -> *mut cef_binary_value_t;
4815}
4816#[doc = "\n Structure representing a dictionary value. Can be used on any process and\n thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
4817#[repr(C)]
4818#[derive(Debug, Copy, Clone)]
4819pub struct _cef_dictionary_value_t {
4820    #[doc = "\n Base structure.\n"]
4821    pub base: cef_base_ref_counted_t,
4822    #[doc = "\n Returns true (1) if this object is valid. This object may become invalid\n if the underlying data is owned by another object (e.g. list or\n dictionary) and that other object is then modified or destroyed. Do not\n call any other functions if this function returns false (0).\n"]
4823    pub is_valid: ::std::option::Option<
4824        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4825    >,
4826    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
4827    pub is_owned: ::std::option::Option<
4828        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4829    >,
4830    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
4831    pub is_read_only: ::std::option::Option<
4832        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4833    >,
4834    #[doc = "\n Returns true (1) if this object and |that| object have the same underlying\n data. If true (1) modifications to this object will also affect |that|\n object and vice-versa.\n"]
4835    pub is_same: ::std::option::Option<
4836        unsafe extern "C" fn(
4837            self_: *mut _cef_dictionary_value_t,
4838            that: *mut _cef_dictionary_value_t,
4839        ) -> ::std::os::raw::c_int,
4840    >,
4841    #[doc = "\n Returns true (1) if this object and |that| object have an equivalent\n underlying value but are not necessarily the same object.\n"]
4842    pub is_equal: ::std::option::Option<
4843        unsafe extern "C" fn(
4844            self_: *mut _cef_dictionary_value_t,
4845            that: *mut _cef_dictionary_value_t,
4846        ) -> ::std::os::raw::c_int,
4847    >,
4848    #[doc = "\n Returns a writable copy of this object. If |exclude_NULL_children| is true\n (1) any NULL dictionaries or lists will be excluded from the copy.\n"]
4849    pub copy: ::std::option::Option<
4850        unsafe extern "C" fn(
4851            self_: *mut _cef_dictionary_value_t,
4852            exclude_empty_children: ::std::os::raw::c_int,
4853        ) -> *mut _cef_dictionary_value_t,
4854    >,
4855    #[doc = "\n Returns the number of values.\n"]
4856    pub get_size:
4857        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> usize>,
4858    #[doc = "\n Removes all values. Returns true (1) on success.\n"]
4859    pub clear: ::std::option::Option<
4860        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4861    >,
4862    #[doc = "\n Returns true (1) if the current dictionary has a value for the given key.\n"]
4863    pub has_key: ::std::option::Option<
4864        unsafe extern "C" fn(
4865            self_: *mut _cef_dictionary_value_t,
4866            key: *const cef_string_t,
4867        ) -> ::std::os::raw::c_int,
4868    >,
4869    #[doc = "\n Reads all keys for this dictionary into the specified vector.\n"]
4870    pub get_keys: ::std::option::Option<
4871        unsafe extern "C" fn(
4872            self_: *mut _cef_dictionary_value_t,
4873            keys: cef_string_list_t,
4874        ) -> ::std::os::raw::c_int,
4875    >,
4876    #[doc = "\n Removes the value at the specified key. Returns true (1) is the value was\n removed successfully.\n"]
4877    pub remove: ::std::option::Option<
4878        unsafe extern "C" fn(
4879            self_: *mut _cef_dictionary_value_t,
4880            key: *const cef_string_t,
4881        ) -> ::std::os::raw::c_int,
4882    >,
4883    #[doc = "\n Returns the value type for the specified key.\n"]
4884    pub get_type: ::std::option::Option<
4885        unsafe extern "C" fn(
4886            self_: *mut _cef_dictionary_value_t,
4887            key: *const cef_string_t,
4888        ) -> cef_value_type_t,
4889    >,
4890    #[doc = "\n Returns the value at the specified key. For simple types the returned\n value will copy existing data and modifications to the value will not\n modify this object. For complex types (binary, dictionary and list) the\n returned value will reference existing data and modifications to the value\n will modify this object.\n"]
4891    pub get_value: ::std::option::Option<
4892        unsafe extern "C" fn(
4893            self_: *mut _cef_dictionary_value_t,
4894            key: *const cef_string_t,
4895        ) -> *mut _cef_value_t,
4896    >,
4897    #[doc = "\n Returns the value at the specified key as type bool.\n"]
4898    pub get_bool: ::std::option::Option<
4899        unsafe extern "C" fn(
4900            self_: *mut _cef_dictionary_value_t,
4901            key: *const cef_string_t,
4902        ) -> ::std::os::raw::c_int,
4903    >,
4904    #[doc = "\n Returns the value at the specified key as type int.\n"]
4905    pub get_int: ::std::option::Option<
4906        unsafe extern "C" fn(
4907            self_: *mut _cef_dictionary_value_t,
4908            key: *const cef_string_t,
4909        ) -> ::std::os::raw::c_int,
4910    >,
4911    #[doc = "\n Returns the value at the specified key as type double.\n"]
4912    pub get_double: ::std::option::Option<
4913        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t, key: *const cef_string_t) -> f64,
4914    >,
4915    #[doc = "\n Returns the value at the specified key as type string.\n"]
4916    pub get_string: ::std::option::Option<
4917        unsafe extern "C" fn(
4918            self_: *mut _cef_dictionary_value_t,
4919            key: *const cef_string_t,
4920        ) -> cef_string_userfree_t,
4921    >,
4922    #[doc = "\n Returns the value at the specified key as type binary. The returned value\n will reference existing data.\n"]
4923    pub get_binary: ::std::option::Option<
4924        unsafe extern "C" fn(
4925            self_: *mut _cef_dictionary_value_t,
4926            key: *const cef_string_t,
4927        ) -> *mut _cef_binary_value_t,
4928    >,
4929    #[doc = "\n Returns the value at the specified key as type dictionary. The returned\n value will reference existing data and modifications to the value will\n modify this object.\n"]
4930    pub get_dictionary: ::std::option::Option<
4931        unsafe extern "C" fn(
4932            self_: *mut _cef_dictionary_value_t,
4933            key: *const cef_string_t,
4934        ) -> *mut _cef_dictionary_value_t,
4935    >,
4936    #[doc = "\n Returns the value at the specified key as type list. The returned value\n will reference existing data and modifications to the value will modify\n this object.\n"]
4937    pub get_list: ::std::option::Option<
4938        unsafe extern "C" fn(
4939            self_: *mut _cef_dictionary_value_t,
4940            key: *const cef_string_t,
4941        ) -> *mut _cef_list_value_t,
4942    >,
4943    #[doc = "\n Sets the value at the specified key. Returns true (1) if the value was set\n successfully. If |value| represents simple data then the underlying data\n will be copied and modifications to |value| will not modify this object.\n If |value| represents complex data (binary, dictionary or list) then the\n underlying data will be referenced and modifications to |value| will\n modify this object.\n"]
4944    pub set_value: ::std::option::Option<
4945        unsafe extern "C" fn(
4946            self_: *mut _cef_dictionary_value_t,
4947            key: *const cef_string_t,
4948            value: *mut _cef_value_t,
4949        ) -> ::std::os::raw::c_int,
4950    >,
4951    #[doc = "\n Sets the value at the specified key as type null. Returns true (1) if the\n value was set successfully.\n"]
4952    pub set_null: ::std::option::Option<
4953        unsafe extern "C" fn(
4954            self_: *mut _cef_dictionary_value_t,
4955            key: *const cef_string_t,
4956        ) -> ::std::os::raw::c_int,
4957    >,
4958    #[doc = "\n Sets the value at the specified key as type bool. Returns true (1) if the\n value was set successfully.\n"]
4959    pub set_bool: ::std::option::Option<
4960        unsafe extern "C" fn(
4961            self_: *mut _cef_dictionary_value_t,
4962            key: *const cef_string_t,
4963            value: ::std::os::raw::c_int,
4964        ) -> ::std::os::raw::c_int,
4965    >,
4966    #[doc = "\n Sets the value at the specified key as type int. Returns true (1) if the\n value was set successfully.\n"]
4967    pub set_int: ::std::option::Option<
4968        unsafe extern "C" fn(
4969            self_: *mut _cef_dictionary_value_t,
4970            key: *const cef_string_t,
4971            value: ::std::os::raw::c_int,
4972        ) -> ::std::os::raw::c_int,
4973    >,
4974    #[doc = "\n Sets the value at the specified key as type double. Returns true (1) if\n the value was set successfully.\n"]
4975    pub set_double: ::std::option::Option<
4976        unsafe extern "C" fn(
4977            self_: *mut _cef_dictionary_value_t,
4978            key: *const cef_string_t,
4979            value: f64,
4980        ) -> ::std::os::raw::c_int,
4981    >,
4982    #[doc = "\n Sets the value at the specified key as type string. Returns true (1) if\n the value was set successfully.\n"]
4983    pub set_string: ::std::option::Option<
4984        unsafe extern "C" fn(
4985            self_: *mut _cef_dictionary_value_t,
4986            key: *const cef_string_t,
4987            value: *const cef_string_t,
4988        ) -> ::std::os::raw::c_int,
4989    >,
4990    #[doc = "\n Sets the value at the specified key as type binary. Returns true (1) if\n the value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
4991    pub set_binary: ::std::option::Option<
4992        unsafe extern "C" fn(
4993            self_: *mut _cef_dictionary_value_t,
4994            key: *const cef_string_t,
4995            value: *mut _cef_binary_value_t,
4996        ) -> ::std::os::raw::c_int,
4997    >,
4998    #[doc = "\n Sets the value at the specified key as type dict. Returns true (1) if the\n value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
4999    pub set_dictionary: ::std::option::Option<
5000        unsafe extern "C" fn(
5001            self_: *mut _cef_dictionary_value_t,
5002            key: *const cef_string_t,
5003            value: *mut _cef_dictionary_value_t,
5004        ) -> ::std::os::raw::c_int,
5005    >,
5006    #[doc = "\n Sets the value at the specified key as type list. Returns true (1) if the\n value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
5007    pub set_list: ::std::option::Option<
5008        unsafe extern "C" fn(
5009            self_: *mut _cef_dictionary_value_t,
5010            key: *const cef_string_t,
5011            value: *mut _cef_list_value_t,
5012        ) -> ::std::os::raw::c_int,
5013    >,
5014}
5015#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5016const _: () = {
5017    ["Size of _cef_dictionary_value_t"]
5018        [::std::mem::size_of::<_cef_dictionary_value_t>() - 272usize];
5019    ["Alignment of _cef_dictionary_value_t"]
5020        [::std::mem::align_of::<_cef_dictionary_value_t>() - 8usize];
5021    ["Offset of field: _cef_dictionary_value_t::base"]
5022        [::std::mem::offset_of!(_cef_dictionary_value_t, base) - 0usize];
5023    ["Offset of field: _cef_dictionary_value_t::is_valid"]
5024        [::std::mem::offset_of!(_cef_dictionary_value_t, is_valid) - 40usize];
5025    ["Offset of field: _cef_dictionary_value_t::is_owned"]
5026        [::std::mem::offset_of!(_cef_dictionary_value_t, is_owned) - 48usize];
5027    ["Offset of field: _cef_dictionary_value_t::is_read_only"]
5028        [::std::mem::offset_of!(_cef_dictionary_value_t, is_read_only) - 56usize];
5029    ["Offset of field: _cef_dictionary_value_t::is_same"]
5030        [::std::mem::offset_of!(_cef_dictionary_value_t, is_same) - 64usize];
5031    ["Offset of field: _cef_dictionary_value_t::is_equal"]
5032        [::std::mem::offset_of!(_cef_dictionary_value_t, is_equal) - 72usize];
5033    ["Offset of field: _cef_dictionary_value_t::copy"]
5034        [::std::mem::offset_of!(_cef_dictionary_value_t, copy) - 80usize];
5035    ["Offset of field: _cef_dictionary_value_t::get_size"]
5036        [::std::mem::offset_of!(_cef_dictionary_value_t, get_size) - 88usize];
5037    ["Offset of field: _cef_dictionary_value_t::clear"]
5038        [::std::mem::offset_of!(_cef_dictionary_value_t, clear) - 96usize];
5039    ["Offset of field: _cef_dictionary_value_t::has_key"]
5040        [::std::mem::offset_of!(_cef_dictionary_value_t, has_key) - 104usize];
5041    ["Offset of field: _cef_dictionary_value_t::get_keys"]
5042        [::std::mem::offset_of!(_cef_dictionary_value_t, get_keys) - 112usize];
5043    ["Offset of field: _cef_dictionary_value_t::remove"]
5044        [::std::mem::offset_of!(_cef_dictionary_value_t, remove) - 120usize];
5045    ["Offset of field: _cef_dictionary_value_t::get_type"]
5046        [::std::mem::offset_of!(_cef_dictionary_value_t, get_type) - 128usize];
5047    ["Offset of field: _cef_dictionary_value_t::get_value"]
5048        [::std::mem::offset_of!(_cef_dictionary_value_t, get_value) - 136usize];
5049    ["Offset of field: _cef_dictionary_value_t::get_bool"]
5050        [::std::mem::offset_of!(_cef_dictionary_value_t, get_bool) - 144usize];
5051    ["Offset of field: _cef_dictionary_value_t::get_int"]
5052        [::std::mem::offset_of!(_cef_dictionary_value_t, get_int) - 152usize];
5053    ["Offset of field: _cef_dictionary_value_t::get_double"]
5054        [::std::mem::offset_of!(_cef_dictionary_value_t, get_double) - 160usize];
5055    ["Offset of field: _cef_dictionary_value_t::get_string"]
5056        [::std::mem::offset_of!(_cef_dictionary_value_t, get_string) - 168usize];
5057    ["Offset of field: _cef_dictionary_value_t::get_binary"]
5058        [::std::mem::offset_of!(_cef_dictionary_value_t, get_binary) - 176usize];
5059    ["Offset of field: _cef_dictionary_value_t::get_dictionary"]
5060        [::std::mem::offset_of!(_cef_dictionary_value_t, get_dictionary) - 184usize];
5061    ["Offset of field: _cef_dictionary_value_t::get_list"]
5062        [::std::mem::offset_of!(_cef_dictionary_value_t, get_list) - 192usize];
5063    ["Offset of field: _cef_dictionary_value_t::set_value"]
5064        [::std::mem::offset_of!(_cef_dictionary_value_t, set_value) - 200usize];
5065    ["Offset of field: _cef_dictionary_value_t::set_null"]
5066        [::std::mem::offset_of!(_cef_dictionary_value_t, set_null) - 208usize];
5067    ["Offset of field: _cef_dictionary_value_t::set_bool"]
5068        [::std::mem::offset_of!(_cef_dictionary_value_t, set_bool) - 216usize];
5069    ["Offset of field: _cef_dictionary_value_t::set_int"]
5070        [::std::mem::offset_of!(_cef_dictionary_value_t, set_int) - 224usize];
5071    ["Offset of field: _cef_dictionary_value_t::set_double"]
5072        [::std::mem::offset_of!(_cef_dictionary_value_t, set_double) - 232usize];
5073    ["Offset of field: _cef_dictionary_value_t::set_string"]
5074        [::std::mem::offset_of!(_cef_dictionary_value_t, set_string) - 240usize];
5075    ["Offset of field: _cef_dictionary_value_t::set_binary"]
5076        [::std::mem::offset_of!(_cef_dictionary_value_t, set_binary) - 248usize];
5077    ["Offset of field: _cef_dictionary_value_t::set_dictionary"]
5078        [::std::mem::offset_of!(_cef_dictionary_value_t, set_dictionary) - 256usize];
5079    ["Offset of field: _cef_dictionary_value_t::set_list"]
5080        [::std::mem::offset_of!(_cef_dictionary_value_t, set_list) - 264usize];
5081};
5082#[doc = "\n Structure representing a dictionary value. Can be used on any process and\n thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5083pub type cef_dictionary_value_t = _cef_dictionary_value_t;
5084unsafe extern "C" {
5085    #[doc = "\n Creates a new object that is not owned by any other object.\n"]
5086    pub fn cef_dictionary_value_create() -> *mut cef_dictionary_value_t;
5087}
5088#[doc = "\n Structure representing a list value. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5089#[repr(C)]
5090#[derive(Debug, Copy, Clone)]
5091pub struct _cef_list_value_t {
5092    #[doc = "\n Base structure.\n"]
5093    pub base: cef_base_ref_counted_t,
5094    #[doc = "\n Returns true (1) if this object is valid. This object may become invalid\n if the underlying data is owned by another object (e.g. list or\n dictionary) and that other object is then modified or destroyed. Do not\n call any other functions if this function returns false (0).\n"]
5095    pub is_valid: ::std::option::Option<
5096        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
5097    >,
5098    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
5099    pub is_owned: ::std::option::Option<
5100        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
5101    >,
5102    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
5103    pub is_read_only: ::std::option::Option<
5104        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
5105    >,
5106    #[doc = "\n Returns true (1) if this object and |that| object have the same underlying\n data. If true (1) modifications to this object will also affect |that|\n object and vice-versa.\n"]
5107    pub is_same: ::std::option::Option<
5108        unsafe extern "C" fn(
5109            self_: *mut _cef_list_value_t,
5110            that: *mut _cef_list_value_t,
5111        ) -> ::std::os::raw::c_int,
5112    >,
5113    #[doc = "\n Returns true (1) if this object and |that| object have an equivalent\n underlying value but are not necessarily the same object.\n"]
5114    pub is_equal: ::std::option::Option<
5115        unsafe extern "C" fn(
5116            self_: *mut _cef_list_value_t,
5117            that: *mut _cef_list_value_t,
5118        ) -> ::std::os::raw::c_int,
5119    >,
5120    #[doc = "\n Returns a writable copy of this object.\n"]
5121    pub copy: ::std::option::Option<
5122        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> *mut _cef_list_value_t,
5123    >,
5124    #[doc = "\n Sets the number of values. If the number of values is expanded all new\n value slots will default to type null. Returns true (1) on success.\n"]
5125    pub set_size: ::std::option::Option<
5126        unsafe extern "C" fn(self_: *mut _cef_list_value_t, size: usize) -> ::std::os::raw::c_int,
5127    >,
5128    #[doc = "\n Returns the number of values.\n"]
5129    pub get_size:
5130        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> usize>,
5131    #[doc = "\n Removes all values. Returns true (1) on success.\n"]
5132    pub clear: ::std::option::Option<
5133        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
5134    >,
5135    #[doc = "\n Removes the value at the specified index.\n"]
5136    pub remove: ::std::option::Option<
5137        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
5138    >,
5139    #[doc = "\n Returns the value type at the specified index.\n"]
5140    pub get_type: ::std::option::Option<
5141        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> cef_value_type_t,
5142    >,
5143    #[doc = "\n Returns the value at the specified index. For simple types the returned\n value will copy existing data and modifications to the value will not\n modify this object. For complex types (binary, dictionary and list) the\n returned value will reference existing data and modifications to the value\n will modify this object.\n"]
5144    pub get_value: ::std::option::Option<
5145        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> *mut _cef_value_t,
5146    >,
5147    #[doc = "\n Returns the value at the specified index as type bool.\n"]
5148    pub get_bool: ::std::option::Option<
5149        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
5150    >,
5151    #[doc = "\n Returns the value at the specified index as type int.\n"]
5152    pub get_int: ::std::option::Option<
5153        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
5154    >,
5155    #[doc = "\n Returns the value at the specified index as type double.\n"]
5156    pub get_double: ::std::option::Option<
5157        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> f64,
5158    >,
5159    #[doc = "\n Returns the value at the specified index as type string.\n"]
5160    pub get_string: ::std::option::Option<
5161        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> cef_string_userfree_t,
5162    >,
5163    #[doc = "\n Returns the value at the specified index as type binary. The returned\n value will reference existing data.\n"]
5164    pub get_binary: ::std::option::Option<
5165        unsafe extern "C" fn(
5166            self_: *mut _cef_list_value_t,
5167            index: usize,
5168        ) -> *mut _cef_binary_value_t,
5169    >,
5170    #[doc = "\n Returns the value at the specified index as type dictionary. The returned\n value will reference existing data and modifications to the value will\n modify this object.\n"]
5171    pub get_dictionary: ::std::option::Option<
5172        unsafe extern "C" fn(
5173            self_: *mut _cef_list_value_t,
5174            index: usize,
5175        ) -> *mut _cef_dictionary_value_t,
5176    >,
5177    #[doc = "\n Returns the value at the specified index as type list. The returned value\n will reference existing data and modifications to the value will modify\n this object.\n"]
5178    pub get_list: ::std::option::Option<
5179        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> *mut _cef_list_value_t,
5180    >,
5181    #[doc = "\n Sets the value at the specified index. Returns true (1) if the value was\n set successfully. If |value| represents simple data then the underlying\n data will be copied and modifications to |value| will not modify this\n object. If |value| represents complex data (binary, dictionary or list)\n then the underlying data will be referenced and modifications to |value|\n will modify this object.\n"]
5182    pub set_value: ::std::option::Option<
5183        unsafe extern "C" fn(
5184            self_: *mut _cef_list_value_t,
5185            index: usize,
5186            value: *mut _cef_value_t,
5187        ) -> ::std::os::raw::c_int,
5188    >,
5189    #[doc = "\n Sets the value at the specified index as type null. Returns true (1) if\n the value was set successfully.\n"]
5190    pub set_null: ::std::option::Option<
5191        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
5192    >,
5193    #[doc = "\n Sets the value at the specified index as type bool. Returns true (1) if\n the value was set successfully.\n"]
5194    pub set_bool: ::std::option::Option<
5195        unsafe extern "C" fn(
5196            self_: *mut _cef_list_value_t,
5197            index: usize,
5198            value: ::std::os::raw::c_int,
5199        ) -> ::std::os::raw::c_int,
5200    >,
5201    #[doc = "\n Sets the value at the specified index as type int. Returns true (1) if the\n value was set successfully.\n"]
5202    pub set_int: ::std::option::Option<
5203        unsafe extern "C" fn(
5204            self_: *mut _cef_list_value_t,
5205            index: usize,
5206            value: ::std::os::raw::c_int,
5207        ) -> ::std::os::raw::c_int,
5208    >,
5209    #[doc = "\n Sets the value at the specified index as type double. Returns true (1) if\n the value was set successfully.\n"]
5210    pub set_double: ::std::option::Option<
5211        unsafe extern "C" fn(
5212            self_: *mut _cef_list_value_t,
5213            index: usize,
5214            value: f64,
5215        ) -> ::std::os::raw::c_int,
5216    >,
5217    #[doc = "\n Sets the value at the specified index as type string. Returns true (1) if\n the value was set successfully.\n"]
5218    pub set_string: ::std::option::Option<
5219        unsafe extern "C" fn(
5220            self_: *mut _cef_list_value_t,
5221            index: usize,
5222            value: *const cef_string_t,
5223        ) -> ::std::os::raw::c_int,
5224    >,
5225    #[doc = "\n Sets the value at the specified index as type binary. Returns true (1) if\n the value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
5226    pub set_binary: ::std::option::Option<
5227        unsafe extern "C" fn(
5228            self_: *mut _cef_list_value_t,
5229            index: usize,
5230            value: *mut _cef_binary_value_t,
5231        ) -> ::std::os::raw::c_int,
5232    >,
5233    #[doc = "\n Sets the value at the specified index as type dict. Returns true (1) if\n the value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
5234    pub set_dictionary: ::std::option::Option<
5235        unsafe extern "C" fn(
5236            self_: *mut _cef_list_value_t,
5237            index: usize,
5238            value: *mut _cef_dictionary_value_t,
5239        ) -> ::std::os::raw::c_int,
5240    >,
5241    #[doc = "\n Sets the value at the specified index as type list. Returns true (1) if\n the value was set successfully. If |value| is currently owned by another\n object then the value will be copied and the |value| reference will not\n change. Otherwise, ownership will be transferred to this object and the\n |value| reference will be invalidated.\n"]
5242    pub set_list: ::std::option::Option<
5243        unsafe extern "C" fn(
5244            self_: *mut _cef_list_value_t,
5245            index: usize,
5246            value: *mut _cef_list_value_t,
5247        ) -> ::std::os::raw::c_int,
5248    >,
5249}
5250#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5251const _: () = {
5252    ["Size of _cef_list_value_t"][::std::mem::size_of::<_cef_list_value_t>() - 264usize];
5253    ["Alignment of _cef_list_value_t"][::std::mem::align_of::<_cef_list_value_t>() - 8usize];
5254    ["Offset of field: _cef_list_value_t::base"]
5255        [::std::mem::offset_of!(_cef_list_value_t, base) - 0usize];
5256    ["Offset of field: _cef_list_value_t::is_valid"]
5257        [::std::mem::offset_of!(_cef_list_value_t, is_valid) - 40usize];
5258    ["Offset of field: _cef_list_value_t::is_owned"]
5259        [::std::mem::offset_of!(_cef_list_value_t, is_owned) - 48usize];
5260    ["Offset of field: _cef_list_value_t::is_read_only"]
5261        [::std::mem::offset_of!(_cef_list_value_t, is_read_only) - 56usize];
5262    ["Offset of field: _cef_list_value_t::is_same"]
5263        [::std::mem::offset_of!(_cef_list_value_t, is_same) - 64usize];
5264    ["Offset of field: _cef_list_value_t::is_equal"]
5265        [::std::mem::offset_of!(_cef_list_value_t, is_equal) - 72usize];
5266    ["Offset of field: _cef_list_value_t::copy"]
5267        [::std::mem::offset_of!(_cef_list_value_t, copy) - 80usize];
5268    ["Offset of field: _cef_list_value_t::set_size"]
5269        [::std::mem::offset_of!(_cef_list_value_t, set_size) - 88usize];
5270    ["Offset of field: _cef_list_value_t::get_size"]
5271        [::std::mem::offset_of!(_cef_list_value_t, get_size) - 96usize];
5272    ["Offset of field: _cef_list_value_t::clear"]
5273        [::std::mem::offset_of!(_cef_list_value_t, clear) - 104usize];
5274    ["Offset of field: _cef_list_value_t::remove"]
5275        [::std::mem::offset_of!(_cef_list_value_t, remove) - 112usize];
5276    ["Offset of field: _cef_list_value_t::get_type"]
5277        [::std::mem::offset_of!(_cef_list_value_t, get_type) - 120usize];
5278    ["Offset of field: _cef_list_value_t::get_value"]
5279        [::std::mem::offset_of!(_cef_list_value_t, get_value) - 128usize];
5280    ["Offset of field: _cef_list_value_t::get_bool"]
5281        [::std::mem::offset_of!(_cef_list_value_t, get_bool) - 136usize];
5282    ["Offset of field: _cef_list_value_t::get_int"]
5283        [::std::mem::offset_of!(_cef_list_value_t, get_int) - 144usize];
5284    ["Offset of field: _cef_list_value_t::get_double"]
5285        [::std::mem::offset_of!(_cef_list_value_t, get_double) - 152usize];
5286    ["Offset of field: _cef_list_value_t::get_string"]
5287        [::std::mem::offset_of!(_cef_list_value_t, get_string) - 160usize];
5288    ["Offset of field: _cef_list_value_t::get_binary"]
5289        [::std::mem::offset_of!(_cef_list_value_t, get_binary) - 168usize];
5290    ["Offset of field: _cef_list_value_t::get_dictionary"]
5291        [::std::mem::offset_of!(_cef_list_value_t, get_dictionary) - 176usize];
5292    ["Offset of field: _cef_list_value_t::get_list"]
5293        [::std::mem::offset_of!(_cef_list_value_t, get_list) - 184usize];
5294    ["Offset of field: _cef_list_value_t::set_value"]
5295        [::std::mem::offset_of!(_cef_list_value_t, set_value) - 192usize];
5296    ["Offset of field: _cef_list_value_t::set_null"]
5297        [::std::mem::offset_of!(_cef_list_value_t, set_null) - 200usize];
5298    ["Offset of field: _cef_list_value_t::set_bool"]
5299        [::std::mem::offset_of!(_cef_list_value_t, set_bool) - 208usize];
5300    ["Offset of field: _cef_list_value_t::set_int"]
5301        [::std::mem::offset_of!(_cef_list_value_t, set_int) - 216usize];
5302    ["Offset of field: _cef_list_value_t::set_double"]
5303        [::std::mem::offset_of!(_cef_list_value_t, set_double) - 224usize];
5304    ["Offset of field: _cef_list_value_t::set_string"]
5305        [::std::mem::offset_of!(_cef_list_value_t, set_string) - 232usize];
5306    ["Offset of field: _cef_list_value_t::set_binary"]
5307        [::std::mem::offset_of!(_cef_list_value_t, set_binary) - 240usize];
5308    ["Offset of field: _cef_list_value_t::set_dictionary"]
5309        [::std::mem::offset_of!(_cef_list_value_t, set_dictionary) - 248usize];
5310    ["Offset of field: _cef_list_value_t::set_list"]
5311        [::std::mem::offset_of!(_cef_list_value_t, set_list) - 256usize];
5312};
5313#[doc = "\n Structure representing a list value. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5314pub type cef_list_value_t = _cef_list_value_t;
5315unsafe extern "C" {
5316    #[doc = "\n Creates a new object that is not owned by any other object.\n"]
5317    pub fn cef_list_value_create() -> *mut cef_list_value_t;
5318}
5319#[doc = "\n Implement this structure to receive accessibility notification when\n accessibility events have been registered. The functions of this structure\n will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
5320#[repr(C)]
5321#[derive(Debug, Copy, Clone)]
5322pub struct _cef_accessibility_handler_t {
5323    #[doc = "\n Base structure.\n"]
5324    pub base: cef_base_ref_counted_t,
5325    #[doc = "\n Called after renderer process sends accessibility tree changes to the\n browser process.\n"]
5326    pub on_accessibility_tree_change: ::std::option::Option<
5327        unsafe extern "C" fn(self_: *mut _cef_accessibility_handler_t, value: *mut _cef_value_t),
5328    >,
5329    #[doc = "\n Called after renderer process sends accessibility location changes to the\n browser process.\n"]
5330    pub on_accessibility_location_change: ::std::option::Option<
5331        unsafe extern "C" fn(self_: *mut _cef_accessibility_handler_t, value: *mut _cef_value_t),
5332    >,
5333}
5334#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5335const _: () = {
5336    ["Size of _cef_accessibility_handler_t"]
5337        [::std::mem::size_of::<_cef_accessibility_handler_t>() - 56usize];
5338    ["Alignment of _cef_accessibility_handler_t"]
5339        [::std::mem::align_of::<_cef_accessibility_handler_t>() - 8usize];
5340    ["Offset of field: _cef_accessibility_handler_t::base"]
5341        [::std::mem::offset_of!(_cef_accessibility_handler_t, base) - 0usize];
5342    ["Offset of field: _cef_accessibility_handler_t::on_accessibility_tree_change"][::std::mem::offset_of!(
5343        _cef_accessibility_handler_t,
5344        on_accessibility_tree_change
5345    ) - 40usize];
5346    ["Offset of field: _cef_accessibility_handler_t::on_accessibility_location_change"][::std::mem::offset_of!(
5347        _cef_accessibility_handler_t,
5348        on_accessibility_location_change
5349    )
5350        - 48usize];
5351};
5352#[doc = "\n Implement this structure to receive accessibility notification when\n accessibility events have been registered. The functions of this structure\n will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
5353pub type cef_accessibility_handler_t = _cef_accessibility_handler_t;
5354#[doc = "\n Callback structure for cef_browser_host_t::AddDevToolsMessageObserver. The\n functions of this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
5355#[repr(C)]
5356#[derive(Debug, Copy, Clone)]
5357pub struct _cef_dev_tools_message_observer_t {
5358    #[doc = "\n Base structure.\n"]
5359    pub base: cef_base_ref_counted_t,
5360    #[doc = "\n Method that will be called on receipt of a DevTools protocol message.\n |browser| is the originating browser instance. |message| is a UTF8-encoded\n JSON dictionary representing either a function result or an event.\n |message| is only valid for the scope of this callback and should be\n copied if necessary. Return true (1) if the message was handled or false\n (0) if the message should be further processed and passed to the\n OnDevToolsMethodResult or OnDevToolsEvent functions as appropriate.\n\n Method result dictionaries include an \"id\" (int) value that identifies the\n orginating function call sent from\n cef_browser_host_t::SendDevToolsMessage, and optionally either a \"result\"\n (dictionary) or \"error\" (dictionary) value. The \"error\" dictionary will\n contain \"code\" (int) and \"message\" (string) values. Event dictionaries\n include a \"function\" (string) value and optionally a \"params\" (dictionary)\n value. See the DevTools protocol documentation at\n https://chromedevtools.github.io/devtools-protocol/ for details of\n supported function calls and the expected \"result\" or \"params\" dictionary\n contents. JSON dictionaries can be parsed using the CefParseJSON function\n if desired, however be aware of performance considerations when parsing\n large messages (some of which may exceed 1MB in size).\n"]
5361    pub on_dev_tools_message: ::std::option::Option<
5362        unsafe extern "C" fn(
5363            self_: *mut _cef_dev_tools_message_observer_t,
5364            browser: *mut _cef_browser_t,
5365            message: *const ::std::os::raw::c_void,
5366            message_size: usize,
5367        ) -> ::std::os::raw::c_int,
5368    >,
5369    #[doc = "\n Method that will be called after attempted execution of a DevTools\n protocol function. |browser| is the originating browser instance.\n |message_id| is the \"id\" value that identifies the originating function\n call message. If the function succeeded |success| will be true (1) and\n |result| will be the UTF8-encoded JSON \"result\" dictionary value (which\n may be NULL). If the function failed |success| will be false (0) and\n |result| will be the UTF8-encoded JSON \"error\" dictionary value. |result|\n is only valid for the scope of this callback and should be copied if\n necessary. See the OnDevToolsMessage documentation for additional details\n on |result| contents.\n"]
5370    pub on_dev_tools_method_result: ::std::option::Option<
5371        unsafe extern "C" fn(
5372            self_: *mut _cef_dev_tools_message_observer_t,
5373            browser: *mut _cef_browser_t,
5374            message_id: ::std::os::raw::c_int,
5375            success: ::std::os::raw::c_int,
5376            result: *const ::std::os::raw::c_void,
5377            result_size: usize,
5378        ),
5379    >,
5380    #[doc = "\n Method that will be called on receipt of a DevTools protocol event.\n |browser| is the originating browser instance. |function| is the\n \"function\" value. |params| is the UTF8-encoded JSON \"params\" dictionary\n value (which may be NULL). |params| is only valid for the scope of this\n callback and should be copied if necessary. See the OnDevToolsMessage\n documentation for additional details on |params| contents.\n"]
5381    pub on_dev_tools_event: ::std::option::Option<
5382        unsafe extern "C" fn(
5383            self_: *mut _cef_dev_tools_message_observer_t,
5384            browser: *mut _cef_browser_t,
5385            method: *const cef_string_t,
5386            params: *const ::std::os::raw::c_void,
5387            params_size: usize,
5388        ),
5389    >,
5390    #[doc = "\n Method that will be called when the DevTools agent has attached. |browser|\n is the originating browser instance. This will generally occur in response\n to the first message sent while the agent is detached.\n"]
5391    pub on_dev_tools_agent_attached: ::std::option::Option<
5392        unsafe extern "C" fn(
5393            self_: *mut _cef_dev_tools_message_observer_t,
5394            browser: *mut _cef_browser_t,
5395        ),
5396    >,
5397    #[doc = "\n Method that will be called when the DevTools agent has detached. |browser|\n is the originating browser instance. Any function results that were\n pending before the agent became detached will not be delivered, and any\n active event subscriptions will be canceled.\n"]
5398    pub on_dev_tools_agent_detached: ::std::option::Option<
5399        unsafe extern "C" fn(
5400            self_: *mut _cef_dev_tools_message_observer_t,
5401            browser: *mut _cef_browser_t,
5402        ),
5403    >,
5404}
5405#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5406const _: () = {
5407    ["Size of _cef_dev_tools_message_observer_t"]
5408        [::std::mem::size_of::<_cef_dev_tools_message_observer_t>() - 80usize];
5409    ["Alignment of _cef_dev_tools_message_observer_t"]
5410        [::std::mem::align_of::<_cef_dev_tools_message_observer_t>() - 8usize];
5411    ["Offset of field: _cef_dev_tools_message_observer_t::base"]
5412        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, base) - 0usize];
5413    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_message"]
5414        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, on_dev_tools_message) - 40usize];
5415    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_method_result"][::std::mem::offset_of!(
5416        _cef_dev_tools_message_observer_t,
5417        on_dev_tools_method_result
5418    ) - 48usize];
5419    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_event"]
5420        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, on_dev_tools_event) - 56usize];
5421    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_agent_attached"][::std::mem::offset_of!(
5422        _cef_dev_tools_message_observer_t,
5423        on_dev_tools_agent_attached
5424    )
5425        - 64usize];
5426    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_agent_detached"][::std::mem::offset_of!(
5427        _cef_dev_tools_message_observer_t,
5428        on_dev_tools_agent_detached
5429    )
5430        - 72usize];
5431};
5432#[doc = "\n Callback structure for cef_browser_host_t::AddDevToolsMessageObserver. The\n functions of this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
5433pub type cef_dev_tools_message_observer_t = _cef_dev_tools_message_observer_t;
5434#[doc = "\n Container for a single image represented at different scale factors. All\n image representations should be the same size in density independent pixel\n (DIP) units. For example, if the image at scale factor 1.0 is 100x100 pixels\n then the image at scale factor 2.0 should be 200x200 pixels -- both images\n will display with a DIP size of 100x100 units. The functions of this\n structure can be called on any browser process thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5435#[repr(C)]
5436#[derive(Debug, Copy, Clone)]
5437pub struct _cef_image_t {
5438    #[doc = "\n Base structure.\n"]
5439    pub base: cef_base_ref_counted_t,
5440    #[doc = "\n Returns true (1) if this Image is NULL.\n"]
5441    pub is_empty: ::std::option::Option<
5442        unsafe extern "C" fn(self_: *mut _cef_image_t) -> ::std::os::raw::c_int,
5443    >,
5444    #[doc = "\n Returns true (1) if this Image and |that| Image share the same underlying\n storage. Will also return true (1) if both images are NULL.\n"]
5445    pub is_same: ::std::option::Option<
5446        unsafe extern "C" fn(
5447            self_: *mut _cef_image_t,
5448            that: *mut _cef_image_t,
5449        ) -> ::std::os::raw::c_int,
5450    >,
5451    #[doc = "\n Add a bitmap image representation for |scale_factor|. Only 32-bit\n RGBA/BGRA formats are supported. |pixel_width| and |pixel_height| are the\n bitmap representation size in pixel coordinates. |pixel_data| is the array\n of pixel data and should be |pixel_width| x |pixel_height| x 4 bytes in\n size. |color_type| and |alpha_type| values specify the pixel format.\n"]
5452    pub add_bitmap: ::std::option::Option<
5453        unsafe extern "C" fn(
5454            self_: *mut _cef_image_t,
5455            scale_factor: f32,
5456            pixel_width: ::std::os::raw::c_int,
5457            pixel_height: ::std::os::raw::c_int,
5458            color_type: cef_color_type_t,
5459            alpha_type: cef_alpha_type_t,
5460            pixel_data: *const ::std::os::raw::c_void,
5461            pixel_data_size: usize,
5462        ) -> ::std::os::raw::c_int,
5463    >,
5464    #[doc = "\n Add a PNG image representation for |scale_factor|. |png_data| is the image\n data of size |png_data_size|. Any alpha transparency in the PNG data will\n be maintained.\n"]
5465    pub add_png: ::std::option::Option<
5466        unsafe extern "C" fn(
5467            self_: *mut _cef_image_t,
5468            scale_factor: f32,
5469            png_data: *const ::std::os::raw::c_void,
5470            png_data_size: usize,
5471        ) -> ::std::os::raw::c_int,
5472    >,
5473    #[doc = "\n Create a JPEG image representation for |scale_factor|. |jpeg_data| is the\n image data of size |jpeg_data_size|. The JPEG format does not support\n transparency so the alpha byte will be set to 0xFF for all pixels.\n"]
5474    pub add_jpeg: ::std::option::Option<
5475        unsafe extern "C" fn(
5476            self_: *mut _cef_image_t,
5477            scale_factor: f32,
5478            jpeg_data: *const ::std::os::raw::c_void,
5479            jpeg_data_size: usize,
5480        ) -> ::std::os::raw::c_int,
5481    >,
5482    #[doc = "\n Returns the image width in density independent pixel (DIP) units.\n"]
5483    pub get_width: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_image_t) -> usize>,
5484    #[doc = "\n Returns the image height in density independent pixel (DIP) units.\n"]
5485    pub get_height: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_image_t) -> usize>,
5486    #[doc = "\n Returns true (1) if this image contains a representation for\n |scale_factor|.\n"]
5487    pub has_representation: ::std::option::Option<
5488        unsafe extern "C" fn(self_: *mut _cef_image_t, scale_factor: f32) -> ::std::os::raw::c_int,
5489    >,
5490    #[doc = "\n Removes the representation for |scale_factor|. Returns true (1) on\n success.\n"]
5491    pub remove_representation: ::std::option::Option<
5492        unsafe extern "C" fn(self_: *mut _cef_image_t, scale_factor: f32) -> ::std::os::raw::c_int,
5493    >,
5494    #[doc = "\n Returns information for the representation that most closely matches\n |scale_factor|. |actual_scale_factor| is the actual scale factor for the\n representation. |pixel_width| and |pixel_height| are the representation\n size in pixel coordinates. Returns true (1) on success.\n"]
5495    pub get_representation_info: ::std::option::Option<
5496        unsafe extern "C" fn(
5497            self_: *mut _cef_image_t,
5498            scale_factor: f32,
5499            actual_scale_factor: *mut f32,
5500            pixel_width: *mut ::std::os::raw::c_int,
5501            pixel_height: *mut ::std::os::raw::c_int,
5502        ) -> ::std::os::raw::c_int,
5503    >,
5504    #[doc = "\n Returns the bitmap representation that most closely matches\n |scale_factor|. Only 32-bit RGBA/BGRA formats are supported. |color_type|\n and |alpha_type| values specify the desired output pixel format.\n |pixel_width| and |pixel_height| are the output representation size in\n pixel coordinates. Returns a cef_binary_value_t containing the pixel data\n on success or NULL on failure.\n"]
5505    pub get_as_bitmap: ::std::option::Option<
5506        unsafe extern "C" fn(
5507            self_: *mut _cef_image_t,
5508            scale_factor: f32,
5509            color_type: cef_color_type_t,
5510            alpha_type: cef_alpha_type_t,
5511            pixel_width: *mut ::std::os::raw::c_int,
5512            pixel_height: *mut ::std::os::raw::c_int,
5513        ) -> *mut _cef_binary_value_t,
5514    >,
5515    #[doc = "\n Returns the PNG representation that most closely matches |scale_factor|.\n If |with_transparency| is true (1) any alpha transparency in the image\n will be represented in the resulting PNG data. |pixel_width| and\n |pixel_height| are the output representation size in pixel coordinates.\n Returns a cef_binary_value_t containing the PNG image data on success or\n NULL on failure.\n"]
5516    pub get_as_png: ::std::option::Option<
5517        unsafe extern "C" fn(
5518            self_: *mut _cef_image_t,
5519            scale_factor: f32,
5520            with_transparency: ::std::os::raw::c_int,
5521            pixel_width: *mut ::std::os::raw::c_int,
5522            pixel_height: *mut ::std::os::raw::c_int,
5523        ) -> *mut _cef_binary_value_t,
5524    >,
5525    #[doc = "\n Returns the JPEG representation that most closely matches |scale_factor|.\n |quality| determines the compression level with 0 == lowest and 100 ==\n highest. The JPEG format does not support alpha transparency and the alpha\n channel, if any, will be discarded. |pixel_width| and |pixel_height| are\n the output representation size in pixel coordinates. Returns a\n cef_binary_value_t containing the JPEG image data on success or NULL on\n failure.\n"]
5526    pub get_as_jpeg: ::std::option::Option<
5527        unsafe extern "C" fn(
5528            self_: *mut _cef_image_t,
5529            scale_factor: f32,
5530            quality: ::std::os::raw::c_int,
5531            pixel_width: *mut ::std::os::raw::c_int,
5532            pixel_height: *mut ::std::os::raw::c_int,
5533        ) -> *mut _cef_binary_value_t,
5534    >,
5535}
5536#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5537const _: () = {
5538    ["Size of _cef_image_t"][::std::mem::size_of::<_cef_image_t>() - 144usize];
5539    ["Alignment of _cef_image_t"][::std::mem::align_of::<_cef_image_t>() - 8usize];
5540    ["Offset of field: _cef_image_t::base"][::std::mem::offset_of!(_cef_image_t, base) - 0usize];
5541    ["Offset of field: _cef_image_t::is_empty"]
5542        [::std::mem::offset_of!(_cef_image_t, is_empty) - 40usize];
5543    ["Offset of field: _cef_image_t::is_same"]
5544        [::std::mem::offset_of!(_cef_image_t, is_same) - 48usize];
5545    ["Offset of field: _cef_image_t::add_bitmap"]
5546        [::std::mem::offset_of!(_cef_image_t, add_bitmap) - 56usize];
5547    ["Offset of field: _cef_image_t::add_png"]
5548        [::std::mem::offset_of!(_cef_image_t, add_png) - 64usize];
5549    ["Offset of field: _cef_image_t::add_jpeg"]
5550        [::std::mem::offset_of!(_cef_image_t, add_jpeg) - 72usize];
5551    ["Offset of field: _cef_image_t::get_width"]
5552        [::std::mem::offset_of!(_cef_image_t, get_width) - 80usize];
5553    ["Offset of field: _cef_image_t::get_height"]
5554        [::std::mem::offset_of!(_cef_image_t, get_height) - 88usize];
5555    ["Offset of field: _cef_image_t::has_representation"]
5556        [::std::mem::offset_of!(_cef_image_t, has_representation) - 96usize];
5557    ["Offset of field: _cef_image_t::remove_representation"]
5558        [::std::mem::offset_of!(_cef_image_t, remove_representation) - 104usize];
5559    ["Offset of field: _cef_image_t::get_representation_info"]
5560        [::std::mem::offset_of!(_cef_image_t, get_representation_info) - 112usize];
5561    ["Offset of field: _cef_image_t::get_as_bitmap"]
5562        [::std::mem::offset_of!(_cef_image_t, get_as_bitmap) - 120usize];
5563    ["Offset of field: _cef_image_t::get_as_png"]
5564        [::std::mem::offset_of!(_cef_image_t, get_as_png) - 128usize];
5565    ["Offset of field: _cef_image_t::get_as_jpeg"]
5566        [::std::mem::offset_of!(_cef_image_t, get_as_jpeg) - 136usize];
5567};
5568#[doc = "\n Container for a single image represented at different scale factors. All\n image representations should be the same size in density independent pixel\n (DIP) units. For example, if the image at scale factor 1.0 is 100x100 pixels\n then the image at scale factor 2.0 should be 200x200 pixels -- both images\n will display with a DIP size of 100x100 units. The functions of this\n structure can be called on any browser process thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5569pub type cef_image_t = _cef_image_t;
5570unsafe extern "C" {
5571    #[doc = "\n Create a new cef_image_t. It will initially be NULL. Use the Add*()\n functions to add representations at different scale factors.\n"]
5572    pub fn cef_image_create() -> *mut cef_image_t;
5573}
5574#[doc = "\n Structure the client can implement to provide a custom stream reader. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated client-side.\n"]
5575#[repr(C)]
5576#[derive(Debug, Copy, Clone)]
5577pub struct _cef_read_handler_t {
5578    #[doc = "\n Base structure.\n"]
5579    pub base: cef_base_ref_counted_t,
5580    #[doc = "\n Read raw binary data.\n"]
5581    pub read: ::std::option::Option<
5582        unsafe extern "C" fn(
5583            self_: *mut _cef_read_handler_t,
5584            ptr: *mut ::std::os::raw::c_void,
5585            size: usize,
5586            n: usize,
5587        ) -> usize,
5588    >,
5589    #[doc = "\n Seek to the specified offset position. |whence| may be any one of\n SEEK_CUR, SEEK_END or SEEK_SET. Return zero on success and non-zero on\n failure.\n"]
5590    pub seek: ::std::option::Option<
5591        unsafe extern "C" fn(
5592            self_: *mut _cef_read_handler_t,
5593            offset: i64,
5594            whence: ::std::os::raw::c_int,
5595        ) -> ::std::os::raw::c_int,
5596    >,
5597    #[doc = "\n Return the current offset position.\n"]
5598    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> i64>,
5599    #[doc = "\n Return non-zero if at end of file.\n"]
5600    pub eof: ::std::option::Option<
5601        unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> ::std::os::raw::c_int,
5602    >,
5603    #[doc = "\n Return true (1) if this handler performs work like accessing the file\n system which may block. Used as a hint for determining the thread to\n access the handler from.\n"]
5604    pub may_block: ::std::option::Option<
5605        unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> ::std::os::raw::c_int,
5606    >,
5607}
5608#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5609const _: () = {
5610    ["Size of _cef_read_handler_t"][::std::mem::size_of::<_cef_read_handler_t>() - 80usize];
5611    ["Alignment of _cef_read_handler_t"][::std::mem::align_of::<_cef_read_handler_t>() - 8usize];
5612    ["Offset of field: _cef_read_handler_t::base"]
5613        [::std::mem::offset_of!(_cef_read_handler_t, base) - 0usize];
5614    ["Offset of field: _cef_read_handler_t::read"]
5615        [::std::mem::offset_of!(_cef_read_handler_t, read) - 40usize];
5616    ["Offset of field: _cef_read_handler_t::seek"]
5617        [::std::mem::offset_of!(_cef_read_handler_t, seek) - 48usize];
5618    ["Offset of field: _cef_read_handler_t::tell"]
5619        [::std::mem::offset_of!(_cef_read_handler_t, tell) - 56usize];
5620    ["Offset of field: _cef_read_handler_t::eof"]
5621        [::std::mem::offset_of!(_cef_read_handler_t, eof) - 64usize];
5622    ["Offset of field: _cef_read_handler_t::may_block"]
5623        [::std::mem::offset_of!(_cef_read_handler_t, may_block) - 72usize];
5624};
5625#[doc = "\n Structure the client can implement to provide a custom stream reader. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated client-side.\n"]
5626pub type cef_read_handler_t = _cef_read_handler_t;
5627#[doc = "\n Structure used to read data from a stream. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5628#[repr(C)]
5629#[derive(Debug, Copy, Clone)]
5630pub struct _cef_stream_reader_t {
5631    #[doc = "\n Base structure.\n"]
5632    pub base: cef_base_ref_counted_t,
5633    #[doc = "\n Read raw binary data.\n"]
5634    pub read: ::std::option::Option<
5635        unsafe extern "C" fn(
5636            self_: *mut _cef_stream_reader_t,
5637            ptr: *mut ::std::os::raw::c_void,
5638            size: usize,
5639            n: usize,
5640        ) -> usize,
5641    >,
5642    #[doc = "\n Seek to the specified offset position. |whence| may be any one of\n SEEK_CUR, SEEK_END or SEEK_SET. Returns zero on success and non-zero on\n failure.\n"]
5643    pub seek: ::std::option::Option<
5644        unsafe extern "C" fn(
5645            self_: *mut _cef_stream_reader_t,
5646            offset: i64,
5647            whence: ::std::os::raw::c_int,
5648        ) -> ::std::os::raw::c_int,
5649    >,
5650    #[doc = "\n Return the current offset position.\n"]
5651    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> i64>,
5652    #[doc = "\n Return non-zero if at end of file.\n"]
5653    pub eof: ::std::option::Option<
5654        unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> ::std::os::raw::c_int,
5655    >,
5656    #[doc = "\n Returns true (1) if this reader performs work like accessing the file\n system which may block. Used as a hint for determining the thread to\n access the reader from.\n"]
5657    pub may_block: ::std::option::Option<
5658        unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> ::std::os::raw::c_int,
5659    >,
5660}
5661#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5662const _: () = {
5663    ["Size of _cef_stream_reader_t"][::std::mem::size_of::<_cef_stream_reader_t>() - 80usize];
5664    ["Alignment of _cef_stream_reader_t"][::std::mem::align_of::<_cef_stream_reader_t>() - 8usize];
5665    ["Offset of field: _cef_stream_reader_t::base"]
5666        [::std::mem::offset_of!(_cef_stream_reader_t, base) - 0usize];
5667    ["Offset of field: _cef_stream_reader_t::read"]
5668        [::std::mem::offset_of!(_cef_stream_reader_t, read) - 40usize];
5669    ["Offset of field: _cef_stream_reader_t::seek"]
5670        [::std::mem::offset_of!(_cef_stream_reader_t, seek) - 48usize];
5671    ["Offset of field: _cef_stream_reader_t::tell"]
5672        [::std::mem::offset_of!(_cef_stream_reader_t, tell) - 56usize];
5673    ["Offset of field: _cef_stream_reader_t::eof"]
5674        [::std::mem::offset_of!(_cef_stream_reader_t, eof) - 64usize];
5675    ["Offset of field: _cef_stream_reader_t::may_block"]
5676        [::std::mem::offset_of!(_cef_stream_reader_t, may_block) - 72usize];
5677};
5678#[doc = "\n Structure used to read data from a stream. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5679pub type cef_stream_reader_t = _cef_stream_reader_t;
5680unsafe extern "C" {
5681    #[doc = "\n Create a new cef_stream_reader_t object from a file.\n"]
5682    pub fn cef_stream_reader_create_for_file(
5683        fileName: *const cef_string_t,
5684    ) -> *mut cef_stream_reader_t;
5685}
5686unsafe extern "C" {
5687    #[doc = "\n Create a new cef_stream_reader_t object from data.\n"]
5688    pub fn cef_stream_reader_create_for_data(
5689        data: *mut ::std::os::raw::c_void,
5690        size: usize,
5691    ) -> *mut cef_stream_reader_t;
5692}
5693unsafe extern "C" {
5694    #[doc = "\n Create a new cef_stream_reader_t object from a custom handler.\n"]
5695    pub fn cef_stream_reader_create_for_handler(
5696        handler: *mut cef_read_handler_t,
5697    ) -> *mut cef_stream_reader_t;
5698}
5699#[doc = "\n Structure the client can implement to provide a custom stream writer. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated client-side.\n"]
5700#[repr(C)]
5701#[derive(Debug, Copy, Clone)]
5702pub struct _cef_write_handler_t {
5703    #[doc = "\n Base structure.\n"]
5704    pub base: cef_base_ref_counted_t,
5705    #[doc = "\n Write raw binary data.\n"]
5706    pub write: ::std::option::Option<
5707        unsafe extern "C" fn(
5708            self_: *mut _cef_write_handler_t,
5709            ptr: *const ::std::os::raw::c_void,
5710            size: usize,
5711            n: usize,
5712        ) -> usize,
5713    >,
5714    #[doc = "\n Seek to the specified offset position. |whence| may be any one of\n SEEK_CUR, SEEK_END or SEEK_SET. Return zero on success and non-zero on\n failure.\n"]
5715    pub seek: ::std::option::Option<
5716        unsafe extern "C" fn(
5717            self_: *mut _cef_write_handler_t,
5718            offset: i64,
5719            whence: ::std::os::raw::c_int,
5720        ) -> ::std::os::raw::c_int,
5721    >,
5722    #[doc = "\n Return the current offset position.\n"]
5723    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> i64>,
5724    #[doc = "\n Flush the stream.\n"]
5725    pub flush: ::std::option::Option<
5726        unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> ::std::os::raw::c_int,
5727    >,
5728    #[doc = "\n Return true (1) if this handler performs work like accessing the file\n system which may block. Used as a hint for determining the thread to\n access the handler from.\n"]
5729    pub may_block: ::std::option::Option<
5730        unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> ::std::os::raw::c_int,
5731    >,
5732}
5733#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5734const _: () = {
5735    ["Size of _cef_write_handler_t"][::std::mem::size_of::<_cef_write_handler_t>() - 80usize];
5736    ["Alignment of _cef_write_handler_t"][::std::mem::align_of::<_cef_write_handler_t>() - 8usize];
5737    ["Offset of field: _cef_write_handler_t::base"]
5738        [::std::mem::offset_of!(_cef_write_handler_t, base) - 0usize];
5739    ["Offset of field: _cef_write_handler_t::write"]
5740        [::std::mem::offset_of!(_cef_write_handler_t, write) - 40usize];
5741    ["Offset of field: _cef_write_handler_t::seek"]
5742        [::std::mem::offset_of!(_cef_write_handler_t, seek) - 48usize];
5743    ["Offset of field: _cef_write_handler_t::tell"]
5744        [::std::mem::offset_of!(_cef_write_handler_t, tell) - 56usize];
5745    ["Offset of field: _cef_write_handler_t::flush"]
5746        [::std::mem::offset_of!(_cef_write_handler_t, flush) - 64usize];
5747    ["Offset of field: _cef_write_handler_t::may_block"]
5748        [::std::mem::offset_of!(_cef_write_handler_t, may_block) - 72usize];
5749};
5750#[doc = "\n Structure the client can implement to provide a custom stream writer. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated client-side.\n"]
5751pub type cef_write_handler_t = _cef_write_handler_t;
5752#[doc = "\n Structure used to write data to a stream. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5753#[repr(C)]
5754#[derive(Debug, Copy, Clone)]
5755pub struct _cef_stream_writer_t {
5756    #[doc = "\n Base structure.\n"]
5757    pub base: cef_base_ref_counted_t,
5758    #[doc = "\n Write raw binary data.\n"]
5759    pub write: ::std::option::Option<
5760        unsafe extern "C" fn(
5761            self_: *mut _cef_stream_writer_t,
5762            ptr: *const ::std::os::raw::c_void,
5763            size: usize,
5764            n: usize,
5765        ) -> usize,
5766    >,
5767    #[doc = "\n Seek to the specified offset position. |whence| may be any one of\n SEEK_CUR, SEEK_END or SEEK_SET. Returns zero on success and non-zero on\n failure.\n"]
5768    pub seek: ::std::option::Option<
5769        unsafe extern "C" fn(
5770            self_: *mut _cef_stream_writer_t,
5771            offset: i64,
5772            whence: ::std::os::raw::c_int,
5773        ) -> ::std::os::raw::c_int,
5774    >,
5775    #[doc = "\n Return the current offset position.\n"]
5776    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> i64>,
5777    #[doc = "\n Flush the stream.\n"]
5778    pub flush: ::std::option::Option<
5779        unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> ::std::os::raw::c_int,
5780    >,
5781    #[doc = "\n Returns true (1) if this writer performs work like accessing the file\n system which may block. Used as a hint for determining the thread to\n access the writer from.\n"]
5782    pub may_block: ::std::option::Option<
5783        unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> ::std::os::raw::c_int,
5784    >,
5785}
5786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5787const _: () = {
5788    ["Size of _cef_stream_writer_t"][::std::mem::size_of::<_cef_stream_writer_t>() - 80usize];
5789    ["Alignment of _cef_stream_writer_t"][::std::mem::align_of::<_cef_stream_writer_t>() - 8usize];
5790    ["Offset of field: _cef_stream_writer_t::base"]
5791        [::std::mem::offset_of!(_cef_stream_writer_t, base) - 0usize];
5792    ["Offset of field: _cef_stream_writer_t::write"]
5793        [::std::mem::offset_of!(_cef_stream_writer_t, write) - 40usize];
5794    ["Offset of field: _cef_stream_writer_t::seek"]
5795        [::std::mem::offset_of!(_cef_stream_writer_t, seek) - 48usize];
5796    ["Offset of field: _cef_stream_writer_t::tell"]
5797        [::std::mem::offset_of!(_cef_stream_writer_t, tell) - 56usize];
5798    ["Offset of field: _cef_stream_writer_t::flush"]
5799        [::std::mem::offset_of!(_cef_stream_writer_t, flush) - 64usize];
5800    ["Offset of field: _cef_stream_writer_t::may_block"]
5801        [::std::mem::offset_of!(_cef_stream_writer_t, may_block) - 72usize];
5802};
5803#[doc = "\n Structure used to write data to a stream. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5804pub type cef_stream_writer_t = _cef_stream_writer_t;
5805unsafe extern "C" {
5806    #[doc = "\n Create a new cef_stream_writer_t object for a file.\n"]
5807    pub fn cef_stream_writer_create_for_file(
5808        fileName: *const cef_string_t,
5809    ) -> *mut cef_stream_writer_t;
5810}
5811unsafe extern "C" {
5812    #[doc = "\n Create a new cef_stream_writer_t object for a custom handler.\n"]
5813    pub fn cef_stream_writer_create_for_handler(
5814        handler: *mut cef_write_handler_t,
5815    ) -> *mut cef_stream_writer_t;
5816}
5817#[doc = "\n Structure used to represent drag data. The functions of this structure may\n be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
5818#[repr(C)]
5819#[derive(Debug, Copy, Clone)]
5820pub struct _cef_drag_data_t {
5821    #[doc = "\n Base structure.\n"]
5822    pub base: cef_base_ref_counted_t,
5823    #[doc = "\n Returns a copy of the current object.\n"]
5824    pub clone: ::std::option::Option<
5825        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> *mut _cef_drag_data_t,
5826    >,
5827    #[doc = "\n Returns true (1) if this object is read-only.\n"]
5828    pub is_read_only: ::std::option::Option<
5829        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5830    >,
5831    #[doc = "\n Returns true (1) if the drag data is a link.\n"]
5832    pub is_link: ::std::option::Option<
5833        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5834    >,
5835    #[doc = "\n Returns true (1) if the drag data is a text or html fragment.\n"]
5836    pub is_fragment: ::std::option::Option<
5837        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5838    >,
5839    #[doc = "\n Returns true (1) if the drag data is a file.\n"]
5840    pub is_file: ::std::option::Option<
5841        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5842    >,
5843    #[doc = "\n Return the link URL that is being dragged.\n"]
5844    pub get_link_url: ::std::option::Option<
5845        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5846    >,
5847    #[doc = "\n Return the title associated with the link being dragged.\n"]
5848    pub get_link_title: ::std::option::Option<
5849        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5850    >,
5851    #[doc = "\n Return the metadata, if any, associated with the link being dragged.\n"]
5852    pub get_link_metadata: ::std::option::Option<
5853        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5854    >,
5855    #[doc = "\n Return the plain text fragment that is being dragged.\n"]
5856    pub get_fragment_text: ::std::option::Option<
5857        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5858    >,
5859    #[doc = "\n Return the text/html fragment that is being dragged.\n"]
5860    pub get_fragment_html: ::std::option::Option<
5861        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5862    >,
5863    #[doc = "\n Return the base URL that the fragment came from. This value is used for\n resolving relative URLs and may be NULL.\n"]
5864    pub get_fragment_base_url: ::std::option::Option<
5865        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5866    >,
5867    #[doc = "\n Return the name of the file being dragged out of the browser window.\n"]
5868    pub get_file_name: ::std::option::Option<
5869        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5870    >,
5871    #[doc = "\n Write the contents of the file being dragged out of the web view into\n |writer|. Returns the number of bytes sent to |writer|. If |writer| is\n NULL this function will return the size of the file contents in bytes.\n Call get_file_name() to get a suggested name for the file.\n"]
5872    pub get_file_contents: ::std::option::Option<
5873        unsafe extern "C" fn(
5874            self_: *mut _cef_drag_data_t,
5875            writer: *mut _cef_stream_writer_t,
5876        ) -> usize,
5877    >,
5878    #[doc = "\n Retrieve the list of file names that are being dragged into the browser\n window.\n"]
5879    pub get_file_names: ::std::option::Option<
5880        unsafe extern "C" fn(
5881            self_: *mut _cef_drag_data_t,
5882            names: cef_string_list_t,
5883        ) -> ::std::os::raw::c_int,
5884    >,
5885    #[doc = "\n Retrieve the list of file paths that are being dragged into the browser\n window.\n"]
5886    pub get_file_paths: ::std::option::Option<
5887        unsafe extern "C" fn(
5888            self_: *mut _cef_drag_data_t,
5889            paths: cef_string_list_t,
5890        ) -> ::std::os::raw::c_int,
5891    >,
5892    #[doc = "\n Set the link URL that is being dragged.\n"]
5893    pub set_link_url: ::std::option::Option<
5894        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, url: *const cef_string_t),
5895    >,
5896    #[doc = "\n Set the title associated with the link being dragged.\n"]
5897    pub set_link_title: ::std::option::Option<
5898        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, title: *const cef_string_t),
5899    >,
5900    #[doc = "\n Set the metadata associated with the link being dragged.\n"]
5901    pub set_link_metadata: ::std::option::Option<
5902        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, data: *const cef_string_t),
5903    >,
5904    #[doc = "\n Set the plain text fragment that is being dragged.\n"]
5905    pub set_fragment_text: ::std::option::Option<
5906        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, text: *const cef_string_t),
5907    >,
5908    #[doc = "\n Set the text/html fragment that is being dragged.\n"]
5909    pub set_fragment_html: ::std::option::Option<
5910        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, html: *const cef_string_t),
5911    >,
5912    #[doc = "\n Set the base URL that the fragment came from.\n"]
5913    pub set_fragment_base_url: ::std::option::Option<
5914        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, base_url: *const cef_string_t),
5915    >,
5916    #[doc = "\n Reset the file contents. You should do this before calling\n cef_browser_host_t::DragTargetDragEnter as the web view does not allow us\n to drag in this kind of data.\n"]
5917    pub reset_file_contents:
5918        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t)>,
5919    #[doc = "\n Add a file that is being dragged into the webview.\n"]
5920    pub add_file: ::std::option::Option<
5921        unsafe extern "C" fn(
5922            self_: *mut _cef_drag_data_t,
5923            path: *const cef_string_t,
5924            display_name: *const cef_string_t,
5925        ),
5926    >,
5927    #[doc = "\n Clear list of filenames.\n"]
5928    pub clear_filenames: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t)>,
5929    #[doc = "\n Get the image representation of drag data. May return NULL if no image\n representation is available.\n"]
5930    pub get_image: ::std::option::Option<
5931        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> *mut _cef_image_t,
5932    >,
5933    #[doc = "\n Get the image hotspot (drag start location relative to image dimensions).\n"]
5934    pub get_image_hotspot:
5935        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_point_t>,
5936    #[doc = "\n Returns true (1) if an image representation of drag data is available.\n"]
5937    pub has_image: ::std::option::Option<
5938        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5939    >,
5940}
5941#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5942const _: () = {
5943    ["Size of _cef_drag_data_t"][::std::mem::size_of::<_cef_drag_data_t>() - 256usize];
5944    ["Alignment of _cef_drag_data_t"][::std::mem::align_of::<_cef_drag_data_t>() - 8usize];
5945    ["Offset of field: _cef_drag_data_t::base"]
5946        [::std::mem::offset_of!(_cef_drag_data_t, base) - 0usize];
5947    ["Offset of field: _cef_drag_data_t::clone"]
5948        [::std::mem::offset_of!(_cef_drag_data_t, clone) - 40usize];
5949    ["Offset of field: _cef_drag_data_t::is_read_only"]
5950        [::std::mem::offset_of!(_cef_drag_data_t, is_read_only) - 48usize];
5951    ["Offset of field: _cef_drag_data_t::is_link"]
5952        [::std::mem::offset_of!(_cef_drag_data_t, is_link) - 56usize];
5953    ["Offset of field: _cef_drag_data_t::is_fragment"]
5954        [::std::mem::offset_of!(_cef_drag_data_t, is_fragment) - 64usize];
5955    ["Offset of field: _cef_drag_data_t::is_file"]
5956        [::std::mem::offset_of!(_cef_drag_data_t, is_file) - 72usize];
5957    ["Offset of field: _cef_drag_data_t::get_link_url"]
5958        [::std::mem::offset_of!(_cef_drag_data_t, get_link_url) - 80usize];
5959    ["Offset of field: _cef_drag_data_t::get_link_title"]
5960        [::std::mem::offset_of!(_cef_drag_data_t, get_link_title) - 88usize];
5961    ["Offset of field: _cef_drag_data_t::get_link_metadata"]
5962        [::std::mem::offset_of!(_cef_drag_data_t, get_link_metadata) - 96usize];
5963    ["Offset of field: _cef_drag_data_t::get_fragment_text"]
5964        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_text) - 104usize];
5965    ["Offset of field: _cef_drag_data_t::get_fragment_html"]
5966        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_html) - 112usize];
5967    ["Offset of field: _cef_drag_data_t::get_fragment_base_url"]
5968        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_base_url) - 120usize];
5969    ["Offset of field: _cef_drag_data_t::get_file_name"]
5970        [::std::mem::offset_of!(_cef_drag_data_t, get_file_name) - 128usize];
5971    ["Offset of field: _cef_drag_data_t::get_file_contents"]
5972        [::std::mem::offset_of!(_cef_drag_data_t, get_file_contents) - 136usize];
5973    ["Offset of field: _cef_drag_data_t::get_file_names"]
5974        [::std::mem::offset_of!(_cef_drag_data_t, get_file_names) - 144usize];
5975    ["Offset of field: _cef_drag_data_t::get_file_paths"]
5976        [::std::mem::offset_of!(_cef_drag_data_t, get_file_paths) - 152usize];
5977    ["Offset of field: _cef_drag_data_t::set_link_url"]
5978        [::std::mem::offset_of!(_cef_drag_data_t, set_link_url) - 160usize];
5979    ["Offset of field: _cef_drag_data_t::set_link_title"]
5980        [::std::mem::offset_of!(_cef_drag_data_t, set_link_title) - 168usize];
5981    ["Offset of field: _cef_drag_data_t::set_link_metadata"]
5982        [::std::mem::offset_of!(_cef_drag_data_t, set_link_metadata) - 176usize];
5983    ["Offset of field: _cef_drag_data_t::set_fragment_text"]
5984        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_text) - 184usize];
5985    ["Offset of field: _cef_drag_data_t::set_fragment_html"]
5986        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_html) - 192usize];
5987    ["Offset of field: _cef_drag_data_t::set_fragment_base_url"]
5988        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_base_url) - 200usize];
5989    ["Offset of field: _cef_drag_data_t::reset_file_contents"]
5990        [::std::mem::offset_of!(_cef_drag_data_t, reset_file_contents) - 208usize];
5991    ["Offset of field: _cef_drag_data_t::add_file"]
5992        [::std::mem::offset_of!(_cef_drag_data_t, add_file) - 216usize];
5993    ["Offset of field: _cef_drag_data_t::clear_filenames"]
5994        [::std::mem::offset_of!(_cef_drag_data_t, clear_filenames) - 224usize];
5995    ["Offset of field: _cef_drag_data_t::get_image"]
5996        [::std::mem::offset_of!(_cef_drag_data_t, get_image) - 232usize];
5997    ["Offset of field: _cef_drag_data_t::get_image_hotspot"]
5998        [::std::mem::offset_of!(_cef_drag_data_t, get_image_hotspot) - 240usize];
5999    ["Offset of field: _cef_drag_data_t::has_image"]
6000        [::std::mem::offset_of!(_cef_drag_data_t, has_image) - 248usize];
6001};
6002#[doc = "\n Structure used to represent drag data. The functions of this structure may\n be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6003pub type cef_drag_data_t = _cef_drag_data_t;
6004unsafe extern "C" {
6005    #[doc = "\n Create a new cef_drag_data_t object.\n"]
6006    pub fn cef_drag_data_create() -> *mut cef_drag_data_t;
6007}
6008#[doc = "\n Structure to implement for visiting the DOM. The functions of this structure\n will be called on the render process main thread.\n\n NOTE: This struct is allocated client-side.\n"]
6009#[repr(C)]
6010#[derive(Debug, Copy, Clone)]
6011pub struct _cef_domvisitor_t {
6012    #[doc = "\n Base structure.\n"]
6013    pub base: cef_base_ref_counted_t,
6014    #[doc = "\n Method executed for visiting the DOM. The document object passed to this\n function represents a snapshot of the DOM at the time this function is\n executed. DOM objects are only valid for the scope of this function. Do\n not keep references to or attempt to access any DOM objects outside the\n scope of this function.\n"]
6015    pub visit: ::std::option::Option<
6016        unsafe extern "C" fn(self_: *mut _cef_domvisitor_t, document: *mut _cef_domdocument_t),
6017    >,
6018}
6019#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6020const _: () = {
6021    ["Size of _cef_domvisitor_t"][::std::mem::size_of::<_cef_domvisitor_t>() - 48usize];
6022    ["Alignment of _cef_domvisitor_t"][::std::mem::align_of::<_cef_domvisitor_t>() - 8usize];
6023    ["Offset of field: _cef_domvisitor_t::base"]
6024        [::std::mem::offset_of!(_cef_domvisitor_t, base) - 0usize];
6025    ["Offset of field: _cef_domvisitor_t::visit"]
6026        [::std::mem::offset_of!(_cef_domvisitor_t, visit) - 40usize];
6027};
6028#[doc = "\n Structure to implement for visiting the DOM. The functions of this structure\n will be called on the render process main thread.\n\n NOTE: This struct is allocated client-side.\n"]
6029pub type cef_domvisitor_t = _cef_domvisitor_t;
6030#[doc = "\n Structure used to represent a DOM document. The functions of this structure\n should only be called on the render process main thread thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6031#[repr(C)]
6032#[derive(Debug, Copy, Clone)]
6033pub struct _cef_domdocument_t {
6034    #[doc = "\n Base structure.\n"]
6035    pub base: cef_base_ref_counted_t,
6036    #[doc = "\n Returns the document type.\n"]
6037    pub get_type: ::std::option::Option<
6038        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_dom_document_type_t,
6039    >,
6040    #[doc = "\n Returns the root document node.\n"]
6041    pub get_document: ::std::option::Option<
6042        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
6043    >,
6044    #[doc = "\n Returns the BODY node of an HTML document.\n"]
6045    pub get_body: ::std::option::Option<
6046        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
6047    >,
6048    #[doc = "\n Returns the HEAD node of an HTML document.\n"]
6049    pub get_head: ::std::option::Option<
6050        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
6051    >,
6052    #[doc = "\n Returns the title of an HTML document.\n"]
6053    pub get_title: ::std::option::Option<
6054        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
6055    >,
6056    #[doc = "\n Returns the document element with the specified ID value.\n"]
6057    pub get_element_by_id: ::std::option::Option<
6058        unsafe extern "C" fn(
6059            self_: *mut _cef_domdocument_t,
6060            id: *const cef_string_t,
6061        ) -> *mut _cef_domnode_t,
6062    >,
6063    #[doc = "\n Returns the node that currently has keyboard focus.\n"]
6064    pub get_focused_node: ::std::option::Option<
6065        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
6066    >,
6067    #[doc = "\n Returns true (1) if a portion of the document is selected.\n"]
6068    pub has_selection: ::std::option::Option<
6069        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
6070    >,
6071    #[doc = "\n Returns the selection offset within the start node.\n"]
6072    pub get_selection_start_offset: ::std::option::Option<
6073        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
6074    >,
6075    #[doc = "\n Returns the selection offset within the end node.\n"]
6076    pub get_selection_end_offset: ::std::option::Option<
6077        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
6078    >,
6079    #[doc = "\n Returns the contents of this selection as markup.\n"]
6080    pub get_selection_as_markup: ::std::option::Option<
6081        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
6082    >,
6083    #[doc = "\n Returns the contents of this selection as text.\n"]
6084    pub get_selection_as_text: ::std::option::Option<
6085        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
6086    >,
6087    #[doc = "\n Returns the base URL for the document.\n"]
6088    pub get_base_url: ::std::option::Option<
6089        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
6090    >,
6091    #[doc = "\n Returns a complete URL based on the document base URL and the specified\n partial URL.\n"]
6092    pub get_complete_url: ::std::option::Option<
6093        unsafe extern "C" fn(
6094            self_: *mut _cef_domdocument_t,
6095            partialURL: *const cef_string_t,
6096        ) -> cef_string_userfree_t,
6097    >,
6098}
6099#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6100const _: () = {
6101    ["Size of _cef_domdocument_t"][::std::mem::size_of::<_cef_domdocument_t>() - 152usize];
6102    ["Alignment of _cef_domdocument_t"][::std::mem::align_of::<_cef_domdocument_t>() - 8usize];
6103    ["Offset of field: _cef_domdocument_t::base"]
6104        [::std::mem::offset_of!(_cef_domdocument_t, base) - 0usize];
6105    ["Offset of field: _cef_domdocument_t::get_type"]
6106        [::std::mem::offset_of!(_cef_domdocument_t, get_type) - 40usize];
6107    ["Offset of field: _cef_domdocument_t::get_document"]
6108        [::std::mem::offset_of!(_cef_domdocument_t, get_document) - 48usize];
6109    ["Offset of field: _cef_domdocument_t::get_body"]
6110        [::std::mem::offset_of!(_cef_domdocument_t, get_body) - 56usize];
6111    ["Offset of field: _cef_domdocument_t::get_head"]
6112        [::std::mem::offset_of!(_cef_domdocument_t, get_head) - 64usize];
6113    ["Offset of field: _cef_domdocument_t::get_title"]
6114        [::std::mem::offset_of!(_cef_domdocument_t, get_title) - 72usize];
6115    ["Offset of field: _cef_domdocument_t::get_element_by_id"]
6116        [::std::mem::offset_of!(_cef_domdocument_t, get_element_by_id) - 80usize];
6117    ["Offset of field: _cef_domdocument_t::get_focused_node"]
6118        [::std::mem::offset_of!(_cef_domdocument_t, get_focused_node) - 88usize];
6119    ["Offset of field: _cef_domdocument_t::has_selection"]
6120        [::std::mem::offset_of!(_cef_domdocument_t, has_selection) - 96usize];
6121    ["Offset of field: _cef_domdocument_t::get_selection_start_offset"]
6122        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_start_offset) - 104usize];
6123    ["Offset of field: _cef_domdocument_t::get_selection_end_offset"]
6124        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_end_offset) - 112usize];
6125    ["Offset of field: _cef_domdocument_t::get_selection_as_markup"]
6126        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_as_markup) - 120usize];
6127    ["Offset of field: _cef_domdocument_t::get_selection_as_text"]
6128        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_as_text) - 128usize];
6129    ["Offset of field: _cef_domdocument_t::get_base_url"]
6130        [::std::mem::offset_of!(_cef_domdocument_t, get_base_url) - 136usize];
6131    ["Offset of field: _cef_domdocument_t::get_complete_url"]
6132        [::std::mem::offset_of!(_cef_domdocument_t, get_complete_url) - 144usize];
6133};
6134#[doc = "\n Structure used to represent a DOM document. The functions of this structure\n should only be called on the render process main thread thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6135pub type cef_domdocument_t = _cef_domdocument_t;
6136#[doc = "\n Structure used to represent a DOM node. The functions of this structure\n should only be called on the render process main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6137#[repr(C)]
6138#[derive(Debug, Copy, Clone)]
6139pub struct _cef_domnode_t {
6140    #[doc = "\n Base structure.\n"]
6141    pub base: cef_base_ref_counted_t,
6142    #[doc = "\n Returns the type for this node.\n"]
6143    pub get_type: ::std::option::Option<
6144        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_dom_node_type_t,
6145    >,
6146    #[doc = "\n Returns true (1) if this is a text node.\n"]
6147    pub is_text: ::std::option::Option<
6148        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6149    >,
6150    #[doc = "\n Returns true (1) if this is an element node.\n"]
6151    pub is_element: ::std::option::Option<
6152        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6153    >,
6154    #[doc = "\n Returns true (1) if this is an editable node.\n"]
6155    pub is_editable: ::std::option::Option<
6156        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6157    >,
6158    #[doc = "\n Returns true (1) if this is a form control element node.\n"]
6159    pub is_form_control_element: ::std::option::Option<
6160        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6161    >,
6162    #[doc = "\n Returns the type of this form control element node.\n"]
6163    pub get_form_control_element_type: ::std::option::Option<
6164        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_dom_form_control_type_t,
6165    >,
6166    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
6167    pub is_same: ::std::option::Option<
6168        unsafe extern "C" fn(
6169            self_: *mut _cef_domnode_t,
6170            that: *mut _cef_domnode_t,
6171        ) -> ::std::os::raw::c_int,
6172    >,
6173    #[doc = "\n Returns the name of this node.\n"]
6174    pub get_name: ::std::option::Option<
6175        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
6176    >,
6177    #[doc = "\n Returns the value of this node.\n"]
6178    pub get_value: ::std::option::Option<
6179        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
6180    >,
6181    #[doc = "\n Set the value of this node. Returns true (1) on success.\n"]
6182    pub set_value: ::std::option::Option<
6183        unsafe extern "C" fn(
6184            self_: *mut _cef_domnode_t,
6185            value: *const cef_string_t,
6186        ) -> ::std::os::raw::c_int,
6187    >,
6188    #[doc = "\n Returns the contents of this node as markup.\n"]
6189    pub get_as_markup: ::std::option::Option<
6190        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
6191    >,
6192    #[doc = "\n Returns the document associated with this node.\n"]
6193    pub get_document: ::std::option::Option<
6194        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domdocument_t,
6195    >,
6196    #[doc = "\n Returns the parent node.\n"]
6197    pub get_parent: ::std::option::Option<
6198        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
6199    >,
6200    #[doc = "\n Returns the previous sibling node.\n"]
6201    pub get_previous_sibling: ::std::option::Option<
6202        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
6203    >,
6204    #[doc = "\n Returns the next sibling node.\n"]
6205    pub get_next_sibling: ::std::option::Option<
6206        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
6207    >,
6208    #[doc = "\n Returns true (1) if this node has child nodes.\n"]
6209    pub has_children: ::std::option::Option<
6210        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6211    >,
6212    #[doc = "\n Return the first child node.\n"]
6213    pub get_first_child: ::std::option::Option<
6214        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
6215    >,
6216    #[doc = "\n Returns the last child node.\n"]
6217    pub get_last_child: ::std::option::Option<
6218        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
6219    >,
6220    #[doc = "\n Returns the tag name of this element.\n"]
6221    pub get_element_tag_name: ::std::option::Option<
6222        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
6223    >,
6224    #[doc = "\n Returns true (1) if this element has attributes.\n"]
6225    pub has_element_attributes: ::std::option::Option<
6226        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
6227    >,
6228    #[doc = "\n Returns true (1) if this element has an attribute named |attrName|.\n"]
6229    pub has_element_attribute: ::std::option::Option<
6230        unsafe extern "C" fn(
6231            self_: *mut _cef_domnode_t,
6232            attrName: *const cef_string_t,
6233        ) -> ::std::os::raw::c_int,
6234    >,
6235    #[doc = "\n Returns the element attribute named |attrName|.\n"]
6236    pub get_element_attribute: ::std::option::Option<
6237        unsafe extern "C" fn(
6238            self_: *mut _cef_domnode_t,
6239            attrName: *const cef_string_t,
6240        ) -> cef_string_userfree_t,
6241    >,
6242    #[doc = "\n Returns a map of all element attributes.\n"]
6243    pub get_element_attributes: ::std::option::Option<
6244        unsafe extern "C" fn(self_: *mut _cef_domnode_t, attrMap: cef_string_map_t),
6245    >,
6246    #[doc = "\n Set the value for the element attribute named |attrName|. Returns true (1)\n on success.\n"]
6247    pub set_element_attribute: ::std::option::Option<
6248        unsafe extern "C" fn(
6249            self_: *mut _cef_domnode_t,
6250            attrName: *const cef_string_t,
6251            value: *const cef_string_t,
6252        ) -> ::std::os::raw::c_int,
6253    >,
6254    #[doc = "\n Returns the inner text of the element.\n"]
6255    pub get_element_inner_text: ::std::option::Option<
6256        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
6257    >,
6258    #[doc = "\n Returns the bounds of the element in device pixels. Use\n \"window.devicePixelRatio\" to convert to/from CSS pixels.\n"]
6259    pub get_element_bounds:
6260        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_rect_t>,
6261}
6262#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6263const _: () = {
6264    ["Size of _cef_domnode_t"][::std::mem::size_of::<_cef_domnode_t>() - 248usize];
6265    ["Alignment of _cef_domnode_t"][::std::mem::align_of::<_cef_domnode_t>() - 8usize];
6266    ["Offset of field: _cef_domnode_t::base"]
6267        [::std::mem::offset_of!(_cef_domnode_t, base) - 0usize];
6268    ["Offset of field: _cef_domnode_t::get_type"]
6269        [::std::mem::offset_of!(_cef_domnode_t, get_type) - 40usize];
6270    ["Offset of field: _cef_domnode_t::is_text"]
6271        [::std::mem::offset_of!(_cef_domnode_t, is_text) - 48usize];
6272    ["Offset of field: _cef_domnode_t::is_element"]
6273        [::std::mem::offset_of!(_cef_domnode_t, is_element) - 56usize];
6274    ["Offset of field: _cef_domnode_t::is_editable"]
6275        [::std::mem::offset_of!(_cef_domnode_t, is_editable) - 64usize];
6276    ["Offset of field: _cef_domnode_t::is_form_control_element"]
6277        [::std::mem::offset_of!(_cef_domnode_t, is_form_control_element) - 72usize];
6278    ["Offset of field: _cef_domnode_t::get_form_control_element_type"]
6279        [::std::mem::offset_of!(_cef_domnode_t, get_form_control_element_type) - 80usize];
6280    ["Offset of field: _cef_domnode_t::is_same"]
6281        [::std::mem::offset_of!(_cef_domnode_t, is_same) - 88usize];
6282    ["Offset of field: _cef_domnode_t::get_name"]
6283        [::std::mem::offset_of!(_cef_domnode_t, get_name) - 96usize];
6284    ["Offset of field: _cef_domnode_t::get_value"]
6285        [::std::mem::offset_of!(_cef_domnode_t, get_value) - 104usize];
6286    ["Offset of field: _cef_domnode_t::set_value"]
6287        [::std::mem::offset_of!(_cef_domnode_t, set_value) - 112usize];
6288    ["Offset of field: _cef_domnode_t::get_as_markup"]
6289        [::std::mem::offset_of!(_cef_domnode_t, get_as_markup) - 120usize];
6290    ["Offset of field: _cef_domnode_t::get_document"]
6291        [::std::mem::offset_of!(_cef_domnode_t, get_document) - 128usize];
6292    ["Offset of field: _cef_domnode_t::get_parent"]
6293        [::std::mem::offset_of!(_cef_domnode_t, get_parent) - 136usize];
6294    ["Offset of field: _cef_domnode_t::get_previous_sibling"]
6295        [::std::mem::offset_of!(_cef_domnode_t, get_previous_sibling) - 144usize];
6296    ["Offset of field: _cef_domnode_t::get_next_sibling"]
6297        [::std::mem::offset_of!(_cef_domnode_t, get_next_sibling) - 152usize];
6298    ["Offset of field: _cef_domnode_t::has_children"]
6299        [::std::mem::offset_of!(_cef_domnode_t, has_children) - 160usize];
6300    ["Offset of field: _cef_domnode_t::get_first_child"]
6301        [::std::mem::offset_of!(_cef_domnode_t, get_first_child) - 168usize];
6302    ["Offset of field: _cef_domnode_t::get_last_child"]
6303        [::std::mem::offset_of!(_cef_domnode_t, get_last_child) - 176usize];
6304    ["Offset of field: _cef_domnode_t::get_element_tag_name"]
6305        [::std::mem::offset_of!(_cef_domnode_t, get_element_tag_name) - 184usize];
6306    ["Offset of field: _cef_domnode_t::has_element_attributes"]
6307        [::std::mem::offset_of!(_cef_domnode_t, has_element_attributes) - 192usize];
6308    ["Offset of field: _cef_domnode_t::has_element_attribute"]
6309        [::std::mem::offset_of!(_cef_domnode_t, has_element_attribute) - 200usize];
6310    ["Offset of field: _cef_domnode_t::get_element_attribute"]
6311        [::std::mem::offset_of!(_cef_domnode_t, get_element_attribute) - 208usize];
6312    ["Offset of field: _cef_domnode_t::get_element_attributes"]
6313        [::std::mem::offset_of!(_cef_domnode_t, get_element_attributes) - 216usize];
6314    ["Offset of field: _cef_domnode_t::set_element_attribute"]
6315        [::std::mem::offset_of!(_cef_domnode_t, set_element_attribute) - 224usize];
6316    ["Offset of field: _cef_domnode_t::get_element_inner_text"]
6317        [::std::mem::offset_of!(_cef_domnode_t, get_element_inner_text) - 232usize];
6318    ["Offset of field: _cef_domnode_t::get_element_bounds"]
6319        [::std::mem::offset_of!(_cef_domnode_t, get_element_bounds) - 240usize];
6320};
6321#[doc = "\n Structure used to represent a DOM node. The functions of this structure\n should only be called on the render process main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6322pub type cef_domnode_t = _cef_domnode_t;
6323#[doc = "\n Structure that wraps platform-dependent share memory region mapping.\n\n NOTE: This struct is allocated DLL-side.\n"]
6324#[repr(C)]
6325#[derive(Debug, Copy, Clone)]
6326pub struct _cef_shared_memory_region_t {
6327    #[doc = "\n Base structure.\n"]
6328    pub base: cef_base_ref_counted_t,
6329    #[doc = "\n Returns true (1) if the mapping is valid.\n"]
6330    pub is_valid: ::std::option::Option<
6331        unsafe extern "C" fn(self_: *mut _cef_shared_memory_region_t) -> ::std::os::raw::c_int,
6332    >,
6333    #[doc = "\n Returns the size of the mapping in bytes. Returns 0 for invalid instances.\n"]
6334    pub size: ::std::option::Option<
6335        unsafe extern "C" fn(self_: *mut _cef_shared_memory_region_t) -> usize,
6336    >,
6337    #[doc = "\n Returns the pointer to the memory. Returns nullptr for invalid instances.\n The returned pointer is only valid for the life span of this object.\n"]
6338    pub memory: ::std::option::Option<
6339        unsafe extern "C" fn(
6340            self_: *mut _cef_shared_memory_region_t,
6341        ) -> *mut ::std::os::raw::c_void,
6342    >,
6343}
6344#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6345const _: () = {
6346    ["Size of _cef_shared_memory_region_t"]
6347        [::std::mem::size_of::<_cef_shared_memory_region_t>() - 64usize];
6348    ["Alignment of _cef_shared_memory_region_t"]
6349        [::std::mem::align_of::<_cef_shared_memory_region_t>() - 8usize];
6350    ["Offset of field: _cef_shared_memory_region_t::base"]
6351        [::std::mem::offset_of!(_cef_shared_memory_region_t, base) - 0usize];
6352    ["Offset of field: _cef_shared_memory_region_t::is_valid"]
6353        [::std::mem::offset_of!(_cef_shared_memory_region_t, is_valid) - 40usize];
6354    ["Offset of field: _cef_shared_memory_region_t::size"]
6355        [::std::mem::offset_of!(_cef_shared_memory_region_t, size) - 48usize];
6356    ["Offset of field: _cef_shared_memory_region_t::memory"]
6357        [::std::mem::offset_of!(_cef_shared_memory_region_t, memory) - 56usize];
6358};
6359#[doc = "\n Structure that wraps platform-dependent share memory region mapping.\n\n NOTE: This struct is allocated DLL-side.\n"]
6360pub type cef_shared_memory_region_t = _cef_shared_memory_region_t;
6361#[doc = "\n Structure representing a message. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6362#[repr(C)]
6363#[derive(Debug, Copy, Clone)]
6364pub struct _cef_process_message_t {
6365    #[doc = "\n Base structure.\n"]
6366    pub base: cef_base_ref_counted_t,
6367    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
6368    pub is_valid: ::std::option::Option<
6369        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> ::std::os::raw::c_int,
6370    >,
6371    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
6372    pub is_read_only: ::std::option::Option<
6373        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> ::std::os::raw::c_int,
6374    >,
6375    #[doc = "\n Returns a writable copy of this object. Returns nullptr when message\n contains a shared memory region.\n"]
6376    pub copy: ::std::option::Option<
6377        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> *mut _cef_process_message_t,
6378    >,
6379    #[doc = "\n Returns the message name.\n"]
6380    pub get_name: ::std::option::Option<
6381        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> cef_string_userfree_t,
6382    >,
6383    #[doc = "\n Returns the list of arguments. Returns nullptr when message contains a\n shared memory region.\n"]
6384    pub get_argument_list: ::std::option::Option<
6385        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> *mut _cef_list_value_t,
6386    >,
6387    #[doc = "\n Returns the shared memory region. Returns nullptr when message contains an\n argument list.\n"]
6388    pub get_shared_memory_region: ::std::option::Option<
6389        unsafe extern "C" fn(
6390            self_: *mut _cef_process_message_t,
6391        ) -> *mut _cef_shared_memory_region_t,
6392    >,
6393}
6394#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6395const _: () = {
6396    ["Size of _cef_process_message_t"][::std::mem::size_of::<_cef_process_message_t>() - 88usize];
6397    ["Alignment of _cef_process_message_t"]
6398        [::std::mem::align_of::<_cef_process_message_t>() - 8usize];
6399    ["Offset of field: _cef_process_message_t::base"]
6400        [::std::mem::offset_of!(_cef_process_message_t, base) - 0usize];
6401    ["Offset of field: _cef_process_message_t::is_valid"]
6402        [::std::mem::offset_of!(_cef_process_message_t, is_valid) - 40usize];
6403    ["Offset of field: _cef_process_message_t::is_read_only"]
6404        [::std::mem::offset_of!(_cef_process_message_t, is_read_only) - 48usize];
6405    ["Offset of field: _cef_process_message_t::copy"]
6406        [::std::mem::offset_of!(_cef_process_message_t, copy) - 56usize];
6407    ["Offset of field: _cef_process_message_t::get_name"]
6408        [::std::mem::offset_of!(_cef_process_message_t, get_name) - 64usize];
6409    ["Offset of field: _cef_process_message_t::get_argument_list"]
6410        [::std::mem::offset_of!(_cef_process_message_t, get_argument_list) - 72usize];
6411    ["Offset of field: _cef_process_message_t::get_shared_memory_region"]
6412        [::std::mem::offset_of!(_cef_process_message_t, get_shared_memory_region) - 80usize];
6413};
6414#[doc = "\n Structure representing a message. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6415pub type cef_process_message_t = _cef_process_message_t;
6416unsafe extern "C" {
6417    #[doc = "\n Create a new cef_process_message_t object with the specified name.\n"]
6418    pub fn cef_process_message_create(name: *const cef_string_t) -> *mut cef_process_message_t;
6419}
6420#[doc = "\n Structure used to represent a web request. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6421#[repr(C)]
6422#[derive(Debug, Copy, Clone)]
6423pub struct _cef_request_t {
6424    #[doc = "\n Base structure.\n"]
6425    pub base: cef_base_ref_counted_t,
6426    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6427    pub is_read_only: ::std::option::Option<
6428        unsafe extern "C" fn(self_: *mut _cef_request_t) -> ::std::os::raw::c_int,
6429    >,
6430    #[doc = "\n Get the fully qualified URL.\n"]
6431    pub get_url: ::std::option::Option<
6432        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6433    >,
6434    #[doc = "\n Set the fully qualified URL.\n"]
6435    pub set_url: ::std::option::Option<
6436        unsafe extern "C" fn(self_: *mut _cef_request_t, url: *const cef_string_t),
6437    >,
6438    #[doc = "\n Get the request function type. The value will default to POST if post data\n is provided and GET otherwise.\n"]
6439    pub get_method: ::std::option::Option<
6440        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6441    >,
6442    #[doc = "\n Set the request function type.\n"]
6443    pub set_method: ::std::option::Option<
6444        unsafe extern "C" fn(self_: *mut _cef_request_t, method: *const cef_string_t),
6445    >,
6446    #[doc = "\n Set the referrer URL and policy. If non-NULL the referrer URL must be\n fully qualified with an HTTP or HTTPS scheme component. Any username,\n password or ref component will be removed.\n"]
6447    pub set_referrer: ::std::option::Option<
6448        unsafe extern "C" fn(
6449            self_: *mut _cef_request_t,
6450            referrer_url: *const cef_string_t,
6451            policy: cef_referrer_policy_t,
6452        ),
6453    >,
6454    #[doc = "\n Get the referrer URL.\n"]
6455    pub get_referrer_url: ::std::option::Option<
6456        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6457    >,
6458    #[doc = "\n Get the referrer policy.\n"]
6459    pub get_referrer_policy: ::std::option::Option<
6460        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_referrer_policy_t,
6461    >,
6462    #[doc = "\n Get the post data.\n"]
6463    pub get_post_data: ::std::option::Option<
6464        unsafe extern "C" fn(self_: *mut _cef_request_t) -> *mut _cef_post_data_t,
6465    >,
6466    #[doc = "\n Set the post data.\n"]
6467    pub set_post_data: ::std::option::Option<
6468        unsafe extern "C" fn(self_: *mut _cef_request_t, postData: *mut _cef_post_data_t),
6469    >,
6470    #[doc = "\n Get the header values. Will not include the Referer value if any.\n"]
6471    pub get_header_map: ::std::option::Option<
6472        unsafe extern "C" fn(self_: *mut _cef_request_t, headerMap: cef_string_multimap_t),
6473    >,
6474    #[doc = "\n Set the header values. If a Referer value exists in the header map it will\n be removed and ignored.\n"]
6475    pub set_header_map: ::std::option::Option<
6476        unsafe extern "C" fn(self_: *mut _cef_request_t, headerMap: cef_string_multimap_t),
6477    >,
6478    #[doc = "\n Returns the first header value for |name| or an NULL string if not found.\n Will not return the Referer value if any. Use GetHeaderMap instead if\n |name| might have multiple values.\n"]
6479    pub get_header_by_name: ::std::option::Option<
6480        unsafe extern "C" fn(
6481            self_: *mut _cef_request_t,
6482            name: *const cef_string_t,
6483        ) -> cef_string_userfree_t,
6484    >,
6485    #[doc = "\n Set the header |name| to |value|. If |overwrite| is true (1) any existing\n values will be replaced with the new value. If |overwrite| is false (0)\n any existing values will not be overwritten. The Referer value cannot be\n set using this function.\n"]
6486    pub set_header_by_name: ::std::option::Option<
6487        unsafe extern "C" fn(
6488            self_: *mut _cef_request_t,
6489            name: *const cef_string_t,
6490            value: *const cef_string_t,
6491            overwrite: ::std::os::raw::c_int,
6492        ),
6493    >,
6494    #[doc = "\n Set all values at one time.\n"]
6495    pub set: ::std::option::Option<
6496        unsafe extern "C" fn(
6497            self_: *mut _cef_request_t,
6498            url: *const cef_string_t,
6499            method: *const cef_string_t,
6500            postData: *mut _cef_post_data_t,
6501            headerMap: cef_string_multimap_t,
6502        ),
6503    >,
6504    #[doc = "\n Get the flags used in combination with cef_urlrequest_t. See\n cef_urlrequest_flags_t for supported values.\n"]
6505    pub get_flags: ::std::option::Option<
6506        unsafe extern "C" fn(self_: *mut _cef_request_t) -> ::std::os::raw::c_int,
6507    >,
6508    #[doc = "\n Set the flags used in combination with cef_urlrequest_t.  See\n cef_urlrequest_flags_t for supported values.\n"]
6509    pub set_flags: ::std::option::Option<
6510        unsafe extern "C" fn(self_: *mut _cef_request_t, flags: ::std::os::raw::c_int),
6511    >,
6512    #[doc = "\n Get the URL to the first party for cookies used in combination with\n cef_urlrequest_t.\n"]
6513    pub get_first_party_for_cookies: ::std::option::Option<
6514        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6515    >,
6516    #[doc = "\n Set the URL to the first party for cookies used in combination with\n cef_urlrequest_t.\n"]
6517    pub set_first_party_for_cookies: ::std::option::Option<
6518        unsafe extern "C" fn(self_: *mut _cef_request_t, url: *const cef_string_t),
6519    >,
6520    #[doc = "\n Get the resource type for this request. Only available in the browser\n process.\n"]
6521    pub get_resource_type: ::std::option::Option<
6522        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_resource_type_t,
6523    >,
6524    #[doc = "\n Get the transition type for this request. Only available in the browser\n process and only applies to requests that represent a main frame or sub-\n frame navigation.\n"]
6525    pub get_transition_type: ::std::option::Option<
6526        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_transition_type_t,
6527    >,
6528    #[doc = "\n Returns the globally unique identifier for this request or 0 if not\n specified. Can be used by cef_resource_request_handler_t implementations\n in the browser process to track a single request across multiple\n callbacks.\n"]
6529    pub get_identifier:
6530        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_request_t) -> u64>,
6531}
6532#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6533const _: () = {
6534    ["Size of _cef_request_t"][::std::mem::size_of::<_cef_request_t>() - 216usize];
6535    ["Alignment of _cef_request_t"][::std::mem::align_of::<_cef_request_t>() - 8usize];
6536    ["Offset of field: _cef_request_t::base"]
6537        [::std::mem::offset_of!(_cef_request_t, base) - 0usize];
6538    ["Offset of field: _cef_request_t::is_read_only"]
6539        [::std::mem::offset_of!(_cef_request_t, is_read_only) - 40usize];
6540    ["Offset of field: _cef_request_t::get_url"]
6541        [::std::mem::offset_of!(_cef_request_t, get_url) - 48usize];
6542    ["Offset of field: _cef_request_t::set_url"]
6543        [::std::mem::offset_of!(_cef_request_t, set_url) - 56usize];
6544    ["Offset of field: _cef_request_t::get_method"]
6545        [::std::mem::offset_of!(_cef_request_t, get_method) - 64usize];
6546    ["Offset of field: _cef_request_t::set_method"]
6547        [::std::mem::offset_of!(_cef_request_t, set_method) - 72usize];
6548    ["Offset of field: _cef_request_t::set_referrer"]
6549        [::std::mem::offset_of!(_cef_request_t, set_referrer) - 80usize];
6550    ["Offset of field: _cef_request_t::get_referrer_url"]
6551        [::std::mem::offset_of!(_cef_request_t, get_referrer_url) - 88usize];
6552    ["Offset of field: _cef_request_t::get_referrer_policy"]
6553        [::std::mem::offset_of!(_cef_request_t, get_referrer_policy) - 96usize];
6554    ["Offset of field: _cef_request_t::get_post_data"]
6555        [::std::mem::offset_of!(_cef_request_t, get_post_data) - 104usize];
6556    ["Offset of field: _cef_request_t::set_post_data"]
6557        [::std::mem::offset_of!(_cef_request_t, set_post_data) - 112usize];
6558    ["Offset of field: _cef_request_t::get_header_map"]
6559        [::std::mem::offset_of!(_cef_request_t, get_header_map) - 120usize];
6560    ["Offset of field: _cef_request_t::set_header_map"]
6561        [::std::mem::offset_of!(_cef_request_t, set_header_map) - 128usize];
6562    ["Offset of field: _cef_request_t::get_header_by_name"]
6563        [::std::mem::offset_of!(_cef_request_t, get_header_by_name) - 136usize];
6564    ["Offset of field: _cef_request_t::set_header_by_name"]
6565        [::std::mem::offset_of!(_cef_request_t, set_header_by_name) - 144usize];
6566    ["Offset of field: _cef_request_t::set"]
6567        [::std::mem::offset_of!(_cef_request_t, set) - 152usize];
6568    ["Offset of field: _cef_request_t::get_flags"]
6569        [::std::mem::offset_of!(_cef_request_t, get_flags) - 160usize];
6570    ["Offset of field: _cef_request_t::set_flags"]
6571        [::std::mem::offset_of!(_cef_request_t, set_flags) - 168usize];
6572    ["Offset of field: _cef_request_t::get_first_party_for_cookies"]
6573        [::std::mem::offset_of!(_cef_request_t, get_first_party_for_cookies) - 176usize];
6574    ["Offset of field: _cef_request_t::set_first_party_for_cookies"]
6575        [::std::mem::offset_of!(_cef_request_t, set_first_party_for_cookies) - 184usize];
6576    ["Offset of field: _cef_request_t::get_resource_type"]
6577        [::std::mem::offset_of!(_cef_request_t, get_resource_type) - 192usize];
6578    ["Offset of field: _cef_request_t::get_transition_type"]
6579        [::std::mem::offset_of!(_cef_request_t, get_transition_type) - 200usize];
6580    ["Offset of field: _cef_request_t::get_identifier"]
6581        [::std::mem::offset_of!(_cef_request_t, get_identifier) - 208usize];
6582};
6583#[doc = "\n Structure used to represent a web request. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6584pub type cef_request_t = _cef_request_t;
6585unsafe extern "C" {
6586    #[doc = "\n Create a new cef_request_t object.\n"]
6587    pub fn cef_request_create() -> *mut cef_request_t;
6588}
6589#[doc = "\n Structure used to represent post data for a web request. The functions of\n this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6590#[repr(C)]
6591#[derive(Debug, Copy, Clone)]
6592pub struct _cef_post_data_t {
6593    #[doc = "\n Base structure.\n"]
6594    pub base: cef_base_ref_counted_t,
6595    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6596    pub is_read_only: ::std::option::Option<
6597        unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> ::std::os::raw::c_int,
6598    >,
6599    #[doc = "\n Returns true (1) if the underlying POST data includes elements that are\n not represented by this cef_post_data_t object (for example, multi-part\n file upload data). Modifying cef_post_data_t objects with excluded\n elements may result in the request failing.\n"]
6600    pub has_excluded_elements: ::std::option::Option<
6601        unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> ::std::os::raw::c_int,
6602    >,
6603    #[doc = "\n Returns the number of existing post data elements.\n"]
6604    pub get_element_count:
6605        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> usize>,
6606    #[doc = "\n Retrieve the post data elements.\n"]
6607    pub get_elements: ::std::option::Option<
6608        unsafe extern "C" fn(
6609            self_: *mut _cef_post_data_t,
6610            elementsCount: *mut usize,
6611            elements: *mut *mut _cef_post_data_element_t,
6612        ),
6613    >,
6614    #[doc = "\n Remove the specified post data element.  Returns true (1) if the removal\n succeeds.\n"]
6615    pub remove_element: ::std::option::Option<
6616        unsafe extern "C" fn(
6617            self_: *mut _cef_post_data_t,
6618            element: *mut _cef_post_data_element_t,
6619        ) -> ::std::os::raw::c_int,
6620    >,
6621    #[doc = "\n Add the specified post data element.  Returns true (1) if the add\n succeeds.\n"]
6622    pub add_element: ::std::option::Option<
6623        unsafe extern "C" fn(
6624            self_: *mut _cef_post_data_t,
6625            element: *mut _cef_post_data_element_t,
6626        ) -> ::std::os::raw::c_int,
6627    >,
6628    #[doc = "\n Remove all existing post data elements.\n"]
6629    pub remove_elements: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_t)>,
6630}
6631#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6632const _: () = {
6633    ["Size of _cef_post_data_t"][::std::mem::size_of::<_cef_post_data_t>() - 96usize];
6634    ["Alignment of _cef_post_data_t"][::std::mem::align_of::<_cef_post_data_t>() - 8usize];
6635    ["Offset of field: _cef_post_data_t::base"]
6636        [::std::mem::offset_of!(_cef_post_data_t, base) - 0usize];
6637    ["Offset of field: _cef_post_data_t::is_read_only"]
6638        [::std::mem::offset_of!(_cef_post_data_t, is_read_only) - 40usize];
6639    ["Offset of field: _cef_post_data_t::has_excluded_elements"]
6640        [::std::mem::offset_of!(_cef_post_data_t, has_excluded_elements) - 48usize];
6641    ["Offset of field: _cef_post_data_t::get_element_count"]
6642        [::std::mem::offset_of!(_cef_post_data_t, get_element_count) - 56usize];
6643    ["Offset of field: _cef_post_data_t::get_elements"]
6644        [::std::mem::offset_of!(_cef_post_data_t, get_elements) - 64usize];
6645    ["Offset of field: _cef_post_data_t::remove_element"]
6646        [::std::mem::offset_of!(_cef_post_data_t, remove_element) - 72usize];
6647    ["Offset of field: _cef_post_data_t::add_element"]
6648        [::std::mem::offset_of!(_cef_post_data_t, add_element) - 80usize];
6649    ["Offset of field: _cef_post_data_t::remove_elements"]
6650        [::std::mem::offset_of!(_cef_post_data_t, remove_elements) - 88usize];
6651};
6652#[doc = "\n Structure used to represent post data for a web request. The functions of\n this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6653pub type cef_post_data_t = _cef_post_data_t;
6654unsafe extern "C" {
6655    #[doc = "\n Create a new cef_post_data_t object.\n"]
6656    pub fn cef_post_data_create() -> *mut cef_post_data_t;
6657}
6658#[doc = "\n Structure used to represent a single element in the request post data. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6659#[repr(C)]
6660#[derive(Debug, Copy, Clone)]
6661pub struct _cef_post_data_element_t {
6662    #[doc = "\n Base structure.\n"]
6663    pub base: cef_base_ref_counted_t,
6664    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6665    pub is_read_only: ::std::option::Option<
6666        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> ::std::os::raw::c_int,
6667    >,
6668    #[doc = "\n Remove all contents from the post data element.\n"]
6669    pub set_to_empty:
6670        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_element_t)>,
6671    #[doc = "\n The post data element will represent a file.\n"]
6672    pub set_to_file: ::std::option::Option<
6673        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t, fileName: *const cef_string_t),
6674    >,
6675    #[doc = "\n The post data element will represent bytes.  The bytes passed in will be\n copied.\n"]
6676    pub set_to_bytes: ::std::option::Option<
6677        unsafe extern "C" fn(
6678            self_: *mut _cef_post_data_element_t,
6679            size: usize,
6680            bytes: *const ::std::os::raw::c_void,
6681        ),
6682    >,
6683    #[doc = "\n Return the type of this post data element.\n"]
6684    pub get_type: ::std::option::Option<
6685        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> cef_postdataelement_type_t,
6686    >,
6687    #[doc = "\n Return the file name.\n"]
6688    pub get_file: ::std::option::Option<
6689        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> cef_string_userfree_t,
6690    >,
6691    #[doc = "\n Return the number of bytes.\n"]
6692    pub get_bytes_count:
6693        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> usize>,
6694    #[doc = "\n Read up to |size| bytes into |bytes| and return the number of bytes\n actually read.\n"]
6695    pub get_bytes: ::std::option::Option<
6696        unsafe extern "C" fn(
6697            self_: *mut _cef_post_data_element_t,
6698            size: usize,
6699            bytes: *mut ::std::os::raw::c_void,
6700        ) -> usize,
6701    >,
6702}
6703#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6704const _: () = {
6705    ["Size of _cef_post_data_element_t"]
6706        [::std::mem::size_of::<_cef_post_data_element_t>() - 104usize];
6707    ["Alignment of _cef_post_data_element_t"]
6708        [::std::mem::align_of::<_cef_post_data_element_t>() - 8usize];
6709    ["Offset of field: _cef_post_data_element_t::base"]
6710        [::std::mem::offset_of!(_cef_post_data_element_t, base) - 0usize];
6711    ["Offset of field: _cef_post_data_element_t::is_read_only"]
6712        [::std::mem::offset_of!(_cef_post_data_element_t, is_read_only) - 40usize];
6713    ["Offset of field: _cef_post_data_element_t::set_to_empty"]
6714        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_empty) - 48usize];
6715    ["Offset of field: _cef_post_data_element_t::set_to_file"]
6716        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_file) - 56usize];
6717    ["Offset of field: _cef_post_data_element_t::set_to_bytes"]
6718        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_bytes) - 64usize];
6719    ["Offset of field: _cef_post_data_element_t::get_type"]
6720        [::std::mem::offset_of!(_cef_post_data_element_t, get_type) - 72usize];
6721    ["Offset of field: _cef_post_data_element_t::get_file"]
6722        [::std::mem::offset_of!(_cef_post_data_element_t, get_file) - 80usize];
6723    ["Offset of field: _cef_post_data_element_t::get_bytes_count"]
6724        [::std::mem::offset_of!(_cef_post_data_element_t, get_bytes_count) - 88usize];
6725    ["Offset of field: _cef_post_data_element_t::get_bytes"]
6726        [::std::mem::offset_of!(_cef_post_data_element_t, get_bytes) - 96usize];
6727};
6728#[doc = "\n Structure used to represent a single element in the request post data. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6729pub type cef_post_data_element_t = _cef_post_data_element_t;
6730unsafe extern "C" {
6731    #[doc = "\n Create a new cef_post_data_element_t object.\n"]
6732    pub fn cef_post_data_element_create() -> *mut cef_post_data_element_t;
6733}
6734#[doc = "\n Implement this structure to receive string values asynchronously.\n\n NOTE: This struct is allocated client-side.\n"]
6735#[repr(C)]
6736#[derive(Debug, Copy, Clone)]
6737pub struct _cef_string_visitor_t {
6738    #[doc = "\n Base structure.\n"]
6739    pub base: cef_base_ref_counted_t,
6740    #[doc = "\n Method that will be executed.\n"]
6741    pub visit: ::std::option::Option<
6742        unsafe extern "C" fn(self_: *mut _cef_string_visitor_t, string: *const cef_string_t),
6743    >,
6744}
6745#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6746const _: () = {
6747    ["Size of _cef_string_visitor_t"][::std::mem::size_of::<_cef_string_visitor_t>() - 48usize];
6748    ["Alignment of _cef_string_visitor_t"]
6749        [::std::mem::align_of::<_cef_string_visitor_t>() - 8usize];
6750    ["Offset of field: _cef_string_visitor_t::base"]
6751        [::std::mem::offset_of!(_cef_string_visitor_t, base) - 0usize];
6752    ["Offset of field: _cef_string_visitor_t::visit"]
6753        [::std::mem::offset_of!(_cef_string_visitor_t, visit) - 40usize];
6754};
6755#[doc = "\n Implement this structure to receive string values asynchronously.\n\n NOTE: This struct is allocated client-side.\n"]
6756pub type cef_string_visitor_t = _cef_string_visitor_t;
6757#[doc = "\n Structure used to represent a frame in the browser window. When used in the\n browser process the functions of this structure may be called on any thread\n unless otherwise indicated in the comments. When used in the render process\n the functions of this structure may only be called on the main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6758#[repr(C)]
6759#[derive(Debug, Copy, Clone)]
6760pub struct _cef_frame_t {
6761    #[doc = "\n Base structure.\n"]
6762    pub base: cef_base_ref_counted_t,
6763    #[doc = "\n True if this object is currently attached to a valid frame.\n"]
6764    pub is_valid: ::std::option::Option<
6765        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6766    >,
6767    #[doc = "\n Execute undo in this frame.\n"]
6768    pub undo: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6769    #[doc = "\n Execute redo in this frame.\n"]
6770    pub redo: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6771    #[doc = "\n Execute cut in this frame.\n"]
6772    pub cut: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6773    #[doc = "\n Execute copy in this frame.\n"]
6774    pub copy: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6775    #[doc = "\n Execute paste in this frame.\n"]
6776    pub paste: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6777    #[doc = "\n Execute paste and match style in this frame.\n"]
6778    pub paste_and_match_style:
6779        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6780    #[doc = "\n Execute delete in this frame.\n"]
6781    pub del: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6782    #[doc = "\n Execute select all in this frame.\n"]
6783    pub select_all: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6784    #[doc = "\n Save this frame's HTML source to a temporary file and open it in the\n default text viewing application. This function can only be called from\n the browser process.\n"]
6785    pub view_source: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6786    #[doc = "\n Retrieve this frame's HTML source as a string sent to the specified\n visitor.\n"]
6787    pub get_source: ::std::option::Option<
6788        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_string_visitor_t),
6789    >,
6790    #[doc = "\n Retrieve this frame's display text as a string sent to the specified\n visitor.\n"]
6791    pub get_text: ::std::option::Option<
6792        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_string_visitor_t),
6793    >,
6794    #[doc = "\n Load the request represented by the |request| object.\n\n WARNING: This function will fail with \"bad IPC message\" reason\n INVALID_INITIATOR_ORIGIN (213) unless you first navigate to the request\n origin using some other mechanism (LoadURL, link click, etc).\n"]
6795    pub load_request: ::std::option::Option<
6796        unsafe extern "C" fn(self_: *mut _cef_frame_t, request: *mut _cef_request_t),
6797    >,
6798    #[doc = "\n Load the specified |url|.\n"]
6799    pub load_url: ::std::option::Option<
6800        unsafe extern "C" fn(self_: *mut _cef_frame_t, url: *const cef_string_t),
6801    >,
6802    #[doc = "\n Execute a string of JavaScript code in this frame. The |script_url|\n parameter is the URL where the script in question can be found, if any.\n The renderer may request this URL to show the developer the source of the\n error.  The |start_line| parameter is the base line number to use for\n error reporting.\n"]
6803    pub execute_java_script: ::std::option::Option<
6804        unsafe extern "C" fn(
6805            self_: *mut _cef_frame_t,
6806            code: *const cef_string_t,
6807            script_url: *const cef_string_t,
6808            start_line: ::std::os::raw::c_int,
6809        ),
6810    >,
6811    #[doc = "\n Returns true (1) if this is the main (top-level) frame.\n"]
6812    pub is_main: ::std::option::Option<
6813        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6814    >,
6815    #[doc = "\n Returns true (1) if this is the focused frame.\n"]
6816    pub is_focused: ::std::option::Option<
6817        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6818    >,
6819    #[doc = "\n Returns the name for this frame. If the frame has an assigned name (for\n example, set via the iframe \"name\" attribute) then that value will be\n returned. Otherwise a unique name will be constructed based on the frame\n parent hierarchy. The main (top-level) frame will always have an NULL name\n value.\n"]
6820    pub get_name: ::std::option::Option<
6821        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6822    >,
6823    #[doc = "\n Returns the globally unique identifier for this frame or NULL if the\n underlying frame does not yet exist.\n"]
6824    pub get_identifier: ::std::option::Option<
6825        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6826    >,
6827    #[doc = "\n Returns the parent of this frame or NULL if this is the main (top-level)\n frame.\n"]
6828    pub get_parent:
6829        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_frame_t>,
6830    #[doc = "\n Returns the URL currently loaded in this frame.\n"]
6831    pub get_url: ::std::option::Option<
6832        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6833    >,
6834    #[doc = "\n Returns the browser that this frame belongs to.\n"]
6835    pub get_browser: ::std::option::Option<
6836        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_browser_t,
6837    >,
6838    #[doc = "\n Get the V8 context associated with the frame. This function can only be\n called from the render process.\n"]
6839    pub get_v8_context: ::std::option::Option<
6840        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_v8_context_t,
6841    >,
6842    #[doc = "\n Visit the DOM document. This function can only be called from the render\n process.\n"]
6843    pub visit_dom: ::std::option::Option<
6844        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_domvisitor_t),
6845    >,
6846    #[doc = "\n Create a new URL request that will be treated as originating from this\n frame and the associated browser. Use cef_urlrequest_t::Create instead if\n you do not want the request to have this association, in which case it may\n be handled differently (see documentation on that function). A request\n created with this function may only originate from the browser process,\n and will behave as follows:\n   - It may be intercepted by the client via CefResourceRequestHandler or\n     CefSchemeHandlerFactory.\n   - POST data may only contain a single element of type PDE_TYPE_FILE or\n     PDE_TYPE_BYTES.\n\n The |request| object will be marked as read-only after calling this\n function.\n"]
6847    pub create_urlrequest: ::std::option::Option<
6848        unsafe extern "C" fn(
6849            self_: *mut _cef_frame_t,
6850            request: *mut _cef_request_t,
6851            client: *mut _cef_urlrequest_client_t,
6852        ) -> *mut _cef_urlrequest_t,
6853    >,
6854    #[doc = "\n Send a message to the specified |target_process|. Ownership of the message\n contents will be transferred and the |message| reference will be\n invalidated. Message delivery is not guaranteed in all cases (for example,\n if the browser is closing, navigating, or if the target process crashes).\n Send an ACK message back from the target process if confirmation is\n required.\n"]
6855    pub send_process_message: ::std::option::Option<
6856        unsafe extern "C" fn(
6857            self_: *mut _cef_frame_t,
6858            target_process: cef_process_id_t,
6859            message: *mut _cef_process_message_t,
6860        ),
6861    >,
6862}
6863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6864const _: () = {
6865    ["Size of _cef_frame_t"][::std::mem::size_of::<_cef_frame_t>() - 248usize];
6866    ["Alignment of _cef_frame_t"][::std::mem::align_of::<_cef_frame_t>() - 8usize];
6867    ["Offset of field: _cef_frame_t::base"][::std::mem::offset_of!(_cef_frame_t, base) - 0usize];
6868    ["Offset of field: _cef_frame_t::is_valid"]
6869        [::std::mem::offset_of!(_cef_frame_t, is_valid) - 40usize];
6870    ["Offset of field: _cef_frame_t::undo"][::std::mem::offset_of!(_cef_frame_t, undo) - 48usize];
6871    ["Offset of field: _cef_frame_t::redo"][::std::mem::offset_of!(_cef_frame_t, redo) - 56usize];
6872    ["Offset of field: _cef_frame_t::cut"][::std::mem::offset_of!(_cef_frame_t, cut) - 64usize];
6873    ["Offset of field: _cef_frame_t::copy"][::std::mem::offset_of!(_cef_frame_t, copy) - 72usize];
6874    ["Offset of field: _cef_frame_t::paste"][::std::mem::offset_of!(_cef_frame_t, paste) - 80usize];
6875    ["Offset of field: _cef_frame_t::paste_and_match_style"]
6876        [::std::mem::offset_of!(_cef_frame_t, paste_and_match_style) - 88usize];
6877    ["Offset of field: _cef_frame_t::del"][::std::mem::offset_of!(_cef_frame_t, del) - 96usize];
6878    ["Offset of field: _cef_frame_t::select_all"]
6879        [::std::mem::offset_of!(_cef_frame_t, select_all) - 104usize];
6880    ["Offset of field: _cef_frame_t::view_source"]
6881        [::std::mem::offset_of!(_cef_frame_t, view_source) - 112usize];
6882    ["Offset of field: _cef_frame_t::get_source"]
6883        [::std::mem::offset_of!(_cef_frame_t, get_source) - 120usize];
6884    ["Offset of field: _cef_frame_t::get_text"]
6885        [::std::mem::offset_of!(_cef_frame_t, get_text) - 128usize];
6886    ["Offset of field: _cef_frame_t::load_request"]
6887        [::std::mem::offset_of!(_cef_frame_t, load_request) - 136usize];
6888    ["Offset of field: _cef_frame_t::load_url"]
6889        [::std::mem::offset_of!(_cef_frame_t, load_url) - 144usize];
6890    ["Offset of field: _cef_frame_t::execute_java_script"]
6891        [::std::mem::offset_of!(_cef_frame_t, execute_java_script) - 152usize];
6892    ["Offset of field: _cef_frame_t::is_main"]
6893        [::std::mem::offset_of!(_cef_frame_t, is_main) - 160usize];
6894    ["Offset of field: _cef_frame_t::is_focused"]
6895        [::std::mem::offset_of!(_cef_frame_t, is_focused) - 168usize];
6896    ["Offset of field: _cef_frame_t::get_name"]
6897        [::std::mem::offset_of!(_cef_frame_t, get_name) - 176usize];
6898    ["Offset of field: _cef_frame_t::get_identifier"]
6899        [::std::mem::offset_of!(_cef_frame_t, get_identifier) - 184usize];
6900    ["Offset of field: _cef_frame_t::get_parent"]
6901        [::std::mem::offset_of!(_cef_frame_t, get_parent) - 192usize];
6902    ["Offset of field: _cef_frame_t::get_url"]
6903        [::std::mem::offset_of!(_cef_frame_t, get_url) - 200usize];
6904    ["Offset of field: _cef_frame_t::get_browser"]
6905        [::std::mem::offset_of!(_cef_frame_t, get_browser) - 208usize];
6906    ["Offset of field: _cef_frame_t::get_v8_context"]
6907        [::std::mem::offset_of!(_cef_frame_t, get_v8_context) - 216usize];
6908    ["Offset of field: _cef_frame_t::visit_dom"]
6909        [::std::mem::offset_of!(_cef_frame_t, visit_dom) - 224usize];
6910    ["Offset of field: _cef_frame_t::create_urlrequest"]
6911        [::std::mem::offset_of!(_cef_frame_t, create_urlrequest) - 232usize];
6912    ["Offset of field: _cef_frame_t::send_process_message"]
6913        [::std::mem::offset_of!(_cef_frame_t, send_process_message) - 240usize];
6914};
6915#[doc = "\n Structure used to represent a frame in the browser window. When used in the\n browser process the functions of this structure may be called on any thread\n unless otherwise indicated in the comments. When used in the render process\n the functions of this structure may only be called on the main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6916pub type cef_frame_t = _cef_frame_t;
6917#[doc = "\n Structure representing the issuer or subject field of an X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6918#[repr(C)]
6919#[derive(Debug, Copy, Clone)]
6920pub struct _cef_x509_cert_principal_t {
6921    #[doc = "\n Base structure.\n"]
6922    pub base: cef_base_ref_counted_t,
6923    #[doc = "\n Returns a name that can be used to represent the issuer. It tries in this\n order: Common Name (CN), Organization Name (O) and Organizational Unit\n Name (OU) and returns the first non-NULL one found.\n"]
6924    pub get_display_name: ::std::option::Option<
6925        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6926    >,
6927    #[doc = "\n Returns the common name.\n"]
6928    pub get_common_name: ::std::option::Option<
6929        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6930    >,
6931    #[doc = "\n Returns the locality name.\n"]
6932    pub get_locality_name: ::std::option::Option<
6933        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6934    >,
6935    #[doc = "\n Returns the state or province name.\n"]
6936    pub get_state_or_province_name: ::std::option::Option<
6937        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6938    >,
6939    #[doc = "\n Returns the country name.\n"]
6940    pub get_country_name: ::std::option::Option<
6941        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6942    >,
6943    #[doc = "\n Retrieve the list of organization names.\n"]
6944    pub get_organization_names: ::std::option::Option<
6945        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t, names: cef_string_list_t),
6946    >,
6947    #[doc = "\n Retrieve the list of organization unit names.\n"]
6948    pub get_organization_unit_names: ::std::option::Option<
6949        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t, names: cef_string_list_t),
6950    >,
6951}
6952#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6953const _: () = {
6954    ["Size of _cef_x509_cert_principal_t"]
6955        [::std::mem::size_of::<_cef_x509_cert_principal_t>() - 96usize];
6956    ["Alignment of _cef_x509_cert_principal_t"]
6957        [::std::mem::align_of::<_cef_x509_cert_principal_t>() - 8usize];
6958    ["Offset of field: _cef_x509_cert_principal_t::base"]
6959        [::std::mem::offset_of!(_cef_x509_cert_principal_t, base) - 0usize];
6960    ["Offset of field: _cef_x509_cert_principal_t::get_display_name"]
6961        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_display_name) - 40usize];
6962    ["Offset of field: _cef_x509_cert_principal_t::get_common_name"]
6963        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_common_name) - 48usize];
6964    ["Offset of field: _cef_x509_cert_principal_t::get_locality_name"]
6965        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_locality_name) - 56usize];
6966    ["Offset of field: _cef_x509_cert_principal_t::get_state_or_province_name"]
6967        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_state_or_province_name) - 64usize];
6968    ["Offset of field: _cef_x509_cert_principal_t::get_country_name"]
6969        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_country_name) - 72usize];
6970    ["Offset of field: _cef_x509_cert_principal_t::get_organization_names"]
6971        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_organization_names) - 80usize];
6972    ["Offset of field: _cef_x509_cert_principal_t::get_organization_unit_names"]
6973        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_organization_unit_names) - 88usize];
6974};
6975#[doc = "\n Structure representing the issuer or subject field of an X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6976pub type cef_x509_cert_principal_t = _cef_x509_cert_principal_t;
6977#[doc = "\n Structure representing a X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6978#[repr(C)]
6979#[derive(Debug, Copy, Clone)]
6980pub struct _cef_x509_certificate_t {
6981    #[doc = "\n Base structure.\n"]
6982    pub base: cef_base_ref_counted_t,
6983    #[doc = "\n Returns the subject of the X.509 certificate. For HTTPS server\n certificates this represents the web server.  The common name of the\n subject should match the host name of the web server.\n"]
6984    pub get_subject: ::std::option::Option<
6985        unsafe extern "C" fn(
6986            self_: *mut _cef_x509_certificate_t,
6987        ) -> *mut _cef_x509_cert_principal_t,
6988    >,
6989    #[doc = "\n Returns the issuer of the X.509 certificate.\n"]
6990    pub get_issuer: ::std::option::Option<
6991        unsafe extern "C" fn(
6992            self_: *mut _cef_x509_certificate_t,
6993        ) -> *mut _cef_x509_cert_principal_t,
6994    >,
6995    #[doc = "\n Returns the DER encoded serial number for the X.509 certificate. The value\n possibly includes a leading 00 byte.\n"]
6996    pub get_serial_number: ::std::option::Option<
6997        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
6998    >,
6999    #[doc = "\n Returns the date before which the X.509 certificate is invalid.\n CefBaseTime.GetTimeT() will return 0 if no date was specified.\n"]
7000    pub get_valid_start: ::std::option::Option<
7001        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> cef_basetime_t,
7002    >,
7003    #[doc = "\n Returns the date after which the X.509 certificate is invalid.\n CefBaseTime.GetTimeT() will return 0 if no date was specified.\n"]
7004    pub get_valid_expiry: ::std::option::Option<
7005        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> cef_basetime_t,
7006    >,
7007    #[doc = "\n Returns the DER encoded data for the X.509 certificate.\n"]
7008    pub get_derencoded: ::std::option::Option<
7009        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
7010    >,
7011    #[doc = "\n Returns the PEM encoded data for the X.509 certificate.\n"]
7012    pub get_pemencoded: ::std::option::Option<
7013        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
7014    >,
7015    #[doc = "\n Returns the number of certificates in the issuer chain. If 0, the\n certificate is self-signed.\n"]
7016    pub get_issuer_chain_size:
7017        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> usize>,
7018    #[doc = "\n Returns the DER encoded data for the certificate issuer chain. If we\n failed to encode a certificate in the chain it is still present in the\n array but is an NULL string.\n"]
7019    pub get_derencoded_issuer_chain: ::std::option::Option<
7020        unsafe extern "C" fn(
7021            self_: *mut _cef_x509_certificate_t,
7022            chainCount: *mut usize,
7023            chain: *mut *mut _cef_binary_value_t,
7024        ),
7025    >,
7026    #[doc = "\n Returns the PEM encoded data for the certificate issuer chain. If we\n failed to encode a certificate in the chain it is still present in the\n array but is an NULL string.\n"]
7027    pub get_pemencoded_issuer_chain: ::std::option::Option<
7028        unsafe extern "C" fn(
7029            self_: *mut _cef_x509_certificate_t,
7030            chainCount: *mut usize,
7031            chain: *mut *mut _cef_binary_value_t,
7032        ),
7033    >,
7034}
7035#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7036const _: () = {
7037    ["Size of _cef_x509_certificate_t"]
7038        [::std::mem::size_of::<_cef_x509_certificate_t>() - 120usize];
7039    ["Alignment of _cef_x509_certificate_t"]
7040        [::std::mem::align_of::<_cef_x509_certificate_t>() - 8usize];
7041    ["Offset of field: _cef_x509_certificate_t::base"]
7042        [::std::mem::offset_of!(_cef_x509_certificate_t, base) - 0usize];
7043    ["Offset of field: _cef_x509_certificate_t::get_subject"]
7044        [::std::mem::offset_of!(_cef_x509_certificate_t, get_subject) - 40usize];
7045    ["Offset of field: _cef_x509_certificate_t::get_issuer"]
7046        [::std::mem::offset_of!(_cef_x509_certificate_t, get_issuer) - 48usize];
7047    ["Offset of field: _cef_x509_certificate_t::get_serial_number"]
7048        [::std::mem::offset_of!(_cef_x509_certificate_t, get_serial_number) - 56usize];
7049    ["Offset of field: _cef_x509_certificate_t::get_valid_start"]
7050        [::std::mem::offset_of!(_cef_x509_certificate_t, get_valid_start) - 64usize];
7051    ["Offset of field: _cef_x509_certificate_t::get_valid_expiry"]
7052        [::std::mem::offset_of!(_cef_x509_certificate_t, get_valid_expiry) - 72usize];
7053    ["Offset of field: _cef_x509_certificate_t::get_derencoded"]
7054        [::std::mem::offset_of!(_cef_x509_certificate_t, get_derencoded) - 80usize];
7055    ["Offset of field: _cef_x509_certificate_t::get_pemencoded"]
7056        [::std::mem::offset_of!(_cef_x509_certificate_t, get_pemencoded) - 88usize];
7057    ["Offset of field: _cef_x509_certificate_t::get_issuer_chain_size"]
7058        [::std::mem::offset_of!(_cef_x509_certificate_t, get_issuer_chain_size) - 96usize];
7059    ["Offset of field: _cef_x509_certificate_t::get_derencoded_issuer_chain"]
7060        [::std::mem::offset_of!(_cef_x509_certificate_t, get_derencoded_issuer_chain) - 104usize];
7061    ["Offset of field: _cef_x509_certificate_t::get_pemencoded_issuer_chain"]
7062        [::std::mem::offset_of!(_cef_x509_certificate_t, get_pemencoded_issuer_chain) - 112usize];
7063};
7064#[doc = "\n Structure representing a X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
7065pub type cef_x509_certificate_t = _cef_x509_certificate_t;
7066#[doc = "\n Structure representing the SSL information for a navigation entry.\n\n NOTE: This struct is allocated DLL-side.\n"]
7067#[repr(C)]
7068#[derive(Debug, Copy, Clone)]
7069pub struct _cef_sslstatus_t {
7070    #[doc = "\n Base structure.\n"]
7071    pub base: cef_base_ref_counted_t,
7072    #[doc = "\n Returns true (1) if the status is related to a secure SSL/TLS connection.\n"]
7073    pub is_secure_connection: ::std::option::Option<
7074        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> ::std::os::raw::c_int,
7075    >,
7076    #[doc = "\n Returns a bitmask containing any and all problems verifying the server\n certificate.\n"]
7077    pub get_cert_status: ::std::option::Option<
7078        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_cert_status_t,
7079    >,
7080    #[doc = "\n Returns the SSL version used for the SSL connection.\n"]
7081    pub get_sslversion: ::std::option::Option<
7082        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_ssl_version_t,
7083    >,
7084    #[doc = "\n Returns a bitmask containing the page security content status.\n"]
7085    pub get_content_status: ::std::option::Option<
7086        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_ssl_content_status_t,
7087    >,
7088    #[doc = "\n Returns the X.509 certificate.\n"]
7089    pub get_x509_certificate: ::std::option::Option<
7090        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> *mut _cef_x509_certificate_t,
7091    >,
7092}
7093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7094const _: () = {
7095    ["Size of _cef_sslstatus_t"][::std::mem::size_of::<_cef_sslstatus_t>() - 80usize];
7096    ["Alignment of _cef_sslstatus_t"][::std::mem::align_of::<_cef_sslstatus_t>() - 8usize];
7097    ["Offset of field: _cef_sslstatus_t::base"]
7098        [::std::mem::offset_of!(_cef_sslstatus_t, base) - 0usize];
7099    ["Offset of field: _cef_sslstatus_t::is_secure_connection"]
7100        [::std::mem::offset_of!(_cef_sslstatus_t, is_secure_connection) - 40usize];
7101    ["Offset of field: _cef_sslstatus_t::get_cert_status"]
7102        [::std::mem::offset_of!(_cef_sslstatus_t, get_cert_status) - 48usize];
7103    ["Offset of field: _cef_sslstatus_t::get_sslversion"]
7104        [::std::mem::offset_of!(_cef_sslstatus_t, get_sslversion) - 56usize];
7105    ["Offset of field: _cef_sslstatus_t::get_content_status"]
7106        [::std::mem::offset_of!(_cef_sslstatus_t, get_content_status) - 64usize];
7107    ["Offset of field: _cef_sslstatus_t::get_x509_certificate"]
7108        [::std::mem::offset_of!(_cef_sslstatus_t, get_x509_certificate) - 72usize];
7109};
7110#[doc = "\n Structure representing the SSL information for a navigation entry.\n\n NOTE: This struct is allocated DLL-side.\n"]
7111pub type cef_sslstatus_t = _cef_sslstatus_t;
7112#[doc = "\n Structure used to represent an entry in navigation history.\n\n NOTE: This struct is allocated DLL-side.\n"]
7113#[repr(C)]
7114#[derive(Debug, Copy, Clone)]
7115pub struct _cef_navigation_entry_t {
7116    #[doc = "\n Base structure.\n"]
7117    pub base: cef_base_ref_counted_t,
7118    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
7119    pub is_valid: ::std::option::Option<
7120        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
7121    >,
7122    #[doc = "\n Returns the actual URL of the page. For some pages this may be data: URL\n or similar. Use get_display_url() to return a display-friendly version.\n"]
7123    pub get_url: ::std::option::Option<
7124        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
7125    >,
7126    #[doc = "\n Returns a display-friendly version of the URL.\n"]
7127    pub get_display_url: ::std::option::Option<
7128        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
7129    >,
7130    #[doc = "\n Returns the original URL that was entered by the user before any\n redirects.\n"]
7131    pub get_original_url: ::std::option::Option<
7132        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
7133    >,
7134    #[doc = "\n Returns the title set by the page. This value may be NULL.\n"]
7135    pub get_title: ::std::option::Option<
7136        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
7137    >,
7138    #[doc = "\n Returns the transition type which indicates what the user did to move to\n this page from the previous page.\n"]
7139    pub get_transition_type: ::std::option::Option<
7140        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_transition_type_t,
7141    >,
7142    #[doc = "\n Returns true (1) if this navigation includes post data.\n"]
7143    pub has_post_data: ::std::option::Option<
7144        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
7145    >,
7146    #[doc = "\n Returns the time for the last known successful navigation completion. A\n navigation may be completed more than once if the page is reloaded. May be\n 0 if the navigation has not yet completed.\n"]
7147    pub get_completion_time: ::std::option::Option<
7148        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_basetime_t,
7149    >,
7150    #[doc = "\n Returns the HTTP status code for the last known successful navigation\n response. May be 0 if the response has not yet been received or if the\n navigation has not yet completed.\n"]
7151    pub get_http_status_code: ::std::option::Option<
7152        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
7153    >,
7154    #[doc = "\n Returns the SSL information for this navigation entry.\n"]
7155    pub get_sslstatus: ::std::option::Option<
7156        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> *mut _cef_sslstatus_t,
7157    >,
7158}
7159#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7160const _: () = {
7161    ["Size of _cef_navigation_entry_t"]
7162        [::std::mem::size_of::<_cef_navigation_entry_t>() - 120usize];
7163    ["Alignment of _cef_navigation_entry_t"]
7164        [::std::mem::align_of::<_cef_navigation_entry_t>() - 8usize];
7165    ["Offset of field: _cef_navigation_entry_t::base"]
7166        [::std::mem::offset_of!(_cef_navigation_entry_t, base) - 0usize];
7167    ["Offset of field: _cef_navigation_entry_t::is_valid"]
7168        [::std::mem::offset_of!(_cef_navigation_entry_t, is_valid) - 40usize];
7169    ["Offset of field: _cef_navigation_entry_t::get_url"]
7170        [::std::mem::offset_of!(_cef_navigation_entry_t, get_url) - 48usize];
7171    ["Offset of field: _cef_navigation_entry_t::get_display_url"]
7172        [::std::mem::offset_of!(_cef_navigation_entry_t, get_display_url) - 56usize];
7173    ["Offset of field: _cef_navigation_entry_t::get_original_url"]
7174        [::std::mem::offset_of!(_cef_navigation_entry_t, get_original_url) - 64usize];
7175    ["Offset of field: _cef_navigation_entry_t::get_title"]
7176        [::std::mem::offset_of!(_cef_navigation_entry_t, get_title) - 72usize];
7177    ["Offset of field: _cef_navigation_entry_t::get_transition_type"]
7178        [::std::mem::offset_of!(_cef_navigation_entry_t, get_transition_type) - 80usize];
7179    ["Offset of field: _cef_navigation_entry_t::has_post_data"]
7180        [::std::mem::offset_of!(_cef_navigation_entry_t, has_post_data) - 88usize];
7181    ["Offset of field: _cef_navigation_entry_t::get_completion_time"]
7182        [::std::mem::offset_of!(_cef_navigation_entry_t, get_completion_time) - 96usize];
7183    ["Offset of field: _cef_navigation_entry_t::get_http_status_code"]
7184        [::std::mem::offset_of!(_cef_navigation_entry_t, get_http_status_code) - 104usize];
7185    ["Offset of field: _cef_navigation_entry_t::get_sslstatus"]
7186        [::std::mem::offset_of!(_cef_navigation_entry_t, get_sslstatus) - 112usize];
7187};
7188#[doc = "\n Structure used to represent an entry in navigation history.\n\n NOTE: This struct is allocated DLL-side.\n"]
7189pub type cef_navigation_entry_t = _cef_navigation_entry_t;
7190#[doc = "\n Generic callback structure used for managing the lifespan of a registration.\n\n NOTE: This struct is allocated DLL-side.\n"]
7191#[repr(C)]
7192#[derive(Debug, Copy, Clone)]
7193pub struct _cef_registration_t {
7194    #[doc = "\n Base structure.\n"]
7195    pub base: cef_base_ref_counted_t,
7196}
7197#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7198const _: () = {
7199    ["Size of _cef_registration_t"][::std::mem::size_of::<_cef_registration_t>() - 40usize];
7200    ["Alignment of _cef_registration_t"][::std::mem::align_of::<_cef_registration_t>() - 8usize];
7201    ["Offset of field: _cef_registration_t::base"]
7202        [::std::mem::offset_of!(_cef_registration_t, base) - 0usize];
7203};
7204#[doc = "\n Generic callback structure used for managing the lifespan of a registration.\n\n NOTE: This struct is allocated DLL-side.\n"]
7205pub type cef_registration_t = _cef_registration_t;
7206#[doc = "\n Generic callback structure used for asynchronous continuation.\n\n NOTE: This struct is allocated DLL-side.\n"]
7207#[repr(C)]
7208#[derive(Debug, Copy, Clone)]
7209pub struct _cef_callback_t {
7210    #[doc = "\n Base structure.\n"]
7211    pub base: cef_base_ref_counted_t,
7212    #[doc = "\n Continue processing.\n"]
7213    pub cont: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_callback_t)>,
7214    #[doc = "\n Cancel processing.\n"]
7215    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_callback_t)>,
7216}
7217#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7218const _: () = {
7219    ["Size of _cef_callback_t"][::std::mem::size_of::<_cef_callback_t>() - 56usize];
7220    ["Alignment of _cef_callback_t"][::std::mem::align_of::<_cef_callback_t>() - 8usize];
7221    ["Offset of field: _cef_callback_t::base"]
7222        [::std::mem::offset_of!(_cef_callback_t, base) - 0usize];
7223    ["Offset of field: _cef_callback_t::cont"]
7224        [::std::mem::offset_of!(_cef_callback_t, cont) - 40usize];
7225    ["Offset of field: _cef_callback_t::cancel"]
7226        [::std::mem::offset_of!(_cef_callback_t, cancel) - 48usize];
7227};
7228#[doc = "\n Generic callback structure used for asynchronous continuation.\n\n NOTE: This struct is allocated DLL-side.\n"]
7229pub type cef_callback_t = _cef_callback_t;
7230#[doc = "\n Generic callback structure used for asynchronous completion.\n\n NOTE: This struct is allocated client-side.\n"]
7231#[repr(C)]
7232#[derive(Debug, Copy, Clone)]
7233pub struct _cef_completion_callback_t {
7234    #[doc = "\n Base structure.\n"]
7235    pub base: cef_base_ref_counted_t,
7236    #[doc = "\n Method that will be called once the task is complete.\n"]
7237    pub on_complete:
7238        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_completion_callback_t)>,
7239}
7240#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7241const _: () = {
7242    ["Size of _cef_completion_callback_t"]
7243        [::std::mem::size_of::<_cef_completion_callback_t>() - 48usize];
7244    ["Alignment of _cef_completion_callback_t"]
7245        [::std::mem::align_of::<_cef_completion_callback_t>() - 8usize];
7246    ["Offset of field: _cef_completion_callback_t::base"]
7247        [::std::mem::offset_of!(_cef_completion_callback_t, base) - 0usize];
7248    ["Offset of field: _cef_completion_callback_t::on_complete"]
7249        [::std::mem::offset_of!(_cef_completion_callback_t, on_complete) - 40usize];
7250};
7251#[doc = "\n Generic callback structure used for asynchronous completion.\n\n NOTE: This struct is allocated client-side.\n"]
7252pub type cef_completion_callback_t = _cef_completion_callback_t;
7253#[doc = "\n Structure used for managing cookies. The functions of this structure may be\n called on any thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7254#[repr(C)]
7255#[derive(Debug, Copy, Clone)]
7256pub struct _cef_cookie_manager_t {
7257    #[doc = "\n Base structure.\n"]
7258    pub base: cef_base_ref_counted_t,
7259    #[doc = "\n Visit all cookies on the UI thread. The returned cookies are ordered by\n longest path, then by earliest creation date. Returns false (0) if cookies\n cannot be accessed.\n"]
7260    pub visit_all_cookies: ::std::option::Option<
7261        unsafe extern "C" fn(
7262            self_: *mut _cef_cookie_manager_t,
7263            visitor: *mut _cef_cookie_visitor_t,
7264        ) -> ::std::os::raw::c_int,
7265    >,
7266    #[doc = "\n Visit a subset of cookies on the UI thread. The results are filtered by\n the given url scheme, host, domain and path. If |includeHttpOnly| is true\n (1) HTTP-only cookies will also be included in the results. The returned\n cookies are ordered by longest path, then by earliest creation date.\n Returns false (0) if cookies cannot be accessed.\n"]
7267    pub visit_url_cookies: ::std::option::Option<
7268        unsafe extern "C" fn(
7269            self_: *mut _cef_cookie_manager_t,
7270            url: *const cef_string_t,
7271            includeHttpOnly: ::std::os::raw::c_int,
7272            visitor: *mut _cef_cookie_visitor_t,
7273        ) -> ::std::os::raw::c_int,
7274    >,
7275    #[doc = "\n Sets a cookie given a valid URL and explicit user-provided cookie\n attributes. This function expects each attribute to be well-formed. It\n will check for disallowed characters (e.g. the ';' character is disallowed\n within the cookie value attribute) and fail without setting the cookie if\n such characters are found. If |callback| is non-NULL it will be executed\n asnychronously on the UI thread after the cookie has been set. Returns\n false (0) if an invalid URL is specified or if cookies cannot be accessed.\n"]
7276    pub set_cookie: ::std::option::Option<
7277        unsafe extern "C" fn(
7278            self_: *mut _cef_cookie_manager_t,
7279            url: *const cef_string_t,
7280            cookie: *const _cef_cookie_t,
7281            callback: *mut _cef_set_cookie_callback_t,
7282        ) -> ::std::os::raw::c_int,
7283    >,
7284    #[doc = "\n Delete all cookies that match the specified parameters. If both |url| and\n |cookie_name| values are specified all host and domain cookies matching\n both will be deleted. If only |url| is specified all host cookies (but not\n domain cookies) irrespective of path will be deleted. If |url| is NULL all\n cookies for all hosts and domains will be deleted. If |callback| is non-\n NULL it will be executed asnychronously on the UI thread after the cookies\n have been deleted. Returns false (0) if a non-NULL invalid URL is\n specified or if cookies cannot be accessed. Cookies can alternately be\n deleted using the Visit*Cookies() functions.\n"]
7285    pub delete_cookies: ::std::option::Option<
7286        unsafe extern "C" fn(
7287            self_: *mut _cef_cookie_manager_t,
7288            url: *const cef_string_t,
7289            cookie_name: *const cef_string_t,
7290            callback: *mut _cef_delete_cookies_callback_t,
7291        ) -> ::std::os::raw::c_int,
7292    >,
7293    #[doc = "\n Flush the backing store (if any) to disk. If |callback| is non-NULL it\n will be executed asnychronously on the UI thread after the flush is\n complete. Returns false (0) if cookies cannot be accessed.\n"]
7294    pub flush_store: ::std::option::Option<
7295        unsafe extern "C" fn(
7296            self_: *mut _cef_cookie_manager_t,
7297            callback: *mut _cef_completion_callback_t,
7298        ) -> ::std::os::raw::c_int,
7299    >,
7300}
7301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7302const _: () = {
7303    ["Size of _cef_cookie_manager_t"][::std::mem::size_of::<_cef_cookie_manager_t>() - 80usize];
7304    ["Alignment of _cef_cookie_manager_t"]
7305        [::std::mem::align_of::<_cef_cookie_manager_t>() - 8usize];
7306    ["Offset of field: _cef_cookie_manager_t::base"]
7307        [::std::mem::offset_of!(_cef_cookie_manager_t, base) - 0usize];
7308    ["Offset of field: _cef_cookie_manager_t::visit_all_cookies"]
7309        [::std::mem::offset_of!(_cef_cookie_manager_t, visit_all_cookies) - 40usize];
7310    ["Offset of field: _cef_cookie_manager_t::visit_url_cookies"]
7311        [::std::mem::offset_of!(_cef_cookie_manager_t, visit_url_cookies) - 48usize];
7312    ["Offset of field: _cef_cookie_manager_t::set_cookie"]
7313        [::std::mem::offset_of!(_cef_cookie_manager_t, set_cookie) - 56usize];
7314    ["Offset of field: _cef_cookie_manager_t::delete_cookies"]
7315        [::std::mem::offset_of!(_cef_cookie_manager_t, delete_cookies) - 64usize];
7316    ["Offset of field: _cef_cookie_manager_t::flush_store"]
7317        [::std::mem::offset_of!(_cef_cookie_manager_t, flush_store) - 72usize];
7318};
7319#[doc = "\n Structure used for managing cookies. The functions of this structure may be\n called on any thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7320pub type cef_cookie_manager_t = _cef_cookie_manager_t;
7321unsafe extern "C" {
7322    #[doc = "\n Returns the global cookie manager. By default data will be stored at\n cef_settings_t.cache_path if specified or in memory otherwise. If |callback|\n is non-NULL it will be executed asnychronously on the UI thread after the\n manager's storage has been initialized. Using this function is equivalent to\n calling cef_request_context_t::cef_request_context_get_global_context()-\n >GetDefaultCookieManager().\n"]
7323    pub fn cef_cookie_manager_get_global_manager(
7324        callback: *mut _cef_completion_callback_t,
7325    ) -> *mut cef_cookie_manager_t;
7326}
7327#[doc = "\n Structure to implement for visiting cookie values. The functions of this\n structure will always be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7328#[repr(C)]
7329#[derive(Debug, Copy, Clone)]
7330pub struct _cef_cookie_visitor_t {
7331    #[doc = "\n Base structure.\n"]
7332    pub base: cef_base_ref_counted_t,
7333    #[doc = "\n Method that will be called once for each cookie. |count| is the 0-based\n index for the current cookie. |total| is the total number of cookies. Set\n |deleteCookie| to true (1) to delete the cookie currently being visited.\n Return false (0) to stop visiting cookies. This function may never be\n called if no cookies are found.\n"]
7334    pub visit: ::std::option::Option<
7335        unsafe extern "C" fn(
7336            self_: *mut _cef_cookie_visitor_t,
7337            cookie: *const _cef_cookie_t,
7338            count: ::std::os::raw::c_int,
7339            total: ::std::os::raw::c_int,
7340            deleteCookie: *mut ::std::os::raw::c_int,
7341        ) -> ::std::os::raw::c_int,
7342    >,
7343}
7344#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7345const _: () = {
7346    ["Size of _cef_cookie_visitor_t"][::std::mem::size_of::<_cef_cookie_visitor_t>() - 48usize];
7347    ["Alignment of _cef_cookie_visitor_t"]
7348        [::std::mem::align_of::<_cef_cookie_visitor_t>() - 8usize];
7349    ["Offset of field: _cef_cookie_visitor_t::base"]
7350        [::std::mem::offset_of!(_cef_cookie_visitor_t, base) - 0usize];
7351    ["Offset of field: _cef_cookie_visitor_t::visit"]
7352        [::std::mem::offset_of!(_cef_cookie_visitor_t, visit) - 40usize];
7353};
7354#[doc = "\n Structure to implement for visiting cookie values. The functions of this\n structure will always be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7355pub type cef_cookie_visitor_t = _cef_cookie_visitor_t;
7356#[doc = "\n Structure to implement to be notified of asynchronous completion via\n cef_cookie_manager_t::set_cookie().\n\n NOTE: This struct is allocated client-side.\n"]
7357#[repr(C)]
7358#[derive(Debug, Copy, Clone)]
7359pub struct _cef_set_cookie_callback_t {
7360    #[doc = "\n Base structure.\n"]
7361    pub base: cef_base_ref_counted_t,
7362    #[doc = "\n Method that will be called upon completion. |success| will be true (1) if\n the cookie was set successfully.\n"]
7363    pub on_complete: ::std::option::Option<
7364        unsafe extern "C" fn(
7365            self_: *mut _cef_set_cookie_callback_t,
7366            success: ::std::os::raw::c_int,
7367        ),
7368    >,
7369}
7370#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7371const _: () = {
7372    ["Size of _cef_set_cookie_callback_t"]
7373        [::std::mem::size_of::<_cef_set_cookie_callback_t>() - 48usize];
7374    ["Alignment of _cef_set_cookie_callback_t"]
7375        [::std::mem::align_of::<_cef_set_cookie_callback_t>() - 8usize];
7376    ["Offset of field: _cef_set_cookie_callback_t::base"]
7377        [::std::mem::offset_of!(_cef_set_cookie_callback_t, base) - 0usize];
7378    ["Offset of field: _cef_set_cookie_callback_t::on_complete"]
7379        [::std::mem::offset_of!(_cef_set_cookie_callback_t, on_complete) - 40usize];
7380};
7381#[doc = "\n Structure to implement to be notified of asynchronous completion via\n cef_cookie_manager_t::set_cookie().\n\n NOTE: This struct is allocated client-side.\n"]
7382pub type cef_set_cookie_callback_t = _cef_set_cookie_callback_t;
7383#[doc = "\n Structure to implement to be notified of asynchronous completion via\n cef_cookie_manager_t::delete_cookies().\n\n NOTE: This struct is allocated client-side.\n"]
7384#[repr(C)]
7385#[derive(Debug, Copy, Clone)]
7386pub struct _cef_delete_cookies_callback_t {
7387    #[doc = "\n Base structure.\n"]
7388    pub base: cef_base_ref_counted_t,
7389    #[doc = "\n Method that will be called upon completion. |num_deleted| will be the\n number of cookies that were deleted.\n"]
7390    pub on_complete: ::std::option::Option<
7391        unsafe extern "C" fn(
7392            self_: *mut _cef_delete_cookies_callback_t,
7393            num_deleted: ::std::os::raw::c_int,
7394        ),
7395    >,
7396}
7397#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7398const _: () = {
7399    ["Size of _cef_delete_cookies_callback_t"]
7400        [::std::mem::size_of::<_cef_delete_cookies_callback_t>() - 48usize];
7401    ["Alignment of _cef_delete_cookies_callback_t"]
7402        [::std::mem::align_of::<_cef_delete_cookies_callback_t>() - 8usize];
7403    ["Offset of field: _cef_delete_cookies_callback_t::base"]
7404        [::std::mem::offset_of!(_cef_delete_cookies_callback_t, base) - 0usize];
7405    ["Offset of field: _cef_delete_cookies_callback_t::on_complete"]
7406        [::std::mem::offset_of!(_cef_delete_cookies_callback_t, on_complete) - 40usize];
7407};
7408#[doc = "\n Structure to implement to be notified of asynchronous completion via\n cef_cookie_manager_t::delete_cookies().\n\n NOTE: This struct is allocated client-side.\n"]
7409pub type cef_delete_cookies_callback_t = _cef_delete_cookies_callback_t;
7410#[doc = "\n Supports discovery of and communication with media devices on the local\n network via the Cast and DIAL protocols. The functions of this structure may\n be called on any browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7411#[repr(C)]
7412#[derive(Debug, Copy, Clone)]
7413pub struct _cef_media_router_t {
7414    #[doc = "\n Base structure.\n"]
7415    pub base: cef_base_ref_counted_t,
7416    #[doc = "\n Add an observer for MediaRouter events. The observer will remain\n registered until the returned Registration object is destroyed.\n"]
7417    pub add_observer: ::std::option::Option<
7418        unsafe extern "C" fn(
7419            self_: *mut _cef_media_router_t,
7420            observer: *mut _cef_media_observer_t,
7421        ) -> *mut _cef_registration_t,
7422    >,
7423    #[doc = "\n Returns a MediaSource object for the specified media source URN. Supported\n URN schemes include \"cast:\" and \"dial:\", and will be already known by the\n client application (e.g. \"cast:<appId>?clientId=<clientId>\").\n"]
7424    pub get_source: ::std::option::Option<
7425        unsafe extern "C" fn(
7426            self_: *mut _cef_media_router_t,
7427            urn: *const cef_string_t,
7428        ) -> *mut _cef_media_source_t,
7429    >,
7430    #[doc = "\n Trigger an asynchronous call to cef_media_observer_t::OnSinks on all\n registered observers.\n"]
7431    pub notify_current_sinks:
7432        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_router_t)>,
7433    #[doc = "\n Create a new route between |source| and |sink|. Source and sink must be\n valid, compatible (as reported by cef_media_sink_t::IsCompatibleWith), and\n a route between them must not already exist. |callback| will be executed\n on success or failure. If route creation succeeds it will also trigger an\n asynchronous call to cef_media_observer_t::OnRoutes on all registered\n observers.\n"]
7434    pub create_route: ::std::option::Option<
7435        unsafe extern "C" fn(
7436            self_: *mut _cef_media_router_t,
7437            source: *mut _cef_media_source_t,
7438            sink: *mut _cef_media_sink_t,
7439            callback: *mut _cef_media_route_create_callback_t,
7440        ),
7441    >,
7442    #[doc = "\n Trigger an asynchronous call to cef_media_observer_t::OnRoutes on all\n registered observers.\n"]
7443    pub notify_current_routes:
7444        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_router_t)>,
7445}
7446#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7447const _: () = {
7448    ["Size of _cef_media_router_t"][::std::mem::size_of::<_cef_media_router_t>() - 80usize];
7449    ["Alignment of _cef_media_router_t"][::std::mem::align_of::<_cef_media_router_t>() - 8usize];
7450    ["Offset of field: _cef_media_router_t::base"]
7451        [::std::mem::offset_of!(_cef_media_router_t, base) - 0usize];
7452    ["Offset of field: _cef_media_router_t::add_observer"]
7453        [::std::mem::offset_of!(_cef_media_router_t, add_observer) - 40usize];
7454    ["Offset of field: _cef_media_router_t::get_source"]
7455        [::std::mem::offset_of!(_cef_media_router_t, get_source) - 48usize];
7456    ["Offset of field: _cef_media_router_t::notify_current_sinks"]
7457        [::std::mem::offset_of!(_cef_media_router_t, notify_current_sinks) - 56usize];
7458    ["Offset of field: _cef_media_router_t::create_route"]
7459        [::std::mem::offset_of!(_cef_media_router_t, create_route) - 64usize];
7460    ["Offset of field: _cef_media_router_t::notify_current_routes"]
7461        [::std::mem::offset_of!(_cef_media_router_t, notify_current_routes) - 72usize];
7462};
7463#[doc = "\n Supports discovery of and communication with media devices on the local\n network via the Cast and DIAL protocols. The functions of this structure may\n be called on any browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7464pub type cef_media_router_t = _cef_media_router_t;
7465unsafe extern "C" {
7466    #[doc = "\n Returns the MediaRouter object associated with the global request context.\n If |callback| is non-NULL it will be executed asnychronously on the UI\n thread after the manager's storage has been initialized. Equivalent to\n calling cef_request_context_t::cef_request_context_get_global_context()-\n >get_media_router().\n"]
7467    pub fn cef_media_router_get_global(
7468        callback: *mut _cef_completion_callback_t,
7469    ) -> *mut cef_media_router_t;
7470}
7471#[doc = "\n Implemented by the client to observe MediaRouter events and registered via\n cef_media_router_t::AddObserver. The functions of this structure will be\n called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7472#[repr(C)]
7473#[derive(Debug, Copy, Clone)]
7474pub struct _cef_media_observer_t {
7475    #[doc = "\n Base structure.\n"]
7476    pub base: cef_base_ref_counted_t,
7477    #[doc = "\n The list of available media sinks has changed or\n cef_media_router_t::NotifyCurrentSinks was called.\n"]
7478    pub on_sinks: ::std::option::Option<
7479        unsafe extern "C" fn(
7480            self_: *mut _cef_media_observer_t,
7481            sinksCount: usize,
7482            sinks: *const *mut _cef_media_sink_t,
7483        ),
7484    >,
7485    #[doc = "\n The list of available media routes has changed or\n cef_media_router_t::NotifyCurrentRoutes was called.\n"]
7486    pub on_routes: ::std::option::Option<
7487        unsafe extern "C" fn(
7488            self_: *mut _cef_media_observer_t,
7489            routesCount: usize,
7490            routes: *const *mut _cef_media_route_t,
7491        ),
7492    >,
7493    #[doc = "\n The connection state of |route| has changed.\n"]
7494    pub on_route_state_changed: ::std::option::Option<
7495        unsafe extern "C" fn(
7496            self_: *mut _cef_media_observer_t,
7497            route: *mut _cef_media_route_t,
7498            state: cef_media_route_connection_state_t,
7499        ),
7500    >,
7501    #[doc = "\n A message was received over |route|. |message| is only valid for the scope\n of this callback and should be copied if necessary.\n"]
7502    pub on_route_message_received: ::std::option::Option<
7503        unsafe extern "C" fn(
7504            self_: *mut _cef_media_observer_t,
7505            route: *mut _cef_media_route_t,
7506            message: *const ::std::os::raw::c_void,
7507            message_size: usize,
7508        ),
7509    >,
7510}
7511#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7512const _: () = {
7513    ["Size of _cef_media_observer_t"][::std::mem::size_of::<_cef_media_observer_t>() - 72usize];
7514    ["Alignment of _cef_media_observer_t"]
7515        [::std::mem::align_of::<_cef_media_observer_t>() - 8usize];
7516    ["Offset of field: _cef_media_observer_t::base"]
7517        [::std::mem::offset_of!(_cef_media_observer_t, base) - 0usize];
7518    ["Offset of field: _cef_media_observer_t::on_sinks"]
7519        [::std::mem::offset_of!(_cef_media_observer_t, on_sinks) - 40usize];
7520    ["Offset of field: _cef_media_observer_t::on_routes"]
7521        [::std::mem::offset_of!(_cef_media_observer_t, on_routes) - 48usize];
7522    ["Offset of field: _cef_media_observer_t::on_route_state_changed"]
7523        [::std::mem::offset_of!(_cef_media_observer_t, on_route_state_changed) - 56usize];
7524    ["Offset of field: _cef_media_observer_t::on_route_message_received"]
7525        [::std::mem::offset_of!(_cef_media_observer_t, on_route_message_received) - 64usize];
7526};
7527#[doc = "\n Implemented by the client to observe MediaRouter events and registered via\n cef_media_router_t::AddObserver. The functions of this structure will be\n called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7528pub type cef_media_observer_t = _cef_media_observer_t;
7529#[doc = "\n Represents the route between a media source and sink. Instances of this\n object are created via cef_media_router_t::CreateRoute and retrieved via\n cef_media_observer_t::OnRoutes. Contains the status and metadata of a\n routing operation. The functions of this structure may be called on any\n browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7530#[repr(C)]
7531#[derive(Debug, Copy, Clone)]
7532pub struct _cef_media_route_t {
7533    #[doc = "\n Base structure.\n"]
7534    pub base: cef_base_ref_counted_t,
7535    #[doc = "\n Returns the ID for this route.\n"]
7536    pub get_id: ::std::option::Option<
7537        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> cef_string_userfree_t,
7538    >,
7539    #[doc = "\n Returns the source associated with this route.\n"]
7540    pub get_source: ::std::option::Option<
7541        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> *mut _cef_media_source_t,
7542    >,
7543    #[doc = "\n Returns the sink associated with this route.\n"]
7544    pub get_sink: ::std::option::Option<
7545        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> *mut _cef_media_sink_t,
7546    >,
7547    #[doc = "\n Send a message over this route. |message| will be copied if necessary.\n"]
7548    pub send_route_message: ::std::option::Option<
7549        unsafe extern "C" fn(
7550            self_: *mut _cef_media_route_t,
7551            message: *const ::std::os::raw::c_void,
7552            message_size: usize,
7553        ),
7554    >,
7555    #[doc = "\n Terminate this route. Will result in an asynchronous call to\n cef_media_observer_t::OnRoutes on all registered observers.\n"]
7556    pub terminate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_route_t)>,
7557}
7558#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7559const _: () = {
7560    ["Size of _cef_media_route_t"][::std::mem::size_of::<_cef_media_route_t>() - 80usize];
7561    ["Alignment of _cef_media_route_t"][::std::mem::align_of::<_cef_media_route_t>() - 8usize];
7562    ["Offset of field: _cef_media_route_t::base"]
7563        [::std::mem::offset_of!(_cef_media_route_t, base) - 0usize];
7564    ["Offset of field: _cef_media_route_t::get_id"]
7565        [::std::mem::offset_of!(_cef_media_route_t, get_id) - 40usize];
7566    ["Offset of field: _cef_media_route_t::get_source"]
7567        [::std::mem::offset_of!(_cef_media_route_t, get_source) - 48usize];
7568    ["Offset of field: _cef_media_route_t::get_sink"]
7569        [::std::mem::offset_of!(_cef_media_route_t, get_sink) - 56usize];
7570    ["Offset of field: _cef_media_route_t::send_route_message"]
7571        [::std::mem::offset_of!(_cef_media_route_t, send_route_message) - 64usize];
7572    ["Offset of field: _cef_media_route_t::terminate"]
7573        [::std::mem::offset_of!(_cef_media_route_t, terminate) - 72usize];
7574};
7575#[doc = "\n Represents the route between a media source and sink. Instances of this\n object are created via cef_media_router_t::CreateRoute and retrieved via\n cef_media_observer_t::OnRoutes. Contains the status and metadata of a\n routing operation. The functions of this structure may be called on any\n browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7576pub type cef_media_route_t = _cef_media_route_t;
7577#[doc = "\n Callback structure for cef_media_router_t::CreateRoute. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7578#[repr(C)]
7579#[derive(Debug, Copy, Clone)]
7580pub struct _cef_media_route_create_callback_t {
7581    #[doc = "\n Base structure.\n"]
7582    pub base: cef_base_ref_counted_t,
7583    #[doc = "\n Method that will be executed when the route creation has finished.\n |result| will be CEF_MRCR_OK if the route creation succeeded. |error| will\n be a description of the error if the route creation failed. |route| is the\n resulting route, or NULL if the route creation failed.\n"]
7584    pub on_media_route_create_finished: ::std::option::Option<
7585        unsafe extern "C" fn(
7586            self_: *mut _cef_media_route_create_callback_t,
7587            result: cef_media_route_create_result_t,
7588            error: *const cef_string_t,
7589            route: *mut _cef_media_route_t,
7590        ),
7591    >,
7592}
7593#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7594const _: () = {
7595    ["Size of _cef_media_route_create_callback_t"]
7596        [::std::mem::size_of::<_cef_media_route_create_callback_t>() - 48usize];
7597    ["Alignment of _cef_media_route_create_callback_t"]
7598        [::std::mem::align_of::<_cef_media_route_create_callback_t>() - 8usize];
7599    ["Offset of field: _cef_media_route_create_callback_t::base"]
7600        [::std::mem::offset_of!(_cef_media_route_create_callback_t, base) - 0usize];
7601    ["Offset of field: _cef_media_route_create_callback_t::on_media_route_create_finished"][::std::mem::offset_of!(
7602        _cef_media_route_create_callback_t,
7603        on_media_route_create_finished
7604    )
7605        - 40usize];
7606};
7607#[doc = "\n Callback structure for cef_media_router_t::CreateRoute. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7608pub type cef_media_route_create_callback_t = _cef_media_route_create_callback_t;
7609#[doc = "\n Represents a sink to which media can be routed. Instances of this object are\n retrieved via cef_media_observer_t::OnSinks. The functions of this structure\n may be called on any browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7610#[repr(C)]
7611#[derive(Debug, Copy, Clone)]
7612pub struct _cef_media_sink_t {
7613    #[doc = "\n Base structure.\n"]
7614    pub base: cef_base_ref_counted_t,
7615    #[doc = "\n Returns the ID for this sink.\n"]
7616    pub get_id: ::std::option::Option<
7617        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_string_userfree_t,
7618    >,
7619    #[doc = "\n Returns the name of this sink.\n"]
7620    pub get_name: ::std::option::Option<
7621        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_string_userfree_t,
7622    >,
7623    #[doc = "\n Returns the icon type for this sink.\n"]
7624    pub get_icon_type: ::std::option::Option<
7625        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_media_sink_icon_type_t,
7626    >,
7627    #[doc = "\n Asynchronously retrieves device info.\n"]
7628    pub get_device_info: ::std::option::Option<
7629        unsafe extern "C" fn(
7630            self_: *mut _cef_media_sink_t,
7631            callback: *mut _cef_media_sink_device_info_callback_t,
7632        ),
7633    >,
7634    #[doc = "\n Returns true (1) if this sink accepts content via Cast.\n"]
7635    pub is_cast_sink: ::std::option::Option<
7636        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> ::std::os::raw::c_int,
7637    >,
7638    #[doc = "\n Returns true (1) if this sink accepts content via DIAL.\n"]
7639    pub is_dial_sink: ::std::option::Option<
7640        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> ::std::os::raw::c_int,
7641    >,
7642    #[doc = "\n Returns true (1) if this sink is compatible with |source|.\n"]
7643    pub is_compatible_with: ::std::option::Option<
7644        unsafe extern "C" fn(
7645            self_: *mut _cef_media_sink_t,
7646            source: *mut _cef_media_source_t,
7647        ) -> ::std::os::raw::c_int,
7648    >,
7649}
7650#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7651const _: () = {
7652    ["Size of _cef_media_sink_t"][::std::mem::size_of::<_cef_media_sink_t>() - 96usize];
7653    ["Alignment of _cef_media_sink_t"][::std::mem::align_of::<_cef_media_sink_t>() - 8usize];
7654    ["Offset of field: _cef_media_sink_t::base"]
7655        [::std::mem::offset_of!(_cef_media_sink_t, base) - 0usize];
7656    ["Offset of field: _cef_media_sink_t::get_id"]
7657        [::std::mem::offset_of!(_cef_media_sink_t, get_id) - 40usize];
7658    ["Offset of field: _cef_media_sink_t::get_name"]
7659        [::std::mem::offset_of!(_cef_media_sink_t, get_name) - 48usize];
7660    ["Offset of field: _cef_media_sink_t::get_icon_type"]
7661        [::std::mem::offset_of!(_cef_media_sink_t, get_icon_type) - 56usize];
7662    ["Offset of field: _cef_media_sink_t::get_device_info"]
7663        [::std::mem::offset_of!(_cef_media_sink_t, get_device_info) - 64usize];
7664    ["Offset of field: _cef_media_sink_t::is_cast_sink"]
7665        [::std::mem::offset_of!(_cef_media_sink_t, is_cast_sink) - 72usize];
7666    ["Offset of field: _cef_media_sink_t::is_dial_sink"]
7667        [::std::mem::offset_of!(_cef_media_sink_t, is_dial_sink) - 80usize];
7668    ["Offset of field: _cef_media_sink_t::is_compatible_with"]
7669        [::std::mem::offset_of!(_cef_media_sink_t, is_compatible_with) - 88usize];
7670};
7671#[doc = "\n Represents a sink to which media can be routed. Instances of this object are\n retrieved via cef_media_observer_t::OnSinks. The functions of this structure\n may be called on any browser process thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7672pub type cef_media_sink_t = _cef_media_sink_t;
7673#[doc = "\n Callback structure for cef_media_sink_t::GetDeviceInfo. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7674#[repr(C)]
7675#[derive(Debug, Copy, Clone)]
7676pub struct _cef_media_sink_device_info_callback_t {
7677    #[doc = "\n Base structure.\n"]
7678    pub base: cef_base_ref_counted_t,
7679    #[doc = "\n Method that will be executed asyncronously once device information has\n been retrieved.\n"]
7680    pub on_media_sink_device_info: ::std::option::Option<
7681        unsafe extern "C" fn(
7682            self_: *mut _cef_media_sink_device_info_callback_t,
7683            device_info: *const _cef_media_sink_device_info_t,
7684        ),
7685    >,
7686}
7687#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7688const _: () = {
7689    ["Size of _cef_media_sink_device_info_callback_t"]
7690        [::std::mem::size_of::<_cef_media_sink_device_info_callback_t>() - 48usize];
7691    ["Alignment of _cef_media_sink_device_info_callback_t"]
7692        [::std::mem::align_of::<_cef_media_sink_device_info_callback_t>() - 8usize];
7693    ["Offset of field: _cef_media_sink_device_info_callback_t::base"]
7694        [::std::mem::offset_of!(_cef_media_sink_device_info_callback_t, base) - 0usize];
7695    ["Offset of field: _cef_media_sink_device_info_callback_t::on_media_sink_device_info"][::std::mem::offset_of!(
7696        _cef_media_sink_device_info_callback_t,
7697        on_media_sink_device_info
7698    )
7699        - 40usize];
7700};
7701#[doc = "\n Callback structure for cef_media_sink_t::GetDeviceInfo. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7702pub type cef_media_sink_device_info_callback_t = _cef_media_sink_device_info_callback_t;
7703#[doc = "\n Represents a source from which media can be routed. Instances of this object\n are retrieved via cef_media_router_t::GetSource. The functions of this\n structure may be called on any browser process thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7704#[repr(C)]
7705#[derive(Debug, Copy, Clone)]
7706pub struct _cef_media_source_t {
7707    #[doc = "\n Base structure.\n"]
7708    pub base: cef_base_ref_counted_t,
7709    #[doc = "\n Returns the ID (media source URN or URL) for this source.\n"]
7710    pub get_id: ::std::option::Option<
7711        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> cef_string_userfree_t,
7712    >,
7713    #[doc = "\n Returns true (1) if this source outputs its content via Cast.\n"]
7714    pub is_cast_source: ::std::option::Option<
7715        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> ::std::os::raw::c_int,
7716    >,
7717    #[doc = "\n Returns true (1) if this source outputs its content via DIAL.\n"]
7718    pub is_dial_source: ::std::option::Option<
7719        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> ::std::os::raw::c_int,
7720    >,
7721}
7722#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7723const _: () = {
7724    ["Size of _cef_media_source_t"][::std::mem::size_of::<_cef_media_source_t>() - 64usize];
7725    ["Alignment of _cef_media_source_t"][::std::mem::align_of::<_cef_media_source_t>() - 8usize];
7726    ["Offset of field: _cef_media_source_t::base"]
7727        [::std::mem::offset_of!(_cef_media_source_t, base) - 0usize];
7728    ["Offset of field: _cef_media_source_t::get_id"]
7729        [::std::mem::offset_of!(_cef_media_source_t, get_id) - 40usize];
7730    ["Offset of field: _cef_media_source_t::is_cast_source"]
7731        [::std::mem::offset_of!(_cef_media_source_t, is_cast_source) - 48usize];
7732    ["Offset of field: _cef_media_source_t::is_dial_source"]
7733        [::std::mem::offset_of!(_cef_media_source_t, is_dial_source) - 56usize];
7734};
7735#[doc = "\n Represents a source from which media can be routed. Instances of this object\n are retrieved via cef_media_router_t::GetSource. The functions of this\n structure may be called on any browser process thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
7736pub type cef_media_source_t = _cef_media_source_t;
7737#[doc = "\n Structure that manages custom preference registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
7738#[repr(C)]
7739#[derive(Debug, Copy, Clone)]
7740pub struct _cef_preference_registrar_t {
7741    #[doc = "\n Base structure.\n"]
7742    pub base: cef_base_scoped_t,
7743    #[doc = "\n Register a preference with the specified |name| and |default_value|. To\n avoid conflicts with built-in preferences the |name| value should contain\n an application-specific prefix followed by a period (e.g. \"myapp.value\").\n The contents of |default_value| will be copied. The data type for the\n preference will be inferred from |default_value|'s type and cannot be\n changed after registration. Returns true (1) on success. Returns false (0)\n if |name| is already registered or if |default_value| has an invalid type.\n This function must be called from within the scope of the\n cef_browser_process_handler_t::OnRegisterCustomPreferences callback.\n"]
7744    pub add_preference: ::std::option::Option<
7745        unsafe extern "C" fn(
7746            self_: *mut _cef_preference_registrar_t,
7747            name: *const cef_string_t,
7748            default_value: *mut _cef_value_t,
7749        ) -> ::std::os::raw::c_int,
7750    >,
7751}
7752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7753const _: () = {
7754    ["Size of _cef_preference_registrar_t"]
7755        [::std::mem::size_of::<_cef_preference_registrar_t>() - 24usize];
7756    ["Alignment of _cef_preference_registrar_t"]
7757        [::std::mem::align_of::<_cef_preference_registrar_t>() - 8usize];
7758    ["Offset of field: _cef_preference_registrar_t::base"]
7759        [::std::mem::offset_of!(_cef_preference_registrar_t, base) - 0usize];
7760    ["Offset of field: _cef_preference_registrar_t::add_preference"]
7761        [::std::mem::offset_of!(_cef_preference_registrar_t, add_preference) - 16usize];
7762};
7763#[doc = "\n Structure that manages custom preference registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
7764pub type cef_preference_registrar_t = _cef_preference_registrar_t;
7765#[doc = "\n Implemented by the client to observe preference changes and registered via\n cef_preference_manager_t::AddPreferenceObserver. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7766#[repr(C)]
7767#[derive(Debug, Copy, Clone)]
7768pub struct _cef_preference_observer_t {
7769    #[doc = "\n Base structure.\n"]
7770    pub base: cef_base_ref_counted_t,
7771    #[doc = "\n Called when a preference has changed. The new value can be retrieved using\n cef_preference_manager_t::GetPreference.\n"]
7772    pub on_preference_changed: ::std::option::Option<
7773        unsafe extern "C" fn(self_: *mut _cef_preference_observer_t, name: *const cef_string_t),
7774    >,
7775}
7776#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7777const _: () = {
7778    ["Size of _cef_preference_observer_t"]
7779        [::std::mem::size_of::<_cef_preference_observer_t>() - 48usize];
7780    ["Alignment of _cef_preference_observer_t"]
7781        [::std::mem::align_of::<_cef_preference_observer_t>() - 8usize];
7782    ["Offset of field: _cef_preference_observer_t::base"]
7783        [::std::mem::offset_of!(_cef_preference_observer_t, base) - 0usize];
7784    ["Offset of field: _cef_preference_observer_t::on_preference_changed"]
7785        [::std::mem::offset_of!(_cef_preference_observer_t, on_preference_changed) - 40usize];
7786};
7787#[doc = "\n Implemented by the client to observe preference changes and registered via\n cef_preference_manager_t::AddPreferenceObserver. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7788pub type cef_preference_observer_t = _cef_preference_observer_t;
7789#[doc = "\n Manage access to preferences. Many built-in preferences are registered by\n Chromium. Custom preferences can be registered in\n cef_browser_process_handler_t::OnRegisterCustomPreferences.\n\n NOTE: This struct is allocated DLL-side.\n"]
7790#[repr(C)]
7791#[derive(Debug, Copy, Clone)]
7792pub struct _cef_preference_manager_t {
7793    #[doc = "\n Base structure.\n"]
7794    pub base: cef_base_ref_counted_t,
7795    #[doc = "\n Returns true (1) if a preference with the specified |name| exists. This\n function must be called on the browser process UI thread.\n"]
7796    pub has_preference: ::std::option::Option<
7797        unsafe extern "C" fn(
7798            self_: *mut _cef_preference_manager_t,
7799            name: *const cef_string_t,
7800        ) -> ::std::os::raw::c_int,
7801    >,
7802    #[doc = "\n Returns the value for the preference with the specified |name|. Returns\n NULL if the preference does not exist. The returned object contains a copy\n of the underlying preference value and modifications to the returned\n object will not modify the underlying preference value. This function must\n be called on the browser process UI thread.\n"]
7803    pub get_preference: ::std::option::Option<
7804        unsafe extern "C" fn(
7805            self_: *mut _cef_preference_manager_t,
7806            name: *const cef_string_t,
7807        ) -> *mut _cef_value_t,
7808    >,
7809    #[doc = "\n Returns all preferences as a dictionary. If |include_defaults| is true (1)\n then preferences currently at their default value will be included. The\n returned object contains a copy of the underlying preference values and\n modifications to the returned object will not modify the underlying\n preference values. This function must be called on the browser process UI\n thread.\n"]
7810    pub get_all_preferences: ::std::option::Option<
7811        unsafe extern "C" fn(
7812            self_: *mut _cef_preference_manager_t,
7813            include_defaults: ::std::os::raw::c_int,
7814        ) -> *mut _cef_dictionary_value_t,
7815    >,
7816    #[doc = "\n Returns true (1) if the preference with the specified |name| can be\n modified using SetPreference. As one example preferences set via the\n command-line usually cannot be modified. This function must be called on\n the browser process UI thread.\n"]
7817    pub can_set_preference: ::std::option::Option<
7818        unsafe extern "C" fn(
7819            self_: *mut _cef_preference_manager_t,
7820            name: *const cef_string_t,
7821        ) -> ::std::os::raw::c_int,
7822    >,
7823    #[doc = "\n Set the |value| associated with preference |name|. Returns true (1) if the\n value is set successfully and false (0) otherwise. If |value| is NULL the\n preference will be restored to its default value. If setting the\n preference fails then |error| will be populated with a detailed\n description of the problem. This function must be called on the browser\n process UI thread.\n"]
7824    pub set_preference: ::std::option::Option<
7825        unsafe extern "C" fn(
7826            self_: *mut _cef_preference_manager_t,
7827            name: *const cef_string_t,
7828            value: *mut _cef_value_t,
7829            error: *mut cef_string_t,
7830        ) -> ::std::os::raw::c_int,
7831    >,
7832    #[doc = "\n Add an observer for preference changes. |name| is the name of the\n preference to observe. If |name| is NULL then all preferences will be\n observed. Observing all preferences has performance consequences and is\n not recommended outside of testing scenarios. The observer will remain\n registered until the returned Registration object is destroyed. This\n function must be called on the browser process UI thread.\n"]
7833    pub add_preference_observer: ::std::option::Option<
7834        unsafe extern "C" fn(
7835            self_: *mut _cef_preference_manager_t,
7836            name: *const cef_string_t,
7837            observer: *mut _cef_preference_observer_t,
7838        ) -> *mut _cef_registration_t,
7839    >,
7840}
7841#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7842const _: () = {
7843    ["Size of _cef_preference_manager_t"]
7844        [::std::mem::size_of::<_cef_preference_manager_t>() - 88usize];
7845    ["Alignment of _cef_preference_manager_t"]
7846        [::std::mem::align_of::<_cef_preference_manager_t>() - 8usize];
7847    ["Offset of field: _cef_preference_manager_t::base"]
7848        [::std::mem::offset_of!(_cef_preference_manager_t, base) - 0usize];
7849    ["Offset of field: _cef_preference_manager_t::has_preference"]
7850        [::std::mem::offset_of!(_cef_preference_manager_t, has_preference) - 40usize];
7851    ["Offset of field: _cef_preference_manager_t::get_preference"]
7852        [::std::mem::offset_of!(_cef_preference_manager_t, get_preference) - 48usize];
7853    ["Offset of field: _cef_preference_manager_t::get_all_preferences"]
7854        [::std::mem::offset_of!(_cef_preference_manager_t, get_all_preferences) - 56usize];
7855    ["Offset of field: _cef_preference_manager_t::can_set_preference"]
7856        [::std::mem::offset_of!(_cef_preference_manager_t, can_set_preference) - 64usize];
7857    ["Offset of field: _cef_preference_manager_t::set_preference"]
7858        [::std::mem::offset_of!(_cef_preference_manager_t, set_preference) - 72usize];
7859    ["Offset of field: _cef_preference_manager_t::add_preference_observer"]
7860        [::std::mem::offset_of!(_cef_preference_manager_t, add_preference_observer) - 80usize];
7861};
7862#[doc = "\n Manage access to preferences. Many built-in preferences are registered by\n Chromium. Custom preferences can be registered in\n cef_browser_process_handler_t::OnRegisterCustomPreferences.\n\n NOTE: This struct is allocated DLL-side.\n"]
7863pub type cef_preference_manager_t = _cef_preference_manager_t;
7864unsafe extern "C" {
7865    #[doc = "\n Returns the current Chrome Variations configuration (combination of field\n trials and chrome://flags) as equivalent command-line switches\n (`--[enable|disable]-features=XXXX`, etc). These switches can be used to\n apply the same configuration when launching a CEF-based application. See\n https://developer.chrome.com/docs/web-platform/chrome-variations for\n background and details. Note that field trial tests are disabled by default\n in Official CEF builds (via the `disable_fieldtrial_testing_config=true (1)`\n GN flag). This function must be called on the browser process UI thread.\n"]
7866    pub fn cef_preference_manager_get_chrome_variations_as_switches(switches: cef_string_list_t);
7867}
7868unsafe extern "C" {
7869    #[doc = "\n Returns the current Chrome Variations configuration (combination of field\n trials and chrome://flags) as human-readable strings. This is the human-\n readable equivalent of the \"Active Variations\" section of chrome://version.\n See https://developer.chrome.com/docs/web-platform/chrome-variations for\n background and details. Note that field trial tests are disabled by default\n in Official CEF builds (via the `disable_fieldtrial_testing_config=true (1)`\n GN flag). This function must be called on the browser process UI thread.\n"]
7870    pub fn cef_preference_manager_get_chrome_variations_as_strings(strings: cef_string_list_t);
7871}
7872unsafe extern "C" {
7873    #[doc = "\n Returns the global preference manager object.\n"]
7874    pub fn cef_preference_manager_get_global() -> *mut cef_preference_manager_t;
7875}
7876#[doc = "\n Callback structure for cef_request_context_t::ResolveHost.\n\n NOTE: This struct is allocated client-side.\n"]
7877#[repr(C)]
7878#[derive(Debug, Copy, Clone)]
7879pub struct _cef_resolve_callback_t {
7880    #[doc = "\n Base structure.\n"]
7881    pub base: cef_base_ref_counted_t,
7882    #[doc = "\n Called on the UI thread after the ResolveHost request has completed.\n |result| will be the result code. |resolved_ips| will be the list of\n resolved IP addresses or NULL if the resolution failed.\n"]
7883    pub on_resolve_completed: ::std::option::Option<
7884        unsafe extern "C" fn(
7885            self_: *mut _cef_resolve_callback_t,
7886            result: cef_errorcode_t,
7887            resolved_ips: cef_string_list_t,
7888        ),
7889    >,
7890}
7891#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7892const _: () = {
7893    ["Size of _cef_resolve_callback_t"][::std::mem::size_of::<_cef_resolve_callback_t>() - 48usize];
7894    ["Alignment of _cef_resolve_callback_t"]
7895        [::std::mem::align_of::<_cef_resolve_callback_t>() - 8usize];
7896    ["Offset of field: _cef_resolve_callback_t::base"]
7897        [::std::mem::offset_of!(_cef_resolve_callback_t, base) - 0usize];
7898    ["Offset of field: _cef_resolve_callback_t::on_resolve_completed"]
7899        [::std::mem::offset_of!(_cef_resolve_callback_t, on_resolve_completed) - 40usize];
7900};
7901#[doc = "\n Callback structure for cef_request_context_t::ResolveHost.\n\n NOTE: This struct is allocated client-side.\n"]
7902pub type cef_resolve_callback_t = _cef_resolve_callback_t;
7903#[doc = "\n Implemented by the client to observe content and website setting changes and\n registered via cef_request_context_t::AddSettingObserver. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7904#[repr(C)]
7905#[derive(Debug, Copy, Clone)]
7906pub struct _cef_setting_observer_t {
7907    #[doc = "\n Base structure.\n"]
7908    pub base: cef_base_ref_counted_t,
7909    #[doc = "\n Called when a content or website setting has changed. The new value can be\n retrieved using cef_request_context_t::GetContentSetting or\n cef_request_context_t::GetWebsiteSetting.\n"]
7910    pub on_setting_changed: ::std::option::Option<
7911        unsafe extern "C" fn(
7912            self_: *mut _cef_setting_observer_t,
7913            requesting_url: *const cef_string_t,
7914            top_level_url: *const cef_string_t,
7915            content_type: cef_content_setting_types_t,
7916        ),
7917    >,
7918}
7919#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7920const _: () = {
7921    ["Size of _cef_setting_observer_t"][::std::mem::size_of::<_cef_setting_observer_t>() - 48usize];
7922    ["Alignment of _cef_setting_observer_t"]
7923        [::std::mem::align_of::<_cef_setting_observer_t>() - 8usize];
7924    ["Offset of field: _cef_setting_observer_t::base"]
7925        [::std::mem::offset_of!(_cef_setting_observer_t, base) - 0usize];
7926    ["Offset of field: _cef_setting_observer_t::on_setting_changed"]
7927        [::std::mem::offset_of!(_cef_setting_observer_t, on_setting_changed) - 40usize];
7928};
7929#[doc = "\n Implemented by the client to observe content and website setting changes and\n registered via cef_request_context_t::AddSettingObserver. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
7930pub type cef_setting_observer_t = _cef_setting_observer_t;
7931#[doc = "\n A request context provides request handling for a set of related browser or\n URL request objects. A request context can be specified when creating a new\n browser via the cef_browser_host_t static factory functions or when creating\n a new URL request via the cef_urlrequest_t static factory functions. Browser\n objects with different request contexts will never be hosted in the same\n render process. Browser objects with the same request context may or may not\n be hosted in the same render process depending on the process model. Browser\n objects created indirectly via the JavaScript window.open function or\n targeted links will share the same render process and the same request\n context as the source browser. When running in single-process mode there is\n only a single render process (the main process) and so all browsers created\n in single-process mode will share the same request context. This will be the\n first request context passed into a cef_browser_host_t static factory\n function and all other request context objects will be ignored.\n\n NOTE: This struct is allocated DLL-side.\n"]
7932#[repr(C)]
7933#[derive(Debug, Copy, Clone)]
7934pub struct _cef_request_context_t {
7935    #[doc = "\n Base structure.\n"]
7936    pub base: cef_preference_manager_t,
7937    #[doc = "\n Returns true (1) if this object is pointing to the same context as |that|\n object.\n"]
7938    pub is_same: ::std::option::Option<
7939        unsafe extern "C" fn(
7940            self_: *mut _cef_request_context_t,
7941            other: *mut _cef_request_context_t,
7942        ) -> ::std::os::raw::c_int,
7943    >,
7944    #[doc = "\n Returns true (1) if this object is sharing the same storage as |that|\n object.\n"]
7945    pub is_sharing_with: ::std::option::Option<
7946        unsafe extern "C" fn(
7947            self_: *mut _cef_request_context_t,
7948            other: *mut _cef_request_context_t,
7949        ) -> ::std::os::raw::c_int,
7950    >,
7951    #[doc = "\n Returns true (1) if this object is the global context. The global context\n is used by default when creating a browser or URL request with a NULL\n context argument.\n"]
7952    pub is_global: ::std::option::Option<
7953        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> ::std::os::raw::c_int,
7954    >,
7955    #[doc = "\n Returns the handler for this context if any.\n"]
7956    pub get_handler: ::std::option::Option<
7957        unsafe extern "C" fn(
7958            self_: *mut _cef_request_context_t,
7959        ) -> *mut _cef_request_context_handler_t,
7960    >,
7961    #[doc = "\n Returns the cache path for this object. If NULL an \"incognito mode\" in-\n memory cache is being used.\n"]
7962    pub get_cache_path: ::std::option::Option<
7963        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_string_userfree_t,
7964    >,
7965    #[doc = "\n Returns the cookie manager for this object. If |callback| is non-NULL it\n will be executed asnychronously on the UI thread after the manager's\n storage has been initialized.\n"]
7966    pub get_cookie_manager: ::std::option::Option<
7967        unsafe extern "C" fn(
7968            self_: *mut _cef_request_context_t,
7969            callback: *mut _cef_completion_callback_t,
7970        ) -> *mut _cef_cookie_manager_t,
7971    >,
7972    #[doc = "\n Register a scheme handler factory for the specified |scheme_name| and\n optional |domain_name|. An NULL |domain_name| value for a standard scheme\n will cause the factory to match all domain names. The |domain_name| value\n will be ignored for non-standard schemes. If |scheme_name| is a built-in\n scheme and no handler is returned by |factory| then the built-in scheme\n handler factory will be called. If |scheme_name| is a custom scheme then\n you must also implement the cef_app_t::on_register_custom_schemes()\n function in all processes. This function may be called multiple times to\n change or remove the factory that matches the specified |scheme_name| and\n optional |domain_name|. Returns false (0) if an error occurs. This\n function may be called on any thread in the browser process.\n"]
7973    pub register_scheme_handler_factory: ::std::option::Option<
7974        unsafe extern "C" fn(
7975            self_: *mut _cef_request_context_t,
7976            scheme_name: *const cef_string_t,
7977            domain_name: *const cef_string_t,
7978            factory: *mut _cef_scheme_handler_factory_t,
7979        ) -> ::std::os::raw::c_int,
7980    >,
7981    #[doc = "\n Clear all registered scheme handler factories. Returns false (0) on error.\n This function may be called on any thread in the browser process.\n"]
7982    pub clear_scheme_handler_factories: ::std::option::Option<
7983        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> ::std::os::raw::c_int,
7984    >,
7985    #[doc = "\n Clears all certificate exceptions that were added as part of handling\n cef_request_handler_t::on_certificate_error(). If you call this it is\n recommended that you also call close_all_connections() or you risk not\n being prompted again for server certificates if you reconnect quickly. If\n |callback| is non-NULL it will be executed on the UI thread after\n completion.\n"]
7986    pub clear_certificate_exceptions: ::std::option::Option<
7987        unsafe extern "C" fn(
7988            self_: *mut _cef_request_context_t,
7989            callback: *mut _cef_completion_callback_t,
7990        ),
7991    >,
7992    #[doc = "\n Clears all HTTP authentication credentials that were added as part of\n handling GetAuthCredentials. If |callback| is non-NULL it will be executed\n on the UI thread after completion.\n"]
7993    pub clear_http_auth_credentials: ::std::option::Option<
7994        unsafe extern "C" fn(
7995            self_: *mut _cef_request_context_t,
7996            callback: *mut _cef_completion_callback_t,
7997        ),
7998    >,
7999    #[doc = "\n Clears all active and idle connections that Chromium currently has. This\n is only recommended if you have released all other CEF objects but don't\n yet want to call cef_shutdown(). If |callback| is non-NULL it will be\n executed on the UI thread after completion.\n"]
8000    pub close_all_connections: ::std::option::Option<
8001        unsafe extern "C" fn(
8002            self_: *mut _cef_request_context_t,
8003            callback: *mut _cef_completion_callback_t,
8004        ),
8005    >,
8006    #[doc = "\n Attempts to resolve |origin| to a list of associated IP addresses.\n |callback| will be executed on the UI thread after completion.\n"]
8007    pub resolve_host: ::std::option::Option<
8008        unsafe extern "C" fn(
8009            self_: *mut _cef_request_context_t,
8010            origin: *const cef_string_t,
8011            callback: *mut _cef_resolve_callback_t,
8012        ),
8013    >,
8014    #[doc = "\n Returns the MediaRouter object associated with this context.  If\n |callback| is non-NULL it will be executed asnychronously on the UI thread\n after the manager's context has been initialized.\n"]
8015    pub get_media_router: ::std::option::Option<
8016        unsafe extern "C" fn(
8017            self_: *mut _cef_request_context_t,
8018            callback: *mut _cef_completion_callback_t,
8019        ) -> *mut _cef_media_router_t,
8020    >,
8021    #[doc = "\n Returns the current value for |content_type| that applies for the\n specified URLs. If both URLs are NULL the default value will be returned.\n Returns nullptr if no value is configured. Must be called on the browser\n process UI thread.\n"]
8022    pub get_website_setting: ::std::option::Option<
8023        unsafe extern "C" fn(
8024            self_: *mut _cef_request_context_t,
8025            requesting_url: *const cef_string_t,
8026            top_level_url: *const cef_string_t,
8027            content_type: cef_content_setting_types_t,
8028        ) -> *mut _cef_value_t,
8029    >,
8030    #[doc = "\n Sets the current value for |content_type| for the specified URLs in the\n default scope. If both URLs are NULL, and the context is not incognito,\n the default value will be set. Pass nullptr for |value| to remove the\n default value for this content type.\n\n WARNING: Incorrect usage of this function may cause instability or\n security issues in Chromium. Make sure that you first understand the\n potential impact of any changes to |content_type| by reviewing the related\n source code in Chromium. For example, if you plan to modify\n CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of\n ContentSettingsType::POPUPS in Chromium:\n https://source.chromium.org/search?q=ContentSettingsType::POPUPS\n"]
8031    pub set_website_setting: ::std::option::Option<
8032        unsafe extern "C" fn(
8033            self_: *mut _cef_request_context_t,
8034            requesting_url: *const cef_string_t,
8035            top_level_url: *const cef_string_t,
8036            content_type: cef_content_setting_types_t,
8037            value: *mut _cef_value_t,
8038        ),
8039    >,
8040    #[doc = "\n Returns the current value for |content_type| that applies for the\n specified URLs. If both URLs are NULL the default value will be returned.\n Returns CEF_CONTENT_SETTING_VALUE_DEFAULT if no value is configured. Must\n be called on the browser process UI thread.\n"]
8041    pub get_content_setting: ::std::option::Option<
8042        unsafe extern "C" fn(
8043            self_: *mut _cef_request_context_t,
8044            requesting_url: *const cef_string_t,
8045            top_level_url: *const cef_string_t,
8046            content_type: cef_content_setting_types_t,
8047        ) -> cef_content_setting_values_t,
8048    >,
8049    #[doc = "\n Sets the current value for |content_type| for the specified URLs in the\n default scope. If both URLs are NULL, and the context is not incognito,\n the default value will be set. Pass CEF_CONTENT_SETTING_VALUE_DEFAULT for\n |value| to use the default value for this content type.\n\n WARNING: Incorrect usage of this function may cause instability or\n security issues in Chromium. Make sure that you first understand the\n potential impact of any changes to |content_type| by reviewing the related\n source code in Chromium. For example, if you plan to modify\n CEF_CONTENT_SETTING_TYPE_POPUPS, first review and understand the usage of\n ContentSettingsType::POPUPS in Chromium:\n https://source.chromium.org/search?q=ContentSettingsType::POPUPS\n"]
8050    pub set_content_setting: ::std::option::Option<
8051        unsafe extern "C" fn(
8052            self_: *mut _cef_request_context_t,
8053            requesting_url: *const cef_string_t,
8054            top_level_url: *const cef_string_t,
8055            content_type: cef_content_setting_types_t,
8056            value: cef_content_setting_values_t,
8057        ),
8058    >,
8059    #[doc = "\n Sets the Chrome color scheme for all browsers that share this request\n context. |variant| values of SYSTEM, LIGHT and DARK change the underlying\n color mode (e.g. light vs dark). Other |variant| values determine how\n |user_color| will be applied in the current color mode. If |user_color| is\n transparent (0) the default color will be used.\n"]
8060    pub set_chrome_color_scheme: ::std::option::Option<
8061        unsafe extern "C" fn(
8062            self_: *mut _cef_request_context_t,
8063            variant: cef_color_variant_t,
8064            user_color: cef_color_t,
8065        ),
8066    >,
8067    #[doc = "\n Returns the current Chrome color scheme mode (SYSTEM, LIGHT or DARK). Must\n be called on the browser process UI thread.\n"]
8068    pub get_chrome_color_scheme_mode: ::std::option::Option<
8069        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_variant_t,
8070    >,
8071    #[doc = "\n Returns the current Chrome color scheme color, or transparent (0) for the\n default color. Must be called on the browser process UI thread.\n"]
8072    pub get_chrome_color_scheme_color: ::std::option::Option<
8073        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_t,
8074    >,
8075    #[doc = "\n Returns the current Chrome color scheme variant. Must be called on the\n browser process UI thread.\n"]
8076    pub get_chrome_color_scheme_variant: ::std::option::Option<
8077        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_variant_t,
8078    >,
8079    #[doc = "\n Add an observer for content and website setting changes. The observer will\n remain registered until the returned Registration object is destroyed.\n This function must be called on the browser process UI thread.\n"]
8080    pub add_setting_observer: ::std::option::Option<
8081        unsafe extern "C" fn(
8082            self_: *mut _cef_request_context_t,
8083            observer: *mut _cef_setting_observer_t,
8084        ) -> *mut _cef_registration_t,
8085    >,
8086    #[doc = "\n Clears the HTTP cache. If |callback| is non-NULL it will be executed on\n the UI thread after completion.\n"]
8087    pub clear_http_cache: ::std::option::Option<
8088        unsafe extern "C" fn(
8089            self_: *mut _cef_request_context_t,
8090            callback: *mut _cef_completion_callback_t,
8091        ),
8092    >,
8093}
8094#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8095const _: () = {
8096    ["Size of _cef_request_context_t"][::std::mem::size_of::<_cef_request_context_t>() - 272usize];
8097    ["Alignment of _cef_request_context_t"]
8098        [::std::mem::align_of::<_cef_request_context_t>() - 8usize];
8099    ["Offset of field: _cef_request_context_t::base"]
8100        [::std::mem::offset_of!(_cef_request_context_t, base) - 0usize];
8101    ["Offset of field: _cef_request_context_t::is_same"]
8102        [::std::mem::offset_of!(_cef_request_context_t, is_same) - 88usize];
8103    ["Offset of field: _cef_request_context_t::is_sharing_with"]
8104        [::std::mem::offset_of!(_cef_request_context_t, is_sharing_with) - 96usize];
8105    ["Offset of field: _cef_request_context_t::is_global"]
8106        [::std::mem::offset_of!(_cef_request_context_t, is_global) - 104usize];
8107    ["Offset of field: _cef_request_context_t::get_handler"]
8108        [::std::mem::offset_of!(_cef_request_context_t, get_handler) - 112usize];
8109    ["Offset of field: _cef_request_context_t::get_cache_path"]
8110        [::std::mem::offset_of!(_cef_request_context_t, get_cache_path) - 120usize];
8111    ["Offset of field: _cef_request_context_t::get_cookie_manager"]
8112        [::std::mem::offset_of!(_cef_request_context_t, get_cookie_manager) - 128usize];
8113    ["Offset of field: _cef_request_context_t::register_scheme_handler_factory"][::std::mem::offset_of!(
8114        _cef_request_context_t,
8115        register_scheme_handler_factory
8116    ) - 136usize];
8117    ["Offset of field: _cef_request_context_t::clear_scheme_handler_factories"]
8118        [::std::mem::offset_of!(_cef_request_context_t, clear_scheme_handler_factories) - 144usize];
8119    ["Offset of field: _cef_request_context_t::clear_certificate_exceptions"]
8120        [::std::mem::offset_of!(_cef_request_context_t, clear_certificate_exceptions) - 152usize];
8121    ["Offset of field: _cef_request_context_t::clear_http_auth_credentials"]
8122        [::std::mem::offset_of!(_cef_request_context_t, clear_http_auth_credentials) - 160usize];
8123    ["Offset of field: _cef_request_context_t::close_all_connections"]
8124        [::std::mem::offset_of!(_cef_request_context_t, close_all_connections) - 168usize];
8125    ["Offset of field: _cef_request_context_t::resolve_host"]
8126        [::std::mem::offset_of!(_cef_request_context_t, resolve_host) - 176usize];
8127    ["Offset of field: _cef_request_context_t::get_media_router"]
8128        [::std::mem::offset_of!(_cef_request_context_t, get_media_router) - 184usize];
8129    ["Offset of field: _cef_request_context_t::get_website_setting"]
8130        [::std::mem::offset_of!(_cef_request_context_t, get_website_setting) - 192usize];
8131    ["Offset of field: _cef_request_context_t::set_website_setting"]
8132        [::std::mem::offset_of!(_cef_request_context_t, set_website_setting) - 200usize];
8133    ["Offset of field: _cef_request_context_t::get_content_setting"]
8134        [::std::mem::offset_of!(_cef_request_context_t, get_content_setting) - 208usize];
8135    ["Offset of field: _cef_request_context_t::set_content_setting"]
8136        [::std::mem::offset_of!(_cef_request_context_t, set_content_setting) - 216usize];
8137    ["Offset of field: _cef_request_context_t::set_chrome_color_scheme"]
8138        [::std::mem::offset_of!(_cef_request_context_t, set_chrome_color_scheme) - 224usize];
8139    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_mode"]
8140        [::std::mem::offset_of!(_cef_request_context_t, get_chrome_color_scheme_mode) - 232usize];
8141    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_color"]
8142        [::std::mem::offset_of!(_cef_request_context_t, get_chrome_color_scheme_color) - 240usize];
8143    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_variant"][::std::mem::offset_of!(
8144        _cef_request_context_t,
8145        get_chrome_color_scheme_variant
8146    ) - 248usize];
8147    ["Offset of field: _cef_request_context_t::add_setting_observer"]
8148        [::std::mem::offset_of!(_cef_request_context_t, add_setting_observer) - 256usize];
8149    ["Offset of field: _cef_request_context_t::clear_http_cache"]
8150        [::std::mem::offset_of!(_cef_request_context_t, clear_http_cache) - 264usize];
8151};
8152#[doc = "\n A request context provides request handling for a set of related browser or\n URL request objects. A request context can be specified when creating a new\n browser via the cef_browser_host_t static factory functions or when creating\n a new URL request via the cef_urlrequest_t static factory functions. Browser\n objects with different request contexts will never be hosted in the same\n render process. Browser objects with the same request context may or may not\n be hosted in the same render process depending on the process model. Browser\n objects created indirectly via the JavaScript window.open function or\n targeted links will share the same render process and the same request\n context as the source browser. When running in single-process mode there is\n only a single render process (the main process) and so all browsers created\n in single-process mode will share the same request context. This will be the\n first request context passed into a cef_browser_host_t static factory\n function and all other request context objects will be ignored.\n\n NOTE: This struct is allocated DLL-side.\n"]
8153pub type cef_request_context_t = _cef_request_context_t;
8154unsafe extern "C" {
8155    #[doc = "\n Returns the global context object.\n"]
8156    pub fn cef_request_context_get_global_context() -> *mut cef_request_context_t;
8157}
8158unsafe extern "C" {
8159    #[doc = "\n Creates a new context object with the specified |settings| and optional\n |handler|.\n"]
8160    pub fn cef_request_context_create_context(
8161        settings: *const _cef_request_context_settings_t,
8162        handler: *mut _cef_request_context_handler_t,
8163    ) -> *mut cef_request_context_t;
8164}
8165unsafe extern "C" {
8166    #[doc = "\n Creates a new context object that shares storage with |other| and uses an\n optional |handler|.\n"]
8167    pub fn cef_request_context_cef_create_context_shared(
8168        other: *mut cef_request_context_t,
8169        handler: *mut _cef_request_context_handler_t,
8170    ) -> *mut cef_request_context_t;
8171}
8172#[doc = "\n Structure used to represent a browser. When used in the browser process the\n functions of this structure may be called on any thread unless otherwise\n indicated in the comments. When used in the render process the functions of\n this structure may only be called on the main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
8173#[repr(C)]
8174#[derive(Debug, Copy, Clone)]
8175pub struct _cef_browser_t {
8176    #[doc = "\n Base structure.\n"]
8177    pub base: cef_base_ref_counted_t,
8178    #[doc = "\n True if this object is currently valid. This will return false (0) after\n cef_life_span_handler_t::OnBeforeClose is called.\n"]
8179    pub is_valid: ::std::option::Option<
8180        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8181    >,
8182    #[doc = "\n Returns the browser host object. This function can only be called in the\n browser process.\n"]
8183    pub get_host: ::std::option::Option<
8184        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_browser_host_t,
8185    >,
8186    #[doc = "\n Returns true (1) if the browser can navigate backwards.\n"]
8187    pub can_go_back: ::std::option::Option<
8188        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8189    >,
8190    #[doc = "\n Navigate backwards.\n"]
8191    pub go_back: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
8192    #[doc = "\n Returns true (1) if the browser can navigate forwards.\n"]
8193    pub can_go_forward: ::std::option::Option<
8194        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8195    >,
8196    #[doc = "\n Navigate forwards.\n"]
8197    pub go_forward: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
8198    #[doc = "\n Returns true (1) if the browser is currently loading.\n"]
8199    pub is_loading: ::std::option::Option<
8200        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8201    >,
8202    #[doc = "\n Reload the current page.\n"]
8203    pub reload: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
8204    #[doc = "\n Reload the current page ignoring any cached data.\n"]
8205    pub reload_ignore_cache:
8206        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
8207    #[doc = "\n Stop loading the page.\n"]
8208    pub stop_load: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
8209    #[doc = "\n Returns the globally unique identifier for this browser. This value is\n also used as the tabId for extension APIs.\n"]
8210    pub get_identifier: ::std::option::Option<
8211        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8212    >,
8213    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
8214    pub is_same: ::std::option::Option<
8215        unsafe extern "C" fn(
8216            self_: *mut _cef_browser_t,
8217            that: *mut _cef_browser_t,
8218        ) -> ::std::os::raw::c_int,
8219    >,
8220    #[doc = "\n Returns true (1) if the browser is a popup.\n"]
8221    pub is_popup: ::std::option::Option<
8222        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8223    >,
8224    #[doc = "\n Returns true (1) if a document has been loaded in the browser.\n"]
8225    pub has_document: ::std::option::Option<
8226        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
8227    >,
8228    #[doc = "\n Returns the main (top-level) frame for the browser. In the browser process\n this will return a valid object until after\n cef_life_span_handler_t::OnBeforeClose is called. In the renderer process\n this will return NULL if the main frame is hosted in a different renderer\n process (e.g. for cross-origin sub-frames). The main frame object will\n change during cross-origin navigation or re-navigation after renderer\n process termination (due to crashes, etc).\n"]
8229    pub get_main_frame: ::std::option::Option<
8230        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_frame_t,
8231    >,
8232    #[doc = "\n Returns the focused frame for the browser.\n"]
8233    pub get_focused_frame: ::std::option::Option<
8234        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_frame_t,
8235    >,
8236    #[doc = "\n Returns the frame with the specified identifier, or NULL if not found.\n"]
8237    pub get_frame_by_identifier: ::std::option::Option<
8238        unsafe extern "C" fn(
8239            self_: *mut _cef_browser_t,
8240            identifier: *const cef_string_t,
8241        ) -> *mut _cef_frame_t,
8242    >,
8243    #[doc = "\n Returns the frame with the specified name, or NULL if not found.\n"]
8244    pub get_frame_by_name: ::std::option::Option<
8245        unsafe extern "C" fn(
8246            self_: *mut _cef_browser_t,
8247            name: *const cef_string_t,
8248        ) -> *mut _cef_frame_t,
8249    >,
8250    #[doc = "\n Returns the number of frames that currently exist.\n"]
8251    pub get_frame_count:
8252        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t) -> usize>,
8253    #[doc = "\n Returns the identifiers of all existing frames.\n"]
8254    pub get_frame_identifiers: ::std::option::Option<
8255        unsafe extern "C" fn(self_: *mut _cef_browser_t, identifiers: cef_string_list_t),
8256    >,
8257    #[doc = "\n Returns the names of all existing frames.\n"]
8258    pub get_frame_names: ::std::option::Option<
8259        unsafe extern "C" fn(self_: *mut _cef_browser_t, names: cef_string_list_t),
8260    >,
8261}
8262#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8263const _: () = {
8264    ["Size of _cef_browser_t"][::std::mem::size_of::<_cef_browser_t>() - 208usize];
8265    ["Alignment of _cef_browser_t"][::std::mem::align_of::<_cef_browser_t>() - 8usize];
8266    ["Offset of field: _cef_browser_t::base"]
8267        [::std::mem::offset_of!(_cef_browser_t, base) - 0usize];
8268    ["Offset of field: _cef_browser_t::is_valid"]
8269        [::std::mem::offset_of!(_cef_browser_t, is_valid) - 40usize];
8270    ["Offset of field: _cef_browser_t::get_host"]
8271        [::std::mem::offset_of!(_cef_browser_t, get_host) - 48usize];
8272    ["Offset of field: _cef_browser_t::can_go_back"]
8273        [::std::mem::offset_of!(_cef_browser_t, can_go_back) - 56usize];
8274    ["Offset of field: _cef_browser_t::go_back"]
8275        [::std::mem::offset_of!(_cef_browser_t, go_back) - 64usize];
8276    ["Offset of field: _cef_browser_t::can_go_forward"]
8277        [::std::mem::offset_of!(_cef_browser_t, can_go_forward) - 72usize];
8278    ["Offset of field: _cef_browser_t::go_forward"]
8279        [::std::mem::offset_of!(_cef_browser_t, go_forward) - 80usize];
8280    ["Offset of field: _cef_browser_t::is_loading"]
8281        [::std::mem::offset_of!(_cef_browser_t, is_loading) - 88usize];
8282    ["Offset of field: _cef_browser_t::reload"]
8283        [::std::mem::offset_of!(_cef_browser_t, reload) - 96usize];
8284    ["Offset of field: _cef_browser_t::reload_ignore_cache"]
8285        [::std::mem::offset_of!(_cef_browser_t, reload_ignore_cache) - 104usize];
8286    ["Offset of field: _cef_browser_t::stop_load"]
8287        [::std::mem::offset_of!(_cef_browser_t, stop_load) - 112usize];
8288    ["Offset of field: _cef_browser_t::get_identifier"]
8289        [::std::mem::offset_of!(_cef_browser_t, get_identifier) - 120usize];
8290    ["Offset of field: _cef_browser_t::is_same"]
8291        [::std::mem::offset_of!(_cef_browser_t, is_same) - 128usize];
8292    ["Offset of field: _cef_browser_t::is_popup"]
8293        [::std::mem::offset_of!(_cef_browser_t, is_popup) - 136usize];
8294    ["Offset of field: _cef_browser_t::has_document"]
8295        [::std::mem::offset_of!(_cef_browser_t, has_document) - 144usize];
8296    ["Offset of field: _cef_browser_t::get_main_frame"]
8297        [::std::mem::offset_of!(_cef_browser_t, get_main_frame) - 152usize];
8298    ["Offset of field: _cef_browser_t::get_focused_frame"]
8299        [::std::mem::offset_of!(_cef_browser_t, get_focused_frame) - 160usize];
8300    ["Offset of field: _cef_browser_t::get_frame_by_identifier"]
8301        [::std::mem::offset_of!(_cef_browser_t, get_frame_by_identifier) - 168usize];
8302    ["Offset of field: _cef_browser_t::get_frame_by_name"]
8303        [::std::mem::offset_of!(_cef_browser_t, get_frame_by_name) - 176usize];
8304    ["Offset of field: _cef_browser_t::get_frame_count"]
8305        [::std::mem::offset_of!(_cef_browser_t, get_frame_count) - 184usize];
8306    ["Offset of field: _cef_browser_t::get_frame_identifiers"]
8307        [::std::mem::offset_of!(_cef_browser_t, get_frame_identifiers) - 192usize];
8308    ["Offset of field: _cef_browser_t::get_frame_names"]
8309        [::std::mem::offset_of!(_cef_browser_t, get_frame_names) - 200usize];
8310};
8311#[doc = "\n Structure used to represent a browser. When used in the browser process the\n functions of this structure may be called on any thread unless otherwise\n indicated in the comments. When used in the render process the functions of\n this structure may only be called on the main thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
8312pub type cef_browser_t = _cef_browser_t;
8313#[doc = "\n Callback structure for cef_browser_host_t::RunFileDialog. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8314#[repr(C)]
8315#[derive(Debug, Copy, Clone)]
8316pub struct _cef_run_file_dialog_callback_t {
8317    #[doc = "\n Base structure.\n"]
8318    pub base: cef_base_ref_counted_t,
8319    #[doc = "\n Called asynchronously after the file dialog is dismissed. |file_paths|\n will be a single value or a list of values depending on the dialog mode.\n If the selection was cancelled |file_paths| will be NULL.\n"]
8320    pub on_file_dialog_dismissed: ::std::option::Option<
8321        unsafe extern "C" fn(
8322            self_: *mut _cef_run_file_dialog_callback_t,
8323            file_paths: cef_string_list_t,
8324        ),
8325    >,
8326}
8327#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8328const _: () = {
8329    ["Size of _cef_run_file_dialog_callback_t"]
8330        [::std::mem::size_of::<_cef_run_file_dialog_callback_t>() - 48usize];
8331    ["Alignment of _cef_run_file_dialog_callback_t"]
8332        [::std::mem::align_of::<_cef_run_file_dialog_callback_t>() - 8usize];
8333    ["Offset of field: _cef_run_file_dialog_callback_t::base"]
8334        [::std::mem::offset_of!(_cef_run_file_dialog_callback_t, base) - 0usize];
8335    ["Offset of field: _cef_run_file_dialog_callback_t::on_file_dialog_dismissed"][::std::mem::offset_of!(
8336        _cef_run_file_dialog_callback_t,
8337        on_file_dialog_dismissed
8338    ) - 40usize];
8339};
8340#[doc = "\n Callback structure for cef_browser_host_t::RunFileDialog. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8341pub type cef_run_file_dialog_callback_t = _cef_run_file_dialog_callback_t;
8342#[doc = "\n Callback structure for cef_browser_host_t::GetNavigationEntries. The\n functions of this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8343#[repr(C)]
8344#[derive(Debug, Copy, Clone)]
8345pub struct _cef_navigation_entry_visitor_t {
8346    #[doc = "\n Base structure.\n"]
8347    pub base: cef_base_ref_counted_t,
8348    #[doc = "\n Method that will be executed. Do not keep a reference to |entry| outside\n of this callback. Return true (1) to continue visiting entries or false\n (0) to stop. |current| is true (1) if this entry is the currently loaded\n navigation entry. |index| is the 0-based index of this entry and |total|\n is the total number of entries.\n"]
8349    pub visit: ::std::option::Option<
8350        unsafe extern "C" fn(
8351            self_: *mut _cef_navigation_entry_visitor_t,
8352            entry: *mut _cef_navigation_entry_t,
8353            current: ::std::os::raw::c_int,
8354            index: ::std::os::raw::c_int,
8355            total: ::std::os::raw::c_int,
8356        ) -> ::std::os::raw::c_int,
8357    >,
8358}
8359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8360const _: () = {
8361    ["Size of _cef_navigation_entry_visitor_t"]
8362        [::std::mem::size_of::<_cef_navigation_entry_visitor_t>() - 48usize];
8363    ["Alignment of _cef_navigation_entry_visitor_t"]
8364        [::std::mem::align_of::<_cef_navigation_entry_visitor_t>() - 8usize];
8365    ["Offset of field: _cef_navigation_entry_visitor_t::base"]
8366        [::std::mem::offset_of!(_cef_navigation_entry_visitor_t, base) - 0usize];
8367    ["Offset of field: _cef_navigation_entry_visitor_t::visit"]
8368        [::std::mem::offset_of!(_cef_navigation_entry_visitor_t, visit) - 40usize];
8369};
8370#[doc = "\n Callback structure for cef_browser_host_t::GetNavigationEntries. The\n functions of this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8371pub type cef_navigation_entry_visitor_t = _cef_navigation_entry_visitor_t;
8372#[doc = "\n Callback structure for cef_browser_host_t::PrintToPDF. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8373#[repr(C)]
8374#[derive(Debug, Copy, Clone)]
8375pub struct _cef_pdf_print_callback_t {
8376    #[doc = "\n Base structure.\n"]
8377    pub base: cef_base_ref_counted_t,
8378    #[doc = "\n Method that will be executed when the PDF printing has completed. |path|\n is the output path. |ok| will be true (1) if the printing completed\n successfully or false (0) otherwise.\n"]
8379    pub on_pdf_print_finished: ::std::option::Option<
8380        unsafe extern "C" fn(
8381            self_: *mut _cef_pdf_print_callback_t,
8382            path: *const cef_string_t,
8383            ok: ::std::os::raw::c_int,
8384        ),
8385    >,
8386}
8387#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8388const _: () = {
8389    ["Size of _cef_pdf_print_callback_t"]
8390        [::std::mem::size_of::<_cef_pdf_print_callback_t>() - 48usize];
8391    ["Alignment of _cef_pdf_print_callback_t"]
8392        [::std::mem::align_of::<_cef_pdf_print_callback_t>() - 8usize];
8393    ["Offset of field: _cef_pdf_print_callback_t::base"]
8394        [::std::mem::offset_of!(_cef_pdf_print_callback_t, base) - 0usize];
8395    ["Offset of field: _cef_pdf_print_callback_t::on_pdf_print_finished"]
8396        [::std::mem::offset_of!(_cef_pdf_print_callback_t, on_pdf_print_finished) - 40usize];
8397};
8398#[doc = "\n Callback structure for cef_browser_host_t::PrintToPDF. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8399pub type cef_pdf_print_callback_t = _cef_pdf_print_callback_t;
8400#[doc = "\n Callback structure for cef_browser_host_t::DownloadImage. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8401#[repr(C)]
8402#[derive(Debug, Copy, Clone)]
8403pub struct _cef_download_image_callback_t {
8404    #[doc = "\n Base structure.\n"]
8405    pub base: cef_base_ref_counted_t,
8406    #[doc = "\n Method that will be executed when the image download has completed.\n |image_url| is the URL that was downloaded and |http_status_code| is the\n resulting HTTP status code. |image| is the resulting image, possibly at\n multiple scale factors, or NULL if the download failed.\n"]
8407    pub on_download_image_finished: ::std::option::Option<
8408        unsafe extern "C" fn(
8409            self_: *mut _cef_download_image_callback_t,
8410            image_url: *const cef_string_t,
8411            http_status_code: ::std::os::raw::c_int,
8412            image: *mut _cef_image_t,
8413        ),
8414    >,
8415}
8416#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8417const _: () = {
8418    ["Size of _cef_download_image_callback_t"]
8419        [::std::mem::size_of::<_cef_download_image_callback_t>() - 48usize];
8420    ["Alignment of _cef_download_image_callback_t"]
8421        [::std::mem::align_of::<_cef_download_image_callback_t>() - 8usize];
8422    ["Offset of field: _cef_download_image_callback_t::base"]
8423        [::std::mem::offset_of!(_cef_download_image_callback_t, base) - 0usize];
8424    ["Offset of field: _cef_download_image_callback_t::on_download_image_finished"][::std::mem::offset_of!(
8425        _cef_download_image_callback_t,
8426        on_download_image_finished
8427    ) - 40usize];
8428};
8429#[doc = "\n Callback structure for cef_browser_host_t::DownloadImage. The functions of\n this structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
8430pub type cef_download_image_callback_t = _cef_download_image_callback_t;
8431#[doc = "\n Structure used to represent the browser process aspects of a browser. The\n functions of this structure can only be called in the browser process. They\n may be called on any thread in that process unless otherwise indicated in\n the comments.\n\n NOTE: This struct is allocated DLL-side.\n"]
8432#[repr(C)]
8433#[derive(Debug, Copy, Clone)]
8434pub struct _cef_browser_host_t {
8435    #[doc = "\n Base structure.\n"]
8436    pub base: cef_base_ref_counted_t,
8437    #[doc = "\n Returns the hosted browser object.\n"]
8438    pub get_browser: ::std::option::Option<
8439        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_browser_t,
8440    >,
8441    #[doc = "\n Request that the browser close. Closing a browser is a multi-stage process\n that may complete either synchronously or asynchronously, and involves\n callbacks such as cef_life_span_handler_t::DoClose (Alloy style only),\n cef_life_span_handler_t::OnBeforeClose, and a top-level window close\n handler such as cef_window_delegate_t::CanClose (or platform-specific\n equivalent). In some cases a close request may be delayed or canceled by\n the user. Using try_close_browser() instead of close_browser() is\n recommended for most use cases. See cef_life_span_handler_t::do_close()\n documentation for detailed usage and examples.\n\n If |force_close| is false (0) then JavaScript unload handlers, if any, may\n be fired and the close may be delayed or canceled by the user. If\n |force_close| is true (1) then the user will not be prompted and the close\n will proceed immediately (possibly asynchronously). If browser close is\n delayed and not canceled the default behavior is to call the top-level\n window close handler once the browser is ready to be closed. This default\n behavior can be changed for Alloy style browsers by implementing\n cef_life_span_handler_t::do_close(). is_ready_to_be_closed() can be used\n to detect mandatory browser close events when customizing close behavior\n on the browser process UI thread.\n"]
8442    pub close_browser: ::std::option::Option<
8443        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, force_close: ::std::os::raw::c_int),
8444    >,
8445    #[doc = "\n Helper for closing a browser. This is similar in behavior to\n CLoseBrowser(false (0)) but returns a boolean to reflect the immediate\n close status. Call this function from a top-level window close handler\n such as cef_window_delegate_t::CanClose (or platform-specific equivalent)\n to request that the browser close, and return the result to indicate if\n the window close should proceed. Returns false (0) if the close will be\n delayed (JavaScript unload handlers triggered but still pending) or true\n (1) if the close will proceed immediately (possibly asynchronously). See\n close_browser() documentation for additional usage information. This\n function must be called on the browser process UI thread.\n"]
8446    pub try_close_browser: ::std::option::Option<
8447        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8448    >,
8449    #[doc = "\n Returns true (1) if the browser is ready to be closed, meaning that the\n close has already been initiated and that JavaScript unload handlers have\n already executed or should be ignored. This can be used from a top-level\n window close handler such as cef_window_delegate_t::CanClose (or platform-\n specific equivalent) to distringuish between potentially cancelable\n browser close events (like the user clicking the top-level window close\n button before browser close has started) and mandatory browser close\n events (like JavaScript `window.close()` or after browser close has\n started in response to [Try]close_browser()). Not completing the browser\n close for mandatory close events (when this function returns true (1))\n will leave the browser in a partially closed state that interferes with\n proper functioning. See close_browser() documentation for additional usage\n information. This function must be called on the browser process UI\n thread.\n"]
8450    pub is_ready_to_be_closed: ::std::option::Option<
8451        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8452    >,
8453    #[doc = "\n Set whether the browser is focused.\n"]
8454    pub set_focus: ::std::option::Option<
8455        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, focus: ::std::os::raw::c_int),
8456    >,
8457    #[doc = "\n Retrieve the window handle (if any) for this browser. If this browser is\n wrapped in a cef_browser_view_t this function should be called on the\n browser process UI thread and it will return the handle for the top-level\n native window.\n"]
8458    pub get_window_handle: ::std::option::Option<
8459        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_window_handle_t,
8460    >,
8461    #[doc = "\n Retrieve the window handle (if any) of the browser that opened this\n browser. Will return NULL for non-popup browsers or if this browser is\n wrapped in a cef_browser_view_t. This function can be used in combination\n with custom handling of modal windows.\n"]
8462    pub get_opener_window_handle: ::std::option::Option<
8463        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_window_handle_t,
8464    >,
8465    #[doc = "\n Retrieve the unique identifier of the browser that opened this browser.\n Will return 0 for non-popup browsers.\n"]
8466    pub get_opener_identifier: ::std::option::Option<
8467        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8468    >,
8469    #[doc = "\n Returns true (1) if this browser is wrapped in a cef_browser_view_t.\n"]
8470    pub has_view: ::std::option::Option<
8471        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8472    >,
8473    #[doc = "\n Returns the client for this browser.\n"]
8474    pub get_client: ::std::option::Option<
8475        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_client_t,
8476    >,
8477    #[doc = "\n Returns the request context for this browser.\n"]
8478    pub get_request_context: ::std::option::Option<
8479        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_request_context_t,
8480    >,
8481    #[doc = "\n Returns true (1) if this browser can execute the specified zoom command.\n This function can only be called on the UI thread.\n"]
8482    pub can_zoom: ::std::option::Option<
8483        unsafe extern "C" fn(
8484            self_: *mut _cef_browser_host_t,
8485            command: cef_zoom_command_t,
8486        ) -> ::std::os::raw::c_int,
8487    >,
8488    #[doc = "\n Execute a zoom command in this browser. If called on the UI thread the\n change will be applied immediately. Otherwise, the change will be applied\n asynchronously on the UI thread.\n"]
8489    pub zoom: ::std::option::Option<
8490        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, command: cef_zoom_command_t),
8491    >,
8492    #[doc = "\n Get the default zoom level. This value will be 0.0 by default but can be\n configured. This function can only be called on the UI thread.\n"]
8493    pub get_default_zoom_level:
8494        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> f64>,
8495    #[doc = "\n Get the current zoom level. This function can only be called on the UI\n thread.\n"]
8496    pub get_zoom_level:
8497        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> f64>,
8498    #[doc = "\n Change the zoom level to the specified value. Specify 0.0 to reset the\n zoom level to the default. If called on the UI thread the change will be\n applied immediately. Otherwise, the change will be applied asynchronously\n on the UI thread.\n"]
8499    pub set_zoom_level: ::std::option::Option<
8500        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, zoomLevel: f64),
8501    >,
8502    #[doc = "\n Call to run a file chooser dialog. Only a single file chooser dialog may\n be pending at any given time. |mode| represents the type of dialog to\n display. |title| to the title to be used for the dialog and may be NULL to\n show the default title (\"Open\" or \"Save\" depending on the mode).\n |default_file_path| is the path with optional directory and/or file name\n component that will be initially selected in the dialog. |accept_filters|\n are used to restrict the selectable file types and may any combination of\n (a) valid lower-cased MIME types (e.g. \"text/*\" or \"image/*\"), (b)\n individual file extensions (e.g. \".txt\" or \".png\"), or (c) combined\n description and file extension delimited using \"|\" and \";\" (e.g. \"Image\n Types|.png;.gif;.jpg\"). |callback| will be executed after the dialog is\n dismissed or immediately if another dialog is already pending. The dialog\n will be initiated asynchronously on the UI thread.\n"]
8503    pub run_file_dialog: ::std::option::Option<
8504        unsafe extern "C" fn(
8505            self_: *mut _cef_browser_host_t,
8506            mode: cef_file_dialog_mode_t,
8507            title: *const cef_string_t,
8508            default_file_path: *const cef_string_t,
8509            accept_filters: cef_string_list_t,
8510            callback: *mut _cef_run_file_dialog_callback_t,
8511        ),
8512    >,
8513    #[doc = "\n Download the file at |url| using cef_download_handler_t.\n"]
8514    pub start_download: ::std::option::Option<
8515        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, url: *const cef_string_t),
8516    >,
8517    #[doc = "\n Download |image_url| and execute |callback| on completion with the images\n received from the renderer. If |is_favicon| is true (1) then cookies are\n not sent and not accepted during download. Images with density independent\n pixel (DIP) sizes larger than |max_image_size| are filtered out from the\n image results. Versions of the image at different scale factors may be\n downloaded up to the maximum scale factor supported by the system. If\n there are no image results <= |max_image_size| then the smallest image is\n resized to |max_image_size| and is the only result. A |max_image_size| of\n 0 means unlimited. If |bypass_cache| is true (1) then |image_url| is\n requested from the server even if it is present in the browser cache.\n"]
8518    pub download_image: ::std::option::Option<
8519        unsafe extern "C" fn(
8520            self_: *mut _cef_browser_host_t,
8521            image_url: *const cef_string_t,
8522            is_favicon: ::std::os::raw::c_int,
8523            max_image_size: u32,
8524            bypass_cache: ::std::os::raw::c_int,
8525            callback: *mut _cef_download_image_callback_t,
8526        ),
8527    >,
8528    #[doc = "\n Print the current browser contents.\n"]
8529    pub print: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8530    #[doc = "\n Print the current browser contents to the PDF file specified by |path| and\n execute |callback| on completion. The caller is responsible for deleting\n |path| when done. For PDF printing to work on Linux you must implement the\n cef_print_handler_t::GetPdfPaperSize function.\n"]
8531    pub print_to_pdf: ::std::option::Option<
8532        unsafe extern "C" fn(
8533            self_: *mut _cef_browser_host_t,
8534            path: *const cef_string_t,
8535            settings: *const _cef_pdf_print_settings_t,
8536            callback: *mut _cef_pdf_print_callback_t,
8537        ),
8538    >,
8539    #[doc = "\n Search for |searchText|. |forward| indicates whether to search forward or\n backward within the page. |matchCase| indicates whether the search should\n be case-sensitive. |findNext| indicates whether this is the first request\n or a follow-up. The search will be restarted if |searchText| or\n |matchCase| change. The search will be stopped if |searchText| is NULL.\n The cef_find_handler_t instance, if any, returned via\n cef_client_t::GetFindHandler will be called to report find results.\n"]
8540    pub find: ::std::option::Option<
8541        unsafe extern "C" fn(
8542            self_: *mut _cef_browser_host_t,
8543            searchText: *const cef_string_t,
8544            forward: ::std::os::raw::c_int,
8545            matchCase: ::std::os::raw::c_int,
8546            findNext: ::std::os::raw::c_int,
8547        ),
8548    >,
8549    #[doc = "\n Cancel all searches that are currently going on.\n"]
8550    pub stop_finding: ::std::option::Option<
8551        unsafe extern "C" fn(
8552            self_: *mut _cef_browser_host_t,
8553            clearSelection: ::std::os::raw::c_int,
8554        ),
8555    >,
8556    #[doc = "\n Open developer tools (DevTools) in its own browser. The DevTools browser\n will remain associated with this browser. If the DevTools browser is\n already open then it will be focused, in which case the |windowInfo|,\n |client| and |settings| parameters will be ignored. If\n |inspect_element_at| is non-NULL then the element at the specified (x,y)\n location will be inspected. The |windowInfo| parameter will be ignored if\n this browser is wrapped in a cef_browser_view_t.\n"]
8557    pub show_dev_tools: ::std::option::Option<
8558        unsafe extern "C" fn(
8559            self_: *mut _cef_browser_host_t,
8560            windowInfo: *const _cef_window_info_t,
8561            client: *mut _cef_client_t,
8562            settings: *const _cef_browser_settings_t,
8563            inspect_element_at: *const cef_point_t,
8564        ),
8565    >,
8566    #[doc = "\n Explicitly close the associated DevTools browser, if any.\n"]
8567    pub close_dev_tools:
8568        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8569    #[doc = "\n Returns true (1) if this browser currently has an associated DevTools\n browser. Must be called on the browser process UI thread.\n"]
8570    pub has_dev_tools: ::std::option::Option<
8571        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8572    >,
8573    #[doc = "\n Send a function call message over the DevTools protocol. |message| must be\n a UTF8-encoded JSON dictionary that contains \"id\" (int), \"function\"\n (string) and \"params\" (dictionary, optional) values. See the DevTools\n protocol documentation at https://chromedevtools.github.io/devtools-\n protocol/ for details of supported functions and the expected \"params\"\n dictionary contents. |message| will be copied if necessary. This function\n will return true (1) if called on the UI thread and the message was\n successfully submitted for validation, otherwise false (0). Validation\n will be applied asynchronously and any messages that fail due to\n formatting errors or missing parameters may be discarded without\n notification. Prefer ExecuteDevToolsMethod if a more structured approach\n to message formatting is desired.\n\n Every valid function call will result in an asynchronous function result\n or error message that references the sent message \"id\". Event messages are\n received while notifications are enabled (for example, between function\n calls for \"Page.enable\" and \"Page.disable\"). All received messages will be\n delivered to the observer(s) registered with AddDevToolsMessageObserver.\n See cef_dev_tools_message_observer_t::OnDevToolsMessage documentation for\n details of received message contents.\n\n Usage of the SendDevToolsMessage, ExecuteDevToolsMethod and\n AddDevToolsMessageObserver functions does not require an active DevTools\n front-end or remote-debugging session. Other active DevTools sessions will\n continue to function independently. However, any modification of global\n browser state by one session may not be reflected in the UI of other\n sessions.\n\n Communication with the DevTools front-end (when displayed) can be logged\n for development purposes by passing the `--devtools-protocol-log-\n file=<path>` command-line flag.\n"]
8574    pub send_dev_tools_message: ::std::option::Option<
8575        unsafe extern "C" fn(
8576            self_: *mut _cef_browser_host_t,
8577            message: *const ::std::os::raw::c_void,
8578            message_size: usize,
8579        ) -> ::std::os::raw::c_int,
8580    >,
8581    #[doc = "\n Execute a function call over the DevTools protocol. This is a more\n structured version of SendDevToolsMessage. |message_id| is an incremental\n number that uniquely identifies the message (pass 0 to have the next\n number assigned automatically based on previous values). |function| is the\n function name. |params| are the function parameters, which may be NULL.\n See the DevTools protocol documentation (linked above) for details of\n supported functions and the expected |params| dictionary contents. This\n function will return the assigned message ID if called on the UI thread\n and the message was successfully submitted for validation, otherwise 0.\n See the SendDevToolsMessage documentation for additional usage\n information.\n"]
8582    pub execute_dev_tools_method: ::std::option::Option<
8583        unsafe extern "C" fn(
8584            self_: *mut _cef_browser_host_t,
8585            message_id: ::std::os::raw::c_int,
8586            method: *const cef_string_t,
8587            params: *mut _cef_dictionary_value_t,
8588        ) -> ::std::os::raw::c_int,
8589    >,
8590    #[doc = "\n Add an observer for DevTools protocol messages (function results and\n events). The observer will remain registered until the returned\n Registration object is destroyed. See the SendDevToolsMessage\n documentation for additional usage information.\n"]
8591    pub add_dev_tools_message_observer: ::std::option::Option<
8592        unsafe extern "C" fn(
8593            self_: *mut _cef_browser_host_t,
8594            observer: *mut _cef_dev_tools_message_observer_t,
8595        ) -> *mut _cef_registration_t,
8596    >,
8597    #[doc = "\n Retrieve a snapshot of current navigation entries as values sent to the\n specified visitor. If |current_only| is true (1) only the current\n navigation entry will be sent, otherwise all navigation entries will be\n sent.\n"]
8598    pub get_navigation_entries: ::std::option::Option<
8599        unsafe extern "C" fn(
8600            self_: *mut _cef_browser_host_t,
8601            visitor: *mut _cef_navigation_entry_visitor_t,
8602            current_only: ::std::os::raw::c_int,
8603        ),
8604    >,
8605    #[doc = "\n If a misspelled word is currently selected in an editable node calling\n this function will replace it with the specified |word|.\n"]
8606    pub replace_misspelling: ::std::option::Option<
8607        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, word: *const cef_string_t),
8608    >,
8609    #[doc = "\n Add the specified |word| to the spelling dictionary.\n"]
8610    pub add_word_to_dictionary: ::std::option::Option<
8611        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, word: *const cef_string_t),
8612    >,
8613    #[doc = "\n Returns true (1) if window rendering is disabled.\n"]
8614    pub is_window_rendering_disabled: ::std::option::Option<
8615        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8616    >,
8617    #[doc = "\n Notify the browser that the widget has been resized. The browser will\n first call cef_render_handler_t::GetViewRect to get the new size and then\n call cef_render_handler_t::OnPaint asynchronously with the updated\n regions. This function is only used when window rendering is disabled.\n"]
8618    pub was_resized: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8619    #[doc = "\n Notify the browser that it has been hidden or shown. Layouting and\n cef_render_handler_t::OnPaint notification will stop when the browser is\n hidden. This function is only used when window rendering is disabled.\n"]
8620    pub was_hidden: ::std::option::Option<
8621        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, hidden: ::std::os::raw::c_int),
8622    >,
8623    #[doc = "\n Notify the browser that screen information has changed. Updated\n information will be sent to the renderer process to configure screen size\n and position values used by CSS and JavaScript (window.deviceScaleFactor,\n window.screenX/Y, window.outerWidth/Height, etc.). For background see\n https://chromiumembedded.github.io/cef/general_usage#coordinate-systems\n\n This function is used with (a) windowless rendering and (b) windowed\n rendering with external (client-provided) root window.\n\n With windowless rendering the browser will call\n cef_render_handler_t::GetScreenInfo,\n cef_render_handler_t::GetRootScreenRect and\n cef_render_handler_t::GetViewRect. This simulates moving or resizing the\n root window in the current display, moving the root window from one\n display to another, or changing the properties of the current display.\n\n With windowed rendering the browser will call\n cef_display_handler_t::GetRootWindowScreenRect and use the associated\n display properties.\n"]
8624    pub notify_screen_info_changed:
8625        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8626    #[doc = "\n Invalidate the view. The browser will call cef_render_handler_t::OnPaint\n asynchronously. This function is only used when window rendering is\n disabled.\n"]
8627    pub invalidate: ::std::option::Option<
8628        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, type_: cef_paint_element_type_t),
8629    >,
8630    #[doc = "\n Issue a BeginFrame request to Chromium.  Only valid when\n cef_window_tInfo::external_begin_frame_enabled is set to true (1).\n"]
8631    pub send_external_begin_frame:
8632        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8633    #[doc = "\n Send a key event to the browser.\n"]
8634    pub send_key_event: ::std::option::Option<
8635        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_key_event_t),
8636    >,
8637    #[doc = "\n Send a mouse click event to the browser. The |x| and |y| coordinates are\n relative to the upper-left corner of the view.\n"]
8638    pub send_mouse_click_event: ::std::option::Option<
8639        unsafe extern "C" fn(
8640            self_: *mut _cef_browser_host_t,
8641            event: *const cef_mouse_event_t,
8642            type_: cef_mouse_button_type_t,
8643            mouseUp: ::std::os::raw::c_int,
8644            clickCount: ::std::os::raw::c_int,
8645        ),
8646    >,
8647    #[doc = "\n Send a mouse move event to the browser. The |x| and |y| coordinates are\n relative to the upper-left corner of the view.\n"]
8648    pub send_mouse_move_event: ::std::option::Option<
8649        unsafe extern "C" fn(
8650            self_: *mut _cef_browser_host_t,
8651            event: *const cef_mouse_event_t,
8652            mouseLeave: ::std::os::raw::c_int,
8653        ),
8654    >,
8655    #[doc = "\n Send a mouse wheel event to the browser. The |x| and |y| coordinates are\n relative to the upper-left corner of the view. The |deltaX| and |deltaY|\n values represent the movement delta in the X and Y directions\n respectively. In order to scroll inside select popups with window\n rendering disabled cef_render_handler_t::GetScreenPoint should be\n implemented properly.\n"]
8656    pub send_mouse_wheel_event: ::std::option::Option<
8657        unsafe extern "C" fn(
8658            self_: *mut _cef_browser_host_t,
8659            event: *const cef_mouse_event_t,
8660            deltaX: ::std::os::raw::c_int,
8661            deltaY: ::std::os::raw::c_int,
8662        ),
8663    >,
8664    #[doc = "\n Send a touch event to the browser for a windowless browser.\n"]
8665    pub send_touch_event: ::std::option::Option<
8666        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_touch_event_t),
8667    >,
8668    #[doc = "\n Send a capture lost event to the browser.\n"]
8669    pub send_capture_lost_event:
8670        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8671    #[doc = "\n Notify the browser that the window hosting it is about to be moved or\n resized. This function is only used on Windows and Linux.\n"]
8672    pub notify_move_or_resize_started:
8673        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8674    #[doc = "\n Returns the maximum rate in frames per second (fps) that\n cef_render_handler_t::OnPaint will be called for a windowless browser. The\n actual fps may be lower if the browser cannot generate frames at the\n requested rate. The minimum value is 1 and the default value is 30. This\n function can only be called on the UI thread.\n"]
8675    pub get_windowless_frame_rate: ::std::option::Option<
8676        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8677    >,
8678    #[doc = "\n Set the maximum rate in frames per second (fps) that\n cef_render_handler_t:: OnPaint will be called for a windowless browser.\n The actual fps may be lower if the browser cannot generate frames at the\n requested rate. The minimum value is 1 and the default value is 30. Can\n also be set at browser creation via\n cef_browser_tSettings.windowless_frame_rate.\n"]
8679    pub set_windowless_frame_rate: ::std::option::Option<
8680        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, frame_rate: ::std::os::raw::c_int),
8681    >,
8682    #[doc = "\n Begins a new composition or updates the existing composition. Blink has a\n special node (a composition node) that allows the input function to change\n text without affecting other DOM nodes. |text| is the optional text that\n will be inserted into the composition node. |underlines| is an optional\n set of ranges that will be underlined in the resulting text.\n |replacement_range| is an optional range of the existing text that will be\n replaced. |selection_range| is an optional range of the resulting text\n that will be selected after insertion or replacement. The\n |replacement_range| value is only used on OS X.\n\n This function may be called multiple times as the composition changes.\n When the client is done making changes the composition should either be\n canceled or completed. To cancel the composition call\n ImeCancelComposition. To complete the composition call either\n ImeCommitText or ImeFinishComposingText. Completion is usually signaled\n when:\n\n 1. The client receives a WM_IME_COMPOSITION message with a GCS_RESULTSTR\n    flag (on Windows), or;\n 2. The client receives a \"commit\" signal of GtkIMContext (on Linux), or;\n 3. insertText of NSTextInput is called (on Mac).\n\n This function is only used when window rendering is disabled.\n"]
8683    pub ime_set_composition: ::std::option::Option<
8684        unsafe extern "C" fn(
8685            self_: *mut _cef_browser_host_t,
8686            text: *const cef_string_t,
8687            underlinesCount: usize,
8688            underlines: *const cef_composition_underline_t,
8689            replacement_range: *const cef_range_t,
8690            selection_range: *const cef_range_t,
8691        ),
8692    >,
8693    #[doc = "\n Completes the existing composition by optionally inserting the specified\n |text| into the composition node. |replacement_range| is an optional range\n of the existing text that will be replaced. |relative_cursor_pos| is where\n the cursor will be positioned relative to the current cursor position. See\n comments on ImeSetComposition for usage. The |replacement_range| and\n |relative_cursor_pos| values are only used on OS X. This function is only\n used when window rendering is disabled.\n"]
8694    pub ime_commit_text: ::std::option::Option<
8695        unsafe extern "C" fn(
8696            self_: *mut _cef_browser_host_t,
8697            text: *const cef_string_t,
8698            replacement_range: *const cef_range_t,
8699            relative_cursor_pos: ::std::os::raw::c_int,
8700        ),
8701    >,
8702    #[doc = "\n Completes the existing composition by applying the current composition\n node contents. If |keep_selection| is false (0) the current selection, if\n any, will be discarded. See comments on ImeSetComposition for usage. This\n function is only used when window rendering is disabled.\n"]
8703    pub ime_finish_composing_text: ::std::option::Option<
8704        unsafe extern "C" fn(
8705            self_: *mut _cef_browser_host_t,
8706            keep_selection: ::std::os::raw::c_int,
8707        ),
8708    >,
8709    #[doc = "\n Cancels the existing composition and discards the composition node\n contents without applying them. See comments on ImeSetComposition for\n usage. This function is only used when window rendering is disabled.\n"]
8710    pub ime_cancel_composition:
8711        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8712    #[doc = "\n Call this function when the user drags the mouse into the web view (before\n calling DragTargetDragOver/DragTargetLeave/DragTargetDrop). |drag_data|\n should not contain file contents as this type of data is not allowed to be\n dragged into the web view. File contents can be removed using\n cef_drag_data_t::ResetFileContents (for example, if |drag_data| comes from\n cef_render_handler_t::StartDragging). This function is only used when\n window rendering is disabled.\n"]
8713    pub drag_target_drag_enter: ::std::option::Option<
8714        unsafe extern "C" fn(
8715            self_: *mut _cef_browser_host_t,
8716            drag_data: *mut _cef_drag_data_t,
8717            event: *const cef_mouse_event_t,
8718            allowed_ops: cef_drag_operations_mask_t,
8719        ),
8720    >,
8721    #[doc = "\n Call this function each time the mouse is moved across the web view during\n a drag operation (after calling DragTargetDragEnter and before calling\n DragTargetDragLeave/DragTargetDrop). This function is only used when\n window rendering is disabled.\n"]
8722    pub drag_target_drag_over: ::std::option::Option<
8723        unsafe extern "C" fn(
8724            self_: *mut _cef_browser_host_t,
8725            event: *const cef_mouse_event_t,
8726            allowed_ops: cef_drag_operations_mask_t,
8727        ),
8728    >,
8729    #[doc = "\n Call this function when the user drags the mouse out of the web view\n (after calling DragTargetDragEnter). This function is only used when\n window rendering is disabled.\n"]
8730    pub drag_target_drag_leave:
8731        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8732    #[doc = "\n Call this function when the user completes the drag operation by dropping\n the object onto the web view (after calling DragTargetDragEnter). The\n object being dropped is |drag_data|, given as an argument to the previous\n DragTargetDragEnter call. This function is only used when window rendering\n is disabled.\n"]
8733    pub drag_target_drop: ::std::option::Option<
8734        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_mouse_event_t),
8735    >,
8736    #[doc = "\n Call this function when the drag operation started by a\n cef_render_handler_t::StartDragging call has ended either in a drop or by\n being cancelled. |x| and |y| are mouse coordinates relative to the upper-\n left corner of the view. If the web view is both the drag source and the\n drag target then all DragTarget* functions should be called before\n DragSource* mthods. This function is only used when window rendering is\n disabled.\n"]
8737    pub drag_source_ended_at: ::std::option::Option<
8738        unsafe extern "C" fn(
8739            self_: *mut _cef_browser_host_t,
8740            x: ::std::os::raw::c_int,
8741            y: ::std::os::raw::c_int,
8742            op: cef_drag_operations_mask_t,
8743        ),
8744    >,
8745    #[doc = "\n Call this function when the drag operation started by a\n cef_render_handler_t::StartDragging call has completed. This function may\n be called immediately without first calling DragSourceEndedAt to cancel a\n drag operation. If the web view is both the drag source and the drag\n target then all DragTarget* functions should be called before DragSource*\n mthods. This function is only used when window rendering is disabled.\n"]
8746    pub drag_source_system_drag_ended:
8747        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8748    #[doc = "\n Returns the current visible navigation entry for this browser. This\n function can only be called on the UI thread.\n"]
8749    pub get_visible_navigation_entry: ::std::option::Option<
8750        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_navigation_entry_t,
8751    >,
8752    #[doc = "\n Set accessibility state for all frames. |accessibility_state| may be\n default, enabled or disabled. If |accessibility_state| is STATE_DEFAULT\n then accessibility will be disabled by default and the state may be\n further controlled with the \"force-renderer-accessibility\" and \"disable-\n renderer-accessibility\" command-line switches. If |accessibility_state| is\n STATE_ENABLED then accessibility will be enabled. If |accessibility_state|\n is STATE_DISABLED then accessibility will be completely disabled.\n\n For windowed browsers accessibility will be enabled in Complete mode\n (which corresponds to kAccessibilityModeComplete in Chromium). In this\n mode all platform accessibility objects will be created and managed by\n Chromium's internal implementation. The client needs only to detect the\n screen reader and call this function appropriately. For example, on macOS\n the client can handle the @\"AXEnhancedUserStructure\" accessibility\n attribute to detect VoiceOver state changes and on Windows the client can\n handle WM_GETOBJECT with OBJID_CLIENT to detect accessibility readers.\n\n For windowless browsers accessibility will be enabled in TreeOnly mode\n (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In\n this mode renderer accessibility is enabled, the full tree is computed,\n and events are passed to CefAccessibiltyHandler, but platform\n accessibility objects are not created. The client may implement platform\n accessibility objects using CefAccessibiltyHandler callbacks if desired.\n"]
8753    pub set_accessibility_state: ::std::option::Option<
8754        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, accessibility_state: cef_state_t),
8755    >,
8756    #[doc = "\n Enable notifications of auto resize via\n cef_display_handler_t::OnAutoResize. Notifications are disabled by\n default. |min_size| and |max_size| define the range of allowed sizes.\n"]
8757    pub set_auto_resize_enabled: ::std::option::Option<
8758        unsafe extern "C" fn(
8759            self_: *mut _cef_browser_host_t,
8760            enabled: ::std::os::raw::c_int,
8761            min_size: *const cef_size_t,
8762            max_size: *const cef_size_t,
8763        ),
8764    >,
8765    #[doc = "\n Set whether the browser's audio is muted.\n"]
8766    pub set_audio_muted: ::std::option::Option<
8767        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, mute: ::std::os::raw::c_int),
8768    >,
8769    #[doc = "\n Returns true (1) if the browser's audio is muted.  This function can only\n be called on the UI thread.\n"]
8770    pub is_audio_muted: ::std::option::Option<
8771        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8772    >,
8773    #[doc = "\n Returns true (1) if the renderer is currently in browser fullscreen. This\n differs from window fullscreen in that browser fullscreen is entered using\n the JavaScript Fullscreen API and modifies CSS attributes such as the\n ::backdrop pseudo-element and :fullscreen pseudo-structure. This function\n can only be called on the UI thread.\n"]
8774    pub is_fullscreen: ::std::option::Option<
8775        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8776    >,
8777    #[doc = "\n Requests the renderer to exit browser fullscreen. In most cases exiting\n window fullscreen should also exit browser fullscreen. With Alloy style\n this function should be called in response to a user action such as\n clicking the green traffic light button on MacOS\n (cef_window_delegate_t::OnWindowFullscreenTransition callback) or pressing\n the \"ESC\" key (cef_keyboard_handler_t::OnPreKeyEvent callback). With\n Chrome style these standard exit actions are handled internally but\n new/additional user actions can use this function. Set |will_cause_resize|\n to true (1) if exiting browser fullscreen will cause a view resize.\n"]
8778    pub exit_fullscreen: ::std::option::Option<
8779        unsafe extern "C" fn(
8780            self_: *mut _cef_browser_host_t,
8781            will_cause_resize: ::std::os::raw::c_int,
8782        ),
8783    >,
8784    #[doc = "\n Returns true (1) if a Chrome command is supported and enabled. Use the\n cef_id_for_command_id_name() function for version-safe mapping of command\n IDC names from cef_command_ids.h to version-specific numerical\n |command_id| values. This function can only be called on the UI thread.\n Only used with Chrome style.\n"]
8785    pub can_execute_chrome_command: ::std::option::Option<
8786        unsafe extern "C" fn(
8787            self_: *mut _cef_browser_host_t,
8788            command_id: ::std::os::raw::c_int,
8789        ) -> ::std::os::raw::c_int,
8790    >,
8791    #[doc = "\n Execute a Chrome command. Use the cef_id_for_command_id_name() function\n for version-safe mapping of command IDC names from cef_command_ids.h to\n version-specific numerical |command_id| values. |disposition| provides\n information about the intended command target. Only used with Chrome\n style.\n"]
8792    pub execute_chrome_command: ::std::option::Option<
8793        unsafe extern "C" fn(
8794            self_: *mut _cef_browser_host_t,
8795            command_id: ::std::os::raw::c_int,
8796            disposition: cef_window_open_disposition_t,
8797        ),
8798    >,
8799    #[doc = "\n Returns true (1) if the render process associated with this browser is\n currently unresponsive as indicated by a lack of input event processing\n for at least 15 seconds. To receive associated state change notifications\n and optionally handle an unresponsive render process implement\n cef_request_handler_t::OnRenderProcessUnresponsive. This function can only\n be called on the UI thread.\n"]
8800    pub is_render_process_unresponsive: ::std::option::Option<
8801        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8802    >,
8803    #[doc = "\n Returns the runtime style for this browser (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
8804    pub get_runtime_style: ::std::option::Option<
8805        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_runtime_style_t,
8806    >,
8807    #[doc = "\n Enable or disable CDP accessibility tree viewport collapse for this\n browser. When enabled, off-screen landmarks and headings are serialized as\n summaries and other off-screen nodes are pruned. Overrides the\n cef_browser_tSettings.ax_viewport_collapse value. If called on the UI\n thread the change will be applied immediately. Otherwise, the change will\n be applied asynchronously on the UI thread. WARNING: This collapses the\n CDP accessibility tree and disables CDP dynamic tree updates (nodesUpdated\n events). The DevTools Accessibility panel will show an incomplete tree.\n Platform screen readers (NVDA, JAWS, VoiceOver) are unaffected - they use\n a separate code path.\n"]
8808    pub set_ax_viewport_collapse: ::std::option::Option<
8809        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, enabled: ::std::os::raw::c_int),
8810    >,
8811}
8812#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8813const _: () = {
8814    ["Size of _cef_browser_host_t"][::std::mem::size_of::<_cef_browser_host_t>() - 592usize];
8815    ["Alignment of _cef_browser_host_t"][::std::mem::align_of::<_cef_browser_host_t>() - 8usize];
8816    ["Offset of field: _cef_browser_host_t::base"]
8817        [::std::mem::offset_of!(_cef_browser_host_t, base) - 0usize];
8818    ["Offset of field: _cef_browser_host_t::get_browser"]
8819        [::std::mem::offset_of!(_cef_browser_host_t, get_browser) - 40usize];
8820    ["Offset of field: _cef_browser_host_t::close_browser"]
8821        [::std::mem::offset_of!(_cef_browser_host_t, close_browser) - 48usize];
8822    ["Offset of field: _cef_browser_host_t::try_close_browser"]
8823        [::std::mem::offset_of!(_cef_browser_host_t, try_close_browser) - 56usize];
8824    ["Offset of field: _cef_browser_host_t::is_ready_to_be_closed"]
8825        [::std::mem::offset_of!(_cef_browser_host_t, is_ready_to_be_closed) - 64usize];
8826    ["Offset of field: _cef_browser_host_t::set_focus"]
8827        [::std::mem::offset_of!(_cef_browser_host_t, set_focus) - 72usize];
8828    ["Offset of field: _cef_browser_host_t::get_window_handle"]
8829        [::std::mem::offset_of!(_cef_browser_host_t, get_window_handle) - 80usize];
8830    ["Offset of field: _cef_browser_host_t::get_opener_window_handle"]
8831        [::std::mem::offset_of!(_cef_browser_host_t, get_opener_window_handle) - 88usize];
8832    ["Offset of field: _cef_browser_host_t::get_opener_identifier"]
8833        [::std::mem::offset_of!(_cef_browser_host_t, get_opener_identifier) - 96usize];
8834    ["Offset of field: _cef_browser_host_t::has_view"]
8835        [::std::mem::offset_of!(_cef_browser_host_t, has_view) - 104usize];
8836    ["Offset of field: _cef_browser_host_t::get_client"]
8837        [::std::mem::offset_of!(_cef_browser_host_t, get_client) - 112usize];
8838    ["Offset of field: _cef_browser_host_t::get_request_context"]
8839        [::std::mem::offset_of!(_cef_browser_host_t, get_request_context) - 120usize];
8840    ["Offset of field: _cef_browser_host_t::can_zoom"]
8841        [::std::mem::offset_of!(_cef_browser_host_t, can_zoom) - 128usize];
8842    ["Offset of field: _cef_browser_host_t::zoom"]
8843        [::std::mem::offset_of!(_cef_browser_host_t, zoom) - 136usize];
8844    ["Offset of field: _cef_browser_host_t::get_default_zoom_level"]
8845        [::std::mem::offset_of!(_cef_browser_host_t, get_default_zoom_level) - 144usize];
8846    ["Offset of field: _cef_browser_host_t::get_zoom_level"]
8847        [::std::mem::offset_of!(_cef_browser_host_t, get_zoom_level) - 152usize];
8848    ["Offset of field: _cef_browser_host_t::set_zoom_level"]
8849        [::std::mem::offset_of!(_cef_browser_host_t, set_zoom_level) - 160usize];
8850    ["Offset of field: _cef_browser_host_t::run_file_dialog"]
8851        [::std::mem::offset_of!(_cef_browser_host_t, run_file_dialog) - 168usize];
8852    ["Offset of field: _cef_browser_host_t::start_download"]
8853        [::std::mem::offset_of!(_cef_browser_host_t, start_download) - 176usize];
8854    ["Offset of field: _cef_browser_host_t::download_image"]
8855        [::std::mem::offset_of!(_cef_browser_host_t, download_image) - 184usize];
8856    ["Offset of field: _cef_browser_host_t::print"]
8857        [::std::mem::offset_of!(_cef_browser_host_t, print) - 192usize];
8858    ["Offset of field: _cef_browser_host_t::print_to_pdf"]
8859        [::std::mem::offset_of!(_cef_browser_host_t, print_to_pdf) - 200usize];
8860    ["Offset of field: _cef_browser_host_t::find"]
8861        [::std::mem::offset_of!(_cef_browser_host_t, find) - 208usize];
8862    ["Offset of field: _cef_browser_host_t::stop_finding"]
8863        [::std::mem::offset_of!(_cef_browser_host_t, stop_finding) - 216usize];
8864    ["Offset of field: _cef_browser_host_t::show_dev_tools"]
8865        [::std::mem::offset_of!(_cef_browser_host_t, show_dev_tools) - 224usize];
8866    ["Offset of field: _cef_browser_host_t::close_dev_tools"]
8867        [::std::mem::offset_of!(_cef_browser_host_t, close_dev_tools) - 232usize];
8868    ["Offset of field: _cef_browser_host_t::has_dev_tools"]
8869        [::std::mem::offset_of!(_cef_browser_host_t, has_dev_tools) - 240usize];
8870    ["Offset of field: _cef_browser_host_t::send_dev_tools_message"]
8871        [::std::mem::offset_of!(_cef_browser_host_t, send_dev_tools_message) - 248usize];
8872    ["Offset of field: _cef_browser_host_t::execute_dev_tools_method"]
8873        [::std::mem::offset_of!(_cef_browser_host_t, execute_dev_tools_method) - 256usize];
8874    ["Offset of field: _cef_browser_host_t::add_dev_tools_message_observer"]
8875        [::std::mem::offset_of!(_cef_browser_host_t, add_dev_tools_message_observer) - 264usize];
8876    ["Offset of field: _cef_browser_host_t::get_navigation_entries"]
8877        [::std::mem::offset_of!(_cef_browser_host_t, get_navigation_entries) - 272usize];
8878    ["Offset of field: _cef_browser_host_t::replace_misspelling"]
8879        [::std::mem::offset_of!(_cef_browser_host_t, replace_misspelling) - 280usize];
8880    ["Offset of field: _cef_browser_host_t::add_word_to_dictionary"]
8881        [::std::mem::offset_of!(_cef_browser_host_t, add_word_to_dictionary) - 288usize];
8882    ["Offset of field: _cef_browser_host_t::is_window_rendering_disabled"]
8883        [::std::mem::offset_of!(_cef_browser_host_t, is_window_rendering_disabled) - 296usize];
8884    ["Offset of field: _cef_browser_host_t::was_resized"]
8885        [::std::mem::offset_of!(_cef_browser_host_t, was_resized) - 304usize];
8886    ["Offset of field: _cef_browser_host_t::was_hidden"]
8887        [::std::mem::offset_of!(_cef_browser_host_t, was_hidden) - 312usize];
8888    ["Offset of field: _cef_browser_host_t::notify_screen_info_changed"]
8889        [::std::mem::offset_of!(_cef_browser_host_t, notify_screen_info_changed) - 320usize];
8890    ["Offset of field: _cef_browser_host_t::invalidate"]
8891        [::std::mem::offset_of!(_cef_browser_host_t, invalidate) - 328usize];
8892    ["Offset of field: _cef_browser_host_t::send_external_begin_frame"]
8893        [::std::mem::offset_of!(_cef_browser_host_t, send_external_begin_frame) - 336usize];
8894    ["Offset of field: _cef_browser_host_t::send_key_event"]
8895        [::std::mem::offset_of!(_cef_browser_host_t, send_key_event) - 344usize];
8896    ["Offset of field: _cef_browser_host_t::send_mouse_click_event"]
8897        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_click_event) - 352usize];
8898    ["Offset of field: _cef_browser_host_t::send_mouse_move_event"]
8899        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_move_event) - 360usize];
8900    ["Offset of field: _cef_browser_host_t::send_mouse_wheel_event"]
8901        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_wheel_event) - 368usize];
8902    ["Offset of field: _cef_browser_host_t::send_touch_event"]
8903        [::std::mem::offset_of!(_cef_browser_host_t, send_touch_event) - 376usize];
8904    ["Offset of field: _cef_browser_host_t::send_capture_lost_event"]
8905        [::std::mem::offset_of!(_cef_browser_host_t, send_capture_lost_event) - 384usize];
8906    ["Offset of field: _cef_browser_host_t::notify_move_or_resize_started"]
8907        [::std::mem::offset_of!(_cef_browser_host_t, notify_move_or_resize_started) - 392usize];
8908    ["Offset of field: _cef_browser_host_t::get_windowless_frame_rate"]
8909        [::std::mem::offset_of!(_cef_browser_host_t, get_windowless_frame_rate) - 400usize];
8910    ["Offset of field: _cef_browser_host_t::set_windowless_frame_rate"]
8911        [::std::mem::offset_of!(_cef_browser_host_t, set_windowless_frame_rate) - 408usize];
8912    ["Offset of field: _cef_browser_host_t::ime_set_composition"]
8913        [::std::mem::offset_of!(_cef_browser_host_t, ime_set_composition) - 416usize];
8914    ["Offset of field: _cef_browser_host_t::ime_commit_text"]
8915        [::std::mem::offset_of!(_cef_browser_host_t, ime_commit_text) - 424usize];
8916    ["Offset of field: _cef_browser_host_t::ime_finish_composing_text"]
8917        [::std::mem::offset_of!(_cef_browser_host_t, ime_finish_composing_text) - 432usize];
8918    ["Offset of field: _cef_browser_host_t::ime_cancel_composition"]
8919        [::std::mem::offset_of!(_cef_browser_host_t, ime_cancel_composition) - 440usize];
8920    ["Offset of field: _cef_browser_host_t::drag_target_drag_enter"]
8921        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_enter) - 448usize];
8922    ["Offset of field: _cef_browser_host_t::drag_target_drag_over"]
8923        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_over) - 456usize];
8924    ["Offset of field: _cef_browser_host_t::drag_target_drag_leave"]
8925        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_leave) - 464usize];
8926    ["Offset of field: _cef_browser_host_t::drag_target_drop"]
8927        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drop) - 472usize];
8928    ["Offset of field: _cef_browser_host_t::drag_source_ended_at"]
8929        [::std::mem::offset_of!(_cef_browser_host_t, drag_source_ended_at) - 480usize];
8930    ["Offset of field: _cef_browser_host_t::drag_source_system_drag_ended"]
8931        [::std::mem::offset_of!(_cef_browser_host_t, drag_source_system_drag_ended) - 488usize];
8932    ["Offset of field: _cef_browser_host_t::get_visible_navigation_entry"]
8933        [::std::mem::offset_of!(_cef_browser_host_t, get_visible_navigation_entry) - 496usize];
8934    ["Offset of field: _cef_browser_host_t::set_accessibility_state"]
8935        [::std::mem::offset_of!(_cef_browser_host_t, set_accessibility_state) - 504usize];
8936    ["Offset of field: _cef_browser_host_t::set_auto_resize_enabled"]
8937        [::std::mem::offset_of!(_cef_browser_host_t, set_auto_resize_enabled) - 512usize];
8938    ["Offset of field: _cef_browser_host_t::set_audio_muted"]
8939        [::std::mem::offset_of!(_cef_browser_host_t, set_audio_muted) - 520usize];
8940    ["Offset of field: _cef_browser_host_t::is_audio_muted"]
8941        [::std::mem::offset_of!(_cef_browser_host_t, is_audio_muted) - 528usize];
8942    ["Offset of field: _cef_browser_host_t::is_fullscreen"]
8943        [::std::mem::offset_of!(_cef_browser_host_t, is_fullscreen) - 536usize];
8944    ["Offset of field: _cef_browser_host_t::exit_fullscreen"]
8945        [::std::mem::offset_of!(_cef_browser_host_t, exit_fullscreen) - 544usize];
8946    ["Offset of field: _cef_browser_host_t::can_execute_chrome_command"]
8947        [::std::mem::offset_of!(_cef_browser_host_t, can_execute_chrome_command) - 552usize];
8948    ["Offset of field: _cef_browser_host_t::execute_chrome_command"]
8949        [::std::mem::offset_of!(_cef_browser_host_t, execute_chrome_command) - 560usize];
8950    ["Offset of field: _cef_browser_host_t::is_render_process_unresponsive"]
8951        [::std::mem::offset_of!(_cef_browser_host_t, is_render_process_unresponsive) - 568usize];
8952    ["Offset of field: _cef_browser_host_t::get_runtime_style"]
8953        [::std::mem::offset_of!(_cef_browser_host_t, get_runtime_style) - 576usize];
8954    ["Offset of field: _cef_browser_host_t::set_ax_viewport_collapse"]
8955        [::std::mem::offset_of!(_cef_browser_host_t, set_ax_viewport_collapse) - 584usize];
8956};
8957#[doc = "\n Structure used to represent the browser process aspects of a browser. The\n functions of this structure can only be called in the browser process. They\n may be called on any thread in that process unless otherwise indicated in\n the comments.\n\n NOTE: This struct is allocated DLL-side.\n"]
8958pub type cef_browser_host_t = _cef_browser_host_t;
8959unsafe extern "C" {
8960    #[doc = "\n Create a new browser using the window parameters specified by |windowInfo|.\n All values will be copied internally and the actual window (if any) will be\n created on the UI thread. If |request_context| is NULL the global request\n context will be used. This function can be called on any browser process\n thread and will not block. The optional |extra_info| parameter provides an\n opportunity to specify extra information specific to the created browser\n that will be passed to cef_render_process_handler_t::on_browser_created() in\n the render process.\n"]
8961    pub fn cef_browser_host_create_browser(
8962        windowInfo: *const cef_window_info_t,
8963        client: *mut _cef_client_t,
8964        url: *const cef_string_t,
8965        settings: *const _cef_browser_settings_t,
8966        extra_info: *mut _cef_dictionary_value_t,
8967        request_context: *mut _cef_request_context_t,
8968    ) -> ::std::os::raw::c_int;
8969}
8970unsafe extern "C" {
8971    #[doc = "\n Create a new browser using the window parameters specified by |windowInfo|.\n If |request_context| is NULL the global request context will be used. This\n function can only be called on the browser process UI thread. The optional\n |extra_info| parameter provides an opportunity to specify extra information\n specific to the created browser that will be passed to\n cef_render_process_handler_t::on_browser_created() in the render process.\n"]
8972    pub fn cef_browser_host_create_browser_sync(
8973        windowInfo: *const cef_window_info_t,
8974        client: *mut _cef_client_t,
8975        url: *const cef_string_t,
8976        settings: *const _cef_browser_settings_t,
8977        extra_info: *mut _cef_dictionary_value_t,
8978        request_context: *mut _cef_request_context_t,
8979    ) -> *mut cef_browser_t;
8980}
8981unsafe extern "C" {
8982    #[doc = "\n Returns the browser (if any) with the specified identifier.\n"]
8983    pub fn cef_browser_host_get_browser_by_identifier(
8984        browser_id: ::std::os::raw::c_int,
8985    ) -> *mut cef_browser_t;
8986}
8987#[doc = "\n Implement this structure to handle audio events.\n\n NOTE: This struct is allocated client-side.\n"]
8988#[repr(C)]
8989#[derive(Debug, Copy, Clone)]
8990pub struct _cef_audio_handler_t {
8991    #[doc = "\n Base structure.\n"]
8992    pub base: cef_base_ref_counted_t,
8993    #[doc = "\n Called on the UI thread to allow configuration of audio stream parameters.\n Return true (1) to proceed with audio stream capture, or false (0) to\n cancel it. All members of |params| can optionally be configured here, but\n they are also pre-filled with some sensible defaults.\n"]
8994    pub get_audio_parameters: ::std::option::Option<
8995        unsafe extern "C" fn(
8996            self_: *mut _cef_audio_handler_t,
8997            browser: *mut _cef_browser_t,
8998            params: *mut cef_audio_parameters_t,
8999        ) -> ::std::os::raw::c_int,
9000    >,
9001    #[doc = "\n Called on a browser audio capture thread when the browser starts streaming\n audio. OnAudioStreamStopped will always be called after\n OnAudioStreamStarted; both functions may be called multiple times for the\n same browser. |params| contains the audio parameters like sample rate and\n channel layout. |channels| is the number of channels.\n"]
9002    pub on_audio_stream_started: ::std::option::Option<
9003        unsafe extern "C" fn(
9004            self_: *mut _cef_audio_handler_t,
9005            browser: *mut _cef_browser_t,
9006            params: *const cef_audio_parameters_t,
9007            channels: ::std::os::raw::c_int,
9008        ),
9009    >,
9010    #[doc = "\n Called on the audio stream thread when a PCM packet is received for the\n stream. |data| is an array representing the raw PCM data as a floating\n point type, i.e. 4-byte value(s). |frames| is the number of frames in the\n PCM packet. |pts| is the presentation timestamp (in milliseconds since the\n Unix Epoch) and represents the time at which the decompressed packet\n should be presented to the user. Based on |frames| and the\n |channel_layout| value passed to OnAudioStreamStarted you can calculate\n the size of the |data| array in bytes.\n"]
9011    pub on_audio_stream_packet: ::std::option::Option<
9012        unsafe extern "C" fn(
9013            self_: *mut _cef_audio_handler_t,
9014            browser: *mut _cef_browser_t,
9015            data: *mut *const f32,
9016            frames: ::std::os::raw::c_int,
9017            pts: i64,
9018        ),
9019    >,
9020    #[doc = "\n Called on the UI thread when the stream has stopped. OnAudioSteamStopped\n will always be called after OnAudioStreamStarted; both functions may be\n called multiple times for the same stream.\n"]
9021    pub on_audio_stream_stopped: ::std::option::Option<
9022        unsafe extern "C" fn(self_: *mut _cef_audio_handler_t, browser: *mut _cef_browser_t),
9023    >,
9024    #[doc = "\n Called on the UI or audio stream thread when an error occurred. During the\n stream creation phase this callback will be called on the UI thread while\n in the capturing phase it will be called on the audio stream thread. The\n stream will be stopped immediately.\n"]
9025    pub on_audio_stream_error: ::std::option::Option<
9026        unsafe extern "C" fn(
9027            self_: *mut _cef_audio_handler_t,
9028            browser: *mut _cef_browser_t,
9029            message: *const cef_string_t,
9030        ),
9031    >,
9032}
9033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9034const _: () = {
9035    ["Size of _cef_audio_handler_t"][::std::mem::size_of::<_cef_audio_handler_t>() - 80usize];
9036    ["Alignment of _cef_audio_handler_t"][::std::mem::align_of::<_cef_audio_handler_t>() - 8usize];
9037    ["Offset of field: _cef_audio_handler_t::base"]
9038        [::std::mem::offset_of!(_cef_audio_handler_t, base) - 0usize];
9039    ["Offset of field: _cef_audio_handler_t::get_audio_parameters"]
9040        [::std::mem::offset_of!(_cef_audio_handler_t, get_audio_parameters) - 40usize];
9041    ["Offset of field: _cef_audio_handler_t::on_audio_stream_started"]
9042        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_started) - 48usize];
9043    ["Offset of field: _cef_audio_handler_t::on_audio_stream_packet"]
9044        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_packet) - 56usize];
9045    ["Offset of field: _cef_audio_handler_t::on_audio_stream_stopped"]
9046        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_stopped) - 64usize];
9047    ["Offset of field: _cef_audio_handler_t::on_audio_stream_error"]
9048        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_error) - 72usize];
9049};
9050#[doc = "\n Implement this structure to handle audio events.\n\n NOTE: This struct is allocated client-side.\n"]
9051pub type cef_audio_handler_t = _cef_audio_handler_t;
9052#[doc = "\n Implement this structure to handle events related to commands. The functions\n of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
9053#[repr(C)]
9054#[derive(Debug, Copy, Clone)]
9055pub struct _cef_command_handler_t {
9056    #[doc = "\n Base structure.\n"]
9057    pub base: cef_base_ref_counted_t,
9058    #[doc = "\n Called to execute a Chrome command triggered via menu selection or\n keyboard shortcut. Use the cef_id_for_command_id_name() function for\n version-safe mapping of command IDC names from cef_command_ids.h to\n version-specific numerical |command_id| values. |disposition| provides\n information about the intended command target. Return true (1) if the\n command was handled or false (0) for the default implementation. For\n context menu commands this will be called after\n cef_context_menu_handler_t::OnContextMenuCommand. Only used with Chrome\n style.\n"]
9059    pub on_chrome_command: ::std::option::Option<
9060        unsafe extern "C" fn(
9061            self_: *mut _cef_command_handler_t,
9062            browser: *mut _cef_browser_t,
9063            command_id: ::std::os::raw::c_int,
9064            disposition: cef_window_open_disposition_t,
9065        ) -> ::std::os::raw::c_int,
9066    >,
9067    #[doc = "\n Called to check if a Chrome app menu item should be visible. Use the\n cef_id_for_command_id_name() function for version-safe mapping of command\n IDC names from cef_command_ids.h to version-specific numerical\n |command_id| values. Only called for menu items that would be visible by\n default. Only used with Chrome style.\n"]
9068    pub is_chrome_app_menu_item_visible: ::std::option::Option<
9069        unsafe extern "C" fn(
9070            self_: *mut _cef_command_handler_t,
9071            browser: *mut _cef_browser_t,
9072            command_id: ::std::os::raw::c_int,
9073        ) -> ::std::os::raw::c_int,
9074    >,
9075    #[doc = "\n Called to check if a Chrome app menu item should be enabled. Use the\n cef_id_for_command_id_name() function for version-safe mapping of command\n IDC names from cef_command_ids.h to version-specific numerical\n |command_id| values. Only called for menu items that would be enabled by\n default. Only used with Chrome style.\n"]
9076    pub is_chrome_app_menu_item_enabled: ::std::option::Option<
9077        unsafe extern "C" fn(
9078            self_: *mut _cef_command_handler_t,
9079            browser: *mut _cef_browser_t,
9080            command_id: ::std::os::raw::c_int,
9081        ) -> ::std::os::raw::c_int,
9082    >,
9083    #[doc = "\n Called during browser creation to check if a Chrome page action icon\n should be visible. Only called for icons that would be visible by default.\n Only used with Chrome style.\n"]
9084    pub is_chrome_page_action_icon_visible: ::std::option::Option<
9085        unsafe extern "C" fn(
9086            self_: *mut _cef_command_handler_t,
9087            icon_type: cef_chrome_page_action_icon_type_t,
9088        ) -> ::std::os::raw::c_int,
9089    >,
9090    #[doc = "\n Called during browser creation to check if a Chrome toolbar button should\n be visible. Only called for buttons that would be visible by default. Only\n used with Chrome style.\n"]
9091    pub is_chrome_toolbar_button_visible: ::std::option::Option<
9092        unsafe extern "C" fn(
9093            self_: *mut _cef_command_handler_t,
9094            button_type: cef_chrome_toolbar_button_type_t,
9095        ) -> ::std::os::raw::c_int,
9096    >,
9097}
9098#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9099const _: () = {
9100    ["Size of _cef_command_handler_t"][::std::mem::size_of::<_cef_command_handler_t>() - 80usize];
9101    ["Alignment of _cef_command_handler_t"]
9102        [::std::mem::align_of::<_cef_command_handler_t>() - 8usize];
9103    ["Offset of field: _cef_command_handler_t::base"]
9104        [::std::mem::offset_of!(_cef_command_handler_t, base) - 0usize];
9105    ["Offset of field: _cef_command_handler_t::on_chrome_command"]
9106        [::std::mem::offset_of!(_cef_command_handler_t, on_chrome_command) - 40usize];
9107    ["Offset of field: _cef_command_handler_t::is_chrome_app_menu_item_visible"]
9108        [::std::mem::offset_of!(_cef_command_handler_t, is_chrome_app_menu_item_visible) - 48usize];
9109    ["Offset of field: _cef_command_handler_t::is_chrome_app_menu_item_enabled"]
9110        [::std::mem::offset_of!(_cef_command_handler_t, is_chrome_app_menu_item_enabled) - 56usize];
9111    ["Offset of field: _cef_command_handler_t::is_chrome_page_action_icon_visible"][::std::mem::offset_of!(
9112        _cef_command_handler_t,
9113        is_chrome_page_action_icon_visible
9114    ) - 64usize];
9115    ["Offset of field: _cef_command_handler_t::is_chrome_toolbar_button_visible"][::std::mem::offset_of!(
9116        _cef_command_handler_t,
9117        is_chrome_toolbar_button_visible
9118    ) - 72usize];
9119};
9120#[doc = "\n Implement this structure to handle events related to commands. The functions\n of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
9121pub type cef_command_handler_t = _cef_command_handler_t;
9122#[doc = "\n Implement this structure to handle menu model events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
9123#[repr(C)]
9124#[derive(Debug, Copy, Clone)]
9125pub struct _cef_menu_model_delegate_t {
9126    #[doc = "\n Base structure.\n"]
9127    pub base: cef_base_ref_counted_t,
9128    #[doc = "\n Perform the action associated with the specified |command_id| and optional\n |event_flags|.\n"]
9129    pub execute_command: ::std::option::Option<
9130        unsafe extern "C" fn(
9131            self_: *mut _cef_menu_model_delegate_t,
9132            menu_model: *mut _cef_menu_model_t,
9133            command_id: ::std::os::raw::c_int,
9134            event_flags: cef_event_flags_t,
9135        ),
9136    >,
9137    #[doc = "\n Called when the user moves the mouse outside the menu and over the owning\n window.\n"]
9138    pub mouse_outside_menu: ::std::option::Option<
9139        unsafe extern "C" fn(
9140            self_: *mut _cef_menu_model_delegate_t,
9141            menu_model: *mut _cef_menu_model_t,
9142            screen_point: *const cef_point_t,
9143        ),
9144    >,
9145    #[doc = "\n Called on unhandled open submenu keyboard commands. |is_rtl| will be true\n (1) if the menu is displaying a right-to-left language.\n"]
9146    pub unhandled_open_submenu: ::std::option::Option<
9147        unsafe extern "C" fn(
9148            self_: *mut _cef_menu_model_delegate_t,
9149            menu_model: *mut _cef_menu_model_t,
9150            is_rtl: ::std::os::raw::c_int,
9151        ),
9152    >,
9153    #[doc = "\n Called on unhandled close submenu keyboard commands. |is_rtl| will be true\n (1) if the menu is displaying a right-to-left language.\n"]
9154    pub unhandled_close_submenu: ::std::option::Option<
9155        unsafe extern "C" fn(
9156            self_: *mut _cef_menu_model_delegate_t,
9157            menu_model: *mut _cef_menu_model_t,
9158            is_rtl: ::std::os::raw::c_int,
9159        ),
9160    >,
9161    #[doc = "\n The menu is about to show.\n"]
9162    pub menu_will_show: ::std::option::Option<
9163        unsafe extern "C" fn(
9164            self_: *mut _cef_menu_model_delegate_t,
9165            menu_model: *mut _cef_menu_model_t,
9166        ),
9167    >,
9168    #[doc = "\n The menu has closed.\n"]
9169    pub menu_closed: ::std::option::Option<
9170        unsafe extern "C" fn(
9171            self_: *mut _cef_menu_model_delegate_t,
9172            menu_model: *mut _cef_menu_model_t,
9173        ),
9174    >,
9175    #[doc = "\n Optionally modify a menu item label. Return true (1) if |label| was\n modified.\n"]
9176    pub format_label: ::std::option::Option<
9177        unsafe extern "C" fn(
9178            self_: *mut _cef_menu_model_delegate_t,
9179            menu_model: *mut _cef_menu_model_t,
9180            label: *mut cef_string_t,
9181        ) -> ::std::os::raw::c_int,
9182    >,
9183}
9184#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9185const _: () = {
9186    ["Size of _cef_menu_model_delegate_t"]
9187        [::std::mem::size_of::<_cef_menu_model_delegate_t>() - 96usize];
9188    ["Alignment of _cef_menu_model_delegate_t"]
9189        [::std::mem::align_of::<_cef_menu_model_delegate_t>() - 8usize];
9190    ["Offset of field: _cef_menu_model_delegate_t::base"]
9191        [::std::mem::offset_of!(_cef_menu_model_delegate_t, base) - 0usize];
9192    ["Offset of field: _cef_menu_model_delegate_t::execute_command"]
9193        [::std::mem::offset_of!(_cef_menu_model_delegate_t, execute_command) - 40usize];
9194    ["Offset of field: _cef_menu_model_delegate_t::mouse_outside_menu"]
9195        [::std::mem::offset_of!(_cef_menu_model_delegate_t, mouse_outside_menu) - 48usize];
9196    ["Offset of field: _cef_menu_model_delegate_t::unhandled_open_submenu"]
9197        [::std::mem::offset_of!(_cef_menu_model_delegate_t, unhandled_open_submenu) - 56usize];
9198    ["Offset of field: _cef_menu_model_delegate_t::unhandled_close_submenu"]
9199        [::std::mem::offset_of!(_cef_menu_model_delegate_t, unhandled_close_submenu) - 64usize];
9200    ["Offset of field: _cef_menu_model_delegate_t::menu_will_show"]
9201        [::std::mem::offset_of!(_cef_menu_model_delegate_t, menu_will_show) - 72usize];
9202    ["Offset of field: _cef_menu_model_delegate_t::menu_closed"]
9203        [::std::mem::offset_of!(_cef_menu_model_delegate_t, menu_closed) - 80usize];
9204    ["Offset of field: _cef_menu_model_delegate_t::format_label"]
9205        [::std::mem::offset_of!(_cef_menu_model_delegate_t, format_label) - 88usize];
9206};
9207#[doc = "\n Implement this structure to handle menu model events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
9208pub type cef_menu_model_delegate_t = _cef_menu_model_delegate_t;
9209#[doc = "\n Supports creation and modification of menus. See cef_menu_id_t for the\n command ids that have default implementations. All user-defined command ids\n should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. The functions of\n this structure can only be accessed on the browser process the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
9210#[repr(C)]
9211#[derive(Debug, Copy, Clone)]
9212pub struct _cef_menu_model_t {
9213    #[doc = "\n Base structure.\n"]
9214    pub base: cef_base_ref_counted_t,
9215    #[doc = "\n Returns true (1) if this menu is a submenu.\n"]
9216    pub is_sub_menu: ::std::option::Option<
9217        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
9218    >,
9219    #[doc = "\n Clears the menu. Returns true (1) on success.\n"]
9220    pub clear: ::std::option::Option<
9221        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
9222    >,
9223    #[doc = "\n Returns the number of items in this menu.\n"]
9224    pub get_count:
9225        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> usize>,
9226    #[doc = "\n Add a separator to the menu. Returns true (1) on success.\n"]
9227    pub add_separator: ::std::option::Option<
9228        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
9229    >,
9230    #[doc = "\n Add an item to the menu. Returns true (1) on success.\n"]
9231    pub add_item: ::std::option::Option<
9232        unsafe extern "C" fn(
9233            self_: *mut _cef_menu_model_t,
9234            command_id: ::std::os::raw::c_int,
9235            label: *const cef_string_t,
9236        ) -> ::std::os::raw::c_int,
9237    >,
9238    #[doc = "\n Add a check item to the menu. Returns true (1) on success.\n"]
9239    pub add_check_item: ::std::option::Option<
9240        unsafe extern "C" fn(
9241            self_: *mut _cef_menu_model_t,
9242            command_id: ::std::os::raw::c_int,
9243            label: *const cef_string_t,
9244        ) -> ::std::os::raw::c_int,
9245    >,
9246    #[doc = "\n Add a radio item to the menu. Only a single item with the specified\n |group_id| can be checked at a time. Returns true (1) on success.\n"]
9247    pub add_radio_item: ::std::option::Option<
9248        unsafe extern "C" fn(
9249            self_: *mut _cef_menu_model_t,
9250            command_id: ::std::os::raw::c_int,
9251            label: *const cef_string_t,
9252            group_id: ::std::os::raw::c_int,
9253        ) -> ::std::os::raw::c_int,
9254    >,
9255    #[doc = "\n Add a sub-menu to the menu. The new sub-menu is returned.\n"]
9256    pub add_sub_menu: ::std::option::Option<
9257        unsafe extern "C" fn(
9258            self_: *mut _cef_menu_model_t,
9259            command_id: ::std::os::raw::c_int,
9260            label: *const cef_string_t,
9261        ) -> *mut _cef_menu_model_t,
9262    >,
9263    #[doc = "\n Insert a separator in the menu at the specified |index|. Returns true (1)\n on success.\n"]
9264    pub insert_separator_at: ::std::option::Option<
9265        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9266    >,
9267    #[doc = "\n Insert an item in the menu at the specified |index|. Returns true (1) on\n success.\n"]
9268    pub insert_item_at: ::std::option::Option<
9269        unsafe extern "C" fn(
9270            self_: *mut _cef_menu_model_t,
9271            index: usize,
9272            command_id: ::std::os::raw::c_int,
9273            label: *const cef_string_t,
9274        ) -> ::std::os::raw::c_int,
9275    >,
9276    #[doc = "\n Insert a check item in the menu at the specified |index|. Returns true (1)\n on success.\n"]
9277    pub insert_check_item_at: ::std::option::Option<
9278        unsafe extern "C" fn(
9279            self_: *mut _cef_menu_model_t,
9280            index: usize,
9281            command_id: ::std::os::raw::c_int,
9282            label: *const cef_string_t,
9283        ) -> ::std::os::raw::c_int,
9284    >,
9285    #[doc = "\n Insert a radio item in the menu at the specified |index|. Only a single\n item with the specified |group_id| can be checked at a time. Returns true\n (1) on success.\n"]
9286    pub insert_radio_item_at: ::std::option::Option<
9287        unsafe extern "C" fn(
9288            self_: *mut _cef_menu_model_t,
9289            index: usize,
9290            command_id: ::std::os::raw::c_int,
9291            label: *const cef_string_t,
9292            group_id: ::std::os::raw::c_int,
9293        ) -> ::std::os::raw::c_int,
9294    >,
9295    #[doc = "\n Insert a sub-menu in the menu at the specified |index|. The new sub-menu\n is returned.\n"]
9296    pub insert_sub_menu_at: ::std::option::Option<
9297        unsafe extern "C" fn(
9298            self_: *mut _cef_menu_model_t,
9299            index: usize,
9300            command_id: ::std::os::raw::c_int,
9301            label: *const cef_string_t,
9302        ) -> *mut _cef_menu_model_t,
9303    >,
9304    #[doc = "\n Removes the item with the specified |command_id|. Returns true (1) on\n success.\n"]
9305    pub remove: ::std::option::Option<
9306        unsafe extern "C" fn(
9307            self_: *mut _cef_menu_model_t,
9308            command_id: ::std::os::raw::c_int,
9309        ) -> ::std::os::raw::c_int,
9310    >,
9311    #[doc = "\n Removes the item at the specified |index|. Returns true (1) on success.\n"]
9312    pub remove_at: ::std::option::Option<
9313        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9314    >,
9315    #[doc = "\n Returns the index associated with the specified |command_id| or -1 if not\n found due to the command id not existing in the menu.\n"]
9316    pub get_index_of: ::std::option::Option<
9317        unsafe extern "C" fn(
9318            self_: *mut _cef_menu_model_t,
9319            command_id: ::std::os::raw::c_int,
9320        ) -> ::std::os::raw::c_int,
9321    >,
9322    #[doc = "\n Returns the command id at the specified |index| or -1 if not found due to\n invalid range or the index being a separator.\n"]
9323    pub get_command_id_at: ::std::option::Option<
9324        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9325    >,
9326    #[doc = "\n Sets the command id at the specified |index|. Returns true (1) on success.\n"]
9327    pub set_command_id_at: ::std::option::Option<
9328        unsafe extern "C" fn(
9329            self_: *mut _cef_menu_model_t,
9330            index: usize,
9331            command_id: ::std::os::raw::c_int,
9332        ) -> ::std::os::raw::c_int,
9333    >,
9334    #[doc = "\n Returns the label for the specified |command_id| or NULL if not found.\n"]
9335    pub get_label: ::std::option::Option<
9336        unsafe extern "C" fn(
9337            self_: *mut _cef_menu_model_t,
9338            command_id: ::std::os::raw::c_int,
9339        ) -> cef_string_userfree_t,
9340    >,
9341    #[doc = "\n Returns the label at the specified |index| or NULL if not found due to\n invalid range or the index being a separator.\n"]
9342    pub get_label_at: ::std::option::Option<
9343        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> cef_string_userfree_t,
9344    >,
9345    #[doc = "\n Sets the label for the specified |command_id|. Returns true (1) on\n success.\n"]
9346    pub set_label: ::std::option::Option<
9347        unsafe extern "C" fn(
9348            self_: *mut _cef_menu_model_t,
9349            command_id: ::std::os::raw::c_int,
9350            label: *const cef_string_t,
9351        ) -> ::std::os::raw::c_int,
9352    >,
9353    #[doc = "\n Set the label at the specified |index|. Returns true (1) on success.\n"]
9354    pub set_label_at: ::std::option::Option<
9355        unsafe extern "C" fn(
9356            self_: *mut _cef_menu_model_t,
9357            index: usize,
9358            label: *const cef_string_t,
9359        ) -> ::std::os::raw::c_int,
9360    >,
9361    #[doc = "\n Returns the item type for the specified |command_id|.\n"]
9362    pub get_type: ::std::option::Option<
9363        unsafe extern "C" fn(
9364            self_: *mut _cef_menu_model_t,
9365            command_id: ::std::os::raw::c_int,
9366        ) -> cef_menu_item_type_t,
9367    >,
9368    #[doc = "\n Returns the item type at the specified |index|.\n"]
9369    pub get_type_at: ::std::option::Option<
9370        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> cef_menu_item_type_t,
9371    >,
9372    #[doc = "\n Returns the group id for the specified |command_id| or -1 if invalid.\n"]
9373    pub get_group_id: ::std::option::Option<
9374        unsafe extern "C" fn(
9375            self_: *mut _cef_menu_model_t,
9376            command_id: ::std::os::raw::c_int,
9377        ) -> ::std::os::raw::c_int,
9378    >,
9379    #[doc = "\n Returns the group id at the specified |index| or -1 if invalid.\n"]
9380    pub get_group_id_at: ::std::option::Option<
9381        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9382    >,
9383    #[doc = "\n Sets the group id for the specified |command_id|. Returns true (1) on\n success.\n"]
9384    pub set_group_id: ::std::option::Option<
9385        unsafe extern "C" fn(
9386            self_: *mut _cef_menu_model_t,
9387            command_id: ::std::os::raw::c_int,
9388            group_id: ::std::os::raw::c_int,
9389        ) -> ::std::os::raw::c_int,
9390    >,
9391    #[doc = "\n Sets the group id at the specified |index|. Returns true (1) on success.\n"]
9392    pub set_group_id_at: ::std::option::Option<
9393        unsafe extern "C" fn(
9394            self_: *mut _cef_menu_model_t,
9395            index: usize,
9396            group_id: ::std::os::raw::c_int,
9397        ) -> ::std::os::raw::c_int,
9398    >,
9399    #[doc = "\n Returns the submenu for the specified |command_id| or NULL if invalid.\n"]
9400    pub get_sub_menu: ::std::option::Option<
9401        unsafe extern "C" fn(
9402            self_: *mut _cef_menu_model_t,
9403            command_id: ::std::os::raw::c_int,
9404        ) -> *mut _cef_menu_model_t,
9405    >,
9406    #[doc = "\n Returns the submenu at the specified |index| or NULL if invalid.\n"]
9407    pub get_sub_menu_at: ::std::option::Option<
9408        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> *mut _cef_menu_model_t,
9409    >,
9410    #[doc = "\n Returns true (1) if the specified |command_id| is visible.\n"]
9411    pub is_visible: ::std::option::Option<
9412        unsafe extern "C" fn(
9413            self_: *mut _cef_menu_model_t,
9414            command_id: ::std::os::raw::c_int,
9415        ) -> ::std::os::raw::c_int,
9416    >,
9417    #[doc = "\n Returns true (1) if the specified |index| is visible.\n"]
9418    pub is_visible_at: ::std::option::Option<
9419        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9420    >,
9421    #[doc = "\n Change the visibility of the specified |command_id|. Returns true (1) on\n success.\n"]
9422    pub set_visible: ::std::option::Option<
9423        unsafe extern "C" fn(
9424            self_: *mut _cef_menu_model_t,
9425            command_id: ::std::os::raw::c_int,
9426            visible: ::std::os::raw::c_int,
9427        ) -> ::std::os::raw::c_int,
9428    >,
9429    #[doc = "\n Change the visibility at the specified |index|. Returns true (1) on\n success.\n"]
9430    pub set_visible_at: ::std::option::Option<
9431        unsafe extern "C" fn(
9432            self_: *mut _cef_menu_model_t,
9433            index: usize,
9434            visible: ::std::os::raw::c_int,
9435        ) -> ::std::os::raw::c_int,
9436    >,
9437    #[doc = "\n Returns true (1) if the specified |command_id| is enabled.\n"]
9438    pub is_enabled: ::std::option::Option<
9439        unsafe extern "C" fn(
9440            self_: *mut _cef_menu_model_t,
9441            command_id: ::std::os::raw::c_int,
9442        ) -> ::std::os::raw::c_int,
9443    >,
9444    #[doc = "\n Returns true (1) if the specified |index| is enabled.\n"]
9445    pub is_enabled_at: ::std::option::Option<
9446        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9447    >,
9448    #[doc = "\n Change the enabled status of the specified |command_id|. Returns true (1)\n on success.\n"]
9449    pub set_enabled: ::std::option::Option<
9450        unsafe extern "C" fn(
9451            self_: *mut _cef_menu_model_t,
9452            command_id: ::std::os::raw::c_int,
9453            enabled: ::std::os::raw::c_int,
9454        ) -> ::std::os::raw::c_int,
9455    >,
9456    #[doc = "\n Change the enabled status at the specified |index|. Returns true (1) on\n success.\n"]
9457    pub set_enabled_at: ::std::option::Option<
9458        unsafe extern "C" fn(
9459            self_: *mut _cef_menu_model_t,
9460            index: usize,
9461            enabled: ::std::os::raw::c_int,
9462        ) -> ::std::os::raw::c_int,
9463    >,
9464    #[doc = "\n Returns true (1) if the specified |command_id| is checked. Only applies to\n check and radio items.\n"]
9465    pub is_checked: ::std::option::Option<
9466        unsafe extern "C" fn(
9467            self_: *mut _cef_menu_model_t,
9468            command_id: ::std::os::raw::c_int,
9469        ) -> ::std::os::raw::c_int,
9470    >,
9471    #[doc = "\n Returns true (1) if the specified |index| is checked. Only applies to\n check and radio items.\n"]
9472    pub is_checked_at: ::std::option::Option<
9473        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9474    >,
9475    #[doc = "\n Check the specified |command_id|. Only applies to check and radio items.\n Returns true (1) on success.\n"]
9476    pub set_checked: ::std::option::Option<
9477        unsafe extern "C" fn(
9478            self_: *mut _cef_menu_model_t,
9479            command_id: ::std::os::raw::c_int,
9480            checked: ::std::os::raw::c_int,
9481        ) -> ::std::os::raw::c_int,
9482    >,
9483    #[doc = "\n Check the specified |index|. Only applies to check and radio items.\n Returns true (1) on success.\n"]
9484    pub set_checked_at: ::std::option::Option<
9485        unsafe extern "C" fn(
9486            self_: *mut _cef_menu_model_t,
9487            index: usize,
9488            checked: ::std::os::raw::c_int,
9489        ) -> ::std::os::raw::c_int,
9490    >,
9491    #[doc = "\n Returns true (1) if the specified |command_id| has a keyboard accelerator\n assigned.\n"]
9492    pub has_accelerator: ::std::option::Option<
9493        unsafe extern "C" fn(
9494            self_: *mut _cef_menu_model_t,
9495            command_id: ::std::os::raw::c_int,
9496        ) -> ::std::os::raw::c_int,
9497    >,
9498    #[doc = "\n Returns true (1) if the specified |index| has a keyboard accelerator\n assigned.\n"]
9499    pub has_accelerator_at: ::std::option::Option<
9500        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9501    >,
9502    #[doc = "\n Set the keyboard accelerator for the specified |command_id|. |key_code|\n can be any virtual key or character value. Returns true (1) on success.\n"]
9503    pub set_accelerator: ::std::option::Option<
9504        unsafe extern "C" fn(
9505            self_: *mut _cef_menu_model_t,
9506            command_id: ::std::os::raw::c_int,
9507            key_code: ::std::os::raw::c_int,
9508            shift_pressed: ::std::os::raw::c_int,
9509            ctrl_pressed: ::std::os::raw::c_int,
9510            alt_pressed: ::std::os::raw::c_int,
9511        ) -> ::std::os::raw::c_int,
9512    >,
9513    #[doc = "\n Set the keyboard accelerator at the specified |index|. |key_code| can be\n any virtual key or character value. Returns true (1) on success.\n"]
9514    pub set_accelerator_at: ::std::option::Option<
9515        unsafe extern "C" fn(
9516            self_: *mut _cef_menu_model_t,
9517            index: usize,
9518            key_code: ::std::os::raw::c_int,
9519            shift_pressed: ::std::os::raw::c_int,
9520            ctrl_pressed: ::std::os::raw::c_int,
9521            alt_pressed: ::std::os::raw::c_int,
9522        ) -> ::std::os::raw::c_int,
9523    >,
9524    #[doc = "\n Remove the keyboard accelerator for the specified |command_id|. Returns\n true (1) on success.\n"]
9525    pub remove_accelerator: ::std::option::Option<
9526        unsafe extern "C" fn(
9527            self_: *mut _cef_menu_model_t,
9528            command_id: ::std::os::raw::c_int,
9529        ) -> ::std::os::raw::c_int,
9530    >,
9531    #[doc = "\n Remove the keyboard accelerator at the specified |index|. Returns true (1)\n on success.\n"]
9532    pub remove_accelerator_at: ::std::option::Option<
9533        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9534    >,
9535    #[doc = "\n Retrieves the keyboard accelerator for the specified |command_id|. Returns\n true (1) on success.\n"]
9536    pub get_accelerator: ::std::option::Option<
9537        unsafe extern "C" fn(
9538            self_: *mut _cef_menu_model_t,
9539            command_id: ::std::os::raw::c_int,
9540            key_code: *mut ::std::os::raw::c_int,
9541            shift_pressed: *mut ::std::os::raw::c_int,
9542            ctrl_pressed: *mut ::std::os::raw::c_int,
9543            alt_pressed: *mut ::std::os::raw::c_int,
9544        ) -> ::std::os::raw::c_int,
9545    >,
9546    #[doc = "\n Retrieves the keyboard accelerator for the specified |index|. Returns true\n (1) on success.\n"]
9547    pub get_accelerator_at: ::std::option::Option<
9548        unsafe extern "C" fn(
9549            self_: *mut _cef_menu_model_t,
9550            index: usize,
9551            key_code: *mut ::std::os::raw::c_int,
9552            shift_pressed: *mut ::std::os::raw::c_int,
9553            ctrl_pressed: *mut ::std::os::raw::c_int,
9554            alt_pressed: *mut ::std::os::raw::c_int,
9555        ) -> ::std::os::raw::c_int,
9556    >,
9557    #[doc = "\n Set the explicit color for |command_id| and |color_type| to |color|.\n Specify a |color| value of 0 to remove the explicit color. If no explicit\n color or default color is set for |color_type| then the system color will\n be used. Returns true (1) on success.\n"]
9558    pub set_color: ::std::option::Option<
9559        unsafe extern "C" fn(
9560            self_: *mut _cef_menu_model_t,
9561            command_id: ::std::os::raw::c_int,
9562            color_type: cef_menu_color_type_t,
9563            color: cef_color_t,
9564        ) -> ::std::os::raw::c_int,
9565    >,
9566    #[doc = "\n Set the explicit color for |command_id| and |index| to |color|. Specify a\n |color| value of 0 to remove the explicit color. Specify an |index| value\n of -1 to set the default color for items that do not have an explicit\n color set. If no explicit color or default color is set for |color_type|\n then the system color will be used. Returns true (1) on success.\n"]
9567    pub set_color_at: ::std::option::Option<
9568        unsafe extern "C" fn(
9569            self_: *mut _cef_menu_model_t,
9570            index: ::std::os::raw::c_int,
9571            color_type: cef_menu_color_type_t,
9572            color: cef_color_t,
9573        ) -> ::std::os::raw::c_int,
9574    >,
9575    #[doc = "\n Returns in |color| the color that was explicitly set for |command_id| and\n |color_type|. If a color was not set then 0 will be returned in |color|.\n Returns true (1) on success.\n"]
9576    pub get_color: ::std::option::Option<
9577        unsafe extern "C" fn(
9578            self_: *mut _cef_menu_model_t,
9579            command_id: ::std::os::raw::c_int,
9580            color_type: cef_menu_color_type_t,
9581            color: *mut cef_color_t,
9582        ) -> ::std::os::raw::c_int,
9583    >,
9584    #[doc = "\n Returns in |color| the color that was explicitly set for |command_id| and\n |color_type|. Specify an |index| value of -1 to return the default color\n in |color|. If a color was not set then 0 will be returned in |color|.\n Returns true (1) on success.\n"]
9585    pub get_color_at: ::std::option::Option<
9586        unsafe extern "C" fn(
9587            self_: *mut _cef_menu_model_t,
9588            index: ::std::os::raw::c_int,
9589            color_type: cef_menu_color_type_t,
9590            color: *mut cef_color_t,
9591        ) -> ::std::os::raw::c_int,
9592    >,
9593    #[doc = "\n Sets the font list for the specified |command_id|. If |font_list| is NULL\n the system font will be used. Returns true (1) on success. The format is\n \"<FONT_FAMILY_LIST>,[STYLES] <SIZE>\", where:\n - FONT_FAMILY_LIST is a comma-separated list of font family names,\n - STYLES is an optional space-separated list of style names (case-\n   sensitive \"Bold\" and \"Italic\" are supported), and\n - SIZE is an integer font size in pixels with the suffix \"px\".\n\n Here are examples of valid font description strings:\n - \"Arial, Helvetica, Bold Italic 14px\"\n - \"Arial, 14px\"\n"]
9594    pub set_font_list: ::std::option::Option<
9595        unsafe extern "C" fn(
9596            self_: *mut _cef_menu_model_t,
9597            command_id: ::std::os::raw::c_int,
9598            font_list: *const cef_string_t,
9599        ) -> ::std::os::raw::c_int,
9600    >,
9601    #[doc = "\n Sets the font list for the specified |index|. Specify an |index| value of\n - 1 to set the default font. If |font_list| is NULL the system font will\n - FONT_FAMILY_LIST is a comma-separated list of font family names,\n - STYLES is an optional space-separated list of style names (case-\n   sensitive \"Bold\" and \"Italic\" are supported), and\n - SIZE is an integer font size in pixels with the suffix \"px\".\n\n Here are examples of valid font description strings:\n - \"Arial, Helvetica, Bold Italic 14px\"\n - \"Arial, 14px\"\n"]
9602    pub set_font_list_at: ::std::option::Option<
9603        unsafe extern "C" fn(
9604            self_: *mut _cef_menu_model_t,
9605            index: ::std::os::raw::c_int,
9606            font_list: *const cef_string_t,
9607        ) -> ::std::os::raw::c_int,
9608    >,
9609}
9610#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9611const _: () = {
9612    ["Size of _cef_menu_model_t"][::std::mem::size_of::<_cef_menu_model_t>() - 488usize];
9613    ["Alignment of _cef_menu_model_t"][::std::mem::align_of::<_cef_menu_model_t>() - 8usize];
9614    ["Offset of field: _cef_menu_model_t::base"]
9615        [::std::mem::offset_of!(_cef_menu_model_t, base) - 0usize];
9616    ["Offset of field: _cef_menu_model_t::is_sub_menu"]
9617        [::std::mem::offset_of!(_cef_menu_model_t, is_sub_menu) - 40usize];
9618    ["Offset of field: _cef_menu_model_t::clear"]
9619        [::std::mem::offset_of!(_cef_menu_model_t, clear) - 48usize];
9620    ["Offset of field: _cef_menu_model_t::get_count"]
9621        [::std::mem::offset_of!(_cef_menu_model_t, get_count) - 56usize];
9622    ["Offset of field: _cef_menu_model_t::add_separator"]
9623        [::std::mem::offset_of!(_cef_menu_model_t, add_separator) - 64usize];
9624    ["Offset of field: _cef_menu_model_t::add_item"]
9625        [::std::mem::offset_of!(_cef_menu_model_t, add_item) - 72usize];
9626    ["Offset of field: _cef_menu_model_t::add_check_item"]
9627        [::std::mem::offset_of!(_cef_menu_model_t, add_check_item) - 80usize];
9628    ["Offset of field: _cef_menu_model_t::add_radio_item"]
9629        [::std::mem::offset_of!(_cef_menu_model_t, add_radio_item) - 88usize];
9630    ["Offset of field: _cef_menu_model_t::add_sub_menu"]
9631        [::std::mem::offset_of!(_cef_menu_model_t, add_sub_menu) - 96usize];
9632    ["Offset of field: _cef_menu_model_t::insert_separator_at"]
9633        [::std::mem::offset_of!(_cef_menu_model_t, insert_separator_at) - 104usize];
9634    ["Offset of field: _cef_menu_model_t::insert_item_at"]
9635        [::std::mem::offset_of!(_cef_menu_model_t, insert_item_at) - 112usize];
9636    ["Offset of field: _cef_menu_model_t::insert_check_item_at"]
9637        [::std::mem::offset_of!(_cef_menu_model_t, insert_check_item_at) - 120usize];
9638    ["Offset of field: _cef_menu_model_t::insert_radio_item_at"]
9639        [::std::mem::offset_of!(_cef_menu_model_t, insert_radio_item_at) - 128usize];
9640    ["Offset of field: _cef_menu_model_t::insert_sub_menu_at"]
9641        [::std::mem::offset_of!(_cef_menu_model_t, insert_sub_menu_at) - 136usize];
9642    ["Offset of field: _cef_menu_model_t::remove"]
9643        [::std::mem::offset_of!(_cef_menu_model_t, remove) - 144usize];
9644    ["Offset of field: _cef_menu_model_t::remove_at"]
9645        [::std::mem::offset_of!(_cef_menu_model_t, remove_at) - 152usize];
9646    ["Offset of field: _cef_menu_model_t::get_index_of"]
9647        [::std::mem::offset_of!(_cef_menu_model_t, get_index_of) - 160usize];
9648    ["Offset of field: _cef_menu_model_t::get_command_id_at"]
9649        [::std::mem::offset_of!(_cef_menu_model_t, get_command_id_at) - 168usize];
9650    ["Offset of field: _cef_menu_model_t::set_command_id_at"]
9651        [::std::mem::offset_of!(_cef_menu_model_t, set_command_id_at) - 176usize];
9652    ["Offset of field: _cef_menu_model_t::get_label"]
9653        [::std::mem::offset_of!(_cef_menu_model_t, get_label) - 184usize];
9654    ["Offset of field: _cef_menu_model_t::get_label_at"]
9655        [::std::mem::offset_of!(_cef_menu_model_t, get_label_at) - 192usize];
9656    ["Offset of field: _cef_menu_model_t::set_label"]
9657        [::std::mem::offset_of!(_cef_menu_model_t, set_label) - 200usize];
9658    ["Offset of field: _cef_menu_model_t::set_label_at"]
9659        [::std::mem::offset_of!(_cef_menu_model_t, set_label_at) - 208usize];
9660    ["Offset of field: _cef_menu_model_t::get_type"]
9661        [::std::mem::offset_of!(_cef_menu_model_t, get_type) - 216usize];
9662    ["Offset of field: _cef_menu_model_t::get_type_at"]
9663        [::std::mem::offset_of!(_cef_menu_model_t, get_type_at) - 224usize];
9664    ["Offset of field: _cef_menu_model_t::get_group_id"]
9665        [::std::mem::offset_of!(_cef_menu_model_t, get_group_id) - 232usize];
9666    ["Offset of field: _cef_menu_model_t::get_group_id_at"]
9667        [::std::mem::offset_of!(_cef_menu_model_t, get_group_id_at) - 240usize];
9668    ["Offset of field: _cef_menu_model_t::set_group_id"]
9669        [::std::mem::offset_of!(_cef_menu_model_t, set_group_id) - 248usize];
9670    ["Offset of field: _cef_menu_model_t::set_group_id_at"]
9671        [::std::mem::offset_of!(_cef_menu_model_t, set_group_id_at) - 256usize];
9672    ["Offset of field: _cef_menu_model_t::get_sub_menu"]
9673        [::std::mem::offset_of!(_cef_menu_model_t, get_sub_menu) - 264usize];
9674    ["Offset of field: _cef_menu_model_t::get_sub_menu_at"]
9675        [::std::mem::offset_of!(_cef_menu_model_t, get_sub_menu_at) - 272usize];
9676    ["Offset of field: _cef_menu_model_t::is_visible"]
9677        [::std::mem::offset_of!(_cef_menu_model_t, is_visible) - 280usize];
9678    ["Offset of field: _cef_menu_model_t::is_visible_at"]
9679        [::std::mem::offset_of!(_cef_menu_model_t, is_visible_at) - 288usize];
9680    ["Offset of field: _cef_menu_model_t::set_visible"]
9681        [::std::mem::offset_of!(_cef_menu_model_t, set_visible) - 296usize];
9682    ["Offset of field: _cef_menu_model_t::set_visible_at"]
9683        [::std::mem::offset_of!(_cef_menu_model_t, set_visible_at) - 304usize];
9684    ["Offset of field: _cef_menu_model_t::is_enabled"]
9685        [::std::mem::offset_of!(_cef_menu_model_t, is_enabled) - 312usize];
9686    ["Offset of field: _cef_menu_model_t::is_enabled_at"]
9687        [::std::mem::offset_of!(_cef_menu_model_t, is_enabled_at) - 320usize];
9688    ["Offset of field: _cef_menu_model_t::set_enabled"]
9689        [::std::mem::offset_of!(_cef_menu_model_t, set_enabled) - 328usize];
9690    ["Offset of field: _cef_menu_model_t::set_enabled_at"]
9691        [::std::mem::offset_of!(_cef_menu_model_t, set_enabled_at) - 336usize];
9692    ["Offset of field: _cef_menu_model_t::is_checked"]
9693        [::std::mem::offset_of!(_cef_menu_model_t, is_checked) - 344usize];
9694    ["Offset of field: _cef_menu_model_t::is_checked_at"]
9695        [::std::mem::offset_of!(_cef_menu_model_t, is_checked_at) - 352usize];
9696    ["Offset of field: _cef_menu_model_t::set_checked"]
9697        [::std::mem::offset_of!(_cef_menu_model_t, set_checked) - 360usize];
9698    ["Offset of field: _cef_menu_model_t::set_checked_at"]
9699        [::std::mem::offset_of!(_cef_menu_model_t, set_checked_at) - 368usize];
9700    ["Offset of field: _cef_menu_model_t::has_accelerator"]
9701        [::std::mem::offset_of!(_cef_menu_model_t, has_accelerator) - 376usize];
9702    ["Offset of field: _cef_menu_model_t::has_accelerator_at"]
9703        [::std::mem::offset_of!(_cef_menu_model_t, has_accelerator_at) - 384usize];
9704    ["Offset of field: _cef_menu_model_t::set_accelerator"]
9705        [::std::mem::offset_of!(_cef_menu_model_t, set_accelerator) - 392usize];
9706    ["Offset of field: _cef_menu_model_t::set_accelerator_at"]
9707        [::std::mem::offset_of!(_cef_menu_model_t, set_accelerator_at) - 400usize];
9708    ["Offset of field: _cef_menu_model_t::remove_accelerator"]
9709        [::std::mem::offset_of!(_cef_menu_model_t, remove_accelerator) - 408usize];
9710    ["Offset of field: _cef_menu_model_t::remove_accelerator_at"]
9711        [::std::mem::offset_of!(_cef_menu_model_t, remove_accelerator_at) - 416usize];
9712    ["Offset of field: _cef_menu_model_t::get_accelerator"]
9713        [::std::mem::offset_of!(_cef_menu_model_t, get_accelerator) - 424usize];
9714    ["Offset of field: _cef_menu_model_t::get_accelerator_at"]
9715        [::std::mem::offset_of!(_cef_menu_model_t, get_accelerator_at) - 432usize];
9716    ["Offset of field: _cef_menu_model_t::set_color"]
9717        [::std::mem::offset_of!(_cef_menu_model_t, set_color) - 440usize];
9718    ["Offset of field: _cef_menu_model_t::set_color_at"]
9719        [::std::mem::offset_of!(_cef_menu_model_t, set_color_at) - 448usize];
9720    ["Offset of field: _cef_menu_model_t::get_color"]
9721        [::std::mem::offset_of!(_cef_menu_model_t, get_color) - 456usize];
9722    ["Offset of field: _cef_menu_model_t::get_color_at"]
9723        [::std::mem::offset_of!(_cef_menu_model_t, get_color_at) - 464usize];
9724    ["Offset of field: _cef_menu_model_t::set_font_list"]
9725        [::std::mem::offset_of!(_cef_menu_model_t, set_font_list) - 472usize];
9726    ["Offset of field: _cef_menu_model_t::set_font_list_at"]
9727        [::std::mem::offset_of!(_cef_menu_model_t, set_font_list_at) - 480usize];
9728};
9729#[doc = "\n Supports creation and modification of menus. See cef_menu_id_t for the\n command ids that have default implementations. All user-defined command ids\n should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. The functions of\n this structure can only be accessed on the browser process the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
9730pub type cef_menu_model_t = _cef_menu_model_t;
9731unsafe extern "C" {
9732    #[doc = "\n Create a new MenuModel with the specified |delegate|.\n"]
9733    pub fn cef_menu_model_create(
9734        delegate: *mut _cef_menu_model_delegate_t,
9735    ) -> *mut cef_menu_model_t;
9736}
9737#[doc = "\n Callback structure used for continuation of custom context menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9738#[repr(C)]
9739#[derive(Debug, Copy, Clone)]
9740pub struct _cef_run_context_menu_callback_t {
9741    #[doc = "\n Base structure.\n"]
9742    pub base: cef_base_ref_counted_t,
9743    #[doc = "\n Complete context menu display by selecting the specified |command_id| and\n |event_flags|.\n"]
9744    pub cont: ::std::option::Option<
9745        unsafe extern "C" fn(
9746            self_: *mut _cef_run_context_menu_callback_t,
9747            command_id: ::std::os::raw::c_int,
9748            event_flags: cef_event_flags_t,
9749        ),
9750    >,
9751    #[doc = "\n Cancel context menu display.\n"]
9752    pub cancel:
9753        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_run_context_menu_callback_t)>,
9754}
9755#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9756const _: () = {
9757    ["Size of _cef_run_context_menu_callback_t"]
9758        [::std::mem::size_of::<_cef_run_context_menu_callback_t>() - 56usize];
9759    ["Alignment of _cef_run_context_menu_callback_t"]
9760        [::std::mem::align_of::<_cef_run_context_menu_callback_t>() - 8usize];
9761    ["Offset of field: _cef_run_context_menu_callback_t::base"]
9762        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, base) - 0usize];
9763    ["Offset of field: _cef_run_context_menu_callback_t::cont"]
9764        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, cont) - 40usize];
9765    ["Offset of field: _cef_run_context_menu_callback_t::cancel"]
9766        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, cancel) - 48usize];
9767};
9768#[doc = "\n Callback structure used for continuation of custom context menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9769pub type cef_run_context_menu_callback_t = _cef_run_context_menu_callback_t;
9770#[doc = "\n Callback structure used for continuation of custom quick menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9771#[repr(C)]
9772#[derive(Debug, Copy, Clone)]
9773pub struct _cef_run_quick_menu_callback_t {
9774    #[doc = "\n Base structure.\n"]
9775    pub base: cef_base_ref_counted_t,
9776    #[doc = "\n Complete quick menu display by selecting the specified |command_id| and\n |event_flags|.\n"]
9777    pub cont: ::std::option::Option<
9778        unsafe extern "C" fn(
9779            self_: *mut _cef_run_quick_menu_callback_t,
9780            command_id: ::std::os::raw::c_int,
9781            event_flags: cef_event_flags_t,
9782        ),
9783    >,
9784    #[doc = "\n Cancel quick menu display.\n"]
9785    pub cancel:
9786        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_run_quick_menu_callback_t)>,
9787}
9788#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9789const _: () = {
9790    ["Size of _cef_run_quick_menu_callback_t"]
9791        [::std::mem::size_of::<_cef_run_quick_menu_callback_t>() - 56usize];
9792    ["Alignment of _cef_run_quick_menu_callback_t"]
9793        [::std::mem::align_of::<_cef_run_quick_menu_callback_t>() - 8usize];
9794    ["Offset of field: _cef_run_quick_menu_callback_t::base"]
9795        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, base) - 0usize];
9796    ["Offset of field: _cef_run_quick_menu_callback_t::cont"]
9797        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, cont) - 40usize];
9798    ["Offset of field: _cef_run_quick_menu_callback_t::cancel"]
9799        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, cancel) - 48usize];
9800};
9801#[doc = "\n Callback structure used for continuation of custom quick menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9802pub type cef_run_quick_menu_callback_t = _cef_run_quick_menu_callback_t;
9803#[doc = "\n Implement this structure to handle context menu events. The functions of\n this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
9804#[repr(C)]
9805#[derive(Debug, Copy, Clone)]
9806pub struct _cef_context_menu_handler_t {
9807    #[doc = "\n Base structure.\n"]
9808    pub base: cef_base_ref_counted_t,
9809    #[doc = "\n Called before a context menu is displayed. |params| provides information\n about the context menu state. |model| initially contains the default\n context menu. The |model| can be cleared to show no context menu or\n modified to show a custom menu. Do not keep references to |params| or\n |model| outside of this callback.\n"]
9810    pub on_before_context_menu: ::std::option::Option<
9811        unsafe extern "C" fn(
9812            self_: *mut _cef_context_menu_handler_t,
9813            browser: *mut _cef_browser_t,
9814            frame: *mut _cef_frame_t,
9815            params: *mut _cef_context_menu_params_t,
9816            model: *mut _cef_menu_model_t,
9817        ),
9818    >,
9819    #[doc = "\n Called to allow custom display of the context menu. |params| provides\n information about the context menu state. |model| contains the context\n menu model resulting from OnBeforeContextMenu. For custom display return\n true (1) and execute |callback| either synchronously or asynchronously\n with the selected command ID. For default display return false (0). Do not\n keep references to |params| or |model| outside of this callback.\n"]
9820    pub run_context_menu: ::std::option::Option<
9821        unsafe extern "C" fn(
9822            self_: *mut _cef_context_menu_handler_t,
9823            browser: *mut _cef_browser_t,
9824            frame: *mut _cef_frame_t,
9825            params: *mut _cef_context_menu_params_t,
9826            model: *mut _cef_menu_model_t,
9827            callback: *mut _cef_run_context_menu_callback_t,
9828        ) -> ::std::os::raw::c_int,
9829    >,
9830    #[doc = "\n Called to execute a command selected from the context menu. Return true\n (1) if the command was handled or false (0) for the default\n implementation. See cef_menu_id_t for the command ids that have default\n implementations. All user-defined command ids should be between\n MENU_ID_USER_FIRST and MENU_ID_USER_LAST. |params| will have the same\n values as what was passed to on_before_context_menu(). Do not keep a\n reference to |params| outside of this callback.\n"]
9831    pub on_context_menu_command: ::std::option::Option<
9832        unsafe extern "C" fn(
9833            self_: *mut _cef_context_menu_handler_t,
9834            browser: *mut _cef_browser_t,
9835            frame: *mut _cef_frame_t,
9836            params: *mut _cef_context_menu_params_t,
9837            command_id: ::std::os::raw::c_int,
9838            event_flags: cef_event_flags_t,
9839        ) -> ::std::os::raw::c_int,
9840    >,
9841    #[doc = "\n Called when the context menu is dismissed irregardless of whether the menu\n was canceled or a command was selected.\n"]
9842    pub on_context_menu_dismissed: ::std::option::Option<
9843        unsafe extern "C" fn(
9844            self_: *mut _cef_context_menu_handler_t,
9845            browser: *mut _cef_browser_t,
9846            frame: *mut _cef_frame_t,
9847        ),
9848    >,
9849    #[doc = "\n Called to allow custom display of the quick menu for a windowless browser.\n |location| is the top left corner of the selected region. |size| is the\n size of the selected region. |edit_state_flags| is a combination of flags\n that represent the state of the quick menu. Return true (1) if the menu\n will be handled and execute |callback| either synchronously or\n asynchronously with the selected command ID. Return false (0) to cancel\n the menu.\n"]
9850    pub run_quick_menu: ::std::option::Option<
9851        unsafe extern "C" fn(
9852            self_: *mut _cef_context_menu_handler_t,
9853            browser: *mut _cef_browser_t,
9854            frame: *mut _cef_frame_t,
9855            location: *const cef_point_t,
9856            size: *const cef_size_t,
9857            edit_state_flags: cef_quick_menu_edit_state_flags_t,
9858            callback: *mut _cef_run_quick_menu_callback_t,
9859        ) -> ::std::os::raw::c_int,
9860    >,
9861    #[doc = "\n Called to execute a command selected from the quick menu for a windowless\n browser. Return true (1) if the command was handled or false (0) for the\n default implementation. See cef_menu_id_t for command IDs that have\n default implementations.\n"]
9862    pub on_quick_menu_command: ::std::option::Option<
9863        unsafe extern "C" fn(
9864            self_: *mut _cef_context_menu_handler_t,
9865            browser: *mut _cef_browser_t,
9866            frame: *mut _cef_frame_t,
9867            command_id: ::std::os::raw::c_int,
9868            event_flags: cef_event_flags_t,
9869        ) -> ::std::os::raw::c_int,
9870    >,
9871    #[doc = "\n Called when the quick menu for a windowless browser is dismissed\n irregardless of whether the menu was canceled or a command was selected.\n"]
9872    pub on_quick_menu_dismissed: ::std::option::Option<
9873        unsafe extern "C" fn(
9874            self_: *mut _cef_context_menu_handler_t,
9875            browser: *mut _cef_browser_t,
9876            frame: *mut _cef_frame_t,
9877        ),
9878    >,
9879}
9880#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9881const _: () = {
9882    ["Size of _cef_context_menu_handler_t"]
9883        [::std::mem::size_of::<_cef_context_menu_handler_t>() - 96usize];
9884    ["Alignment of _cef_context_menu_handler_t"]
9885        [::std::mem::align_of::<_cef_context_menu_handler_t>() - 8usize];
9886    ["Offset of field: _cef_context_menu_handler_t::base"]
9887        [::std::mem::offset_of!(_cef_context_menu_handler_t, base) - 0usize];
9888    ["Offset of field: _cef_context_menu_handler_t::on_before_context_menu"]
9889        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_before_context_menu) - 40usize];
9890    ["Offset of field: _cef_context_menu_handler_t::run_context_menu"]
9891        [::std::mem::offset_of!(_cef_context_menu_handler_t, run_context_menu) - 48usize];
9892    ["Offset of field: _cef_context_menu_handler_t::on_context_menu_command"]
9893        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_context_menu_command) - 56usize];
9894    ["Offset of field: _cef_context_menu_handler_t::on_context_menu_dismissed"]
9895        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_context_menu_dismissed) - 64usize];
9896    ["Offset of field: _cef_context_menu_handler_t::run_quick_menu"]
9897        [::std::mem::offset_of!(_cef_context_menu_handler_t, run_quick_menu) - 72usize];
9898    ["Offset of field: _cef_context_menu_handler_t::on_quick_menu_command"]
9899        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_quick_menu_command) - 80usize];
9900    ["Offset of field: _cef_context_menu_handler_t::on_quick_menu_dismissed"]
9901        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_quick_menu_dismissed) - 88usize];
9902};
9903#[doc = "\n Implement this structure to handle context menu events. The functions of\n this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
9904pub type cef_context_menu_handler_t = _cef_context_menu_handler_t;
9905#[doc = "\n Provides information about the context menu state. The functions of this\n structure can only be accessed on browser process the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
9906#[repr(C)]
9907#[derive(Debug, Copy, Clone)]
9908pub struct _cef_context_menu_params_t {
9909    #[doc = "\n Base structure.\n"]
9910    pub base: cef_base_ref_counted_t,
9911    #[doc = "\n Returns the X coordinate of the mouse where the context menu was invoked.\n Coords are relative to the associated RenderView's origin.\n"]
9912    pub get_xcoord: ::std::option::Option<
9913        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9914    >,
9915    #[doc = "\n Returns the Y coordinate of the mouse where the context menu was invoked.\n Coords are relative to the associated RenderView's origin.\n"]
9916    pub get_ycoord: ::std::option::Option<
9917        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9918    >,
9919    #[doc = "\n Returns flags representing the type of node that the context menu was\n invoked on.\n"]
9920    pub get_type_flags: ::std::option::Option<
9921        unsafe extern "C" fn(
9922            self_: *mut _cef_context_menu_params_t,
9923        ) -> cef_context_menu_type_flags_t,
9924    >,
9925    #[doc = "\n Returns the URL of the link, if any, that encloses the node that the\n context menu was invoked on.\n"]
9926    pub get_link_url: ::std::option::Option<
9927        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9928    >,
9929    #[doc = "\n Returns the link URL, if any, to be used ONLY for \"copy link address\". We\n don't validate this field in the frontend process.\n"]
9930    pub get_unfiltered_link_url: ::std::option::Option<
9931        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9932    >,
9933    #[doc = "\n Returns the source URL, if any, for the element that the context menu was\n invoked on. Example of elements with source URLs are img, audio, and\n video.\n"]
9934    pub get_source_url: ::std::option::Option<
9935        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9936    >,
9937    #[doc = "\n Returns true (1) if the context menu was invoked on an image which has\n non-NULL contents.\n"]
9938    pub has_image_contents: ::std::option::Option<
9939        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9940    >,
9941    #[doc = "\n Returns the title text or the alt text if the context menu was invoked on\n an image.\n"]
9942    pub get_title_text: ::std::option::Option<
9943        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9944    >,
9945    #[doc = "\n Returns the URL of the top level page that the context menu was invoked\n on.\n"]
9946    pub get_page_url: ::std::option::Option<
9947        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9948    >,
9949    #[doc = "\n Returns the URL of the subframe that the context menu was invoked on.\n"]
9950    pub get_frame_url: ::std::option::Option<
9951        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9952    >,
9953    #[doc = "\n Returns the character encoding of the subframe that the context menu was\n invoked on.\n"]
9954    pub get_frame_charset: ::std::option::Option<
9955        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9956    >,
9957    #[doc = "\n Returns the type of context node that the context menu was invoked on.\n"]
9958    pub get_media_type: ::std::option::Option<
9959        unsafe extern "C" fn(
9960            self_: *mut _cef_context_menu_params_t,
9961        ) -> cef_context_menu_media_type_t,
9962    >,
9963    #[doc = "\n Returns flags representing the actions supported by the media element, if\n any, that the context menu was invoked on.\n"]
9964    pub get_media_state_flags: ::std::option::Option<
9965        unsafe extern "C" fn(
9966            self_: *mut _cef_context_menu_params_t,
9967        ) -> cef_context_menu_media_state_flags_t,
9968    >,
9969    #[doc = "\n Returns the text of the selection, if any, that the context menu was\n invoked on.\n"]
9970    pub get_selection_text: ::std::option::Option<
9971        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9972    >,
9973    #[doc = "\n Returns the text of the misspelled word, if any, that the context menu was\n invoked on.\n"]
9974    pub get_misspelled_word: ::std::option::Option<
9975        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9976    >,
9977    #[doc = "\n Returns true (1) if suggestions exist, false (0) otherwise. Fills in\n |suggestions| from the spell check service for the misspelled word if\n there is one.\n"]
9978    pub get_dictionary_suggestions: ::std::option::Option<
9979        unsafe extern "C" fn(
9980            self_: *mut _cef_context_menu_params_t,
9981            suggestions: cef_string_list_t,
9982        ) -> ::std::os::raw::c_int,
9983    >,
9984    #[doc = "\n Returns true (1) if the context menu was invoked on an editable node.\n"]
9985    pub is_editable: ::std::option::Option<
9986        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9987    >,
9988    #[doc = "\n Returns true (1) if the context menu was invoked on an editable node where\n spell-check is enabled.\n"]
9989    pub is_spell_check_enabled: ::std::option::Option<
9990        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9991    >,
9992    #[doc = "\n Returns flags representing the actions supported by the editable node, if\n any, that the context menu was invoked on.\n"]
9993    pub get_edit_state_flags: ::std::option::Option<
9994        unsafe extern "C" fn(
9995            self_: *mut _cef_context_menu_params_t,
9996        ) -> cef_context_menu_edit_state_flags_t,
9997    >,
9998    #[doc = "\n Returns true (1) if the context menu contains items specified by the\n renderer process.\n"]
9999    pub is_custom_menu: ::std::option::Option<
10000        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
10001    >,
10002}
10003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10004const _: () = {
10005    ["Size of _cef_context_menu_params_t"]
10006        [::std::mem::size_of::<_cef_context_menu_params_t>() - 200usize];
10007    ["Alignment of _cef_context_menu_params_t"]
10008        [::std::mem::align_of::<_cef_context_menu_params_t>() - 8usize];
10009    ["Offset of field: _cef_context_menu_params_t::base"]
10010        [::std::mem::offset_of!(_cef_context_menu_params_t, base) - 0usize];
10011    ["Offset of field: _cef_context_menu_params_t::get_xcoord"]
10012        [::std::mem::offset_of!(_cef_context_menu_params_t, get_xcoord) - 40usize];
10013    ["Offset of field: _cef_context_menu_params_t::get_ycoord"]
10014        [::std::mem::offset_of!(_cef_context_menu_params_t, get_ycoord) - 48usize];
10015    ["Offset of field: _cef_context_menu_params_t::get_type_flags"]
10016        [::std::mem::offset_of!(_cef_context_menu_params_t, get_type_flags) - 56usize];
10017    ["Offset of field: _cef_context_menu_params_t::get_link_url"]
10018        [::std::mem::offset_of!(_cef_context_menu_params_t, get_link_url) - 64usize];
10019    ["Offset of field: _cef_context_menu_params_t::get_unfiltered_link_url"]
10020        [::std::mem::offset_of!(_cef_context_menu_params_t, get_unfiltered_link_url) - 72usize];
10021    ["Offset of field: _cef_context_menu_params_t::get_source_url"]
10022        [::std::mem::offset_of!(_cef_context_menu_params_t, get_source_url) - 80usize];
10023    ["Offset of field: _cef_context_menu_params_t::has_image_contents"]
10024        [::std::mem::offset_of!(_cef_context_menu_params_t, has_image_contents) - 88usize];
10025    ["Offset of field: _cef_context_menu_params_t::get_title_text"]
10026        [::std::mem::offset_of!(_cef_context_menu_params_t, get_title_text) - 96usize];
10027    ["Offset of field: _cef_context_menu_params_t::get_page_url"]
10028        [::std::mem::offset_of!(_cef_context_menu_params_t, get_page_url) - 104usize];
10029    ["Offset of field: _cef_context_menu_params_t::get_frame_url"]
10030        [::std::mem::offset_of!(_cef_context_menu_params_t, get_frame_url) - 112usize];
10031    ["Offset of field: _cef_context_menu_params_t::get_frame_charset"]
10032        [::std::mem::offset_of!(_cef_context_menu_params_t, get_frame_charset) - 120usize];
10033    ["Offset of field: _cef_context_menu_params_t::get_media_type"]
10034        [::std::mem::offset_of!(_cef_context_menu_params_t, get_media_type) - 128usize];
10035    ["Offset of field: _cef_context_menu_params_t::get_media_state_flags"]
10036        [::std::mem::offset_of!(_cef_context_menu_params_t, get_media_state_flags) - 136usize];
10037    ["Offset of field: _cef_context_menu_params_t::get_selection_text"]
10038        [::std::mem::offset_of!(_cef_context_menu_params_t, get_selection_text) - 144usize];
10039    ["Offset of field: _cef_context_menu_params_t::get_misspelled_word"]
10040        [::std::mem::offset_of!(_cef_context_menu_params_t, get_misspelled_word) - 152usize];
10041    ["Offset of field: _cef_context_menu_params_t::get_dictionary_suggestions"]
10042        [::std::mem::offset_of!(_cef_context_menu_params_t, get_dictionary_suggestions) - 160usize];
10043    ["Offset of field: _cef_context_menu_params_t::is_editable"]
10044        [::std::mem::offset_of!(_cef_context_menu_params_t, is_editable) - 168usize];
10045    ["Offset of field: _cef_context_menu_params_t::is_spell_check_enabled"]
10046        [::std::mem::offset_of!(_cef_context_menu_params_t, is_spell_check_enabled) - 176usize];
10047    ["Offset of field: _cef_context_menu_params_t::get_edit_state_flags"]
10048        [::std::mem::offset_of!(_cef_context_menu_params_t, get_edit_state_flags) - 184usize];
10049    ["Offset of field: _cef_context_menu_params_t::is_custom_menu"]
10050        [::std::mem::offset_of!(_cef_context_menu_params_t, is_custom_menu) - 192usize];
10051};
10052#[doc = "\n Provides information about the context menu state. The functions of this\n structure can only be accessed on browser process the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
10053pub type cef_context_menu_params_t = _cef_context_menu_params_t;
10054#[doc = "\n Callback structure for asynchronous continuation of file dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10055#[repr(C)]
10056#[derive(Debug, Copy, Clone)]
10057pub struct _cef_file_dialog_callback_t {
10058    #[doc = "\n Base structure.\n"]
10059    pub base: cef_base_ref_counted_t,
10060    #[doc = "\n Continue the file selection. |file_paths| should be a single value or a\n list of values depending on the dialog mode. An NULL |file_paths| value is\n treated the same as calling cancel().\n"]
10061    pub cont: ::std::option::Option<
10062        unsafe extern "C" fn(
10063            self_: *mut _cef_file_dialog_callback_t,
10064            file_paths: cef_string_list_t,
10065        ),
10066    >,
10067    #[doc = "\n Cancel the file selection.\n"]
10068    pub cancel:
10069        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_file_dialog_callback_t)>,
10070}
10071#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10072const _: () = {
10073    ["Size of _cef_file_dialog_callback_t"]
10074        [::std::mem::size_of::<_cef_file_dialog_callback_t>() - 56usize];
10075    ["Alignment of _cef_file_dialog_callback_t"]
10076        [::std::mem::align_of::<_cef_file_dialog_callback_t>() - 8usize];
10077    ["Offset of field: _cef_file_dialog_callback_t::base"]
10078        [::std::mem::offset_of!(_cef_file_dialog_callback_t, base) - 0usize];
10079    ["Offset of field: _cef_file_dialog_callback_t::cont"]
10080        [::std::mem::offset_of!(_cef_file_dialog_callback_t, cont) - 40usize];
10081    ["Offset of field: _cef_file_dialog_callback_t::cancel"]
10082        [::std::mem::offset_of!(_cef_file_dialog_callback_t, cancel) - 48usize];
10083};
10084#[doc = "\n Callback structure for asynchronous continuation of file dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10085pub type cef_file_dialog_callback_t = _cef_file_dialog_callback_t;
10086#[doc = "\n Implement this structure to handle dialog events. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10087#[repr(C)]
10088#[derive(Debug, Copy, Clone)]
10089pub struct _cef_dialog_handler_t {
10090    #[doc = "\n Base structure.\n"]
10091    pub base: cef_base_ref_counted_t,
10092    #[doc = "\n Called to run a file chooser dialog. |mode| represents the type of dialog\n to display. |title| to the title to be used for the dialog and may be NULL\n to show the default title (\"Open\" or \"Save\" depending on the mode).\n |default_file_path| is the path with optional directory and/or file name\n component that should be initially selected in the dialog.\n |accept_filters| are used to restrict the selectable file types and may be\n any combination of valid lower-cased MIME types (e.g. \"text/*\" or\n \"image/*\") and individual file extensions (e.g. \".txt\" or \".png\").\n |accept_extensions| provides the semicolon-delimited expansion of MIME\n types to file extensions (if known, or NULL string otherwise).\n |accept_descriptions| provides the descriptions for MIME types (if known,\n or NULL string otherwise). For example, the \"image/*\" mime type might have\n extensions \".png;.jpg;.bmp;...\" and description \"Image Files\".\n |accept_filters|, |accept_extensions| and |accept_descriptions| will all\n be the same size. To display a custom dialog return true (1) and execute\n |callback| either inline or at a later time. To display the default dialog\n return false (0). If this function returns false (0) it may be called an\n additional time for the same dialog (both before and after MIME type\n expansion).\n"]
10093    pub on_file_dialog: ::std::option::Option<
10094        unsafe extern "C" fn(
10095            self_: *mut _cef_dialog_handler_t,
10096            browser: *mut _cef_browser_t,
10097            mode: cef_file_dialog_mode_t,
10098            title: *const cef_string_t,
10099            default_file_path: *const cef_string_t,
10100            accept_filters: cef_string_list_t,
10101            accept_extensions: cef_string_list_t,
10102            accept_descriptions: cef_string_list_t,
10103            callback: *mut _cef_file_dialog_callback_t,
10104        ) -> ::std::os::raw::c_int,
10105    >,
10106}
10107#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10108const _: () = {
10109    ["Size of _cef_dialog_handler_t"][::std::mem::size_of::<_cef_dialog_handler_t>() - 48usize];
10110    ["Alignment of _cef_dialog_handler_t"]
10111        [::std::mem::align_of::<_cef_dialog_handler_t>() - 8usize];
10112    ["Offset of field: _cef_dialog_handler_t::base"]
10113        [::std::mem::offset_of!(_cef_dialog_handler_t, base) - 0usize];
10114    ["Offset of field: _cef_dialog_handler_t::on_file_dialog"]
10115        [::std::mem::offset_of!(_cef_dialog_handler_t, on_file_dialog) - 40usize];
10116};
10117#[doc = "\n Implement this structure to handle dialog events. The functions of this\n structure will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10118pub type cef_dialog_handler_t = _cef_dialog_handler_t;
10119#[doc = "\n Implement this structure to handle events related to browser display state.\n The functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10120#[repr(C)]
10121#[derive(Debug, Copy, Clone)]
10122pub struct _cef_display_handler_t {
10123    #[doc = "\n Base structure.\n"]
10124    pub base: cef_base_ref_counted_t,
10125    #[doc = "\n Called when a frame's address has changed.\n"]
10126    pub on_address_change: ::std::option::Option<
10127        unsafe extern "C" fn(
10128            self_: *mut _cef_display_handler_t,
10129            browser: *mut _cef_browser_t,
10130            frame: *mut _cef_frame_t,
10131            url: *const cef_string_t,
10132        ),
10133    >,
10134    #[doc = "\n Called when the page title changes.\n"]
10135    pub on_title_change: ::std::option::Option<
10136        unsafe extern "C" fn(
10137            self_: *mut _cef_display_handler_t,
10138            browser: *mut _cef_browser_t,
10139            title: *const cef_string_t,
10140        ),
10141    >,
10142    #[doc = "\n Called when the page icon changes.\n"]
10143    pub on_favicon_urlchange: ::std::option::Option<
10144        unsafe extern "C" fn(
10145            self_: *mut _cef_display_handler_t,
10146            browser: *mut _cef_browser_t,
10147            icon_urls: cef_string_list_t,
10148        ),
10149    >,
10150    #[doc = "\n Called when web content in the page has toggled fullscreen mode. If\n |fullscreen| is true (1) the content will automatically be sized to fill\n the browser content area. If |fullscreen| is false (0) the content will\n automatically return to its original size and position. With Alloy style\n the client is responsible for triggering the fullscreen transition (for\n example, by calling cef_window_t::SetFullscreen when using Views). With\n Chrome style the fullscreen transition will be triggered automatically.\n The cef_window_delegate_t::OnWindowFullscreenTransition function will be\n called during the fullscreen transition for notification purposes.\n"]
10151    pub on_fullscreen_mode_change: ::std::option::Option<
10152        unsafe extern "C" fn(
10153            self_: *mut _cef_display_handler_t,
10154            browser: *mut _cef_browser_t,
10155            fullscreen: ::std::os::raw::c_int,
10156        ),
10157    >,
10158    #[doc = "\n Called when the browser is about to display a tooltip. |text| contains the\n text that will be displayed in the tooltip. To handle the display of the\n tooltip yourself return true (1). Otherwise, you can optionally modify\n |text| and then return false (0) to allow the browser to display the\n tooltip. When window rendering is disabled the application is responsible\n for drawing tooltips and the return value is ignored.\n"]
10159    pub on_tooltip: ::std::option::Option<
10160        unsafe extern "C" fn(
10161            self_: *mut _cef_display_handler_t,
10162            browser: *mut _cef_browser_t,
10163            text: *mut cef_string_t,
10164        ) -> ::std::os::raw::c_int,
10165    >,
10166    #[doc = "\n Called when the browser receives a status message. |value| contains the\n text that will be displayed in the status message.\n"]
10167    pub on_status_message: ::std::option::Option<
10168        unsafe extern "C" fn(
10169            self_: *mut _cef_display_handler_t,
10170            browser: *mut _cef_browser_t,
10171            value: *const cef_string_t,
10172        ),
10173    >,
10174    #[doc = "\n Called to display a console message. Return true (1) to stop the message\n from being output to the console.\n"]
10175    pub on_console_message: ::std::option::Option<
10176        unsafe extern "C" fn(
10177            self_: *mut _cef_display_handler_t,
10178            browser: *mut _cef_browser_t,
10179            level: cef_log_severity_t,
10180            message: *const cef_string_t,
10181            source: *const cef_string_t,
10182            line: ::std::os::raw::c_int,
10183        ) -> ::std::os::raw::c_int,
10184    >,
10185    #[doc = "\n Called when auto-resize is enabled via\n cef_browser_host_t::SetAutoResizeEnabled and the contents have auto-\n resized. |new_size| will be the desired size in DIP coordinates. Return\n true (1) if the resize was handled or false (0) for default handling.\n"]
10186    pub on_auto_resize: ::std::option::Option<
10187        unsafe extern "C" fn(
10188            self_: *mut _cef_display_handler_t,
10189            browser: *mut _cef_browser_t,
10190            new_size: *const cef_size_t,
10191        ) -> ::std::os::raw::c_int,
10192    >,
10193    #[doc = "\n Called when the overall page loading progress has changed. |progress|\n ranges from 0.0 to 1.0.\n"]
10194    pub on_loading_progress_change: ::std::option::Option<
10195        unsafe extern "C" fn(
10196            self_: *mut _cef_display_handler_t,
10197            browser: *mut _cef_browser_t,
10198            progress: f64,
10199        ),
10200    >,
10201    #[doc = "\n Called when the browser's cursor has changed. If |type| is CT_CUSTOM then\n |custom_cursor_info| will be populated with the custom cursor information.\n Return true (1) if the cursor change was handled or false (0) for default\n handling.\n"]
10202    pub on_cursor_change: ::std::option::Option<
10203        unsafe extern "C" fn(
10204            self_: *mut _cef_display_handler_t,
10205            browser: *mut _cef_browser_t,
10206            cursor: cef_cursor_handle_t,
10207            type_: cef_cursor_type_t,
10208            custom_cursor_info: *const cef_cursor_info_t,
10209        ) -> ::std::os::raw::c_int,
10210    >,
10211    #[doc = "\n Called when the browser's access to an audio and/or video source has\n changed.\n"]
10212    pub on_media_access_change: ::std::option::Option<
10213        unsafe extern "C" fn(
10214            self_: *mut _cef_display_handler_t,
10215            browser: *mut _cef_browser_t,
10216            has_video_access: ::std::os::raw::c_int,
10217            has_audio_access: ::std::os::raw::c_int,
10218        ),
10219    >,
10220    #[doc = "\n Called when JavaScript is requesting new bounds via window.moveTo/By() or\n window.resizeTo/By(). |new_bounds| are in DIP screen coordinates.\n\n With Views-hosted browsers |new_bounds| are the desired bounds for the\n containing cef_window_t and may be passed directly to\n cef_window_t::SetBounds. With external (client-provided) parent on macOS\n and Windows |new_bounds| are the desired frame bounds for the containing\n root window. With other non-Views browsers |new_bounds| are the desired\n bounds for the browser content only unless the client implements either\n cef_display_handler_t::GetRootWindowScreenRect for windowed browsers or\n cef_render_handler_t::GetWindowScreenRect for windowless browsers. Clients\n may expand browser content bounds to window bounds using OS-specific or\n cef_display_t functions.\n\n Return true (1) if this function was handled or false (0) for default\n handling. Default move/resize behavior is only provided with Views-hosted\n Chrome style browsers.\n"]
10221    pub on_contents_bounds_change: ::std::option::Option<
10222        unsafe extern "C" fn(
10223            self_: *mut _cef_display_handler_t,
10224            browser: *mut _cef_browser_t,
10225            new_bounds: *const cef_rect_t,
10226        ) -> ::std::os::raw::c_int,
10227    >,
10228    #[doc = "\n Called to retrieve the external (client-provided) root window rectangle in\n screen DIP coordinates. Only called for windowed browsers on Windows and\n Linux. Return true (1) if the rectangle was provided. Return false (0) to\n use the root window bounds on Windows or the browser content bounds on\n Linux. For additional usage details see\n cef_browser_host_t::NotifyScreenInfoChanged.\n"]
10229    pub get_root_window_screen_rect: ::std::option::Option<
10230        unsafe extern "C" fn(
10231            self_: *mut _cef_display_handler_t,
10232            browser: *mut _cef_browser_t,
10233            rect: *mut cef_rect_t,
10234        ) -> ::std::os::raw::c_int,
10235    >,
10236}
10237#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10238const _: () = {
10239    ["Size of _cef_display_handler_t"][::std::mem::size_of::<_cef_display_handler_t>() - 144usize];
10240    ["Alignment of _cef_display_handler_t"]
10241        [::std::mem::align_of::<_cef_display_handler_t>() - 8usize];
10242    ["Offset of field: _cef_display_handler_t::base"]
10243        [::std::mem::offset_of!(_cef_display_handler_t, base) - 0usize];
10244    ["Offset of field: _cef_display_handler_t::on_address_change"]
10245        [::std::mem::offset_of!(_cef_display_handler_t, on_address_change) - 40usize];
10246    ["Offset of field: _cef_display_handler_t::on_title_change"]
10247        [::std::mem::offset_of!(_cef_display_handler_t, on_title_change) - 48usize];
10248    ["Offset of field: _cef_display_handler_t::on_favicon_urlchange"]
10249        [::std::mem::offset_of!(_cef_display_handler_t, on_favicon_urlchange) - 56usize];
10250    ["Offset of field: _cef_display_handler_t::on_fullscreen_mode_change"]
10251        [::std::mem::offset_of!(_cef_display_handler_t, on_fullscreen_mode_change) - 64usize];
10252    ["Offset of field: _cef_display_handler_t::on_tooltip"]
10253        [::std::mem::offset_of!(_cef_display_handler_t, on_tooltip) - 72usize];
10254    ["Offset of field: _cef_display_handler_t::on_status_message"]
10255        [::std::mem::offset_of!(_cef_display_handler_t, on_status_message) - 80usize];
10256    ["Offset of field: _cef_display_handler_t::on_console_message"]
10257        [::std::mem::offset_of!(_cef_display_handler_t, on_console_message) - 88usize];
10258    ["Offset of field: _cef_display_handler_t::on_auto_resize"]
10259        [::std::mem::offset_of!(_cef_display_handler_t, on_auto_resize) - 96usize];
10260    ["Offset of field: _cef_display_handler_t::on_loading_progress_change"]
10261        [::std::mem::offset_of!(_cef_display_handler_t, on_loading_progress_change) - 104usize];
10262    ["Offset of field: _cef_display_handler_t::on_cursor_change"]
10263        [::std::mem::offset_of!(_cef_display_handler_t, on_cursor_change) - 112usize];
10264    ["Offset of field: _cef_display_handler_t::on_media_access_change"]
10265        [::std::mem::offset_of!(_cef_display_handler_t, on_media_access_change) - 120usize];
10266    ["Offset of field: _cef_display_handler_t::on_contents_bounds_change"]
10267        [::std::mem::offset_of!(_cef_display_handler_t, on_contents_bounds_change) - 128usize];
10268    ["Offset of field: _cef_display_handler_t::get_root_window_screen_rect"]
10269        [::std::mem::offset_of!(_cef_display_handler_t, get_root_window_screen_rect) - 136usize];
10270};
10271#[doc = "\n Implement this structure to handle events related to browser display state.\n The functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10272pub type cef_display_handler_t = _cef_display_handler_t;
10273#[doc = "\n Structure used to represent a download item.\n\n NOTE: This struct is allocated DLL-side.\n"]
10274#[repr(C)]
10275#[derive(Debug, Copy, Clone)]
10276pub struct _cef_download_item_t {
10277    #[doc = "\n Base structure.\n"]
10278    pub base: cef_base_ref_counted_t,
10279    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
10280    pub is_valid: ::std::option::Option<
10281        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10282    >,
10283    #[doc = "\n Returns true (1) if the download is in progress.\n"]
10284    pub is_in_progress: ::std::option::Option<
10285        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10286    >,
10287    #[doc = "\n Returns true (1) if the download is complete.\n"]
10288    pub is_complete: ::std::option::Option<
10289        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10290    >,
10291    #[doc = "\n Returns true (1) if the download has been canceled.\n"]
10292    pub is_canceled: ::std::option::Option<
10293        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10294    >,
10295    #[doc = "\n Returns true (1) if the download has been interrupted.\n"]
10296    pub is_interrupted: ::std::option::Option<
10297        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10298    >,
10299    #[doc = "\n Returns the most recent interrupt reason.\n"]
10300    pub get_interrupt_reason: ::std::option::Option<
10301        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_download_interrupt_reason_t,
10302    >,
10303    #[doc = "\n Returns a simple speed estimate in bytes/s.\n"]
10304    pub get_current_speed:
10305        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
10306    #[doc = "\n Returns the rough percent complete or -1 if the receive total size is\n unknown.\n"]
10307    pub get_percent_complete: ::std::option::Option<
10308        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10309    >,
10310    #[doc = "\n Returns the total number of bytes.\n"]
10311    pub get_total_bytes:
10312        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
10313    #[doc = "\n Returns the number of received bytes.\n"]
10314    pub get_received_bytes:
10315        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
10316    #[doc = "\n Returns the time that the download started.\n"]
10317    pub get_start_time: ::std::option::Option<
10318        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_basetime_t,
10319    >,
10320    #[doc = "\n Returns the time that the download ended.\n"]
10321    pub get_end_time: ::std::option::Option<
10322        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_basetime_t,
10323    >,
10324    #[doc = "\n Returns the full path to the downloaded or downloading file.\n"]
10325    pub get_full_path: ::std::option::Option<
10326        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10327    >,
10328    #[doc = "\n Returns the unique identifier for this download.\n"]
10329    pub get_id:
10330        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> u32>,
10331    #[doc = "\n Returns the URL.\n"]
10332    pub get_url: ::std::option::Option<
10333        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10334    >,
10335    #[doc = "\n Returns the original URL before any redirections.\n"]
10336    pub get_original_url: ::std::option::Option<
10337        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10338    >,
10339    #[doc = "\n Returns the suggested file name.\n"]
10340    pub get_suggested_file_name: ::std::option::Option<
10341        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10342    >,
10343    #[doc = "\n Returns the content disposition.\n"]
10344    pub get_content_disposition: ::std::option::Option<
10345        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10346    >,
10347    #[doc = "\n Returns the mime type.\n"]
10348    pub get_mime_type: ::std::option::Option<
10349        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
10350    >,
10351    #[doc = "\n Returns true (1) if the download has been paused.\n"]
10352    pub is_paused: ::std::option::Option<
10353        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
10354    >,
10355}
10356#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10357const _: () = {
10358    ["Size of _cef_download_item_t"][::std::mem::size_of::<_cef_download_item_t>() - 200usize];
10359    ["Alignment of _cef_download_item_t"][::std::mem::align_of::<_cef_download_item_t>() - 8usize];
10360    ["Offset of field: _cef_download_item_t::base"]
10361        [::std::mem::offset_of!(_cef_download_item_t, base) - 0usize];
10362    ["Offset of field: _cef_download_item_t::is_valid"]
10363        [::std::mem::offset_of!(_cef_download_item_t, is_valid) - 40usize];
10364    ["Offset of field: _cef_download_item_t::is_in_progress"]
10365        [::std::mem::offset_of!(_cef_download_item_t, is_in_progress) - 48usize];
10366    ["Offset of field: _cef_download_item_t::is_complete"]
10367        [::std::mem::offset_of!(_cef_download_item_t, is_complete) - 56usize];
10368    ["Offset of field: _cef_download_item_t::is_canceled"]
10369        [::std::mem::offset_of!(_cef_download_item_t, is_canceled) - 64usize];
10370    ["Offset of field: _cef_download_item_t::is_interrupted"]
10371        [::std::mem::offset_of!(_cef_download_item_t, is_interrupted) - 72usize];
10372    ["Offset of field: _cef_download_item_t::get_interrupt_reason"]
10373        [::std::mem::offset_of!(_cef_download_item_t, get_interrupt_reason) - 80usize];
10374    ["Offset of field: _cef_download_item_t::get_current_speed"]
10375        [::std::mem::offset_of!(_cef_download_item_t, get_current_speed) - 88usize];
10376    ["Offset of field: _cef_download_item_t::get_percent_complete"]
10377        [::std::mem::offset_of!(_cef_download_item_t, get_percent_complete) - 96usize];
10378    ["Offset of field: _cef_download_item_t::get_total_bytes"]
10379        [::std::mem::offset_of!(_cef_download_item_t, get_total_bytes) - 104usize];
10380    ["Offset of field: _cef_download_item_t::get_received_bytes"]
10381        [::std::mem::offset_of!(_cef_download_item_t, get_received_bytes) - 112usize];
10382    ["Offset of field: _cef_download_item_t::get_start_time"]
10383        [::std::mem::offset_of!(_cef_download_item_t, get_start_time) - 120usize];
10384    ["Offset of field: _cef_download_item_t::get_end_time"]
10385        [::std::mem::offset_of!(_cef_download_item_t, get_end_time) - 128usize];
10386    ["Offset of field: _cef_download_item_t::get_full_path"]
10387        [::std::mem::offset_of!(_cef_download_item_t, get_full_path) - 136usize];
10388    ["Offset of field: _cef_download_item_t::get_id"]
10389        [::std::mem::offset_of!(_cef_download_item_t, get_id) - 144usize];
10390    ["Offset of field: _cef_download_item_t::get_url"]
10391        [::std::mem::offset_of!(_cef_download_item_t, get_url) - 152usize];
10392    ["Offset of field: _cef_download_item_t::get_original_url"]
10393        [::std::mem::offset_of!(_cef_download_item_t, get_original_url) - 160usize];
10394    ["Offset of field: _cef_download_item_t::get_suggested_file_name"]
10395        [::std::mem::offset_of!(_cef_download_item_t, get_suggested_file_name) - 168usize];
10396    ["Offset of field: _cef_download_item_t::get_content_disposition"]
10397        [::std::mem::offset_of!(_cef_download_item_t, get_content_disposition) - 176usize];
10398    ["Offset of field: _cef_download_item_t::get_mime_type"]
10399        [::std::mem::offset_of!(_cef_download_item_t, get_mime_type) - 184usize];
10400    ["Offset of field: _cef_download_item_t::is_paused"]
10401        [::std::mem::offset_of!(_cef_download_item_t, is_paused) - 192usize];
10402};
10403#[doc = "\n Structure used to represent a download item.\n\n NOTE: This struct is allocated DLL-side.\n"]
10404pub type cef_download_item_t = _cef_download_item_t;
10405#[doc = "\n Callback structure used to asynchronously continue a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10406#[repr(C)]
10407#[derive(Debug, Copy, Clone)]
10408pub struct _cef_before_download_callback_t {
10409    #[doc = "\n Base structure.\n"]
10410    pub base: cef_base_ref_counted_t,
10411    #[doc = "\n Call to continue the download. Set |download_path| to the full file path\n for the download including the file name or leave blank to use the\n suggested name and the default temp directory. Set |show_dialog| to true\n (1) if you do wish to show the default \"Save As\" dialog.\n"]
10412    pub cont: ::std::option::Option<
10413        unsafe extern "C" fn(
10414            self_: *mut _cef_before_download_callback_t,
10415            download_path: *const cef_string_t,
10416            show_dialog: ::std::os::raw::c_int,
10417        ),
10418    >,
10419}
10420#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10421const _: () = {
10422    ["Size of _cef_before_download_callback_t"]
10423        [::std::mem::size_of::<_cef_before_download_callback_t>() - 48usize];
10424    ["Alignment of _cef_before_download_callback_t"]
10425        [::std::mem::align_of::<_cef_before_download_callback_t>() - 8usize];
10426    ["Offset of field: _cef_before_download_callback_t::base"]
10427        [::std::mem::offset_of!(_cef_before_download_callback_t, base) - 0usize];
10428    ["Offset of field: _cef_before_download_callback_t::cont"]
10429        [::std::mem::offset_of!(_cef_before_download_callback_t, cont) - 40usize];
10430};
10431#[doc = "\n Callback structure used to asynchronously continue a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10432pub type cef_before_download_callback_t = _cef_before_download_callback_t;
10433#[doc = "\n Callback structure used to asynchronously cancel a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10434#[repr(C)]
10435#[derive(Debug, Copy, Clone)]
10436pub struct _cef_download_item_callback_t {
10437    #[doc = "\n Base structure.\n"]
10438    pub base: cef_base_ref_counted_t,
10439    #[doc = "\n Call to cancel the download.\n"]
10440    pub cancel:
10441        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10442    #[doc = "\n Call to pause the download.\n"]
10443    pub pause:
10444        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10445    #[doc = "\n Call to resume the download.\n"]
10446    pub resume:
10447        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10448}
10449#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10450const _: () = {
10451    ["Size of _cef_download_item_callback_t"]
10452        [::std::mem::size_of::<_cef_download_item_callback_t>() - 64usize];
10453    ["Alignment of _cef_download_item_callback_t"]
10454        [::std::mem::align_of::<_cef_download_item_callback_t>() - 8usize];
10455    ["Offset of field: _cef_download_item_callback_t::base"]
10456        [::std::mem::offset_of!(_cef_download_item_callback_t, base) - 0usize];
10457    ["Offset of field: _cef_download_item_callback_t::cancel"]
10458        [::std::mem::offset_of!(_cef_download_item_callback_t, cancel) - 40usize];
10459    ["Offset of field: _cef_download_item_callback_t::pause"]
10460        [::std::mem::offset_of!(_cef_download_item_callback_t, pause) - 48usize];
10461    ["Offset of field: _cef_download_item_callback_t::resume"]
10462        [::std::mem::offset_of!(_cef_download_item_callback_t, resume) - 56usize];
10463};
10464#[doc = "\n Callback structure used to asynchronously cancel a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10465pub type cef_download_item_callback_t = _cef_download_item_callback_t;
10466#[doc = "\n Structure used to handle file downloads. The functions of this structure\n will called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10467#[repr(C)]
10468#[derive(Debug, Copy, Clone)]
10469pub struct _cef_download_handler_t {
10470    #[doc = "\n Base structure.\n"]
10471    pub base: cef_base_ref_counted_t,
10472    #[doc = "\n Called before a download begins in response to a user-initiated action\n (e.g. alt + link click or link click that returns a `Content-Disposition:\n attachment` response from the server). |url| is the target download URL\n and |request_function| is the target function (GET, POST, etc). Return\n true (1) to proceed with the download or false (0) to cancel the download.\n"]
10473    pub can_download: ::std::option::Option<
10474        unsafe extern "C" fn(
10475            self_: *mut _cef_download_handler_t,
10476            browser: *mut _cef_browser_t,
10477            url: *const cef_string_t,
10478            request_method: *const cef_string_t,
10479        ) -> ::std::os::raw::c_int,
10480    >,
10481    #[doc = "\n Called before a download begins. |suggested_name| is the suggested name\n for the download file. Return true (1) and execute |callback| either\n asynchronously or in this function to continue or cancel the download.\n Return false (0) to proceed with default handling (cancel with Alloy\n style, download shelf with Chrome style). Do not keep a reference to\n |download_item| outside of this function.\n"]
10482    pub on_before_download: ::std::option::Option<
10483        unsafe extern "C" fn(
10484            self_: *mut _cef_download_handler_t,
10485            browser: *mut _cef_browser_t,
10486            download_item: *mut _cef_download_item_t,
10487            suggested_name: *const cef_string_t,
10488            callback: *mut _cef_before_download_callback_t,
10489        ) -> ::std::os::raw::c_int,
10490    >,
10491    #[doc = "\n Called when a download's status or progress information has been updated.\n This may be called multiple times before and after on_before_download().\n Execute |callback| either asynchronously or in this function to cancel the\n download if desired. Do not keep a reference to |download_item| outside of\n this function.\n"]
10492    pub on_download_updated: ::std::option::Option<
10493        unsafe extern "C" fn(
10494            self_: *mut _cef_download_handler_t,
10495            browser: *mut _cef_browser_t,
10496            download_item: *mut _cef_download_item_t,
10497            callback: *mut _cef_download_item_callback_t,
10498        ),
10499    >,
10500}
10501#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10502const _: () = {
10503    ["Size of _cef_download_handler_t"][::std::mem::size_of::<_cef_download_handler_t>() - 64usize];
10504    ["Alignment of _cef_download_handler_t"]
10505        [::std::mem::align_of::<_cef_download_handler_t>() - 8usize];
10506    ["Offset of field: _cef_download_handler_t::base"]
10507        [::std::mem::offset_of!(_cef_download_handler_t, base) - 0usize];
10508    ["Offset of field: _cef_download_handler_t::can_download"]
10509        [::std::mem::offset_of!(_cef_download_handler_t, can_download) - 40usize];
10510    ["Offset of field: _cef_download_handler_t::on_before_download"]
10511        [::std::mem::offset_of!(_cef_download_handler_t, on_before_download) - 48usize];
10512    ["Offset of field: _cef_download_handler_t::on_download_updated"]
10513        [::std::mem::offset_of!(_cef_download_handler_t, on_download_updated) - 56usize];
10514};
10515#[doc = "\n Structure used to handle file downloads. The functions of this structure\n will called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10516pub type cef_download_handler_t = _cef_download_handler_t;
10517#[doc = "\n Implement this structure to handle events related to dragging. The functions\n of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10518#[repr(C)]
10519#[derive(Debug, Copy, Clone)]
10520pub struct _cef_drag_handler_t {
10521    #[doc = "\n Base structure.\n"]
10522    pub base: cef_base_ref_counted_t,
10523    #[doc = "\n Called when an external drag event enters the browser window. |dragData|\n contains the drag event data and |mask| represents the type of drag\n operation. Return false (0) for default drag handling behavior or true (1)\n to cancel the drag event.\n"]
10524    pub on_drag_enter: ::std::option::Option<
10525        unsafe extern "C" fn(
10526            self_: *mut _cef_drag_handler_t,
10527            browser: *mut _cef_browser_t,
10528            dragData: *mut _cef_drag_data_t,
10529            mask: cef_drag_operations_mask_t,
10530        ) -> ::std::os::raw::c_int,
10531    >,
10532    #[doc = "\n Called whenever draggable regions for the browser window change. These can\n be specified using the '-webkit-app-region: drag/no-drag' CSS-property. If\n draggable regions are never defined in a document this function will also\n never be called. If the last draggable region is removed from a document\n this function will be called with an NULL vector.\n"]
10533    pub on_draggable_regions_changed: ::std::option::Option<
10534        unsafe extern "C" fn(
10535            self_: *mut _cef_drag_handler_t,
10536            browser: *mut _cef_browser_t,
10537            frame: *mut _cef_frame_t,
10538            regionsCount: usize,
10539            regions: *const cef_draggable_region_t,
10540        ),
10541    >,
10542}
10543#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10544const _: () = {
10545    ["Size of _cef_drag_handler_t"][::std::mem::size_of::<_cef_drag_handler_t>() - 56usize];
10546    ["Alignment of _cef_drag_handler_t"][::std::mem::align_of::<_cef_drag_handler_t>() - 8usize];
10547    ["Offset of field: _cef_drag_handler_t::base"]
10548        [::std::mem::offset_of!(_cef_drag_handler_t, base) - 0usize];
10549    ["Offset of field: _cef_drag_handler_t::on_drag_enter"]
10550        [::std::mem::offset_of!(_cef_drag_handler_t, on_drag_enter) - 40usize];
10551    ["Offset of field: _cef_drag_handler_t::on_draggable_regions_changed"]
10552        [::std::mem::offset_of!(_cef_drag_handler_t, on_draggable_regions_changed) - 48usize];
10553};
10554#[doc = "\n Implement this structure to handle events related to dragging. The functions\n of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10555pub type cef_drag_handler_t = _cef_drag_handler_t;
10556#[doc = "\n Implement this structure to handle events related to find results. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10557#[repr(C)]
10558#[derive(Debug, Copy, Clone)]
10559pub struct _cef_find_handler_t {
10560    #[doc = "\n Base structure.\n"]
10561    pub base: cef_base_ref_counted_t,
10562    #[doc = "\n Called to report find results returned by cef_browser_host_t::find().\n |identifer| is a unique incremental identifier for the currently active\n search, |count| is the number of matches currently identified,\n |selectionRect| is the location of where the match was found (in window\n coordinates), |activeMatchOrdinal| is the current position in the search\n results, and |finalUpdate| is true (1) if this is the last find\n notification.\n"]
10563    pub on_find_result: ::std::option::Option<
10564        unsafe extern "C" fn(
10565            self_: *mut _cef_find_handler_t,
10566            browser: *mut _cef_browser_t,
10567            identifier: ::std::os::raw::c_int,
10568            count: ::std::os::raw::c_int,
10569            selectionRect: *const cef_rect_t,
10570            activeMatchOrdinal: ::std::os::raw::c_int,
10571            finalUpdate: ::std::os::raw::c_int,
10572        ),
10573    >,
10574}
10575#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10576const _: () = {
10577    ["Size of _cef_find_handler_t"][::std::mem::size_of::<_cef_find_handler_t>() - 48usize];
10578    ["Alignment of _cef_find_handler_t"][::std::mem::align_of::<_cef_find_handler_t>() - 8usize];
10579    ["Offset of field: _cef_find_handler_t::base"]
10580        [::std::mem::offset_of!(_cef_find_handler_t, base) - 0usize];
10581    ["Offset of field: _cef_find_handler_t::on_find_result"]
10582        [::std::mem::offset_of!(_cef_find_handler_t, on_find_result) - 40usize];
10583};
10584#[doc = "\n Implement this structure to handle events related to find results. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10585pub type cef_find_handler_t = _cef_find_handler_t;
10586#[doc = "\n Implement this structure to handle events related to focus. The functions of\n this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10587#[repr(C)]
10588#[derive(Debug, Copy, Clone)]
10589pub struct _cef_focus_handler_t {
10590    #[doc = "\n Base structure.\n"]
10591    pub base: cef_base_ref_counted_t,
10592    #[doc = "\n Called when the browser component is about to loose focus. For instance,\n if focus was on the last HTML element and the user pressed the TAB key.\n |next| will be true (1) if the browser is giving focus to the next\n component and false (0) if the browser is giving focus to the previous\n component.\n"]
10593    pub on_take_focus: ::std::option::Option<
10594        unsafe extern "C" fn(
10595            self_: *mut _cef_focus_handler_t,
10596            browser: *mut _cef_browser_t,
10597            next: ::std::os::raw::c_int,
10598        ),
10599    >,
10600    #[doc = "\n Called when the browser component is requesting focus. |source| indicates\n where the focus request is originating from. Return false (0) to allow the\n focus to be set or true (1) to cancel setting the focus.\n"]
10601    pub on_set_focus: ::std::option::Option<
10602        unsafe extern "C" fn(
10603            self_: *mut _cef_focus_handler_t,
10604            browser: *mut _cef_browser_t,
10605            source: cef_focus_source_t,
10606        ) -> ::std::os::raw::c_int,
10607    >,
10608    #[doc = "\n Called when the browser component has received focus.\n"]
10609    pub on_got_focus: ::std::option::Option<
10610        unsafe extern "C" fn(self_: *mut _cef_focus_handler_t, browser: *mut _cef_browser_t),
10611    >,
10612}
10613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10614const _: () = {
10615    ["Size of _cef_focus_handler_t"][::std::mem::size_of::<_cef_focus_handler_t>() - 64usize];
10616    ["Alignment of _cef_focus_handler_t"][::std::mem::align_of::<_cef_focus_handler_t>() - 8usize];
10617    ["Offset of field: _cef_focus_handler_t::base"]
10618        [::std::mem::offset_of!(_cef_focus_handler_t, base) - 0usize];
10619    ["Offset of field: _cef_focus_handler_t::on_take_focus"]
10620        [::std::mem::offset_of!(_cef_focus_handler_t, on_take_focus) - 40usize];
10621    ["Offset of field: _cef_focus_handler_t::on_set_focus"]
10622        [::std::mem::offset_of!(_cef_focus_handler_t, on_set_focus) - 48usize];
10623    ["Offset of field: _cef_focus_handler_t::on_got_focus"]
10624        [::std::mem::offset_of!(_cef_focus_handler_t, on_got_focus) - 56usize];
10625};
10626#[doc = "\n Implement this structure to handle events related to focus. The functions of\n this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10627pub type cef_focus_handler_t = _cef_focus_handler_t;
10628#[doc = "\n Implement this structure to handle events related to cef_frame_t life span.\n The order of callbacks is:\n\n (1) During initial cef_browser_host_t creation and navigation of the main\n frame:\n - cef_frame_handler_t::OnFrameCreated => The initial main frame object has\n   been created. Any commands will be queued until the frame is attached.\n - cef_frame_handler_t::OnMainFrameChanged => The initial main frame object\n   has been assigned to the browser.\n - cef_life_span_handler_t::OnAfterCreated => The browser is now valid and\n   can be used.\n - cef_frame_handler_t::OnFrameAttached => The initial main frame object is\n   now connected to its peer in the renderer process. Commands can be routed.\n\n (2) During further cef_browser_host_t navigation/loading of the main frame\n     and/or sub-frames:\n - cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame\n   object has been created. Any commands will be queued until the frame is\n   attached.\n - cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame\n   object is now connected to its peer in the renderer process. Commands can\n   be routed.\n - cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-\n   frame object has lost its connection to the renderer process. If multiple\n   objects are detached at the same time then notifications will be sent for\n   any sub-frame objects before the main frame object. Commands can no longer\n   be routed and will be discarded.\n - CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame\n   object has been destroyed.\n - cef_frame_handler_t::OnMainFrameChanged => A new main frame object has\n   been assigned to the browser. This will only occur with cross-origin\n   navigation or re-navigation after renderer process termination (due to\n   crashes, etc).\n\n (3) During final cef_browser_host_t destruction of the main frame:\n - cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost\n   their connection to the renderer process. Commands can no longer be routed\n   and will be discarded.\n - CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been\n   destroyed.\n - cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.\n - cef_frame_handler_t::OnFrameDetached => The main frame object have lost\n   its connection to the renderer process. Notifications will be sent for any\n   sub-frame objects before the main frame object. Commands can no longer be\n   routed and will be discarded.\n - CefFreameHandler::OnFrameDestroyed => The main frame object has been\n   destroyed.\n - cef_frame_handler_t::OnMainFrameChanged => The final main frame object has\n   been removed from the browser.\n\n Special handling applies for cross-origin loading on creation/navigation of\n sub-frames, and cross-origin loading on creation of new popup browsers. A\n temporary frame will first be created in the parent frame's renderer\n process. This temporary frame will never attach and will be discarded after\n the real cross-origin frame is created in the new/target renderer process.\n The client will receive creation callbacks for the temporary frame, followed\n by cross-origin navigation callbacks (2) for the transition from the\n temporary frame to the real frame. The temporary frame will not receive or\n execute commands during this transitional period (any sent commands will be\n discarded).\n\n When the main frame navigates to a different origin the OnMainFrameChanged\n callback (2) will be executed with the old and new main frame objects.\n\n Callbacks will not be executed for placeholders that may be created during\n pre-commit navigation for sub-frames that do not yet exist in the renderer\n process. Placeholders will have cef_frame_t::get_identifier() == -4.\n\n The functions of this structure will be called on the UI thread unless\n otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
10629#[repr(C)]
10630#[derive(Debug, Copy, Clone)]
10631pub struct _cef_frame_handler_t {
10632    #[doc = "\n Base structure.\n"]
10633    pub base: cef_base_ref_counted_t,
10634    #[doc = "\n Called when a new frame is created. This will be the first notification\n that references |frame|. Any commands that require transport to the\n associated renderer process (LoadRequest, SendProcessMessage, GetSource,\n etc.) will be queued. The queued commands will be sent before\n OnFrameAttached or discarded before OnFrameDestroyed if the frame never\n attaches.\n"]
10635    pub on_frame_created: ::std::option::Option<
10636        unsafe extern "C" fn(
10637            self_: *mut _cef_frame_handler_t,
10638            browser: *mut _cef_browser_t,
10639            frame: *mut _cef_frame_t,
10640        ),
10641    >,
10642    #[doc = "\n Called when an existing frame is destroyed. This will be the last\n notification that references |frame| and cef_frame_t::is_valid() will\n return false (0) for |frame|. If called during browser destruction and\n after cef_life_span_handler_t::on_before_close() then\n cef_browser_t::is_valid() will return false (0) for |browser|. Any queued\n commands that have not been sent will be discarded before this callback.\n"]
10643    pub on_frame_destroyed: ::std::option::Option<
10644        unsafe extern "C" fn(
10645            self_: *mut _cef_frame_handler_t,
10646            browser: *mut _cef_browser_t,
10647            frame: *mut _cef_frame_t,
10648        ),
10649    >,
10650    #[doc = "\n Called when a frame can begin routing commands to/from the associated\n renderer process. |reattached| will be true (1) if the frame was re-\n attached after exiting the BackForwardCache or after encountering a\n recoverable connection error. Any queued commands will now have been\n dispatched. This function will not be called for temporary frames created\n during cross-origin navigation.\n"]
10651    pub on_frame_attached: ::std::option::Option<
10652        unsafe extern "C" fn(
10653            self_: *mut _cef_frame_handler_t,
10654            browser: *mut _cef_browser_t,
10655            frame: *mut _cef_frame_t,
10656            reattached: ::std::os::raw::c_int,
10657        ),
10658    >,
10659    #[doc = "\n Called when a frame loses its connection to the renderer process. This may\n occur when a frame is destroyed, enters the BackForwardCache, or\n encounters a rare connection error. In the case of frame destruction this\n call will be followed by a (potentially async) call to OnFrameDestroyed.\n If frame destruction is occuring synchronously then\n cef_frame_t::is_valid() will return false (0) for |frame|. If called\n during browser destruction and after\n cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid()\n will return false (0) for |browser|. If, in the non-destruction case, the\n same frame later exits the BackForwardCache or recovers from a connection\n error then there will be a follow-up call to OnFrameAttached. This\n function will not be called for temporary frames created during cross-\n origin navigation.\n"]
10660    pub on_frame_detached: ::std::option::Option<
10661        unsafe extern "C" fn(
10662            self_: *mut _cef_frame_handler_t,
10663            browser: *mut _cef_browser_t,
10664            frame: *mut _cef_frame_t,
10665        ),
10666    >,
10667    #[doc = "\n Called when the main frame changes due to (a) initial browser creation,\n (b) final browser destruction, (c) cross-origin navigation or (d) re-\n navigation after renderer process termination (due to crashes, etc).\n |old_frame| will be NULL and |new_frame| will be non-NULL when a main\n frame is assigned to |browser| for the first time. |old_frame| will be\n non-NULL and |new_frame| will be NULL when a main frame is removed from\n |browser| for the last time. Both |old_frame| and |new_frame| will be non-\n NULL for cross-origin navigations or re-navigation after renderer process\n termination. This function will be called after on_frame_created() for\n |new_frame| and/or after on_frame_destroyed() for |old_frame|. If called\n during browser destruction and after\n cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid()\n will return false (0) for |browser|.\n"]
10668    pub on_main_frame_changed: ::std::option::Option<
10669        unsafe extern "C" fn(
10670            self_: *mut _cef_frame_handler_t,
10671            browser: *mut _cef_browser_t,
10672            old_frame: *mut _cef_frame_t,
10673            new_frame: *mut _cef_frame_t,
10674        ),
10675    >,
10676}
10677#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10678const _: () = {
10679    ["Size of _cef_frame_handler_t"][::std::mem::size_of::<_cef_frame_handler_t>() - 80usize];
10680    ["Alignment of _cef_frame_handler_t"][::std::mem::align_of::<_cef_frame_handler_t>() - 8usize];
10681    ["Offset of field: _cef_frame_handler_t::base"]
10682        [::std::mem::offset_of!(_cef_frame_handler_t, base) - 0usize];
10683    ["Offset of field: _cef_frame_handler_t::on_frame_created"]
10684        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_created) - 40usize];
10685    ["Offset of field: _cef_frame_handler_t::on_frame_destroyed"]
10686        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_destroyed) - 48usize];
10687    ["Offset of field: _cef_frame_handler_t::on_frame_attached"]
10688        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_attached) - 56usize];
10689    ["Offset of field: _cef_frame_handler_t::on_frame_detached"]
10690        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_detached) - 64usize];
10691    ["Offset of field: _cef_frame_handler_t::on_main_frame_changed"]
10692        [::std::mem::offset_of!(_cef_frame_handler_t, on_main_frame_changed) - 72usize];
10693};
10694#[doc = "\n Implement this structure to handle events related to cef_frame_t life span.\n The order of callbacks is:\n\n (1) During initial cef_browser_host_t creation and navigation of the main\n frame:\n - cef_frame_handler_t::OnFrameCreated => The initial main frame object has\n   been created. Any commands will be queued until the frame is attached.\n - cef_frame_handler_t::OnMainFrameChanged => The initial main frame object\n   has been assigned to the browser.\n - cef_life_span_handler_t::OnAfterCreated => The browser is now valid and\n   can be used.\n - cef_frame_handler_t::OnFrameAttached => The initial main frame object is\n   now connected to its peer in the renderer process. Commands can be routed.\n\n (2) During further cef_browser_host_t navigation/loading of the main frame\n     and/or sub-frames:\n - cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame\n   object has been created. Any commands will be queued until the frame is\n   attached.\n - cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame\n   object is now connected to its peer in the renderer process. Commands can\n   be routed.\n - cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-\n   frame object has lost its connection to the renderer process. If multiple\n   objects are detached at the same time then notifications will be sent for\n   any sub-frame objects before the main frame object. Commands can no longer\n   be routed and will be discarded.\n - CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame\n   object has been destroyed.\n - cef_frame_handler_t::OnMainFrameChanged => A new main frame object has\n   been assigned to the browser. This will only occur with cross-origin\n   navigation or re-navigation after renderer process termination (due to\n   crashes, etc).\n\n (3) During final cef_browser_host_t destruction of the main frame:\n - cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost\n   their connection to the renderer process. Commands can no longer be routed\n   and will be discarded.\n - CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been\n   destroyed.\n - cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.\n - cef_frame_handler_t::OnFrameDetached => The main frame object have lost\n   its connection to the renderer process. Notifications will be sent for any\n   sub-frame objects before the main frame object. Commands can no longer be\n   routed and will be discarded.\n - CefFreameHandler::OnFrameDestroyed => The main frame object has been\n   destroyed.\n - cef_frame_handler_t::OnMainFrameChanged => The final main frame object has\n   been removed from the browser.\n\n Special handling applies for cross-origin loading on creation/navigation of\n sub-frames, and cross-origin loading on creation of new popup browsers. A\n temporary frame will first be created in the parent frame's renderer\n process. This temporary frame will never attach and will be discarded after\n the real cross-origin frame is created in the new/target renderer process.\n The client will receive creation callbacks for the temporary frame, followed\n by cross-origin navigation callbacks (2) for the transition from the\n temporary frame to the real frame. The temporary frame will not receive or\n execute commands during this transitional period (any sent commands will be\n discarded).\n\n When the main frame navigates to a different origin the OnMainFrameChanged\n callback (2) will be executed with the old and new main frame objects.\n\n Callbacks will not be executed for placeholders that may be created during\n pre-commit navigation for sub-frames that do not yet exist in the renderer\n process. Placeholders will have cef_frame_t::get_identifier() == -4.\n\n The functions of this structure will be called on the UI thread unless\n otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
10695pub type cef_frame_handler_t = _cef_frame_handler_t;
10696#[doc = "\n Callback structure used for asynchronous continuation of JavaScript dialog\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10697#[repr(C)]
10698#[derive(Debug, Copy, Clone)]
10699pub struct _cef_jsdialog_callback_t {
10700    #[doc = "\n Base structure.\n"]
10701    pub base: cef_base_ref_counted_t,
10702    #[doc = "\n Continue the JS dialog request. Set |success| to true (1) if the OK button\n was pressed. The |user_input| value should be specified for prompt\n dialogs.\n"]
10703    pub cont: ::std::option::Option<
10704        unsafe extern "C" fn(
10705            self_: *mut _cef_jsdialog_callback_t,
10706            success: ::std::os::raw::c_int,
10707            user_input: *const cef_string_t,
10708        ),
10709    >,
10710}
10711#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10712const _: () = {
10713    ["Size of _cef_jsdialog_callback_t"]
10714        [::std::mem::size_of::<_cef_jsdialog_callback_t>() - 48usize];
10715    ["Alignment of _cef_jsdialog_callback_t"]
10716        [::std::mem::align_of::<_cef_jsdialog_callback_t>() - 8usize];
10717    ["Offset of field: _cef_jsdialog_callback_t::base"]
10718        [::std::mem::offset_of!(_cef_jsdialog_callback_t, base) - 0usize];
10719    ["Offset of field: _cef_jsdialog_callback_t::cont"]
10720        [::std::mem::offset_of!(_cef_jsdialog_callback_t, cont) - 40usize];
10721};
10722#[doc = "\n Callback structure used for asynchronous continuation of JavaScript dialog\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10723pub type cef_jsdialog_callback_t = _cef_jsdialog_callback_t;
10724#[doc = "\n Implement this structure to handle events related to JavaScript dialogs. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10725#[repr(C)]
10726#[derive(Debug, Copy, Clone)]
10727pub struct _cef_jsdialog_handler_t {
10728    #[doc = "\n Base structure.\n"]
10729    pub base: cef_base_ref_counted_t,
10730    #[doc = "\n Called to run a JavaScript dialog. If |origin_url| is non-NULL it can be\n passed to the CefFormatUrlForSecurityDisplay function to retrieve a secure\n and user-friendly display string. The |default_prompt_text| value will be\n specified for prompt dialogs only. Set |suppress_message| to true (1) and\n return false (0) to suppress the message (suppressing messages is\n preferable to immediately executing the callback as this is used to detect\n presumably malicious behavior like spamming alert messages in\n onbeforeunload). Set |suppress_message| to false (0) and return false (0)\n to use the default implementation (the default implementation will show\n one modal dialog at a time and suppress any additional dialog requests\n until the displayed dialog is dismissed). Return true (1) if the\n application will use a custom dialog or if the callback has been executed\n immediately. Custom dialogs may be either modal or modeless. If a custom\n dialog is used the application must execute |callback| once the custom\n dialog is dismissed.\n"]
10731    pub on_jsdialog: ::std::option::Option<
10732        unsafe extern "C" fn(
10733            self_: *mut _cef_jsdialog_handler_t,
10734            browser: *mut _cef_browser_t,
10735            origin_url: *const cef_string_t,
10736            dialog_type: cef_jsdialog_type_t,
10737            message_text: *const cef_string_t,
10738            default_prompt_text: *const cef_string_t,
10739            callback: *mut _cef_jsdialog_callback_t,
10740            suppress_message: *mut ::std::os::raw::c_int,
10741        ) -> ::std::os::raw::c_int,
10742    >,
10743    #[doc = "\n Called to run a dialog asking the user if they want to leave a page.\n Return false (0) to use the default dialog implementation. Return true (1)\n if the application will use a custom dialog or if the callback has been\n executed immediately. Custom dialogs may be either modal or modeless. If a\n custom dialog is used the application must execute |callback| once the\n custom dialog is dismissed.\n"]
10744    pub on_before_unload_dialog: ::std::option::Option<
10745        unsafe extern "C" fn(
10746            self_: *mut _cef_jsdialog_handler_t,
10747            browser: *mut _cef_browser_t,
10748            message_text: *const cef_string_t,
10749            is_reload: ::std::os::raw::c_int,
10750            callback: *mut _cef_jsdialog_callback_t,
10751        ) -> ::std::os::raw::c_int,
10752    >,
10753    #[doc = "\n Called to cancel any pending dialogs and reset any saved dialog state.\n Will be called due to events like page navigation irregardless of whether\n any dialogs are currently pending.\n"]
10754    pub on_reset_dialog_state: ::std::option::Option<
10755        unsafe extern "C" fn(self_: *mut _cef_jsdialog_handler_t, browser: *mut _cef_browser_t),
10756    >,
10757    #[doc = "\n Called when the dialog is closed.\n"]
10758    pub on_dialog_closed: ::std::option::Option<
10759        unsafe extern "C" fn(self_: *mut _cef_jsdialog_handler_t, browser: *mut _cef_browser_t),
10760    >,
10761}
10762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10763const _: () = {
10764    ["Size of _cef_jsdialog_handler_t"][::std::mem::size_of::<_cef_jsdialog_handler_t>() - 72usize];
10765    ["Alignment of _cef_jsdialog_handler_t"]
10766        [::std::mem::align_of::<_cef_jsdialog_handler_t>() - 8usize];
10767    ["Offset of field: _cef_jsdialog_handler_t::base"]
10768        [::std::mem::offset_of!(_cef_jsdialog_handler_t, base) - 0usize];
10769    ["Offset of field: _cef_jsdialog_handler_t::on_jsdialog"]
10770        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_jsdialog) - 40usize];
10771    ["Offset of field: _cef_jsdialog_handler_t::on_before_unload_dialog"]
10772        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_before_unload_dialog) - 48usize];
10773    ["Offset of field: _cef_jsdialog_handler_t::on_reset_dialog_state"]
10774        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_reset_dialog_state) - 56usize];
10775    ["Offset of field: _cef_jsdialog_handler_t::on_dialog_closed"]
10776        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_dialog_closed) - 64usize];
10777};
10778#[doc = "\n Implement this structure to handle events related to JavaScript dialogs. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10779pub type cef_jsdialog_handler_t = _cef_jsdialog_handler_t;
10780#[doc = "\n Implement this structure to handle events related to keyboard input. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10781#[repr(C)]
10782#[derive(Debug, Copy, Clone)]
10783pub struct _cef_keyboard_handler_t {
10784    #[doc = "\n Base structure.\n"]
10785    pub base: cef_base_ref_counted_t,
10786    #[doc = "\n Called before a keyboard event is sent to the renderer. |event| contains\n information about the keyboard event. |os_event| is the operating system\n event message, if any. Return true (1) if the event was handled or false\n (0) otherwise. If the event will be handled in on_key_event() as a\n keyboard shortcut set |is_keyboard_shortcut| to true (1) and return false\n (0).\n"]
10787    pub on_pre_key_event: ::std::option::Option<
10788        unsafe extern "C" fn(
10789            self_: *mut _cef_keyboard_handler_t,
10790            browser: *mut _cef_browser_t,
10791            event: *const cef_key_event_t,
10792            os_event: cef_event_handle_t,
10793            is_keyboard_shortcut: *mut ::std::os::raw::c_int,
10794        ) -> ::std::os::raw::c_int,
10795    >,
10796    #[doc = "\n Called after the renderer and JavaScript in the page has had a chance to\n handle the event. |event| contains information about the keyboard event.\n |os_event| is the operating system event message, if any. Return true (1)\n if the keyboard event was handled or false (0) otherwise.\n"]
10797    pub on_key_event: ::std::option::Option<
10798        unsafe extern "C" fn(
10799            self_: *mut _cef_keyboard_handler_t,
10800            browser: *mut _cef_browser_t,
10801            event: *const cef_key_event_t,
10802            os_event: cef_event_handle_t,
10803        ) -> ::std::os::raw::c_int,
10804    >,
10805}
10806#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10807const _: () = {
10808    ["Size of _cef_keyboard_handler_t"][::std::mem::size_of::<_cef_keyboard_handler_t>() - 56usize];
10809    ["Alignment of _cef_keyboard_handler_t"]
10810        [::std::mem::align_of::<_cef_keyboard_handler_t>() - 8usize];
10811    ["Offset of field: _cef_keyboard_handler_t::base"]
10812        [::std::mem::offset_of!(_cef_keyboard_handler_t, base) - 0usize];
10813    ["Offset of field: _cef_keyboard_handler_t::on_pre_key_event"]
10814        [::std::mem::offset_of!(_cef_keyboard_handler_t, on_pre_key_event) - 40usize];
10815    ["Offset of field: _cef_keyboard_handler_t::on_key_event"]
10816        [::std::mem::offset_of!(_cef_keyboard_handler_t, on_key_event) - 48usize];
10817};
10818#[doc = "\n Implement this structure to handle events related to keyboard input. The\n functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
10819pub type cef_keyboard_handler_t = _cef_keyboard_handler_t;
10820#[doc = "\n Implement this structure to handle events related to browser life span. The\n functions of this structure will be called on the UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
10821#[repr(C)]
10822#[derive(Copy, Clone)]
10823pub struct _cef_life_span_handler_t {
10824    #[doc = "\n Base structure.\n"]
10825    pub base: cef_base_ref_counted_t,
10826    #[doc = "\n Called on the UI thread before a new popup browser is created. The\n |browser| and |frame| values represent the source of the popup request\n (opener browser and frame). The |popup_id| value uniquely identifies the\n popup in the context of the opener browser. The |target_url| and\n |target_frame_name| values indicate where the popup browser should\n navigate and may be NULL if not specified with the request. The\n |target_disposition| value indicates where the user intended to open the\n popup (e.g. current tab, new tab, etc). The |user_gesture| value will be\n true (1) if the popup was opened via explicit user gesture (e.g. clicking\n a link) or false (0) if the popup opened automatically (e.g. via the\n DomContentLoaded event). The |popupFeatures| structure contains additional\n information about the requested popup window. To allow creation of the\n popup browser optionally modify |windowInfo|, |client|, |settings| and\n |no_javascript_access| and return false (0). To cancel creation of the\n popup browser return true (1). The |client| and |settings| values will\n default to the source browser's values. If the |no_javascript_access|\n value is set to false (0) the new browser will not be scriptable and may\n not be hosted in the same renderer process as the source browser. Any\n modifications to |windowInfo| will be ignored if the parent browser is\n wrapped in a cef_browser_view_t. The |extra_info| parameter provides an\n opportunity to specify extra information specific to the created popup\n browser that will be passed to\n cef_render_process_handler_t::on_browser_created() in the render process.\n\n If popup browser creation succeeds then OnAfterCreated will be called for\n the new popup browser. If popup browser creation fails, and if the opener\n browser has not yet been destroyed, then OnBeforePopupAborted will be\n called for the opener browser. See OnBeforePopupAborted documentation for\n additional details.\n\n A default popup window is created if this function returns false (0)\n without setting a parent window handle via cef_window_tInfo (for native-\n hosted popups), or without implementing\n cef_browser_view_delegate_t::OnPopupBrowserViewCreated (for Views-hosted\n popups). The default popup window type depends on the parent browser\n configuration:\n - Views-hosted parent: Creates a Views-hosted popup window.\n - Native-hosted Alloy style parent: Creates a native popup window.\n - Native-hosted Chrome style parent: Creates a Chrome UI popup window by\n   default; set CefSettings.use_views_default_popup to true (1) to instead\n   create a Views-hosted popup window.\n"]
10827    pub on_before_popup: ::std::option::Option<
10828        unsafe extern "C" fn(
10829            self_: *mut _cef_life_span_handler_t,
10830            browser: *mut _cef_browser_t,
10831            frame: *mut _cef_frame_t,
10832            popup_id: ::std::os::raw::c_int,
10833            target_url: *const cef_string_t,
10834            target_frame_name: *const cef_string_t,
10835            target_disposition: cef_window_open_disposition_t,
10836            user_gesture: ::std::os::raw::c_int,
10837            popupFeatures: *const cef_popup_features_t,
10838            windowInfo: *mut _cef_window_info_t,
10839            client: *mut *mut _cef_client_t,
10840            settings: *mut _cef_browser_settings_t,
10841            extra_info: *mut *mut _cef_dictionary_value_t,
10842            no_javascript_access: *mut ::std::os::raw::c_int,
10843        ) -> ::std::os::raw::c_int,
10844    >,
10845    #[doc = "\n Called on the UI thread if a new popup browser is aborted. This only\n occurs if the popup is allowed in OnBeforePopup and creation fails before\n OnAfterCreated is called for the new popup browser. The |browser| value is\n the source of the popup request (opener browser). The |popup_id| value\n uniquely identifies the popup in the context of the opener browser, and is\n the same value that was passed to OnBeforePopup.\n\n Any client state associated with pending popups should be cleared in\n OnBeforePopupAborted, OnAfterCreated of the popup browser, or\n OnBeforeClose of the opener browser. OnBeforeClose of the opener browser\n may be called before this function in cases where the opener is closing\n during popup creation, in which case cef_browser_host_t::IsValid will\n return false (0) in this function.\n"]
10846    pub on_before_popup_aborted: ::std::option::Option<
10847        unsafe extern "C" fn(
10848            self_: *mut _cef_life_span_handler_t,
10849            browser: *mut _cef_browser_t,
10850            popup_id: ::std::os::raw::c_int,
10851        ),
10852    >,
10853    #[doc = "\n Called on the UI thread before a new DevTools popup browser is created.\n The |browser| value represents the source of the popup request. Optionally\n modify |windowInfo|, |client|, |settings| and |extra_info| values. The\n |client|, |settings| and |extra_info| values will default to the source\n browser's values. Any modifications to |windowInfo| will be ignored if the\n parent browser is Views-hosted (wrapped in a cef_browser_view_t).\n\n The |extra_info| parameter provides an opportunity to specify extra\n information specific to the created popup browser that will be passed to\n cef_render_process_handler_t::on_browser_created() in the render process.\n The existing |extra_info| object, if any, will be read-only but may be\n replaced with a new object.\n\n Views-hosted source browsers will create Views-hosted DevTools popups\n unless |use_default_window| is set to to true (1). DevTools popups can be\n blocked by returning true (1) from cef_command_handler_t::OnChromeCommand\n for IDC_DEV_TOOLS. Only used with Chrome style.\n"]
10854    pub on_before_dev_tools_popup: ::std::option::Option<
10855        unsafe extern "C" fn(
10856            self_: *mut _cef_life_span_handler_t,
10857            browser: *mut _cef_browser_t,
10858            windowInfo: *mut _cef_window_info_t,
10859            client: *mut *mut _cef_client_t,
10860            settings: *mut _cef_browser_settings_t,
10861            extra_info: *mut *mut _cef_dictionary_value_t,
10862            use_default_window: *mut ::std::os::raw::c_int,
10863        ),
10864    >,
10865    #[doc = "\n Called after a new browser is created. It is now safe to begin performing\n actions with |browser|. cef_frame_handler_t callbacks related to initial\n main frame creation will arrive before this callback. See\n cef_frame_handler_t documentation for additional usage information.\n"]
10866    pub on_after_created: ::std::option::Option<
10867        unsafe extern "C" fn(self_: *mut _cef_life_span_handler_t, browser: *mut _cef_browser_t),
10868    >,
10869    #[doc = "\n Called when an Alloy style browser is ready to be closed, meaning that the\n close has already been initiated and that JavaScript unload handlers have\n already executed or should be ignored. This may result directly from a\n call to cef_browser_host_t::[Try]close_browser() or indirectly if the\n browser's top-level parent window was created by CEF and the user attempts\n to close that window (by clicking the 'X', for example). do_close() will\n not be called if the browser's host window/view has already been destroyed\n (via parent window/view hierarchy tear-down, for example), as it is no\n longer possible to customize the close behavior at that point.\n\n An application should handle top-level parent window close notifications\n by calling cef_browser_host_t::try_close_browser() or\n cef_browser_host_t::CloseBrowser(false (0)) instead of allowing the window\n to close immediately (see the examples below). This gives CEF an\n opportunity to process JavaScript unload handlers and optionally cancel\n the close before do_close() is called.\n\n When windowed rendering is enabled CEF will create an internal child\n window/view to host the browser. In that case returning false (0) from\n do_close() will send the standard close notification to the browser's top-\n level parent window (e.g. WM_CLOSE on Windows, performClose: on OS X,\n \"delete_event\" on Linux or cef_window_delegate_t::can_close() callback\n from Views).\n\n When windowed rendering is disabled there is no internal window/view and\n returning false (0) from do_close() will cause the browser object to be\n destroyed immediately.\n\n If the browser's top-level parent window requires a non-standard close\n notification then send that notification from do_close() and return true\n (1). You are still required to complete the browser close as soon as\n possible (either by calling [Try]close_browser() or by proceeding with\n window/view hierarchy tear-down), otherwise the browser will be left in a\n partially closed state that interferes with proper functioning. Top-level\n windows created on the browser process UI thread can alternately call\n cef_browser_host_t::is_ready_to_be_closed() in the close handler to check\n close status instead of relying on custom do_close() handling. See\n documentation on that function for additional details.\n\n The cef_life_span_handler_t::on_before_close() function will be called\n after do_close() (if do_close() is called) and immediately before the\n browser object is destroyed. The application should only exit after\n on_before_close() has been called for all existing browsers.\n\n The below examples describe what should happen during window close when\n the browser is parented to an application-provided top-level window.\n\n Example 1: Using cef_browser_host_t::try_close_browser(). This is\n recommended for clients using standard close handling and windows created\n on the browser process UI thread. 1.  User clicks the window close button\n which sends a close notification\n     to the application's top-level window.\n 2.  Application's top-level window receives the close notification and\n     calls TryCloseBrowser() (similar to calling CloseBrowser(false)).\n     TryCloseBrowser() returns false so the client cancels the window\n     close.\n 3.  JavaScript 'onbeforeunload' handler executes and shows the close\n     confirmation dialog (which can be overridden via\n     CefJSDialogHandler::OnBeforeUnloadDialog()).\n 4.  User approves the close. 5.  JavaScript 'onunload' handler executes.\n 6.  Application's do_close() handler is called and returns false (0) by\n     default.\n 7.  CEF sends a close notification to the application's top-level window\n     (because DoClose() returned false).\n 8.  Application's top-level window receives the close notification and\n     calls TryCloseBrowser(). TryCloseBrowser() returns true so the client\n     allows the window close.\n 9.  Application's top-level window is destroyed, triggering destruction\n     of the child browser window.\n 10. Application's on_before_close() handler is called and the browser\n object\n     is destroyed.\n 11. Application exits by calling cef_quit_message_loop() if no other\n browsers\n     exist.\n\n Example 2: Using cef_browser_host_t::CloseBrowser(false (0)) and\n implementing the do_close() callback. This is recommended for clients\n using non-standard close handling or windows that were not created on the\n browser process UI thread. 1.  User clicks the window close button which\n sends a close notification\n     to the application's top-level window.\n 2.  Application's top-level window receives the close notification and:\n     A. Calls CefBrowserHost::CloseBrowser(false).\n     B. Cancels the window close.\n 3.  JavaScript 'onbeforeunload' handler executes and shows the close\n     confirmation dialog (which can be overridden via\n     CefJSDialogHandler::OnBeforeUnloadDialog()).\n 4.  User approves the close. 5.  JavaScript 'onunload' handler executes.\n 6.  Application's do_close() handler is called. Application will:\n     A. Set a flag to indicate that the next top-level window close attempt\n        will be allowed.\n     B. Return false.\n 7.  CEF sends a close notification to the application's top-level window\n     (because DoClose() returned false).\n 8.  Application's top-level window receives the close notification and\n     allows the window to close based on the flag from #6A.\n 9.  Application's top-level window is destroyed, triggering destruction\n     of the child browser window.\n 10. Application's on_before_close() handler is called and the browser\n object\n     is destroyed.\n 11. Application exits by calling cef_quit_message_loop() if no other\n browsers\n     exist.\n"]
10870    pub do_close: ::std::option::Option<
10871        unsafe extern "C" fn(
10872            self_: *mut _cef_life_span_handler_t,
10873            browser: *mut _cef_browser_t,
10874        ) -> ::std::os::raw::c_int,
10875    >,
10876    #[doc = "\n Called just before a browser is destroyed. Release all references to the\n browser object and do not attempt to execute any functions on the browser\n object (other than IsValid, GetIdentifier or IsSame) after this callback\n returns. cef_frame_handler_t callbacks related to final main frame\n destruction, and OnBeforePopupAborted callbacks for any pending popups,\n will arrive after this callback and cef_browser_t::IsValid will return\n false (0) at that time. Any in-progress network requests associated with\n |browser| will be aborted when the browser is destroyed, and\n cef_resource_request_handler_t callbacks related to those requests may\n still arrive on the IO thread after this callback. See cef_frame_handler_t\n and do_close() documentation for additional usage information.\n"]
10877    pub on_before_close: ::std::option::Option<
10878        unsafe extern "C" fn(self_: *mut _cef_life_span_handler_t, browser: *mut _cef_browser_t),
10879    >,
10880}
10881#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10882const _: () = {
10883    ["Size of _cef_life_span_handler_t"]
10884        [::std::mem::size_of::<_cef_life_span_handler_t>() - 88usize];
10885    ["Alignment of _cef_life_span_handler_t"]
10886        [::std::mem::align_of::<_cef_life_span_handler_t>() - 8usize];
10887    ["Offset of field: _cef_life_span_handler_t::base"]
10888        [::std::mem::offset_of!(_cef_life_span_handler_t, base) - 0usize];
10889    ["Offset of field: _cef_life_span_handler_t::on_before_popup"]
10890        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_popup) - 40usize];
10891    ["Offset of field: _cef_life_span_handler_t::on_before_popup_aborted"]
10892        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_popup_aborted) - 48usize];
10893    ["Offset of field: _cef_life_span_handler_t::on_before_dev_tools_popup"]
10894        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_dev_tools_popup) - 56usize];
10895    ["Offset of field: _cef_life_span_handler_t::on_after_created"]
10896        [::std::mem::offset_of!(_cef_life_span_handler_t, on_after_created) - 64usize];
10897    ["Offset of field: _cef_life_span_handler_t::do_close"]
10898        [::std::mem::offset_of!(_cef_life_span_handler_t, do_close) - 72usize];
10899    ["Offset of field: _cef_life_span_handler_t::on_before_close"]
10900        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_close) - 80usize];
10901};
10902#[doc = "\n Implement this structure to handle events related to browser life span. The\n functions of this structure will be called on the UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
10903pub type cef_life_span_handler_t = _cef_life_span_handler_t;
10904#[doc = "\n Implement this structure to handle events related to browser load status.\n The functions of this structure will be called on the browser process UI\n thread or render process main thread (TID_RENDERER).\n\n NOTE: This struct is allocated client-side.\n"]
10905#[repr(C)]
10906#[derive(Debug, Copy, Clone)]
10907pub struct _cef_load_handler_t {
10908    #[doc = "\n Base structure.\n"]
10909    pub base: cef_base_ref_counted_t,
10910    #[doc = "\n Called when the loading state has changed. This callback will be executed\n twice -- once when loading is initiated either programmatically or by user\n action, and once when loading is terminated due to completion,\n cancellation of failure. It will be called before any calls to OnLoadStart\n and after all calls to OnLoadError and/or OnLoadEnd.\n"]
10911    pub on_loading_state_change: ::std::option::Option<
10912        unsafe extern "C" fn(
10913            self_: *mut _cef_load_handler_t,
10914            browser: *mut _cef_browser_t,
10915            isLoading: ::std::os::raw::c_int,
10916            canGoBack: ::std::os::raw::c_int,
10917            canGoForward: ::std::os::raw::c_int,
10918        ),
10919    >,
10920    #[doc = "\n Called after a navigation has been committed and before the browser begins\n loading contents in the frame. The |frame| value will never be NULL --\n call the is_main() function to check if this frame is the main frame.\n |transition_type| provides information about the source of the navigation\n and an accurate value is only available in the browser process. Multiple\n frames may be loading at the same time. Sub-frames may start or continue\n loading after the main frame load has ended. This function will not be\n called for same page navigations (fragments, history state, etc.) or for\n navigations that fail or are canceled before commit. For notification of\n overall browser load status use OnLoadingStateChange instead.\n"]
10921    pub on_load_start: ::std::option::Option<
10922        unsafe extern "C" fn(
10923            self_: *mut _cef_load_handler_t,
10924            browser: *mut _cef_browser_t,
10925            frame: *mut _cef_frame_t,
10926            transition_type: cef_transition_type_t,
10927        ),
10928    >,
10929    #[doc = "\n Called when the browser is done loading a frame. The |frame| value will\n never be NULL -- call the is_main() function to check if this frame is the\n main frame. Multiple frames may be loading at the same time. Sub-frames\n may start or continue loading after the main frame load has ended. This\n function will not be called for same page navigations (fragments, history\n state, etc.) or for navigations that fail or are canceled before commit.\n For notification of overall browser load status use OnLoadingStateChange\n instead.\n"]
10930    pub on_load_end: ::std::option::Option<
10931        unsafe extern "C" fn(
10932            self_: *mut _cef_load_handler_t,
10933            browser: *mut _cef_browser_t,
10934            frame: *mut _cef_frame_t,
10935            httpStatusCode: ::std::os::raw::c_int,
10936        ),
10937    >,
10938    #[doc = "\n Called when a navigation fails or is canceled. This function may be called\n by itself if before commit or in combination with OnLoadStart/OnLoadEnd if\n after commit. |errorCode| is the error code number, |errorText| is the\n error text and |failedUrl| is the URL that failed to load. See\n net\\base\\net_error_list.h for complete descriptions of the error codes.\n"]
10939    pub on_load_error: ::std::option::Option<
10940        unsafe extern "C" fn(
10941            self_: *mut _cef_load_handler_t,
10942            browser: *mut _cef_browser_t,
10943            frame: *mut _cef_frame_t,
10944            errorCode: cef_errorcode_t,
10945            errorText: *const cef_string_t,
10946            failedUrl: *const cef_string_t,
10947        ),
10948    >,
10949}
10950#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10951const _: () = {
10952    ["Size of _cef_load_handler_t"][::std::mem::size_of::<_cef_load_handler_t>() - 72usize];
10953    ["Alignment of _cef_load_handler_t"][::std::mem::align_of::<_cef_load_handler_t>() - 8usize];
10954    ["Offset of field: _cef_load_handler_t::base"]
10955        [::std::mem::offset_of!(_cef_load_handler_t, base) - 0usize];
10956    ["Offset of field: _cef_load_handler_t::on_loading_state_change"]
10957        [::std::mem::offset_of!(_cef_load_handler_t, on_loading_state_change) - 40usize];
10958    ["Offset of field: _cef_load_handler_t::on_load_start"]
10959        [::std::mem::offset_of!(_cef_load_handler_t, on_load_start) - 48usize];
10960    ["Offset of field: _cef_load_handler_t::on_load_end"]
10961        [::std::mem::offset_of!(_cef_load_handler_t, on_load_end) - 56usize];
10962    ["Offset of field: _cef_load_handler_t::on_load_error"]
10963        [::std::mem::offset_of!(_cef_load_handler_t, on_load_error) - 64usize];
10964};
10965#[doc = "\n Implement this structure to handle events related to browser load status.\n The functions of this structure will be called on the browser process UI\n thread or render process main thread (TID_RENDERER).\n\n NOTE: This struct is allocated client-side.\n"]
10966pub type cef_load_handler_t = _cef_load_handler_t;
10967#[doc = "\n Callback structure used for asynchronous continuation of media access\n permission requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10968#[repr(C)]
10969#[derive(Debug, Copy, Clone)]
10970pub struct _cef_media_access_callback_t {
10971    #[doc = "\n Base structure.\n"]
10972    pub base: cef_base_ref_counted_t,
10973    #[doc = "\n Call to allow or deny media access. If this callback was initiated in\n response to a getUserMedia (indicated by\n CEF_MEDIA_PERMISSION_DEVICE_AUDIO_CAPTURE and/or\n CEF_MEDIA_PERMISSION_DEVICE_VIDEO_CAPTURE being set) then\n |allowed_permissions| must match |required_permissions| passed to\n OnRequestMediaAccessPermission.\n"]
10974    pub cont: ::std::option::Option<
10975        unsafe extern "C" fn(self_: *mut _cef_media_access_callback_t, allowed_permissions: u32),
10976    >,
10977    #[doc = "\n Cancel the media access request.\n"]
10978    pub cancel:
10979        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_access_callback_t)>,
10980}
10981#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10982const _: () = {
10983    ["Size of _cef_media_access_callback_t"]
10984        [::std::mem::size_of::<_cef_media_access_callback_t>() - 56usize];
10985    ["Alignment of _cef_media_access_callback_t"]
10986        [::std::mem::align_of::<_cef_media_access_callback_t>() - 8usize];
10987    ["Offset of field: _cef_media_access_callback_t::base"]
10988        [::std::mem::offset_of!(_cef_media_access_callback_t, base) - 0usize];
10989    ["Offset of field: _cef_media_access_callback_t::cont"]
10990        [::std::mem::offset_of!(_cef_media_access_callback_t, cont) - 40usize];
10991    ["Offset of field: _cef_media_access_callback_t::cancel"]
10992        [::std::mem::offset_of!(_cef_media_access_callback_t, cancel) - 48usize];
10993};
10994#[doc = "\n Callback structure used for asynchronous continuation of media access\n permission requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10995pub type cef_media_access_callback_t = _cef_media_access_callback_t;
10996#[doc = "\n Callback structure used for asynchronous continuation of permission prompts.\n\n NOTE: This struct is allocated DLL-side.\n"]
10997#[repr(C)]
10998#[derive(Debug, Copy, Clone)]
10999pub struct _cef_permission_prompt_callback_t {
11000    #[doc = "\n Base structure.\n"]
11001    pub base: cef_base_ref_counted_t,
11002    #[doc = "\n Complete the permissions request with the specified |result|.\n"]
11003    pub cont: ::std::option::Option<
11004        unsafe extern "C" fn(
11005            self_: *mut _cef_permission_prompt_callback_t,
11006            result: cef_permission_request_result_t,
11007        ),
11008    >,
11009}
11010#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11011const _: () = {
11012    ["Size of _cef_permission_prompt_callback_t"]
11013        [::std::mem::size_of::<_cef_permission_prompt_callback_t>() - 48usize];
11014    ["Alignment of _cef_permission_prompt_callback_t"]
11015        [::std::mem::align_of::<_cef_permission_prompt_callback_t>() - 8usize];
11016    ["Offset of field: _cef_permission_prompt_callback_t::base"]
11017        [::std::mem::offset_of!(_cef_permission_prompt_callback_t, base) - 0usize];
11018    ["Offset of field: _cef_permission_prompt_callback_t::cont"]
11019        [::std::mem::offset_of!(_cef_permission_prompt_callback_t, cont) - 40usize];
11020};
11021#[doc = "\n Callback structure used for asynchronous continuation of permission prompts.\n\n NOTE: This struct is allocated DLL-side.\n"]
11022pub type cef_permission_prompt_callback_t = _cef_permission_prompt_callback_t;
11023#[doc = "\n Implement this structure to handle events related to permission requests.\n The functions of this structure will be called on the browser process UI\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
11024#[repr(C)]
11025#[derive(Debug, Copy, Clone)]
11026pub struct _cef_permission_handler_t {
11027    #[doc = "\n Base structure.\n"]
11028    pub base: cef_base_ref_counted_t,
11029    #[doc = "\n Called when a page requests permission to access media.\n |requesting_origin| is the URL origin requesting permission.\n |requested_permissions| is a combination of values from\n cef_media_access_permission_types_t that represent the requested\n permissions. Return true (1) and call cef_media_access_callback_t\n functions either in this function or at a later time to continue or cancel\n the request. Return false (0) to proceed with default handling. With\n Chrome style, default handling will display the permission request UI.\n With Alloy style, default handling will deny the request. This function\n will not be called if the \"--enable-media-stream\" command-line switch is\n used to grant all permissions.\n"]
11030    pub on_request_media_access_permission: ::std::option::Option<
11031        unsafe extern "C" fn(
11032            self_: *mut _cef_permission_handler_t,
11033            browser: *mut _cef_browser_t,
11034            frame: *mut _cef_frame_t,
11035            requesting_origin: *const cef_string_t,
11036            requested_permissions: u32,
11037            callback: *mut _cef_media_access_callback_t,
11038        ) -> ::std::os::raw::c_int,
11039    >,
11040    #[doc = "\n Called when a page should show a permission prompt. |prompt_id| uniquely\n identifies the prompt. |requesting_origin| is the URL origin requesting\n permission. |requested_permissions| is a combination of values from\n cef_permission_request_types_t that represent the requested permissions.\n Return true (1) and call cef_permission_prompt_callback_t::Continue either\n in this function or at a later time to continue or cancel the request.\n Return false (0) to proceed with default handling. With Chrome style,\n default handling will display the permission prompt UI. With Alloy style,\n default handling is CEF_PERMISSION_RESULT_IGNORE.\n"]
11041    pub on_show_permission_prompt: ::std::option::Option<
11042        unsafe extern "C" fn(
11043            self_: *mut _cef_permission_handler_t,
11044            browser: *mut _cef_browser_t,
11045            prompt_id: u64,
11046            requesting_origin: *const cef_string_t,
11047            requested_permissions: u32,
11048            callback: *mut _cef_permission_prompt_callback_t,
11049        ) -> ::std::os::raw::c_int,
11050    >,
11051    #[doc = "\n Called when a permission prompt handled via OnShowPermissionPrompt is\n dismissed. |prompt_id| will match the value that was passed to\n OnShowPermissionPrompt. |result| will be the value passed to\n cef_permission_prompt_callback_t::Continue or CEF_PERMISSION_RESULT_IGNORE\n if the dialog was dismissed for other reasons such as navigation, browser\n closure, etc. This function will not be called if OnShowPermissionPrompt\n returned false (0) for |prompt_id|.\n"]
11052    pub on_dismiss_permission_prompt: ::std::option::Option<
11053        unsafe extern "C" fn(
11054            self_: *mut _cef_permission_handler_t,
11055            browser: *mut _cef_browser_t,
11056            prompt_id: u64,
11057            result: cef_permission_request_result_t,
11058        ),
11059    >,
11060}
11061#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11062const _: () = {
11063    ["Size of _cef_permission_handler_t"]
11064        [::std::mem::size_of::<_cef_permission_handler_t>() - 64usize];
11065    ["Alignment of _cef_permission_handler_t"]
11066        [::std::mem::align_of::<_cef_permission_handler_t>() - 8usize];
11067    ["Offset of field: _cef_permission_handler_t::base"]
11068        [::std::mem::offset_of!(_cef_permission_handler_t, base) - 0usize];
11069    ["Offset of field: _cef_permission_handler_t::on_request_media_access_permission"][::std::mem::offset_of!(
11070        _cef_permission_handler_t,
11071        on_request_media_access_permission
11072    ) - 40usize];
11073    ["Offset of field: _cef_permission_handler_t::on_show_permission_prompt"]
11074        [::std::mem::offset_of!(_cef_permission_handler_t, on_show_permission_prompt) - 48usize];
11075    ["Offset of field: _cef_permission_handler_t::on_dismiss_permission_prompt"]
11076        [::std::mem::offset_of!(_cef_permission_handler_t, on_dismiss_permission_prompt) - 56usize];
11077};
11078#[doc = "\n Implement this structure to handle events related to permission requests.\n The functions of this structure will be called on the browser process UI\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
11079pub type cef_permission_handler_t = _cef_permission_handler_t;
11080#[doc = "\n Structure representing print settings.\n\n NOTE: This struct is allocated DLL-side.\n"]
11081#[repr(C)]
11082#[derive(Debug, Copy, Clone)]
11083pub struct _cef_print_settings_t {
11084    #[doc = "\n Base structure.\n"]
11085    pub base: cef_base_ref_counted_t,
11086    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
11087    pub is_valid: ::std::option::Option<
11088        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11089    >,
11090    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
11091    pub is_read_only: ::std::option::Option<
11092        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11093    >,
11094    #[doc = "\n Set the page orientation.\n"]
11095    pub set_orientation: ::std::option::Option<
11096        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, landscape: ::std::os::raw::c_int),
11097    >,
11098    #[doc = "\n Returns true (1) if the orientation is landscape.\n"]
11099    pub is_landscape: ::std::option::Option<
11100        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11101    >,
11102    #[doc = "\n Set the printer printable area in device units. Some platforms already\n provide flipped area. Set |landscape_needs_flip| to false (0) on those\n platforms to avoid double flipping.\n"]
11103    pub set_printer_printable_area: ::std::option::Option<
11104        unsafe extern "C" fn(
11105            self_: *mut _cef_print_settings_t,
11106            physical_size_device_units: *const cef_size_t,
11107            printable_area_device_units: *const cef_rect_t,
11108            landscape_needs_flip: ::std::os::raw::c_int,
11109        ),
11110    >,
11111    #[doc = "\n Set the device name.\n"]
11112    pub set_device_name: ::std::option::Option<
11113        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, name: *const cef_string_t),
11114    >,
11115    #[doc = "\n Get the device name.\n"]
11116    pub get_device_name: ::std::option::Option<
11117        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_string_userfree_t,
11118    >,
11119    #[doc = "\n Set the DPI (dots per inch).\n"]
11120    pub set_dpi: ::std::option::Option<
11121        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, dpi: ::std::os::raw::c_int),
11122    >,
11123    #[doc = "\n Get the DPI (dots per inch).\n"]
11124    pub get_dpi: ::std::option::Option<
11125        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11126    >,
11127    #[doc = "\n Set the page ranges.\n"]
11128    pub set_page_ranges: ::std::option::Option<
11129        unsafe extern "C" fn(
11130            self_: *mut _cef_print_settings_t,
11131            rangesCount: usize,
11132            ranges: *const cef_range_t,
11133        ),
11134    >,
11135    #[doc = "\n Returns the number of page ranges that currently exist.\n"]
11136    pub get_page_ranges_count:
11137        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> usize>,
11138    #[doc = "\n Retrieve the page ranges.\n"]
11139    pub get_page_ranges: ::std::option::Option<
11140        unsafe extern "C" fn(
11141            self_: *mut _cef_print_settings_t,
11142            rangesCount: *mut usize,
11143            ranges: *mut cef_range_t,
11144        ),
11145    >,
11146    #[doc = "\n Set whether only the selection will be printed.\n"]
11147    pub set_selection_only: ::std::option::Option<
11148        unsafe extern "C" fn(
11149            self_: *mut _cef_print_settings_t,
11150            selection_only: ::std::os::raw::c_int,
11151        ),
11152    >,
11153    #[doc = "\n Returns true (1) if only the selection will be printed.\n"]
11154    pub is_selection_only: ::std::option::Option<
11155        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11156    >,
11157    #[doc = "\n Set whether pages will be collated.\n"]
11158    pub set_collate: ::std::option::Option<
11159        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, collate: ::std::os::raw::c_int),
11160    >,
11161    #[doc = "\n Returns true (1) if pages will be collated.\n"]
11162    pub will_collate: ::std::option::Option<
11163        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11164    >,
11165    #[doc = "\n Set the color model.\n"]
11166    pub set_color_model: ::std::option::Option<
11167        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, model: cef_color_model_t),
11168    >,
11169    #[doc = "\n Get the color model.\n"]
11170    pub get_color_model: ::std::option::Option<
11171        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_color_model_t,
11172    >,
11173    #[doc = "\n Set the number of copies.\n"]
11174    pub set_copies: ::std::option::Option<
11175        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, copies: ::std::os::raw::c_int),
11176    >,
11177    #[doc = "\n Get the number of copies.\n"]
11178    pub get_copies: ::std::option::Option<
11179        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
11180    >,
11181    #[doc = "\n Set the duplex mode.\n"]
11182    pub set_duplex_mode: ::std::option::Option<
11183        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, mode: cef_duplex_mode_t),
11184    >,
11185    #[doc = "\n Get the duplex mode.\n"]
11186    pub get_duplex_mode: ::std::option::Option<
11187        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_duplex_mode_t,
11188    >,
11189}
11190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11191const _: () = {
11192    ["Size of _cef_print_settings_t"][::std::mem::size_of::<_cef_print_settings_t>() - 216usize];
11193    ["Alignment of _cef_print_settings_t"]
11194        [::std::mem::align_of::<_cef_print_settings_t>() - 8usize];
11195    ["Offset of field: _cef_print_settings_t::base"]
11196        [::std::mem::offset_of!(_cef_print_settings_t, base) - 0usize];
11197    ["Offset of field: _cef_print_settings_t::is_valid"]
11198        [::std::mem::offset_of!(_cef_print_settings_t, is_valid) - 40usize];
11199    ["Offset of field: _cef_print_settings_t::is_read_only"]
11200        [::std::mem::offset_of!(_cef_print_settings_t, is_read_only) - 48usize];
11201    ["Offset of field: _cef_print_settings_t::set_orientation"]
11202        [::std::mem::offset_of!(_cef_print_settings_t, set_orientation) - 56usize];
11203    ["Offset of field: _cef_print_settings_t::is_landscape"]
11204        [::std::mem::offset_of!(_cef_print_settings_t, is_landscape) - 64usize];
11205    ["Offset of field: _cef_print_settings_t::set_printer_printable_area"]
11206        [::std::mem::offset_of!(_cef_print_settings_t, set_printer_printable_area) - 72usize];
11207    ["Offset of field: _cef_print_settings_t::set_device_name"]
11208        [::std::mem::offset_of!(_cef_print_settings_t, set_device_name) - 80usize];
11209    ["Offset of field: _cef_print_settings_t::get_device_name"]
11210        [::std::mem::offset_of!(_cef_print_settings_t, get_device_name) - 88usize];
11211    ["Offset of field: _cef_print_settings_t::set_dpi"]
11212        [::std::mem::offset_of!(_cef_print_settings_t, set_dpi) - 96usize];
11213    ["Offset of field: _cef_print_settings_t::get_dpi"]
11214        [::std::mem::offset_of!(_cef_print_settings_t, get_dpi) - 104usize];
11215    ["Offset of field: _cef_print_settings_t::set_page_ranges"]
11216        [::std::mem::offset_of!(_cef_print_settings_t, set_page_ranges) - 112usize];
11217    ["Offset of field: _cef_print_settings_t::get_page_ranges_count"]
11218        [::std::mem::offset_of!(_cef_print_settings_t, get_page_ranges_count) - 120usize];
11219    ["Offset of field: _cef_print_settings_t::get_page_ranges"]
11220        [::std::mem::offset_of!(_cef_print_settings_t, get_page_ranges) - 128usize];
11221    ["Offset of field: _cef_print_settings_t::set_selection_only"]
11222        [::std::mem::offset_of!(_cef_print_settings_t, set_selection_only) - 136usize];
11223    ["Offset of field: _cef_print_settings_t::is_selection_only"]
11224        [::std::mem::offset_of!(_cef_print_settings_t, is_selection_only) - 144usize];
11225    ["Offset of field: _cef_print_settings_t::set_collate"]
11226        [::std::mem::offset_of!(_cef_print_settings_t, set_collate) - 152usize];
11227    ["Offset of field: _cef_print_settings_t::will_collate"]
11228        [::std::mem::offset_of!(_cef_print_settings_t, will_collate) - 160usize];
11229    ["Offset of field: _cef_print_settings_t::set_color_model"]
11230        [::std::mem::offset_of!(_cef_print_settings_t, set_color_model) - 168usize];
11231    ["Offset of field: _cef_print_settings_t::get_color_model"]
11232        [::std::mem::offset_of!(_cef_print_settings_t, get_color_model) - 176usize];
11233    ["Offset of field: _cef_print_settings_t::set_copies"]
11234        [::std::mem::offset_of!(_cef_print_settings_t, set_copies) - 184usize];
11235    ["Offset of field: _cef_print_settings_t::get_copies"]
11236        [::std::mem::offset_of!(_cef_print_settings_t, get_copies) - 192usize];
11237    ["Offset of field: _cef_print_settings_t::set_duplex_mode"]
11238        [::std::mem::offset_of!(_cef_print_settings_t, set_duplex_mode) - 200usize];
11239    ["Offset of field: _cef_print_settings_t::get_duplex_mode"]
11240        [::std::mem::offset_of!(_cef_print_settings_t, get_duplex_mode) - 208usize];
11241};
11242#[doc = "\n Structure representing print settings.\n\n NOTE: This struct is allocated DLL-side.\n"]
11243pub type cef_print_settings_t = _cef_print_settings_t;
11244unsafe extern "C" {
11245    #[doc = "\n Create a new cef_print_settings_t object.\n"]
11246    pub fn cef_print_settings_create() -> *mut cef_print_settings_t;
11247}
11248#[doc = "\n Callback structure for asynchronous continuation of print dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11249#[repr(C)]
11250#[derive(Debug, Copy, Clone)]
11251pub struct _cef_print_dialog_callback_t {
11252    #[doc = "\n Base structure.\n"]
11253    pub base: cef_base_ref_counted_t,
11254    #[doc = "\n Continue printing with the specified |settings|.\n"]
11255    pub cont: ::std::option::Option<
11256        unsafe extern "C" fn(
11257            self_: *mut _cef_print_dialog_callback_t,
11258            settings: *mut _cef_print_settings_t,
11259        ),
11260    >,
11261    #[doc = "\n Cancel the printing.\n"]
11262    pub cancel:
11263        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_dialog_callback_t)>,
11264}
11265#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11266const _: () = {
11267    ["Size of _cef_print_dialog_callback_t"]
11268        [::std::mem::size_of::<_cef_print_dialog_callback_t>() - 56usize];
11269    ["Alignment of _cef_print_dialog_callback_t"]
11270        [::std::mem::align_of::<_cef_print_dialog_callback_t>() - 8usize];
11271    ["Offset of field: _cef_print_dialog_callback_t::base"]
11272        [::std::mem::offset_of!(_cef_print_dialog_callback_t, base) - 0usize];
11273    ["Offset of field: _cef_print_dialog_callback_t::cont"]
11274        [::std::mem::offset_of!(_cef_print_dialog_callback_t, cont) - 40usize];
11275    ["Offset of field: _cef_print_dialog_callback_t::cancel"]
11276        [::std::mem::offset_of!(_cef_print_dialog_callback_t, cancel) - 48usize];
11277};
11278#[doc = "\n Callback structure for asynchronous continuation of print dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11279pub type cef_print_dialog_callback_t = _cef_print_dialog_callback_t;
11280#[doc = "\n Callback structure for asynchronous continuation of print job requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11281#[repr(C)]
11282#[derive(Debug, Copy, Clone)]
11283pub struct _cef_print_job_callback_t {
11284    #[doc = "\n Base structure.\n"]
11285    pub base: cef_base_ref_counted_t,
11286    #[doc = "\n Indicate completion of the print job.\n"]
11287    pub cont: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_job_callback_t)>,
11288}
11289#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11290const _: () = {
11291    ["Size of _cef_print_job_callback_t"]
11292        [::std::mem::size_of::<_cef_print_job_callback_t>() - 48usize];
11293    ["Alignment of _cef_print_job_callback_t"]
11294        [::std::mem::align_of::<_cef_print_job_callback_t>() - 8usize];
11295    ["Offset of field: _cef_print_job_callback_t::base"]
11296        [::std::mem::offset_of!(_cef_print_job_callback_t, base) - 0usize];
11297    ["Offset of field: _cef_print_job_callback_t::cont"]
11298        [::std::mem::offset_of!(_cef_print_job_callback_t, cont) - 40usize];
11299};
11300#[doc = "\n Callback structure for asynchronous continuation of print job requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11301pub type cef_print_job_callback_t = _cef_print_job_callback_t;
11302#[doc = "\n Implement this structure to handle printing on Linux. Each browser will have\n only one print job in progress at a time. The functions of this structure\n will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
11303#[repr(C)]
11304#[derive(Debug, Copy, Clone)]
11305pub struct _cef_print_handler_t {
11306    #[doc = "\n Base structure.\n"]
11307    pub base: cef_base_ref_counted_t,
11308    #[doc = "\n Called when printing has started for the specified |browser|. This\n function will be called before the other OnPrint*() functions and\n irrespective of how printing was initiated (e.g.\n cef_browser_host_t::print(), JavaScript window.print() or PDF extension\n print button).\n"]
11309    pub on_print_start: ::std::option::Option<
11310        unsafe extern "C" fn(self_: *mut _cef_print_handler_t, browser: *mut _cef_browser_t),
11311    >,
11312    #[doc = "\n Synchronize |settings| with client state. If |get_defaults| is true (1)\n then populate |settings| with the default print settings. Do not keep a\n reference to |settings| outside of this callback.\n"]
11313    pub on_print_settings: ::std::option::Option<
11314        unsafe extern "C" fn(
11315            self_: *mut _cef_print_handler_t,
11316            browser: *mut _cef_browser_t,
11317            settings: *mut _cef_print_settings_t,
11318            get_defaults: ::std::os::raw::c_int,
11319        ),
11320    >,
11321    #[doc = "\n Show the print dialog. Execute |callback| once the dialog is dismissed.\n Return true (1) if the dialog will be displayed or false (0) to cancel the\n printing immediately.\n"]
11322    pub on_print_dialog: ::std::option::Option<
11323        unsafe extern "C" fn(
11324            self_: *mut _cef_print_handler_t,
11325            browser: *mut _cef_browser_t,
11326            has_selection: ::std::os::raw::c_int,
11327            callback: *mut _cef_print_dialog_callback_t,
11328        ) -> ::std::os::raw::c_int,
11329    >,
11330    #[doc = "\n Send the print job to the printer. Execute |callback| once the job is\n completed. Return true (1) if the job will proceed or false (0) to cancel\n the job immediately.\n"]
11331    pub on_print_job: ::std::option::Option<
11332        unsafe extern "C" fn(
11333            self_: *mut _cef_print_handler_t,
11334            browser: *mut _cef_browser_t,
11335            document_name: *const cef_string_t,
11336            pdf_file_path: *const cef_string_t,
11337            callback: *mut _cef_print_job_callback_t,
11338        ) -> ::std::os::raw::c_int,
11339    >,
11340    #[doc = "\n Reset client state related to printing.\n"]
11341    pub on_print_reset: ::std::option::Option<
11342        unsafe extern "C" fn(self_: *mut _cef_print_handler_t, browser: *mut _cef_browser_t),
11343    >,
11344    #[doc = "\n Return the PDF paper size in device units. Used in combination with\n cef_browser_host_t::print_to_pdf().\n"]
11345    pub get_pdf_paper_size: ::std::option::Option<
11346        unsafe extern "C" fn(
11347            self_: *mut _cef_print_handler_t,
11348            browser: *mut _cef_browser_t,
11349            device_units_per_inch: ::std::os::raw::c_int,
11350        ) -> cef_size_t,
11351    >,
11352}
11353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11354const _: () = {
11355    ["Size of _cef_print_handler_t"][::std::mem::size_of::<_cef_print_handler_t>() - 88usize];
11356    ["Alignment of _cef_print_handler_t"][::std::mem::align_of::<_cef_print_handler_t>() - 8usize];
11357    ["Offset of field: _cef_print_handler_t::base"]
11358        [::std::mem::offset_of!(_cef_print_handler_t, base) - 0usize];
11359    ["Offset of field: _cef_print_handler_t::on_print_start"]
11360        [::std::mem::offset_of!(_cef_print_handler_t, on_print_start) - 40usize];
11361    ["Offset of field: _cef_print_handler_t::on_print_settings"]
11362        [::std::mem::offset_of!(_cef_print_handler_t, on_print_settings) - 48usize];
11363    ["Offset of field: _cef_print_handler_t::on_print_dialog"]
11364        [::std::mem::offset_of!(_cef_print_handler_t, on_print_dialog) - 56usize];
11365    ["Offset of field: _cef_print_handler_t::on_print_job"]
11366        [::std::mem::offset_of!(_cef_print_handler_t, on_print_job) - 64usize];
11367    ["Offset of field: _cef_print_handler_t::on_print_reset"]
11368        [::std::mem::offset_of!(_cef_print_handler_t, on_print_reset) - 72usize];
11369    ["Offset of field: _cef_print_handler_t::get_pdf_paper_size"]
11370        [::std::mem::offset_of!(_cef_print_handler_t, get_pdf_paper_size) - 80usize];
11371};
11372#[doc = "\n Implement this structure to handle printing on Linux. Each browser will have\n only one print job in progress at a time. The functions of this structure\n will be called on the browser process UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
11373pub type cef_print_handler_t = _cef_print_handler_t;
11374#[doc = "\n Implement this structure to handle events when window rendering is disabled.\n The functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
11375#[repr(C)]
11376#[derive(Debug, Copy, Clone)]
11377pub struct _cef_render_handler_t {
11378    #[doc = "\n Base structure.\n"]
11379    pub base: cef_base_ref_counted_t,
11380    #[doc = "\n Return the handler for accessibility notifications. If no handler is\n provided the default implementation will be used.\n"]
11381    pub get_accessibility_handler: ::std::option::Option<
11382        unsafe extern "C" fn(
11383            self_: *mut _cef_render_handler_t,
11384        ) -> *mut _cef_accessibility_handler_t,
11385    >,
11386    #[doc = "\n Called to retrieve the root window rectangle in screen DIP coordinates.\n Return true (1) if the rectangle was provided. If this function returns\n false (0) the rectangle from GetViewRect will be used.\n"]
11387    pub get_root_screen_rect: ::std::option::Option<
11388        unsafe extern "C" fn(
11389            self_: *mut _cef_render_handler_t,
11390            browser: *mut _cef_browser_t,
11391            rect: *mut cef_rect_t,
11392        ) -> ::std::os::raw::c_int,
11393    >,
11394    #[doc = "\n Called to retrieve the view rectangle in screen DIP coordinates. This\n function must always provide a non-NULL rectangle.\n"]
11395    pub get_view_rect: ::std::option::Option<
11396        unsafe extern "C" fn(
11397            self_: *mut _cef_render_handler_t,
11398            browser: *mut _cef_browser_t,
11399            rect: *mut cef_rect_t,
11400        ),
11401    >,
11402    #[doc = "\n Called to retrieve the translation from view DIP coordinates to screen\n coordinates. Windows/Linux should provide screen device (pixel)\n coordinates and MacOS should provide screen DIP coordinates. Return true\n (1) if the requested coordinates were provided.\n"]
11403    pub get_screen_point: ::std::option::Option<
11404        unsafe extern "C" fn(
11405            self_: *mut _cef_render_handler_t,
11406            browser: *mut _cef_browser_t,
11407            viewX: ::std::os::raw::c_int,
11408            viewY: ::std::os::raw::c_int,
11409            screenX: *mut ::std::os::raw::c_int,
11410            screenY: *mut ::std::os::raw::c_int,
11411        ) -> ::std::os::raw::c_int,
11412    >,
11413    #[doc = "\n Called to allow the client to fill in the CefScreenInfo object with\n appropriate values. Return true (1) if the |screen_info| structure has\n been modified.\n\n If the screen info rectangle is left NULL the rectangle from GetViewRect\n will be used. If the rectangle is still NULL or invalid popups may not be\n drawn correctly.\n"]
11414    pub get_screen_info: ::std::option::Option<
11415        unsafe extern "C" fn(
11416            self_: *mut _cef_render_handler_t,
11417            browser: *mut _cef_browser_t,
11418            screen_info: *mut cef_screen_info_t,
11419        ) -> ::std::os::raw::c_int,
11420    >,
11421    #[doc = "\n Called when the browser wants to show or hide the popup widget. The popup\n should be shown if |show| is true (1) and hidden if |show| is false (0).\n"]
11422    pub on_popup_show: ::std::option::Option<
11423        unsafe extern "C" fn(
11424            self_: *mut _cef_render_handler_t,
11425            browser: *mut _cef_browser_t,
11426            show: ::std::os::raw::c_int,
11427        ),
11428    >,
11429    #[doc = "\n Called when the browser wants to move or resize the popup widget. |rect|\n contains the new location and size in view coordinates.\n"]
11430    pub on_popup_size: ::std::option::Option<
11431        unsafe extern "C" fn(
11432            self_: *mut _cef_render_handler_t,
11433            browser: *mut _cef_browser_t,
11434            rect: *const cef_rect_t,
11435        ),
11436    >,
11437    #[doc = "\n Called when an element should be painted. Pixel values passed to this\n function are scaled relative to view coordinates based on the value of\n CefScreenInfo.device_scale_factor returned from GetScreenInfo. |type|\n indicates whether the element is the view or the popup widget. |buffer|\n contains the pixel data for the whole image. |dirtyRects| contains the set\n of rectangles in pixel coordinates that need to be repainted. |buffer|\n will be |width|*|height|*4 bytes in size and represents a BGRA image with\n an upper-left origin. This function is only called when\n cef_window_tInfo::shared_texture_enabled is set to false (0).\n"]
11438    pub on_paint: ::std::option::Option<
11439        unsafe extern "C" fn(
11440            self_: *mut _cef_render_handler_t,
11441            browser: *mut _cef_browser_t,
11442            type_: cef_paint_element_type_t,
11443            dirtyRectsCount: usize,
11444            dirtyRects: *const cef_rect_t,
11445            buffer: *const ::std::os::raw::c_void,
11446            width: ::std::os::raw::c_int,
11447            height: ::std::os::raw::c_int,
11448        ),
11449    >,
11450    #[doc = "\n Called when an element has been rendered to the shared texture handle.\n |type| indicates whether the element is the view or the popup widget.\n |dirtyRects| contains the set of rectangles in pixel coordinates that need\n to be repainted. |info| contains the shared handle; on Windows it is a\n HANDLE to a texture that can be opened with D3D11 OpenSharedResource1 or\n D3D12 OpenSharedHandle, on macOS it is an IOSurface pointer that can be\n opened with Metal or OpenGL, and on Linux it contains several planes, each\n with an fd to the underlying system native buffer.\n\n The underlying implementation uses a pool to deliver frames. As a result,\n the handle may differ every frame depending on how many frames are in-\n progress. The handle's resource cannot be cached and cannot be accessed\n outside of this callback. It should be reopened each time this callback is\n executed and the contents should be copied to a texture owned by the\n client application. The contents of |info| will be released back to the\n pool after this callback returns.\n"]
11451    pub on_accelerated_paint: ::std::option::Option<
11452        unsafe extern "C" fn(
11453            self_: *mut _cef_render_handler_t,
11454            browser: *mut _cef_browser_t,
11455            type_: cef_paint_element_type_t,
11456            dirtyRectsCount: usize,
11457            dirtyRects: *const cef_rect_t,
11458            info: *const cef_accelerated_paint_info_t,
11459        ),
11460    >,
11461    #[doc = "\n Called to retrieve the size of the touch handle for the specified\n |orientation|.\n"]
11462    pub get_touch_handle_size: ::std::option::Option<
11463        unsafe extern "C" fn(
11464            self_: *mut _cef_render_handler_t,
11465            browser: *mut _cef_browser_t,
11466            orientation: cef_horizontal_alignment_t,
11467            size: *mut cef_size_t,
11468        ),
11469    >,
11470    #[doc = "\n Called when touch handle state is updated. The client is responsible for\n rendering the touch handles.\n"]
11471    pub on_touch_handle_state_changed: ::std::option::Option<
11472        unsafe extern "C" fn(
11473            self_: *mut _cef_render_handler_t,
11474            browser: *mut _cef_browser_t,
11475            state: *const cef_touch_handle_state_t,
11476        ),
11477    >,
11478    #[doc = "\n Called when the user starts dragging content in the web view. Contextual\n information about the dragged content is supplied by |drag_data|. (|x|,\n |y|) is the drag start location in screen coordinates. OS APIs that run a\n system message loop may be used within the StartDragging call.\n\n Return false (0) to abort the drag operation. Don't call any of\n cef_browser_host_t::DragSource*Ended* functions after returning false (0).\n\n Return true (1) to handle the drag operation. Call\n cef_browser_host_t::DragSourceEndedAt and DragSourceSystemDragEnded either\n synchronously or asynchronously to inform the web view that the drag\n operation has ended.\n"]
11479    pub start_dragging: ::std::option::Option<
11480        unsafe extern "C" fn(
11481            self_: *mut _cef_render_handler_t,
11482            browser: *mut _cef_browser_t,
11483            drag_data: *mut _cef_drag_data_t,
11484            allowed_ops: cef_drag_operations_mask_t,
11485            x: ::std::os::raw::c_int,
11486            y: ::std::os::raw::c_int,
11487        ) -> ::std::os::raw::c_int,
11488    >,
11489    #[doc = "\n Called when the web view wants to update the mouse cursor during a drag &\n drop operation. |operation| describes the allowed operation (none, move,\n copy, link).\n"]
11490    pub update_drag_cursor: ::std::option::Option<
11491        unsafe extern "C" fn(
11492            self_: *mut _cef_render_handler_t,
11493            browser: *mut _cef_browser_t,
11494            operation: cef_drag_operations_mask_t,
11495        ),
11496    >,
11497    #[doc = "\n Called when the scroll offset has changed.\n"]
11498    pub on_scroll_offset_changed: ::std::option::Option<
11499        unsafe extern "C" fn(
11500            self_: *mut _cef_render_handler_t,
11501            browser: *mut _cef_browser_t,
11502            x: f64,
11503            y: f64,
11504        ),
11505    >,
11506    #[doc = "\n Called when the IME composition range has changed. |selected_range| is the\n range of characters that have been selected. |character_bounds| is the\n bounds of each character in view coordinates.\n"]
11507    pub on_ime_composition_range_changed: ::std::option::Option<
11508        unsafe extern "C" fn(
11509            self_: *mut _cef_render_handler_t,
11510            browser: *mut _cef_browser_t,
11511            selected_range: *const cef_range_t,
11512            character_boundsCount: usize,
11513            character_bounds: *const cef_rect_t,
11514        ),
11515    >,
11516    #[doc = "\n Called when text selection has changed for the specified |browser|.\n |selected_text| is the currently selected text and |selected_range| is the\n character range.\n"]
11517    pub on_text_selection_changed: ::std::option::Option<
11518        unsafe extern "C" fn(
11519            self_: *mut _cef_render_handler_t,
11520            browser: *mut _cef_browser_t,
11521            selected_text: *const cef_string_t,
11522            selected_range: *const cef_range_t,
11523        ),
11524    >,
11525    #[doc = "\n Called when an on-screen keyboard should be shown or hidden for the\n specified |browser|. |input_mode| specifies what kind of keyboard should\n be opened. If |input_mode| is CEF_TEXT_INPUT_MODE_NONE, any existing\n keyboard for this browser should be hidden.\n"]
11526    pub on_virtual_keyboard_requested: ::std::option::Option<
11527        unsafe extern "C" fn(
11528            self_: *mut _cef_render_handler_t,
11529            browser: *mut _cef_browser_t,
11530            input_mode: cef_text_input_mode_t,
11531        ),
11532    >,
11533}
11534#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11535const _: () = {
11536    ["Size of _cef_render_handler_t"][::std::mem::size_of::<_cef_render_handler_t>() - 176usize];
11537    ["Alignment of _cef_render_handler_t"]
11538        [::std::mem::align_of::<_cef_render_handler_t>() - 8usize];
11539    ["Offset of field: _cef_render_handler_t::base"]
11540        [::std::mem::offset_of!(_cef_render_handler_t, base) - 0usize];
11541    ["Offset of field: _cef_render_handler_t::get_accessibility_handler"]
11542        [::std::mem::offset_of!(_cef_render_handler_t, get_accessibility_handler) - 40usize];
11543    ["Offset of field: _cef_render_handler_t::get_root_screen_rect"]
11544        [::std::mem::offset_of!(_cef_render_handler_t, get_root_screen_rect) - 48usize];
11545    ["Offset of field: _cef_render_handler_t::get_view_rect"]
11546        [::std::mem::offset_of!(_cef_render_handler_t, get_view_rect) - 56usize];
11547    ["Offset of field: _cef_render_handler_t::get_screen_point"]
11548        [::std::mem::offset_of!(_cef_render_handler_t, get_screen_point) - 64usize];
11549    ["Offset of field: _cef_render_handler_t::get_screen_info"]
11550        [::std::mem::offset_of!(_cef_render_handler_t, get_screen_info) - 72usize];
11551    ["Offset of field: _cef_render_handler_t::on_popup_show"]
11552        [::std::mem::offset_of!(_cef_render_handler_t, on_popup_show) - 80usize];
11553    ["Offset of field: _cef_render_handler_t::on_popup_size"]
11554        [::std::mem::offset_of!(_cef_render_handler_t, on_popup_size) - 88usize];
11555    ["Offset of field: _cef_render_handler_t::on_paint"]
11556        [::std::mem::offset_of!(_cef_render_handler_t, on_paint) - 96usize];
11557    ["Offset of field: _cef_render_handler_t::on_accelerated_paint"]
11558        [::std::mem::offset_of!(_cef_render_handler_t, on_accelerated_paint) - 104usize];
11559    ["Offset of field: _cef_render_handler_t::get_touch_handle_size"]
11560        [::std::mem::offset_of!(_cef_render_handler_t, get_touch_handle_size) - 112usize];
11561    ["Offset of field: _cef_render_handler_t::on_touch_handle_state_changed"]
11562        [::std::mem::offset_of!(_cef_render_handler_t, on_touch_handle_state_changed) - 120usize];
11563    ["Offset of field: _cef_render_handler_t::start_dragging"]
11564        [::std::mem::offset_of!(_cef_render_handler_t, start_dragging) - 128usize];
11565    ["Offset of field: _cef_render_handler_t::update_drag_cursor"]
11566        [::std::mem::offset_of!(_cef_render_handler_t, update_drag_cursor) - 136usize];
11567    ["Offset of field: _cef_render_handler_t::on_scroll_offset_changed"]
11568        [::std::mem::offset_of!(_cef_render_handler_t, on_scroll_offset_changed) - 144usize];
11569    ["Offset of field: _cef_render_handler_t::on_ime_composition_range_changed"][::std::mem::offset_of!(
11570        _cef_render_handler_t,
11571        on_ime_composition_range_changed
11572    ) - 152usize];
11573    ["Offset of field: _cef_render_handler_t::on_text_selection_changed"]
11574        [::std::mem::offset_of!(_cef_render_handler_t, on_text_selection_changed) - 160usize];
11575    ["Offset of field: _cef_render_handler_t::on_virtual_keyboard_requested"]
11576        [::std::mem::offset_of!(_cef_render_handler_t, on_virtual_keyboard_requested) - 168usize];
11577};
11578#[doc = "\n Implement this structure to handle events when window rendering is disabled.\n The functions of this structure will be called on the UI thread.\n\n NOTE: This struct is allocated client-side.\n"]
11579pub type cef_render_handler_t = _cef_render_handler_t;
11580#[doc = "\n Callback structure used for asynchronous continuation of authentication\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11581#[repr(C)]
11582#[derive(Debug, Copy, Clone)]
11583pub struct _cef_auth_callback_t {
11584    #[doc = "\n Base structure.\n"]
11585    pub base: cef_base_ref_counted_t,
11586    #[doc = "\n Continue the authentication request.\n"]
11587    pub cont: ::std::option::Option<
11588        unsafe extern "C" fn(
11589            self_: *mut _cef_auth_callback_t,
11590            username: *const cef_string_t,
11591            password: *const cef_string_t,
11592        ),
11593    >,
11594    #[doc = "\n Cancel the authentication request.\n"]
11595    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_auth_callback_t)>,
11596}
11597#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11598const _: () = {
11599    ["Size of _cef_auth_callback_t"][::std::mem::size_of::<_cef_auth_callback_t>() - 56usize];
11600    ["Alignment of _cef_auth_callback_t"][::std::mem::align_of::<_cef_auth_callback_t>() - 8usize];
11601    ["Offset of field: _cef_auth_callback_t::base"]
11602        [::std::mem::offset_of!(_cef_auth_callback_t, base) - 0usize];
11603    ["Offset of field: _cef_auth_callback_t::cont"]
11604        [::std::mem::offset_of!(_cef_auth_callback_t, cont) - 40usize];
11605    ["Offset of field: _cef_auth_callback_t::cancel"]
11606        [::std::mem::offset_of!(_cef_auth_callback_t, cancel) - 48usize];
11607};
11608#[doc = "\n Callback structure used for asynchronous continuation of authentication\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11609pub type cef_auth_callback_t = _cef_auth_callback_t;
11610#[doc = "\n Structure used to represent a web response. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
11611#[repr(C)]
11612#[derive(Debug, Copy, Clone)]
11613pub struct _cef_response_t {
11614    #[doc = "\n Base structure.\n"]
11615    pub base: cef_base_ref_counted_t,
11616    #[doc = "\n Returns true (1) if this object is read-only.\n"]
11617    pub is_read_only: ::std::option::Option<
11618        unsafe extern "C" fn(self_: *mut _cef_response_t) -> ::std::os::raw::c_int,
11619    >,
11620    #[doc = "\n Get the response error code. Returns ERR_NONE if there was no error.\n"]
11621    pub get_error:
11622        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_errorcode_t>,
11623    #[doc = "\n Set the response error code. This can be used by custom scheme handlers to\n return errors during initial request processing.\n"]
11624    pub set_error: ::std::option::Option<
11625        unsafe extern "C" fn(self_: *mut _cef_response_t, error: cef_errorcode_t),
11626    >,
11627    #[doc = "\n Get the response status code.\n"]
11628    pub get_status: ::std::option::Option<
11629        unsafe extern "C" fn(self_: *mut _cef_response_t) -> ::std::os::raw::c_int,
11630    >,
11631    #[doc = "\n Set the response status code.\n"]
11632    pub set_status: ::std::option::Option<
11633        unsafe extern "C" fn(self_: *mut _cef_response_t, status: ::std::os::raw::c_int),
11634    >,
11635    #[doc = "\n Get the response status text.\n"]
11636    pub get_status_text: ::std::option::Option<
11637        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11638    >,
11639    #[doc = "\n Set the response status text.\n"]
11640    pub set_status_text: ::std::option::Option<
11641        unsafe extern "C" fn(self_: *mut _cef_response_t, statusText: *const cef_string_t),
11642    >,
11643    #[doc = "\n Get the response mime type.\n"]
11644    pub get_mime_type: ::std::option::Option<
11645        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11646    >,
11647    #[doc = "\n Set the response mime type.\n"]
11648    pub set_mime_type: ::std::option::Option<
11649        unsafe extern "C" fn(self_: *mut _cef_response_t, mimeType: *const cef_string_t),
11650    >,
11651    #[doc = "\n Get the response charset.\n"]
11652    pub get_charset: ::std::option::Option<
11653        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11654    >,
11655    #[doc = "\n Set the response charset.\n"]
11656    pub set_charset: ::std::option::Option<
11657        unsafe extern "C" fn(self_: *mut _cef_response_t, charset: *const cef_string_t),
11658    >,
11659    #[doc = "\n Get the value for the specified response header field.\n"]
11660    pub get_header_by_name: ::std::option::Option<
11661        unsafe extern "C" fn(
11662            self_: *mut _cef_response_t,
11663            name: *const cef_string_t,
11664        ) -> cef_string_userfree_t,
11665    >,
11666    #[doc = "\n Set the header |name| to |value|. If |overwrite| is true (1) any existing\n values will be replaced with the new value. If |overwrite| is false (0)\n any existing values will not be overwritten.\n"]
11667    pub set_header_by_name: ::std::option::Option<
11668        unsafe extern "C" fn(
11669            self_: *mut _cef_response_t,
11670            name: *const cef_string_t,
11671            value: *const cef_string_t,
11672            overwrite: ::std::os::raw::c_int,
11673        ),
11674    >,
11675    #[doc = "\n Get all response header fields.\n"]
11676    pub get_header_map: ::std::option::Option<
11677        unsafe extern "C" fn(self_: *mut _cef_response_t, headerMap: cef_string_multimap_t),
11678    >,
11679    #[doc = "\n Set all response header fields.\n"]
11680    pub set_header_map: ::std::option::Option<
11681        unsafe extern "C" fn(self_: *mut _cef_response_t, headerMap: cef_string_multimap_t),
11682    >,
11683    #[doc = "\n Get the resolved URL after redirects or changed as a result of HSTS.\n"]
11684    pub get_url: ::std::option::Option<
11685        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11686    >,
11687    #[doc = "\n Set the resolved URL after redirects or changed as a result of HSTS.\n"]
11688    pub set_url: ::std::option::Option<
11689        unsafe extern "C" fn(self_: *mut _cef_response_t, url: *const cef_string_t),
11690    >,
11691}
11692#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11693const _: () = {
11694    ["Size of _cef_response_t"][::std::mem::size_of::<_cef_response_t>() - 176usize];
11695    ["Alignment of _cef_response_t"][::std::mem::align_of::<_cef_response_t>() - 8usize];
11696    ["Offset of field: _cef_response_t::base"]
11697        [::std::mem::offset_of!(_cef_response_t, base) - 0usize];
11698    ["Offset of field: _cef_response_t::is_read_only"]
11699        [::std::mem::offset_of!(_cef_response_t, is_read_only) - 40usize];
11700    ["Offset of field: _cef_response_t::get_error"]
11701        [::std::mem::offset_of!(_cef_response_t, get_error) - 48usize];
11702    ["Offset of field: _cef_response_t::set_error"]
11703        [::std::mem::offset_of!(_cef_response_t, set_error) - 56usize];
11704    ["Offset of field: _cef_response_t::get_status"]
11705        [::std::mem::offset_of!(_cef_response_t, get_status) - 64usize];
11706    ["Offset of field: _cef_response_t::set_status"]
11707        [::std::mem::offset_of!(_cef_response_t, set_status) - 72usize];
11708    ["Offset of field: _cef_response_t::get_status_text"]
11709        [::std::mem::offset_of!(_cef_response_t, get_status_text) - 80usize];
11710    ["Offset of field: _cef_response_t::set_status_text"]
11711        [::std::mem::offset_of!(_cef_response_t, set_status_text) - 88usize];
11712    ["Offset of field: _cef_response_t::get_mime_type"]
11713        [::std::mem::offset_of!(_cef_response_t, get_mime_type) - 96usize];
11714    ["Offset of field: _cef_response_t::set_mime_type"]
11715        [::std::mem::offset_of!(_cef_response_t, set_mime_type) - 104usize];
11716    ["Offset of field: _cef_response_t::get_charset"]
11717        [::std::mem::offset_of!(_cef_response_t, get_charset) - 112usize];
11718    ["Offset of field: _cef_response_t::set_charset"]
11719        [::std::mem::offset_of!(_cef_response_t, set_charset) - 120usize];
11720    ["Offset of field: _cef_response_t::get_header_by_name"]
11721        [::std::mem::offset_of!(_cef_response_t, get_header_by_name) - 128usize];
11722    ["Offset of field: _cef_response_t::set_header_by_name"]
11723        [::std::mem::offset_of!(_cef_response_t, set_header_by_name) - 136usize];
11724    ["Offset of field: _cef_response_t::get_header_map"]
11725        [::std::mem::offset_of!(_cef_response_t, get_header_map) - 144usize];
11726    ["Offset of field: _cef_response_t::set_header_map"]
11727        [::std::mem::offset_of!(_cef_response_t, set_header_map) - 152usize];
11728    ["Offset of field: _cef_response_t::get_url"]
11729        [::std::mem::offset_of!(_cef_response_t, get_url) - 160usize];
11730    ["Offset of field: _cef_response_t::set_url"]
11731        [::std::mem::offset_of!(_cef_response_t, set_url) - 168usize];
11732};
11733#[doc = "\n Structure used to represent a web response. The functions of this structure\n may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
11734pub type cef_response_t = _cef_response_t;
11735unsafe extern "C" {
11736    #[doc = "\n Create a new cef_response_t object.\n"]
11737    pub fn cef_response_create() -> *mut cef_response_t;
11738}
11739#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::skip().\n\n NOTE: This struct is allocated DLL-side.\n"]
11740#[repr(C)]
11741#[derive(Debug, Copy, Clone)]
11742pub struct _cef_resource_skip_callback_t {
11743    #[doc = "\n Base structure.\n"]
11744    pub base: cef_base_ref_counted_t,
11745    #[doc = "\n Callback for asynchronous continuation of skip(). If |bytes_skipped| > 0\n then either skip() will be called again until the requested number of\n bytes have been skipped or the request will proceed. If |bytes_skipped| <=\n 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE.\n"]
11746    pub cont: ::std::option::Option<
11747        unsafe extern "C" fn(self_: *mut _cef_resource_skip_callback_t, bytes_skipped: i64),
11748    >,
11749}
11750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11751const _: () = {
11752    ["Size of _cef_resource_skip_callback_t"]
11753        [::std::mem::size_of::<_cef_resource_skip_callback_t>() - 48usize];
11754    ["Alignment of _cef_resource_skip_callback_t"]
11755        [::std::mem::align_of::<_cef_resource_skip_callback_t>() - 8usize];
11756    ["Offset of field: _cef_resource_skip_callback_t::base"]
11757        [::std::mem::offset_of!(_cef_resource_skip_callback_t, base) - 0usize];
11758    ["Offset of field: _cef_resource_skip_callback_t::cont"]
11759        [::std::mem::offset_of!(_cef_resource_skip_callback_t, cont) - 40usize];
11760};
11761#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::skip().\n\n NOTE: This struct is allocated DLL-side.\n"]
11762pub type cef_resource_skip_callback_t = _cef_resource_skip_callback_t;
11763#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::read().\n\n NOTE: This struct is allocated DLL-side.\n"]
11764#[repr(C)]
11765#[derive(Debug, Copy, Clone)]
11766pub struct _cef_resource_read_callback_t {
11767    #[doc = "\n Base structure.\n"]
11768    pub base: cef_base_ref_counted_t,
11769    #[doc = "\n Callback for asynchronous continuation of read(). If |bytes_read| == 0 the\n response will be considered complete. If |bytes_read| > 0 then read() will\n be called again until the request is complete (based on either the result\n or the expected content length). If |bytes_read| < 0 then the request will\n fail and the |bytes_read| value will be treated as the error code.\n"]
11770    pub cont: ::std::option::Option<
11771        unsafe extern "C" fn(
11772            self_: *mut _cef_resource_read_callback_t,
11773            bytes_read: ::std::os::raw::c_int,
11774        ),
11775    >,
11776}
11777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11778const _: () = {
11779    ["Size of _cef_resource_read_callback_t"]
11780        [::std::mem::size_of::<_cef_resource_read_callback_t>() - 48usize];
11781    ["Alignment of _cef_resource_read_callback_t"]
11782        [::std::mem::align_of::<_cef_resource_read_callback_t>() - 8usize];
11783    ["Offset of field: _cef_resource_read_callback_t::base"]
11784        [::std::mem::offset_of!(_cef_resource_read_callback_t, base) - 0usize];
11785    ["Offset of field: _cef_resource_read_callback_t::cont"]
11786        [::std::mem::offset_of!(_cef_resource_read_callback_t, cont) - 40usize];
11787};
11788#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::read().\n\n NOTE: This struct is allocated DLL-side.\n"]
11789pub type cef_resource_read_callback_t = _cef_resource_read_callback_t;
11790#[doc = "\n Structure used to implement a custom request handler structure. The\n functions of this structure will be called on the IO thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
11791#[repr(C)]
11792#[derive(Debug, Copy, Clone)]
11793pub struct _cef_resource_handler_t {
11794    #[doc = "\n Base structure.\n"]
11795    pub base: cef_base_ref_counted_t,
11796    #[doc = "\n Open the response stream. To handle the request immediately set\n |handle_request| to true (1) and return true (1). To decide at a later\n time set |handle_request| to false (0), return true (1), and execute\n |callback| to continue or cancel the request. To cancel the request\n immediately set |handle_request| to true (1) and return false (0). This\n function will be called in sequence but not from a dedicated thread. For\n backwards compatibility set |handle_request| to false (0) and return false\n (0) and the ProcessRequest function will be called.\n"]
11797    pub open: ::std::option::Option<
11798        unsafe extern "C" fn(
11799            self_: *mut _cef_resource_handler_t,
11800            request: *mut _cef_request_t,
11801            handle_request: *mut ::std::os::raw::c_int,
11802            callback: *mut _cef_callback_t,
11803        ) -> ::std::os::raw::c_int,
11804    >,
11805    #[doc = "\n Begin processing the request. To handle the request return true (1) and\n call cef_callback_t::cont() once the response header information is\n available (cef_callback_t::cont() can also be called from inside this\n function if header information is available immediately). To cancel the\n request return false (0).\n\n WARNING: This function is deprecated. Use Open instead.\n"]
11806    pub process_request: ::std::option::Option<
11807        unsafe extern "C" fn(
11808            self_: *mut _cef_resource_handler_t,
11809            request: *mut _cef_request_t,
11810            callback: *mut _cef_callback_t,
11811        ) -> ::std::os::raw::c_int,
11812    >,
11813    #[doc = "\n Retrieve response header information. If the response length is not known\n set |response_length| to -1 and read_response() will be called until it\n returns false (0). If the response length is known set |response_length|\n to a positive value and read_response() will be called until it returns\n false (0) or the specified number of bytes have been read. Use the\n |response| object to set the mime type, http status code and other\n optional header values. To redirect the request to a new URL set\n |redirectUrl| to the new URL. |redirectUrl| can be either a relative or\n fully qualified URL. It is also possible to set |response| to a redirect\n http status code and pass the new URL via a Location header. Likewise with\n |redirectUrl| it is valid to set a relative or fully qualified URL as the\n Location header value. If an error occured while setting up the request\n you can call set_error() on |response| to indicate the error condition.\n"]
11814    pub get_response_headers: ::std::option::Option<
11815        unsafe extern "C" fn(
11816            self_: *mut _cef_resource_handler_t,
11817            response: *mut _cef_response_t,
11818            response_length: *mut i64,
11819            redirectUrl: *mut cef_string_t,
11820        ),
11821    >,
11822    #[doc = "\n Skip response data when requested by a Range header. Skip over and discard\n |bytes_to_skip| bytes of response data. If data is available immediately\n set |bytes_skipped| to the number of bytes skipped and return true (1). To\n read the data at a later time set |bytes_skipped| to 0, return true (1)\n and execute |callback| when the data is available. To indicate failure set\n |bytes_skipped| to < 0 (e.g. -2 for ERR_FAILED) and return false (0). This\n function will be called in sequence but not from a dedicated thread.\n"]
11823    pub skip: ::std::option::Option<
11824        unsafe extern "C" fn(
11825            self_: *mut _cef_resource_handler_t,
11826            bytes_to_skip: i64,
11827            bytes_skipped: *mut i64,
11828            callback: *mut _cef_resource_skip_callback_t,
11829        ) -> ::std::os::raw::c_int,
11830    >,
11831    #[doc = "\n Read response data. If data is available immediately copy up to\n |bytes_to_read| bytes into |data_out|, set |bytes_read| to the number of\n bytes copied, and return true (1). To read the data at a later time keep a\n pointer to |data_out|, set |bytes_read| to 0, return true (1) and execute\n |callback| when the data is available (|data_out| will remain valid until\n the callback is executed). To indicate response completion set\n |bytes_read| to 0 and return false (0). To indicate failure set\n |bytes_read| to < 0 (e.g. -2 for ERR_FAILED) and return false (0). This\n function will be called in sequence but not from a dedicated thread. For\n backwards compatibility set |bytes_read| to -1 and return false (0) and\n the ReadResponse function will be called.\n"]
11832    pub read: ::std::option::Option<
11833        unsafe extern "C" fn(
11834            self_: *mut _cef_resource_handler_t,
11835            data_out: *mut ::std::os::raw::c_void,
11836            bytes_to_read: ::std::os::raw::c_int,
11837            bytes_read: *mut ::std::os::raw::c_int,
11838            callback: *mut _cef_resource_read_callback_t,
11839        ) -> ::std::os::raw::c_int,
11840    >,
11841    #[doc = "\n Read response data. If data is available immediately copy up to\n |bytes_to_read| bytes into |data_out|, set |bytes_read| to the number of\n bytes copied, and return true (1). To read the data at a later time set\n |bytes_read| to 0, return true (1) and call cef_callback_t::cont() when\n the data is available. To indicate response completion return false (0).\n\n WARNING: This function is deprecated. Use Skip and Read instead.\n"]
11842    pub read_response: ::std::option::Option<
11843        unsafe extern "C" fn(
11844            self_: *mut _cef_resource_handler_t,
11845            data_out: *mut ::std::os::raw::c_void,
11846            bytes_to_read: ::std::os::raw::c_int,
11847            bytes_read: *mut ::std::os::raw::c_int,
11848            callback: *mut _cef_callback_t,
11849        ) -> ::std::os::raw::c_int,
11850    >,
11851    #[doc = "\n Request processing has been canceled.\n"]
11852    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_resource_handler_t)>,
11853}
11854#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11855const _: () = {
11856    ["Size of _cef_resource_handler_t"][::std::mem::size_of::<_cef_resource_handler_t>() - 96usize];
11857    ["Alignment of _cef_resource_handler_t"]
11858        [::std::mem::align_of::<_cef_resource_handler_t>() - 8usize];
11859    ["Offset of field: _cef_resource_handler_t::base"]
11860        [::std::mem::offset_of!(_cef_resource_handler_t, base) - 0usize];
11861    ["Offset of field: _cef_resource_handler_t::open"]
11862        [::std::mem::offset_of!(_cef_resource_handler_t, open) - 40usize];
11863    ["Offset of field: _cef_resource_handler_t::process_request"]
11864        [::std::mem::offset_of!(_cef_resource_handler_t, process_request) - 48usize];
11865    ["Offset of field: _cef_resource_handler_t::get_response_headers"]
11866        [::std::mem::offset_of!(_cef_resource_handler_t, get_response_headers) - 56usize];
11867    ["Offset of field: _cef_resource_handler_t::skip"]
11868        [::std::mem::offset_of!(_cef_resource_handler_t, skip) - 64usize];
11869    ["Offset of field: _cef_resource_handler_t::read"]
11870        [::std::mem::offset_of!(_cef_resource_handler_t, read) - 72usize];
11871    ["Offset of field: _cef_resource_handler_t::read_response"]
11872        [::std::mem::offset_of!(_cef_resource_handler_t, read_response) - 80usize];
11873    ["Offset of field: _cef_resource_handler_t::cancel"]
11874        [::std::mem::offset_of!(_cef_resource_handler_t, cancel) - 88usize];
11875};
11876#[doc = "\n Structure used to implement a custom request handler structure. The\n functions of this structure will be called on the IO thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
11877pub type cef_resource_handler_t = _cef_resource_handler_t;
11878#[doc = "\n Implement this structure to filter resource response content. The functions\n of this structure will be called on the browser process IO thread.\n\n NOTE: This struct is allocated client-side.\n"]
11879#[repr(C)]
11880#[derive(Debug, Copy, Clone)]
11881pub struct _cef_response_filter_t {
11882    #[doc = "\n Base structure.\n"]
11883    pub base: cef_base_ref_counted_t,
11884    #[doc = "\n Initialize the response filter. Will only be called a single time. The\n filter will not be installed if this function returns false (0).\n"]
11885    pub init_filter: ::std::option::Option<
11886        unsafe extern "C" fn(self_: *mut _cef_response_filter_t) -> ::std::os::raw::c_int,
11887    >,
11888    #[doc = "\n Called to filter a chunk of data. Expected usage is as follows:\n\n  1. Read input data from |data_in| and set |data_in_read| to the number of\n     bytes that were read up to a maximum of |data_in_size|. |data_in| will\n     be NULL if |data_in_size| is zero.\n  2. Write filtered output data to |data_out| and set |data_out_written| to\n     the number of bytes that were written up to a maximum of\n     |data_out_size|. If no output data was written then all data must be\n     read from |data_in| (user must set |data_in_read| = |data_in_size|).\n  3. Return RESPONSE_FILTER_DONE if all output data was written or\n     RESPONSE_FILTER_NEED_MORE_DATA if output data is still pending.\n\n This function will be called repeatedly until the input buffer has been\n fully read (user sets |data_in_read| = |data_in_size|) and there is no\n more input data to filter (the resource response is complete). This\n function may then be called an additional time with an NULL input buffer\n if the user filled the output buffer (set |data_out_written| =\n |data_out_size|) and returned RESPONSE_FILTER_NEED_MORE_DATA to indicate\n that output data is still pending.\n\n Calls to this function will stop when one of the following conditions is\n met:\n\n  1. There is no more input data to filter (the resource response is\n     complete) and the user sets |data_out_written| = 0 or returns\n     RESPONSE_FILTER_DONE to indicate that all data has been written, or;\n  2. The user returns RESPONSE_FILTER_ERROR to indicate an error.\n\n Do not keep a reference to the buffers passed to this function.\n"]
11889    pub filter: ::std::option::Option<
11890        unsafe extern "C" fn(
11891            self_: *mut _cef_response_filter_t,
11892            data_in: *mut ::std::os::raw::c_void,
11893            data_in_size: usize,
11894            data_in_read: *mut usize,
11895            data_out: *mut ::std::os::raw::c_void,
11896            data_out_size: usize,
11897            data_out_written: *mut usize,
11898        ) -> cef_response_filter_status_t,
11899    >,
11900}
11901#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11902const _: () = {
11903    ["Size of _cef_response_filter_t"][::std::mem::size_of::<_cef_response_filter_t>() - 56usize];
11904    ["Alignment of _cef_response_filter_t"]
11905        [::std::mem::align_of::<_cef_response_filter_t>() - 8usize];
11906    ["Offset of field: _cef_response_filter_t::base"]
11907        [::std::mem::offset_of!(_cef_response_filter_t, base) - 0usize];
11908    ["Offset of field: _cef_response_filter_t::init_filter"]
11909        [::std::mem::offset_of!(_cef_response_filter_t, init_filter) - 40usize];
11910    ["Offset of field: _cef_response_filter_t::filter"]
11911        [::std::mem::offset_of!(_cef_response_filter_t, filter) - 48usize];
11912};
11913#[doc = "\n Implement this structure to filter resource response content. The functions\n of this structure will be called on the browser process IO thread.\n\n NOTE: This struct is allocated client-side.\n"]
11914pub type cef_response_filter_t = _cef_response_filter_t;
11915#[doc = "\n Implement this structure to handle events related to browser requests. The\n functions of this structure will be called on the IO thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
11916#[repr(C)]
11917#[derive(Debug, Copy, Clone)]
11918pub struct _cef_resource_request_handler_t {
11919    #[doc = "\n Base structure.\n"]
11920    pub base: cef_base_ref_counted_t,
11921    #[doc = "\n Called on the IO thread before a resource request is loaded. The |browser|\n and |frame| values represent the source of the request, and may be NULL\n for requests originating from service workers or cef_urlrequest_t. To\n optionally filter cookies for the request return a\n cef_cookie_access_filter_t object. The |request| object cannot not be\n modified in this callback.\n"]
11922    pub get_cookie_access_filter: ::std::option::Option<
11923        unsafe extern "C" fn(
11924            self_: *mut _cef_resource_request_handler_t,
11925            browser: *mut _cef_browser_t,
11926            frame: *mut _cef_frame_t,
11927            request: *mut _cef_request_t,
11928        ) -> *mut _cef_cookie_access_filter_t,
11929    >,
11930    #[doc = "\n Called on the IO thread before a resource request is loaded. The |browser|\n and |frame| values represent the source of the request, and may be NULL\n for requests originating from service workers or cef_urlrequest_t. To\n redirect or change the resource load optionally modify |request|.\n Modification of the request URL will be treated as a redirect. Return\n RV_CONTINUE to continue the request immediately. Return RV_CONTINUE_ASYNC\n and call cef_callback_t functions at a later time to continue or cancel\n the request asynchronously. Return RV_CANCEL to cancel the request\n immediately.\n"]
11931    pub on_before_resource_load: ::std::option::Option<
11932        unsafe extern "C" fn(
11933            self_: *mut _cef_resource_request_handler_t,
11934            browser: *mut _cef_browser_t,
11935            frame: *mut _cef_frame_t,
11936            request: *mut _cef_request_t,
11937            callback: *mut _cef_callback_t,
11938        ) -> cef_return_value_t,
11939    >,
11940    #[doc = "\n Called on the IO thread before a resource is loaded. The |browser| and\n |frame| values represent the source of the request, and may be NULL for\n requests originating from service workers or cef_urlrequest_t. To allow\n the resource to load using the default network loader return NULL. To\n specify a handler for the resource return a cef_resource_handler_t object.\n The |request| object cannot not be modified in this callback.\n"]
11941    pub get_resource_handler: ::std::option::Option<
11942        unsafe extern "C" fn(
11943            self_: *mut _cef_resource_request_handler_t,
11944            browser: *mut _cef_browser_t,
11945            frame: *mut _cef_frame_t,
11946            request: *mut _cef_request_t,
11947        ) -> *mut _cef_resource_handler_t,
11948    >,
11949    #[doc = "\n Called on the IO thread when a resource load is redirected. The |browser|\n and |frame| values represent the source of the request, and may be NULL\n for requests originating from service workers or cef_urlrequest_t. The\n |request| parameter will contain the old URL and other request-related\n information. The |response| parameter will contain the response that\n resulted in the redirect. The |new_url| parameter will contain the new URL\n and can be changed if desired. The |request| and |response| objects cannot\n be modified in this callback.\n"]
11950    pub on_resource_redirect: ::std::option::Option<
11951        unsafe extern "C" fn(
11952            self_: *mut _cef_resource_request_handler_t,
11953            browser: *mut _cef_browser_t,
11954            frame: *mut _cef_frame_t,
11955            request: *mut _cef_request_t,
11956            response: *mut _cef_response_t,
11957            new_url: *mut cef_string_t,
11958        ),
11959    >,
11960    #[doc = "\n Called on the IO thread when a resource response is received. The\n |browser| and |frame| values represent the source of the request, and may\n be NULL for requests originating from service workers or cef_urlrequest_t.\n To allow the resource load to proceed without modification return false\n (0). To redirect or retry the resource load optionally modify |request|\n and return true (1). Modification of the request URL will be treated as a\n redirect. Requests handled using the default network loader cannot be\n redirected in this callback. The |response| object cannot be modified in\n this callback.\n\n WARNING: Redirecting using this function is deprecated. Use\n OnBeforeResourceLoad or GetResourceHandler to perform redirects.\n"]
11961    pub on_resource_response: ::std::option::Option<
11962        unsafe extern "C" fn(
11963            self_: *mut _cef_resource_request_handler_t,
11964            browser: *mut _cef_browser_t,
11965            frame: *mut _cef_frame_t,
11966            request: *mut _cef_request_t,
11967            response: *mut _cef_response_t,
11968        ) -> ::std::os::raw::c_int,
11969    >,
11970    #[doc = "\n Called on the IO thread to optionally filter resource response content.\n The |browser| and |frame| values represent the source of the request, and\n may be NULL for requests originating from service workers or\n cef_urlrequest_t. |request| and |response| represent the request and\n response respectively and cannot be modified in this callback.\n"]
11971    pub get_resource_response_filter: ::std::option::Option<
11972        unsafe extern "C" fn(
11973            self_: *mut _cef_resource_request_handler_t,
11974            browser: *mut _cef_browser_t,
11975            frame: *mut _cef_frame_t,
11976            request: *mut _cef_request_t,
11977            response: *mut _cef_response_t,
11978        ) -> *mut _cef_response_filter_t,
11979    >,
11980    #[doc = "\n Called on the IO thread when a resource load has completed. The |browser|\n and |frame| values represent the source of the request, and may be NULL\n for requests originating from service workers or cef_urlrequest_t.\n |request| and |response| represent the request and response respectively\n and cannot be modified in this callback. |status| indicates the load\n completion status. |received_content_length| is the number of response\n bytes actually read. This function will be called for all requests,\n including requests that are aborted due to CEF shutdown or destruction of\n the associated browser. In cases where the associated browser is destroyed\n this callback may arrive after the cef_life_span_handler_t::OnBeforeClose\n callback for that browser. The cef_frame_t::IsValid function can be used\n to test for this situation, and care should be taken not to call |browser|\n or |frame| functions that modify state (like LoadURL, SendProcessMessage,\n etc.) if the frame is invalid.\n"]
11981    pub on_resource_load_complete: ::std::option::Option<
11982        unsafe extern "C" fn(
11983            self_: *mut _cef_resource_request_handler_t,
11984            browser: *mut _cef_browser_t,
11985            frame: *mut _cef_frame_t,
11986            request: *mut _cef_request_t,
11987            response: *mut _cef_response_t,
11988            status: cef_urlrequest_status_t,
11989            received_content_length: i64,
11990        ),
11991    >,
11992    #[doc = "\n Called on the IO thread to handle requests for URLs with an unknown\n protocol component. The |browser| and |frame| values represent the source\n of the request, and may be NULL for requests originating from service\n workers or cef_urlrequest_t. |request| cannot be modified in this\n callback. Set |allow_os_execution| to true (1) to attempt execution via\n the registered OS protocol handler, if any. SECURITY WARNING: YOU SHOULD\n USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR OTHER URL\n ANALYSIS BEFORE ALLOWING OS EXECUTION.\n"]
11993    pub on_protocol_execution: ::std::option::Option<
11994        unsafe extern "C" fn(
11995            self_: *mut _cef_resource_request_handler_t,
11996            browser: *mut _cef_browser_t,
11997            frame: *mut _cef_frame_t,
11998            request: *mut _cef_request_t,
11999            allow_os_execution: *mut ::std::os::raw::c_int,
12000        ),
12001    >,
12002}
12003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12004const _: () = {
12005    ["Size of _cef_resource_request_handler_t"]
12006        [::std::mem::size_of::<_cef_resource_request_handler_t>() - 104usize];
12007    ["Alignment of _cef_resource_request_handler_t"]
12008        [::std::mem::align_of::<_cef_resource_request_handler_t>() - 8usize];
12009    ["Offset of field: _cef_resource_request_handler_t::base"]
12010        [::std::mem::offset_of!(_cef_resource_request_handler_t, base) - 0usize];
12011    ["Offset of field: _cef_resource_request_handler_t::get_cookie_access_filter"][::std::mem::offset_of!(
12012        _cef_resource_request_handler_t,
12013        get_cookie_access_filter
12014    ) - 40usize];
12015    ["Offset of field: _cef_resource_request_handler_t::on_before_resource_load"][::std::mem::offset_of!(
12016        _cef_resource_request_handler_t,
12017        on_before_resource_load
12018    ) - 48usize];
12019    ["Offset of field: _cef_resource_request_handler_t::get_resource_handler"]
12020        [::std::mem::offset_of!(_cef_resource_request_handler_t, get_resource_handler) - 56usize];
12021    ["Offset of field: _cef_resource_request_handler_t::on_resource_redirect"]
12022        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_resource_redirect) - 64usize];
12023    ["Offset of field: _cef_resource_request_handler_t::on_resource_response"]
12024        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_resource_response) - 72usize];
12025    ["Offset of field: _cef_resource_request_handler_t::get_resource_response_filter"][::std::mem::offset_of!(
12026        _cef_resource_request_handler_t,
12027        get_resource_response_filter
12028    ) - 80usize];
12029    ["Offset of field: _cef_resource_request_handler_t::on_resource_load_complete"][::std::mem::offset_of!(
12030        _cef_resource_request_handler_t,
12031        on_resource_load_complete
12032    ) - 88usize];
12033    ["Offset of field: _cef_resource_request_handler_t::on_protocol_execution"]
12034        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_protocol_execution) - 96usize];
12035};
12036#[doc = "\n Implement this structure to handle events related to browser requests. The\n functions of this structure will be called on the IO thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12037pub type cef_resource_request_handler_t = _cef_resource_request_handler_t;
12038#[doc = "\n Implement this structure to filter cookies that may be sent or received from\n resource requests. The functions of this structure will be called on the IO\n thread unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12039#[repr(C)]
12040#[derive(Debug, Copy, Clone)]
12041pub struct _cef_cookie_access_filter_t {
12042    #[doc = "\n Base structure.\n"]
12043    pub base: cef_base_ref_counted_t,
12044    #[doc = "\n Called on the IO thread before a resource request is sent. The |browser|\n and |frame| values represent the source of the request, and may be NULL\n for requests originating from service workers or cef_urlrequest_t.\n |request| cannot be modified in this callback. Return true (1) if the\n specified cookie can be sent with the request or false (0) otherwise.\n"]
12045    pub can_send_cookie: ::std::option::Option<
12046        unsafe extern "C" fn(
12047            self_: *mut _cef_cookie_access_filter_t,
12048            browser: *mut _cef_browser_t,
12049            frame: *mut _cef_frame_t,
12050            request: *mut _cef_request_t,
12051            cookie: *const _cef_cookie_t,
12052        ) -> ::std::os::raw::c_int,
12053    >,
12054    #[doc = "\n Called on the IO thread after a resource response is received. The\n |browser| and |frame| values represent the source of the request, and may\n be NULL for requests originating from service workers or cef_urlrequest_t.\n |request| cannot be modified in this callback. Return true (1) if the\n specified cookie returned with the response can be saved or false (0)\n otherwise.\n"]
12055    pub can_save_cookie: ::std::option::Option<
12056        unsafe extern "C" fn(
12057            self_: *mut _cef_cookie_access_filter_t,
12058            browser: *mut _cef_browser_t,
12059            frame: *mut _cef_frame_t,
12060            request: *mut _cef_request_t,
12061            response: *mut _cef_response_t,
12062            cookie: *const _cef_cookie_t,
12063        ) -> ::std::os::raw::c_int,
12064    >,
12065}
12066#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12067const _: () = {
12068    ["Size of _cef_cookie_access_filter_t"]
12069        [::std::mem::size_of::<_cef_cookie_access_filter_t>() - 56usize];
12070    ["Alignment of _cef_cookie_access_filter_t"]
12071        [::std::mem::align_of::<_cef_cookie_access_filter_t>() - 8usize];
12072    ["Offset of field: _cef_cookie_access_filter_t::base"]
12073        [::std::mem::offset_of!(_cef_cookie_access_filter_t, base) - 0usize];
12074    ["Offset of field: _cef_cookie_access_filter_t::can_send_cookie"]
12075        [::std::mem::offset_of!(_cef_cookie_access_filter_t, can_send_cookie) - 40usize];
12076    ["Offset of field: _cef_cookie_access_filter_t::can_save_cookie"]
12077        [::std::mem::offset_of!(_cef_cookie_access_filter_t, can_save_cookie) - 48usize];
12078};
12079#[doc = "\n Implement this structure to filter cookies that may be sent or received from\n resource requests. The functions of this structure will be called on the IO\n thread unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12080pub type cef_cookie_access_filter_t = _cef_cookie_access_filter_t;
12081#[doc = "\n Structure representing SSL information.\n\n NOTE: This struct is allocated DLL-side.\n"]
12082#[repr(C)]
12083#[derive(Debug, Copy, Clone)]
12084pub struct _cef_sslinfo_t {
12085    #[doc = "\n Base structure.\n"]
12086    pub base: cef_base_ref_counted_t,
12087    #[doc = "\n Returns a bitmask containing any and all problems verifying the server\n certificate.\n"]
12088    pub get_cert_status: ::std::option::Option<
12089        unsafe extern "C" fn(self_: *mut _cef_sslinfo_t) -> cef_cert_status_t,
12090    >,
12091    #[doc = "\n Returns the X.509 certificate.\n"]
12092    pub get_x509_certificate: ::std::option::Option<
12093        unsafe extern "C" fn(self_: *mut _cef_sslinfo_t) -> *mut _cef_x509_certificate_t,
12094    >,
12095}
12096#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12097const _: () = {
12098    ["Size of _cef_sslinfo_t"][::std::mem::size_of::<_cef_sslinfo_t>() - 56usize];
12099    ["Alignment of _cef_sslinfo_t"][::std::mem::align_of::<_cef_sslinfo_t>() - 8usize];
12100    ["Offset of field: _cef_sslinfo_t::base"]
12101        [::std::mem::offset_of!(_cef_sslinfo_t, base) - 0usize];
12102    ["Offset of field: _cef_sslinfo_t::get_cert_status"]
12103        [::std::mem::offset_of!(_cef_sslinfo_t, get_cert_status) - 40usize];
12104    ["Offset of field: _cef_sslinfo_t::get_x509_certificate"]
12105        [::std::mem::offset_of!(_cef_sslinfo_t, get_x509_certificate) - 48usize];
12106};
12107#[doc = "\n Structure representing SSL information.\n\n NOTE: This struct is allocated DLL-side.\n"]
12108pub type cef_sslinfo_t = _cef_sslinfo_t;
12109unsafe extern "C" {
12110    #[doc = "\n Returns true (1) if the certificate status represents an error.\n"]
12111    pub fn cef_is_cert_status_error(status: cef_cert_status_t) -> ::std::os::raw::c_int;
12112}
12113#[doc = "\n Callback structure for asynchronous handling of an unresponsive process.\n\n NOTE: This struct is allocated DLL-side.\n"]
12114#[repr(C)]
12115#[derive(Debug, Copy, Clone)]
12116pub struct _cef_unresponsive_process_callback_t {
12117    #[doc = "\n Base structure.\n"]
12118    pub base: cef_base_ref_counted_t,
12119    #[doc = "\n Reset the timeout for the unresponsive process.\n"]
12120    pub wait: ::std::option::Option<
12121        unsafe extern "C" fn(self_: *mut _cef_unresponsive_process_callback_t),
12122    >,
12123    #[doc = "\n Terminate the unresponsive process.\n"]
12124    pub terminate: ::std::option::Option<
12125        unsafe extern "C" fn(self_: *mut _cef_unresponsive_process_callback_t),
12126    >,
12127}
12128#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12129const _: () = {
12130    ["Size of _cef_unresponsive_process_callback_t"]
12131        [::std::mem::size_of::<_cef_unresponsive_process_callback_t>() - 56usize];
12132    ["Alignment of _cef_unresponsive_process_callback_t"]
12133        [::std::mem::align_of::<_cef_unresponsive_process_callback_t>() - 8usize];
12134    ["Offset of field: _cef_unresponsive_process_callback_t::base"]
12135        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, base) - 0usize];
12136    ["Offset of field: _cef_unresponsive_process_callback_t::wait"]
12137        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, wait) - 40usize];
12138    ["Offset of field: _cef_unresponsive_process_callback_t::terminate"]
12139        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, terminate) - 48usize];
12140};
12141#[doc = "\n Callback structure for asynchronous handling of an unresponsive process.\n\n NOTE: This struct is allocated DLL-side.\n"]
12142pub type cef_unresponsive_process_callback_t = _cef_unresponsive_process_callback_t;
12143#[doc = "\n Callback structure used to select a client certificate for authentication.\n\n NOTE: This struct is allocated DLL-side.\n"]
12144#[repr(C)]
12145#[derive(Debug, Copy, Clone)]
12146pub struct _cef_select_client_certificate_callback_t {
12147    #[doc = "\n Base structure.\n"]
12148    pub base: cef_base_ref_counted_t,
12149    #[doc = "\n Chooses the specified certificate for client certificate authentication.\n NULL value means that no client certificate should be used.\n"]
12150    pub select: ::std::option::Option<
12151        unsafe extern "C" fn(
12152            self_: *mut _cef_select_client_certificate_callback_t,
12153            cert: *mut _cef_x509_certificate_t,
12154        ),
12155    >,
12156}
12157#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12158const _: () = {
12159    ["Size of _cef_select_client_certificate_callback_t"]
12160        [::std::mem::size_of::<_cef_select_client_certificate_callback_t>() - 48usize];
12161    ["Alignment of _cef_select_client_certificate_callback_t"]
12162        [::std::mem::align_of::<_cef_select_client_certificate_callback_t>() - 8usize];
12163    ["Offset of field: _cef_select_client_certificate_callback_t::base"]
12164        [::std::mem::offset_of!(_cef_select_client_certificate_callback_t, base) - 0usize];
12165    ["Offset of field: _cef_select_client_certificate_callback_t::select"]
12166        [::std::mem::offset_of!(_cef_select_client_certificate_callback_t, select) - 40usize];
12167};
12168#[doc = "\n Callback structure used to select a client certificate for authentication.\n\n NOTE: This struct is allocated DLL-side.\n"]
12169pub type cef_select_client_certificate_callback_t = _cef_select_client_certificate_callback_t;
12170#[doc = "\n Implement this structure to handle events related to browser requests. The\n functions of this structure will be called on the thread indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12171#[repr(C)]
12172#[derive(Debug, Copy, Clone)]
12173pub struct _cef_request_handler_t {
12174    #[doc = "\n Base structure.\n"]
12175    pub base: cef_base_ref_counted_t,
12176    #[doc = "\n Called on the UI thread before browser navigation. Return true (1) to\n cancel the navigation or false (0) to allow the navigation to proceed. The\n |request| object cannot be modified in this callback.\n cef_load_handler_t::OnLoadingStateChange will be called twice in all\n cases. If the navigation is allowed cef_load_handler_t::OnLoadStart and\n cef_load_handler_t::OnLoadEnd will be called. If the navigation is\n canceled cef_load_handler_t::OnLoadError will be called with an\n |errorCode| value of ERR_ABORTED. The |user_gesture| value will be true\n (1) if the browser navigated via explicit user gesture (e.g. clicking a\n link) or false (0) if it navigated automatically (e.g. via the\n DomContentLoaded event).\n"]
12177    pub on_before_browse: ::std::option::Option<
12178        unsafe extern "C" fn(
12179            self_: *mut _cef_request_handler_t,
12180            browser: *mut _cef_browser_t,
12181            frame: *mut _cef_frame_t,
12182            request: *mut _cef_request_t,
12183            user_gesture: ::std::os::raw::c_int,
12184            is_redirect: ::std::os::raw::c_int,
12185        ) -> ::std::os::raw::c_int,
12186    >,
12187    #[doc = "\n Called on the UI thread before OnBeforeBrowse in certain limited cases\n where navigating a new or different browser might be desirable. This\n includes user-initiated navigation that might open in a special way (e.g.\n links clicked via middle-click or ctrl + left-click) and certain types of\n cross-origin navigation initiated from the renderer process (e.g.\n navigating the top-level frame to/from a file URL). The |browser| and\n |frame| values represent the source of the navigation. The\n |target_disposition| value indicates where the user intended to navigate\n the browser based on standard Chromium behaviors (e.g. current tab, new\n tab, etc). The |user_gesture| value will be true (1) if the browser\n navigated via explicit user gesture (e.g. clicking a link) or false (0) if\n it navigated automatically (e.g. via the DomContentLoaded event). Return\n true (1) to cancel the navigation or false (0) to allow the navigation to\n proceed in the source browser's top-level frame.\n"]
12188    pub on_open_urlfrom_tab: ::std::option::Option<
12189        unsafe extern "C" fn(
12190            self_: *mut _cef_request_handler_t,
12191            browser: *mut _cef_browser_t,
12192            frame: *mut _cef_frame_t,
12193            target_url: *const cef_string_t,
12194            target_disposition: cef_window_open_disposition_t,
12195            user_gesture: ::std::os::raw::c_int,
12196        ) -> ::std::os::raw::c_int,
12197    >,
12198    #[doc = "\n Called on the browser process IO thread before a resource request is\n initiated. The |browser| and |frame| values represent the source of the\n request. |request| represents the request contents and cannot be modified\n in this callback. |is_navigation| will be true (1) if the resource request\n is a navigation. |is_download| will be true (1) if the resource request is\n a download. |request_initiator| is the origin (scheme + domain) of the\n page that initiated the request. Set |disable_default_handling| to true\n (1) to disable default handling of the request, in which case it will need\n to be handled via cef_resource_request_handler_t::GetResourceHandler or it\n will be canceled. To allow the resource load to proceed with default\n handling return NULL. To specify a handler for the resource return a\n cef_resource_request_handler_t object. If this callback returns NULL the\n same function will be called on the associated\n cef_request_context_handler_t, if any.\n"]
12199    pub get_resource_request_handler: ::std::option::Option<
12200        unsafe extern "C" fn(
12201            self_: *mut _cef_request_handler_t,
12202            browser: *mut _cef_browser_t,
12203            frame: *mut _cef_frame_t,
12204            request: *mut _cef_request_t,
12205            is_navigation: ::std::os::raw::c_int,
12206            is_download: ::std::os::raw::c_int,
12207            request_initiator: *const cef_string_t,
12208            disable_default_handling: *mut ::std::os::raw::c_int,
12209        ) -> *mut _cef_resource_request_handler_t,
12210    >,
12211    #[doc = "\n Called on the IO thread when the browser needs credentials from the user.\n |origin_url| is the origin making this authentication request. |isProxy|\n indicates whether the host is a proxy server. |host| contains the hostname\n and |port| contains the port number. |realm| is the realm of the challenge\n and may be NULL. |scheme| is the authentication scheme used, such as\n \"basic\" or \"digest\", and will be NULL if the source of the request is an\n FTP server. Return true (1) to continue the request and call\n cef_auth_callback_t::cont() either in this function or at a later time\n when the authentication information is available. Return false (0) to\n cancel the request immediately.\n"]
12212    pub get_auth_credentials: ::std::option::Option<
12213        unsafe extern "C" fn(
12214            self_: *mut _cef_request_handler_t,
12215            browser: *mut _cef_browser_t,
12216            origin_url: *const cef_string_t,
12217            isProxy: ::std::os::raw::c_int,
12218            host: *const cef_string_t,
12219            port: ::std::os::raw::c_int,
12220            realm: *const cef_string_t,
12221            scheme: *const cef_string_t,
12222            callback: *mut _cef_auth_callback_t,
12223        ) -> ::std::os::raw::c_int,
12224    >,
12225    #[doc = "\n Called on the UI thread to handle requests for URLs with an invalid SSL\n certificate. Return true (1) and call cef_callback_t functions either in\n this function or at a later time to continue or cancel the request. Return\n false (0) to cancel the request immediately. If\n cef_settings_t.ignore_certificate_errors is set all invalid certificates\n will be accepted without calling this function.\n"]
12226    pub on_certificate_error: ::std::option::Option<
12227        unsafe extern "C" fn(
12228            self_: *mut _cef_request_handler_t,
12229            browser: *mut _cef_browser_t,
12230            cert_error: cef_errorcode_t,
12231            request_url: *const cef_string_t,
12232            ssl_info: *mut _cef_sslinfo_t,
12233            callback: *mut _cef_callback_t,
12234        ) -> ::std::os::raw::c_int,
12235    >,
12236    #[doc = "\n Called on the UI thread when a client certificate is being requested for\n authentication. Return false (0) to use the default behavior.  If the\n |certificates| list is not NULL the default behavior will be to display a\n dialog for certificate selection. If the |certificates| list is NULL then\n the default behavior will be not to show a dialog and it will continue\n without using any certificate. Return true (1) and call\n cef_select_client_certificate_callback_t::Select either in this function\n or at a later time to select a certificate. Do not call Select or call it\n with NULL to continue without using any certificate. |isProxy| indicates\n whether the host is an HTTPS proxy or the origin server. |host| and |port|\n contains the hostname and port of the SSL server. |certificates| is the\n list of certificates to choose from; this list has already been pruned by\n Chromium so that it only contains certificates from issuers that the\n server trusts.\n"]
12237    pub on_select_client_certificate: ::std::option::Option<
12238        unsafe extern "C" fn(
12239            self_: *mut _cef_request_handler_t,
12240            browser: *mut _cef_browser_t,
12241            isProxy: ::std::os::raw::c_int,
12242            host: *const cef_string_t,
12243            port: ::std::os::raw::c_int,
12244            certificatesCount: usize,
12245            certificates: *const *mut _cef_x509_certificate_t,
12246            callback: *mut _cef_select_client_certificate_callback_t,
12247        ) -> ::std::os::raw::c_int,
12248    >,
12249    #[doc = "\n Called on the browser process UI thread when the render view associated\n with |browser| is ready to receive/handle IPC messages in the render\n process.\n"]
12250    pub on_render_view_ready: ::std::option::Option<
12251        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
12252    >,
12253    #[doc = "\n Called on the browser process UI thread when the render process is\n unresponsive as indicated by a lack of input event processing for at least\n 15 seconds. Return false (0) for the default behavior which is to continue\n waiting with Alloy style or display of the \"Page unresponsive\" dialog with\n Chrome style. Return true (1) and don't execute the callback to continue\n waiting without display of the Chrome style dialog. Return true (1) and\n call cef_unresponsive_process_callback_t::Wait either in this function or\n at a later time to reset the wait timer. In cases where you continue\n waiting there may be another call to this function if the process remains\n unresponsive. Return true (1) and call\n cef_unresponsive_process_callback_t::Terminate either in this function or\n at a later time to terminate the unresponsive process, resulting in a call\n to OnRenderProcessTerminated. OnRenderProcessResponsive will be called if\n the process becomes responsive after this function is called. This\n functionality depends on the hang monitor which can be disabled by passing\n the `--disable-hang-monitor` command-line flag.\n"]
12254    pub on_render_process_unresponsive: ::std::option::Option<
12255        unsafe extern "C" fn(
12256            self_: *mut _cef_request_handler_t,
12257            browser: *mut _cef_browser_t,
12258            callback: *mut _cef_unresponsive_process_callback_t,
12259        ) -> ::std::os::raw::c_int,
12260    >,
12261    #[doc = "\n Called on the browser process UI thread when the render process becomes\n responsive after previously being unresponsive. See documentation on\n OnRenderProcessUnresponsive.\n"]
12262    pub on_render_process_responsive: ::std::option::Option<
12263        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
12264    >,
12265    #[doc = "\n Called on the browser process UI thread when the render process terminates\n unexpectedly. |status| indicates how the process terminated. |error_code|\n and |error_string| represent the error that would be displayed in Chrome's\n \"Aw, Snap!\" view. Possible |error_code| values include cef_resultcode_t\n non-normal exit values and platform-specific crash values (for example, a\n Posix signal or Windows hardware exception).\n"]
12266    pub on_render_process_terminated: ::std::option::Option<
12267        unsafe extern "C" fn(
12268            self_: *mut _cef_request_handler_t,
12269            browser: *mut _cef_browser_t,
12270            status: cef_termination_status_t,
12271            error_code: ::std::os::raw::c_int,
12272            error_string: *const cef_string_t,
12273        ),
12274    >,
12275    #[doc = "\n Called on the browser process UI thread when the window.document object of\n the main frame has been created.\n"]
12276    pub on_document_available_in_main_frame: ::std::option::Option<
12277        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
12278    >,
12279}
12280#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12281const _: () = {
12282    ["Size of _cef_request_handler_t"][::std::mem::size_of::<_cef_request_handler_t>() - 128usize];
12283    ["Alignment of _cef_request_handler_t"]
12284        [::std::mem::align_of::<_cef_request_handler_t>() - 8usize];
12285    ["Offset of field: _cef_request_handler_t::base"]
12286        [::std::mem::offset_of!(_cef_request_handler_t, base) - 0usize];
12287    ["Offset of field: _cef_request_handler_t::on_before_browse"]
12288        [::std::mem::offset_of!(_cef_request_handler_t, on_before_browse) - 40usize];
12289    ["Offset of field: _cef_request_handler_t::on_open_urlfrom_tab"]
12290        [::std::mem::offset_of!(_cef_request_handler_t, on_open_urlfrom_tab) - 48usize];
12291    ["Offset of field: _cef_request_handler_t::get_resource_request_handler"]
12292        [::std::mem::offset_of!(_cef_request_handler_t, get_resource_request_handler) - 56usize];
12293    ["Offset of field: _cef_request_handler_t::get_auth_credentials"]
12294        [::std::mem::offset_of!(_cef_request_handler_t, get_auth_credentials) - 64usize];
12295    ["Offset of field: _cef_request_handler_t::on_certificate_error"]
12296        [::std::mem::offset_of!(_cef_request_handler_t, on_certificate_error) - 72usize];
12297    ["Offset of field: _cef_request_handler_t::on_select_client_certificate"]
12298        [::std::mem::offset_of!(_cef_request_handler_t, on_select_client_certificate) - 80usize];
12299    ["Offset of field: _cef_request_handler_t::on_render_view_ready"]
12300        [::std::mem::offset_of!(_cef_request_handler_t, on_render_view_ready) - 88usize];
12301    ["Offset of field: _cef_request_handler_t::on_render_process_unresponsive"]
12302        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_unresponsive) - 96usize];
12303    ["Offset of field: _cef_request_handler_t::on_render_process_responsive"]
12304        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_responsive) - 104usize];
12305    ["Offset of field: _cef_request_handler_t::on_render_process_terminated"]
12306        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_terminated) - 112usize];
12307    ["Offset of field: _cef_request_handler_t::on_document_available_in_main_frame"][::std::mem::offset_of!(
12308        _cef_request_handler_t,
12309        on_document_available_in_main_frame
12310    ) - 120usize];
12311};
12312#[doc = "\n Implement this structure to handle events related to browser requests. The\n functions of this structure will be called on the thread indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12313pub type cef_request_handler_t = _cef_request_handler_t;
12314#[doc = "\n Implement this structure to provide handler implementations.\n\n NOTE: This struct is allocated client-side.\n"]
12315#[repr(C)]
12316#[derive(Debug, Copy, Clone)]
12317pub struct _cef_client_t {
12318    #[doc = "\n Base structure.\n"]
12319    pub base: cef_base_ref_counted_t,
12320    #[doc = "\n Return the handler for audio rendering events.\n"]
12321    pub get_audio_handler: ::std::option::Option<
12322        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_audio_handler_t,
12323    >,
12324    #[doc = "\n Return the handler for commands. If no handler is provided the default\n implementation will be used.\n"]
12325    pub get_command_handler: ::std::option::Option<
12326        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_command_handler_t,
12327    >,
12328    #[doc = "\n Return the handler for context menus. If no handler is provided the\n default implementation will be used.\n"]
12329    pub get_context_menu_handler: ::std::option::Option<
12330        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_context_menu_handler_t,
12331    >,
12332    #[doc = "\n Return the handler for dialogs. If no handler is provided the default\n implementation will be used.\n"]
12333    pub get_dialog_handler: ::std::option::Option<
12334        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_dialog_handler_t,
12335    >,
12336    #[doc = "\n Return the handler for browser display state events.\n"]
12337    pub get_display_handler: ::std::option::Option<
12338        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_display_handler_t,
12339    >,
12340    #[doc = "\n Return the handler for download events. If no handler is returned\n downloads will not be allowed.\n"]
12341    pub get_download_handler: ::std::option::Option<
12342        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_download_handler_t,
12343    >,
12344    #[doc = "\n Return the handler for drag events.\n"]
12345    pub get_drag_handler: ::std::option::Option<
12346        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_drag_handler_t,
12347    >,
12348    #[doc = "\n Return the handler for find result events.\n"]
12349    pub get_find_handler: ::std::option::Option<
12350        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_find_handler_t,
12351    >,
12352    #[doc = "\n Return the handler for focus events.\n"]
12353    pub get_focus_handler: ::std::option::Option<
12354        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_focus_handler_t,
12355    >,
12356    #[doc = "\n Return the handler for events related to cef_frame_t lifespan. This\n function will be called once during cef_browser_t creation and the result\n will be cached for performance reasons.\n"]
12357    pub get_frame_handler: ::std::option::Option<
12358        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_frame_handler_t,
12359    >,
12360    #[doc = "\n Return the handler for permission requests.\n"]
12361    pub get_permission_handler: ::std::option::Option<
12362        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_permission_handler_t,
12363    >,
12364    #[doc = "\n Return the handler for JavaScript dialogs. If no handler is provided the\n default implementation will be used.\n"]
12365    pub get_jsdialog_handler: ::std::option::Option<
12366        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_jsdialog_handler_t,
12367    >,
12368    #[doc = "\n Return the handler for keyboard events.\n"]
12369    pub get_keyboard_handler: ::std::option::Option<
12370        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_keyboard_handler_t,
12371    >,
12372    #[doc = "\n Return the handler for browser life span events.\n"]
12373    pub get_life_span_handler: ::std::option::Option<
12374        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_life_span_handler_t,
12375    >,
12376    #[doc = "\n Return the handler for browser load status events.\n"]
12377    pub get_load_handler: ::std::option::Option<
12378        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_load_handler_t,
12379    >,
12380    #[doc = "\n Return the handler for printing on Linux. If a print handler is not\n provided then printing will not be supported on the Linux platform.\n"]
12381    pub get_print_handler: ::std::option::Option<
12382        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_print_handler_t,
12383    >,
12384    #[doc = "\n Return the handler for off-screen rendering events.\n"]
12385    pub get_render_handler: ::std::option::Option<
12386        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_render_handler_t,
12387    >,
12388    #[doc = "\n Return the handler for browser request events.\n"]
12389    pub get_request_handler: ::std::option::Option<
12390        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_request_handler_t,
12391    >,
12392    #[doc = "\n Called when a new message is received from a different process. Return\n true (1) if the message was handled or false (0) otherwise.  It is safe to\n keep a reference to |message| outside of this callback.\n"]
12393    pub on_process_message_received: ::std::option::Option<
12394        unsafe extern "C" fn(
12395            self_: *mut _cef_client_t,
12396            browser: *mut _cef_browser_t,
12397            frame: *mut _cef_frame_t,
12398            source_process: cef_process_id_t,
12399            message: *mut _cef_process_message_t,
12400        ) -> ::std::os::raw::c_int,
12401    >,
12402}
12403#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12404const _: () = {
12405    ["Size of _cef_client_t"][::std::mem::size_of::<_cef_client_t>() - 192usize];
12406    ["Alignment of _cef_client_t"][::std::mem::align_of::<_cef_client_t>() - 8usize];
12407    ["Offset of field: _cef_client_t::base"][::std::mem::offset_of!(_cef_client_t, base) - 0usize];
12408    ["Offset of field: _cef_client_t::get_audio_handler"]
12409        [::std::mem::offset_of!(_cef_client_t, get_audio_handler) - 40usize];
12410    ["Offset of field: _cef_client_t::get_command_handler"]
12411        [::std::mem::offset_of!(_cef_client_t, get_command_handler) - 48usize];
12412    ["Offset of field: _cef_client_t::get_context_menu_handler"]
12413        [::std::mem::offset_of!(_cef_client_t, get_context_menu_handler) - 56usize];
12414    ["Offset of field: _cef_client_t::get_dialog_handler"]
12415        [::std::mem::offset_of!(_cef_client_t, get_dialog_handler) - 64usize];
12416    ["Offset of field: _cef_client_t::get_display_handler"]
12417        [::std::mem::offset_of!(_cef_client_t, get_display_handler) - 72usize];
12418    ["Offset of field: _cef_client_t::get_download_handler"]
12419        [::std::mem::offset_of!(_cef_client_t, get_download_handler) - 80usize];
12420    ["Offset of field: _cef_client_t::get_drag_handler"]
12421        [::std::mem::offset_of!(_cef_client_t, get_drag_handler) - 88usize];
12422    ["Offset of field: _cef_client_t::get_find_handler"]
12423        [::std::mem::offset_of!(_cef_client_t, get_find_handler) - 96usize];
12424    ["Offset of field: _cef_client_t::get_focus_handler"]
12425        [::std::mem::offset_of!(_cef_client_t, get_focus_handler) - 104usize];
12426    ["Offset of field: _cef_client_t::get_frame_handler"]
12427        [::std::mem::offset_of!(_cef_client_t, get_frame_handler) - 112usize];
12428    ["Offset of field: _cef_client_t::get_permission_handler"]
12429        [::std::mem::offset_of!(_cef_client_t, get_permission_handler) - 120usize];
12430    ["Offset of field: _cef_client_t::get_jsdialog_handler"]
12431        [::std::mem::offset_of!(_cef_client_t, get_jsdialog_handler) - 128usize];
12432    ["Offset of field: _cef_client_t::get_keyboard_handler"]
12433        [::std::mem::offset_of!(_cef_client_t, get_keyboard_handler) - 136usize];
12434    ["Offset of field: _cef_client_t::get_life_span_handler"]
12435        [::std::mem::offset_of!(_cef_client_t, get_life_span_handler) - 144usize];
12436    ["Offset of field: _cef_client_t::get_load_handler"]
12437        [::std::mem::offset_of!(_cef_client_t, get_load_handler) - 152usize];
12438    ["Offset of field: _cef_client_t::get_print_handler"]
12439        [::std::mem::offset_of!(_cef_client_t, get_print_handler) - 160usize];
12440    ["Offset of field: _cef_client_t::get_render_handler"]
12441        [::std::mem::offset_of!(_cef_client_t, get_render_handler) - 168usize];
12442    ["Offset of field: _cef_client_t::get_request_handler"]
12443        [::std::mem::offset_of!(_cef_client_t, get_request_handler) - 176usize];
12444    ["Offset of field: _cef_client_t::on_process_message_received"]
12445        [::std::mem::offset_of!(_cef_client_t, on_process_message_received) - 184usize];
12446};
12447#[doc = "\n Implement this structure to provide handler implementations.\n\n NOTE: This struct is allocated client-side.\n"]
12448pub type cef_client_t = _cef_client_t;
12449#[doc = "\n Structure used to create and/or parse command line arguments. Arguments with\n \"--\", \"-\" and, on Windows, \"/\" prefixes are considered switches. Switches\n will always precede any arguments without switch prefixes. Switches can\n optionally have a value specified using the \"=\" delimiter (e.g.\n \"-switch=value\"). An argument of \"--\" will terminate switch parsing with all\n subsequent tokens, regardless of prefix, being interpreted as non-switch\n arguments. Switch names should be lowercase ASCII and will be converted to\n such if necessary. Switch values will retain the original case and UTF8\n encoding. This structure can be used before cef_initialize() is called.\n\n NOTE: This struct is allocated DLL-side.\n"]
12450#[repr(C)]
12451#[derive(Debug, Copy, Clone)]
12452pub struct _cef_command_line_t {
12453    #[doc = "\n Base structure.\n"]
12454    pub base: cef_base_ref_counted_t,
12455    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
12456    pub is_valid: ::std::option::Option<
12457        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12458    >,
12459    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
12460    pub is_read_only: ::std::option::Option<
12461        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12462    >,
12463    #[doc = "\n Returns a writable copy of this object.\n"]
12464    pub copy: ::std::option::Option<
12465        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> *mut _cef_command_line_t,
12466    >,
12467    #[doc = "\n Initialize the command line with the specified |argc| and |argv| values.\n The first argument must be the name of the program. This function is only\n supported on non-Windows platforms.\n"]
12468    pub init_from_argv: ::std::option::Option<
12469        unsafe extern "C" fn(
12470            self_: *mut _cef_command_line_t,
12471            argc: ::std::os::raw::c_int,
12472            argv: *const *const ::std::os::raw::c_char,
12473        ),
12474    >,
12475    #[doc = "\n Initialize the command line with the string returned by calling\n GetCommandLineW(). This function is only supported on Windows.\n"]
12476    pub init_from_string: ::std::option::Option<
12477        unsafe extern "C" fn(self_: *mut _cef_command_line_t, command_line: *const cef_string_t),
12478    >,
12479    #[doc = "\n Reset the command-line switches and arguments but leave the program\n component unchanged.\n"]
12480    pub reset: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_command_line_t)>,
12481    #[doc = "\n Retrieve the original command line string as a vector of strings. The argv\n array: `{ program, [(--|-|/)switch[=value]]*, [--], [argument]* }`\n"]
12482    pub get_argv: ::std::option::Option<
12483        unsafe extern "C" fn(self_: *mut _cef_command_line_t, argv: cef_string_list_t),
12484    >,
12485    #[doc = "\n Constructs and returns the represented command line string. Use this\n function cautiously because quoting behavior is unclear.\n"]
12486    pub get_command_line_string: ::std::option::Option<
12487        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> cef_string_userfree_t,
12488    >,
12489    #[doc = "\n Get the program part of the command line string (the first item).\n"]
12490    pub get_program: ::std::option::Option<
12491        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> cef_string_userfree_t,
12492    >,
12493    #[doc = "\n Set the program part of the command line string (the first item).\n"]
12494    pub set_program: ::std::option::Option<
12495        unsafe extern "C" fn(self_: *mut _cef_command_line_t, program: *const cef_string_t),
12496    >,
12497    #[doc = "\n Returns true (1) if the command line has switches.\n"]
12498    pub has_switches: ::std::option::Option<
12499        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12500    >,
12501    #[doc = "\n Returns true (1) if the command line contains the given switch.\n"]
12502    pub has_switch: ::std::option::Option<
12503        unsafe extern "C" fn(
12504            self_: *mut _cef_command_line_t,
12505            name: *const cef_string_t,
12506        ) -> ::std::os::raw::c_int,
12507    >,
12508    #[doc = "\n Returns the value associated with the given switch. If the switch has no\n value or isn't present this function returns the NULL string.\n"]
12509    pub get_switch_value: ::std::option::Option<
12510        unsafe extern "C" fn(
12511            self_: *mut _cef_command_line_t,
12512            name: *const cef_string_t,
12513        ) -> cef_string_userfree_t,
12514    >,
12515    #[doc = "\n Returns the map of switch names and values. If a switch has no value an\n NULL string is returned.\n"]
12516    pub get_switches: ::std::option::Option<
12517        unsafe extern "C" fn(self_: *mut _cef_command_line_t, switches: cef_string_map_t),
12518    >,
12519    #[doc = "\n Add a switch to the end of the command line.\n"]
12520    pub append_switch: ::std::option::Option<
12521        unsafe extern "C" fn(self_: *mut _cef_command_line_t, name: *const cef_string_t),
12522    >,
12523    #[doc = "\n Add a switch with the specified value to the end of the command line. If\n the switch has no value pass an NULL value string.\n"]
12524    pub append_switch_with_value: ::std::option::Option<
12525        unsafe extern "C" fn(
12526            self_: *mut _cef_command_line_t,
12527            name: *const cef_string_t,
12528            value: *const cef_string_t,
12529        ),
12530    >,
12531    #[doc = "\n True if there are remaining command line arguments.\n"]
12532    pub has_arguments: ::std::option::Option<
12533        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12534    >,
12535    #[doc = "\n Get the remaining command line arguments.\n"]
12536    pub get_arguments: ::std::option::Option<
12537        unsafe extern "C" fn(self_: *mut _cef_command_line_t, arguments: cef_string_list_t),
12538    >,
12539    #[doc = "\n Add an argument to the end of the command line.\n"]
12540    pub append_argument: ::std::option::Option<
12541        unsafe extern "C" fn(self_: *mut _cef_command_line_t, argument: *const cef_string_t),
12542    >,
12543    #[doc = "\n Insert a command before the current command. Common for debuggers, like\n \"valgrind\" or \"gdb --args\".\n"]
12544    pub prepend_wrapper: ::std::option::Option<
12545        unsafe extern "C" fn(self_: *mut _cef_command_line_t, wrapper: *const cef_string_t),
12546    >,
12547    #[doc = "\n Remove a switch from the command line. If no such switch is present, this\n has no effect.\n"]
12548    pub remove_switch: ::std::option::Option<
12549        unsafe extern "C" fn(self_: *mut _cef_command_line_t, name: *const cef_string_t),
12550    >,
12551}
12552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12553const _: () = {
12554    ["Size of _cef_command_line_t"][::std::mem::size_of::<_cef_command_line_t>() - 208usize];
12555    ["Alignment of _cef_command_line_t"][::std::mem::align_of::<_cef_command_line_t>() - 8usize];
12556    ["Offset of field: _cef_command_line_t::base"]
12557        [::std::mem::offset_of!(_cef_command_line_t, base) - 0usize];
12558    ["Offset of field: _cef_command_line_t::is_valid"]
12559        [::std::mem::offset_of!(_cef_command_line_t, is_valid) - 40usize];
12560    ["Offset of field: _cef_command_line_t::is_read_only"]
12561        [::std::mem::offset_of!(_cef_command_line_t, is_read_only) - 48usize];
12562    ["Offset of field: _cef_command_line_t::copy"]
12563        [::std::mem::offset_of!(_cef_command_line_t, copy) - 56usize];
12564    ["Offset of field: _cef_command_line_t::init_from_argv"]
12565        [::std::mem::offset_of!(_cef_command_line_t, init_from_argv) - 64usize];
12566    ["Offset of field: _cef_command_line_t::init_from_string"]
12567        [::std::mem::offset_of!(_cef_command_line_t, init_from_string) - 72usize];
12568    ["Offset of field: _cef_command_line_t::reset"]
12569        [::std::mem::offset_of!(_cef_command_line_t, reset) - 80usize];
12570    ["Offset of field: _cef_command_line_t::get_argv"]
12571        [::std::mem::offset_of!(_cef_command_line_t, get_argv) - 88usize];
12572    ["Offset of field: _cef_command_line_t::get_command_line_string"]
12573        [::std::mem::offset_of!(_cef_command_line_t, get_command_line_string) - 96usize];
12574    ["Offset of field: _cef_command_line_t::get_program"]
12575        [::std::mem::offset_of!(_cef_command_line_t, get_program) - 104usize];
12576    ["Offset of field: _cef_command_line_t::set_program"]
12577        [::std::mem::offset_of!(_cef_command_line_t, set_program) - 112usize];
12578    ["Offset of field: _cef_command_line_t::has_switches"]
12579        [::std::mem::offset_of!(_cef_command_line_t, has_switches) - 120usize];
12580    ["Offset of field: _cef_command_line_t::has_switch"]
12581        [::std::mem::offset_of!(_cef_command_line_t, has_switch) - 128usize];
12582    ["Offset of field: _cef_command_line_t::get_switch_value"]
12583        [::std::mem::offset_of!(_cef_command_line_t, get_switch_value) - 136usize];
12584    ["Offset of field: _cef_command_line_t::get_switches"]
12585        [::std::mem::offset_of!(_cef_command_line_t, get_switches) - 144usize];
12586    ["Offset of field: _cef_command_line_t::append_switch"]
12587        [::std::mem::offset_of!(_cef_command_line_t, append_switch) - 152usize];
12588    ["Offset of field: _cef_command_line_t::append_switch_with_value"]
12589        [::std::mem::offset_of!(_cef_command_line_t, append_switch_with_value) - 160usize];
12590    ["Offset of field: _cef_command_line_t::has_arguments"]
12591        [::std::mem::offset_of!(_cef_command_line_t, has_arguments) - 168usize];
12592    ["Offset of field: _cef_command_line_t::get_arguments"]
12593        [::std::mem::offset_of!(_cef_command_line_t, get_arguments) - 176usize];
12594    ["Offset of field: _cef_command_line_t::append_argument"]
12595        [::std::mem::offset_of!(_cef_command_line_t, append_argument) - 184usize];
12596    ["Offset of field: _cef_command_line_t::prepend_wrapper"]
12597        [::std::mem::offset_of!(_cef_command_line_t, prepend_wrapper) - 192usize];
12598    ["Offset of field: _cef_command_line_t::remove_switch"]
12599        [::std::mem::offset_of!(_cef_command_line_t, remove_switch) - 200usize];
12600};
12601#[doc = "\n Structure used to create and/or parse command line arguments. Arguments with\n \"--\", \"-\" and, on Windows, \"/\" prefixes are considered switches. Switches\n will always precede any arguments without switch prefixes. Switches can\n optionally have a value specified using the \"=\" delimiter (e.g.\n \"-switch=value\"). An argument of \"--\" will terminate switch parsing with all\n subsequent tokens, regardless of prefix, being interpreted as non-switch\n arguments. Switch names should be lowercase ASCII and will be converted to\n such if necessary. Switch values will retain the original case and UTF8\n encoding. This structure can be used before cef_initialize() is called.\n\n NOTE: This struct is allocated DLL-side.\n"]
12602pub type cef_command_line_t = _cef_command_line_t;
12603unsafe extern "C" {
12604    #[doc = "\n Create a new cef_command_line_t instance.\n"]
12605    pub fn cef_command_line_create() -> *mut cef_command_line_t;
12606}
12607unsafe extern "C" {
12608    #[doc = "\n Returns the singleton global cef_command_line_t object. The returned object\n will be read-only.\n"]
12609    pub fn cef_command_line_get_global() -> *mut cef_command_line_t;
12610}
12611#[doc = "\n Implement this structure to provide handler implementations. The handler\n instance will not be released until all objects related to the context have\n been destroyed.\n\n NOTE: This struct is allocated client-side.\n"]
12612#[repr(C)]
12613#[derive(Debug, Copy, Clone)]
12614pub struct _cef_request_context_handler_t {
12615    #[doc = "\n Base structure.\n"]
12616    pub base: cef_base_ref_counted_t,
12617    #[doc = "\n Called on the browser process UI thread immediately after the request\n context has been initialized.\n"]
12618    pub on_request_context_initialized: ::std::option::Option<
12619        unsafe extern "C" fn(
12620            self_: *mut _cef_request_context_handler_t,
12621            request_context: *mut _cef_request_context_t,
12622        ),
12623    >,
12624    #[doc = "\n Called on the browser process IO thread before a resource request is\n initiated. The |browser| and |frame| values represent the source of the\n request, and may be NULL for requests originating from service workers or\n cef_urlrequest_t. |request| represents the request contents and cannot be\n modified in this callback. |is_navigation| will be true (1) if the\n resource request is a navigation. |is_download| will be true (1) if the\n resource request is a download. |request_initiator| is the origin (scheme\n + domain) of the page that initiated the request. Set\n |disable_default_handling| to true (1) to disable default handling of the\n request, in which case it will need to be handled via\n cef_resource_request_handler_t::GetResourceHandler or it will be canceled.\n To allow the resource load to proceed with default handling return NULL.\n To specify a handler for the resource return a\n cef_resource_request_handler_t object. This function will not be called if\n the client associated with |browser| returns a non-NULL value from\n cef_request_handler_t::GetResourceRequestHandler for the same request\n (identified by cef_request_t::GetIdentifier).\n"]
12625    pub get_resource_request_handler: ::std::option::Option<
12626        unsafe extern "C" fn(
12627            self_: *mut _cef_request_context_handler_t,
12628            browser: *mut _cef_browser_t,
12629            frame: *mut _cef_frame_t,
12630            request: *mut _cef_request_t,
12631            is_navigation: ::std::os::raw::c_int,
12632            is_download: ::std::os::raw::c_int,
12633            request_initiator: *const cef_string_t,
12634            disable_default_handling: *mut ::std::os::raw::c_int,
12635        ) -> *mut _cef_resource_request_handler_t,
12636    >,
12637}
12638#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12639const _: () = {
12640    ["Size of _cef_request_context_handler_t"]
12641        [::std::mem::size_of::<_cef_request_context_handler_t>() - 56usize];
12642    ["Alignment of _cef_request_context_handler_t"]
12643        [::std::mem::align_of::<_cef_request_context_handler_t>() - 8usize];
12644    ["Offset of field: _cef_request_context_handler_t::base"]
12645        [::std::mem::offset_of!(_cef_request_context_handler_t, base) - 0usize];
12646    ["Offset of field: _cef_request_context_handler_t::on_request_context_initialized"][::std::mem::offset_of!(
12647        _cef_request_context_handler_t,
12648        on_request_context_initialized
12649    )
12650        - 40usize];
12651    ["Offset of field: _cef_request_context_handler_t::get_resource_request_handler"][::std::mem::offset_of!(
12652        _cef_request_context_handler_t,
12653        get_resource_request_handler
12654    ) - 48usize];
12655};
12656#[doc = "\n Implement this structure to provide handler implementations. The handler\n instance will not be released until all objects related to the context have\n been destroyed.\n\n NOTE: This struct is allocated client-side.\n"]
12657pub type cef_request_context_handler_t = _cef_request_context_handler_t;
12658#[doc = "\n Structure used to implement browser process callbacks. The functions of this\n structure will be called on the browser process main thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12659#[repr(C)]
12660#[derive(Debug, Copy, Clone)]
12661pub struct _cef_browser_process_handler_t {
12662    #[doc = "\n Base structure.\n"]
12663    pub base: cef_base_ref_counted_t,
12664    #[doc = "\n Provides an opportunity to register custom preferences prior to global and\n request context initialization.\n\n If |type| is CEF_PREFERENCES_TYPE_GLOBAL the registered preferences can be\n accessed via cef_preference_manager_t::GetGlobalPreferences after\n OnContextInitialized is called. Global preferences are registered a single\n time at application startup. See related cef_settings_t.cache_path\n configuration.\n\n If |type| is CEF_PREFERENCES_TYPE_REQUEST_CONTEXT the preferences can be\n accessed via the cef_request_context_t after\n cef_request_context_handler_t::OnRequestContextInitialized is called.\n Request context preferences are registered each time a new\n cef_request_context_t is created. It is intended but not required that all\n request contexts have the same registered preferences. See related\n cef_request_context_settings_t.cache_path configuration.\n\n Do not keep a reference to the |registrar| object. This function is called\n on the browser process UI thread.\n"]
12665    pub on_register_custom_preferences: ::std::option::Option<
12666        unsafe extern "C" fn(
12667            self_: *mut _cef_browser_process_handler_t,
12668            type_: cef_preferences_type_t,
12669            registrar: *mut _cef_preference_registrar_t,
12670        ),
12671    >,
12672    #[doc = "\n Called on the browser process UI thread immediately after the CEF context\n has been initialized.\n"]
12673    pub on_context_initialized:
12674        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t)>,
12675    #[doc = "\n Called before a child process is launched. Will be called on the browser\n process UI thread when launching a render process and on the browser\n process IO thread when launching a GPU process. Provides an opportunity to\n modify the child process command line. Do not keep a reference to\n |command_line| outside of this function.\n"]
12676    pub on_before_child_process_launch: ::std::option::Option<
12677        unsafe extern "C" fn(
12678            self_: *mut _cef_browser_process_handler_t,
12679            command_line: *mut _cef_command_line_t,
12680        ),
12681    >,
12682    #[doc = "\n Implement this function to provide app-specific behavior when an already\n running app is relaunched with the same CefSettings.root_cache_path value.\n For example, activate an existing app window or create a new app window.\n |command_line| will be read-only. Do not keep a reference to\n |command_line| outside of this function. Return true (1) if the relaunch\n is handled or false (0) for default relaunch behavior. Default behavior\n will create a new default styled Chrome window.\n\n To avoid cache corruption only a single app instance is allowed to run for\n a given CefSettings.root_cache_path value. On relaunch the app checks a\n process singleton lock and then forwards the new launch arguments to the\n already running app process before exiting early. Client apps should\n therefore check the cef_initialize() return value for early exit before\n proceeding.\n\n This function will be called on the browser process UI thread.\n"]
12683    pub on_already_running_app_relaunch: ::std::option::Option<
12684        unsafe extern "C" fn(
12685            self_: *mut _cef_browser_process_handler_t,
12686            command_line: *mut _cef_command_line_t,
12687            current_directory: *const cef_string_t,
12688        ) -> ::std::os::raw::c_int,
12689    >,
12690    #[doc = "\n Called from any thread when work has been scheduled for the browser\n process main (UI) thread. This callback is used in combination with\n cef_settings_t.external_message_pump and cef_do_message_loop_work() in\n cases where the CEF message loop must be integrated into an existing\n application message loop (see additional comments and warnings on\n CefDoMessageLoopWork). This callback should schedule a\n cef_do_message_loop_work() call to happen on the main (UI) thread.\n |delay_ms| is the requested delay in milliseconds. If |delay_ms| is <= 0\n then the call should happen reasonably soon. If |delay_ms| is > 0 then the\n call should be scheduled to happen after the specified delay and any\n currently pending scheduled call should be cancelled.\n"]
12691    pub on_schedule_message_pump_work: ::std::option::Option<
12692        unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t, delay_ms: i64),
12693    >,
12694    #[doc = "\n Return the default client for use with a newly created browser window\n (cef_browser_t object). If null is returned the cef_browser_t will be\n unmanaged (no callbacks will be executed for that cef_browser_t) and\n application shutdown will be blocked until the browser window is closed\n manually. This function is currently only used with Chrome style when\n creating new browser windows via Chrome UI.\n"]
12695    pub get_default_client: ::std::option::Option<
12696        unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t) -> *mut _cef_client_t,
12697    >,
12698    #[doc = "\n Return the default handler for use with a new user or incognito profile\n (cef_request_context_t object). If null is returned the\n cef_request_context_t will be unmanaged (no callbacks will be executed for\n that cef_request_context_t). This function is currently only used with\n Chrome style when creating new browser windows via Chrome UI.\n"]
12699    pub get_default_request_context_handler: ::std::option::Option<
12700        unsafe extern "C" fn(
12701            self_: *mut _cef_browser_process_handler_t,
12702        ) -> *mut _cef_request_context_handler_t,
12703    >,
12704}
12705#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12706const _: () = {
12707    ["Size of _cef_browser_process_handler_t"]
12708        [::std::mem::size_of::<_cef_browser_process_handler_t>() - 96usize];
12709    ["Alignment of _cef_browser_process_handler_t"]
12710        [::std::mem::align_of::<_cef_browser_process_handler_t>() - 8usize];
12711    ["Offset of field: _cef_browser_process_handler_t::base"]
12712        [::std::mem::offset_of!(_cef_browser_process_handler_t, base) - 0usize];
12713    ["Offset of field: _cef_browser_process_handler_t::on_register_custom_preferences"][::std::mem::offset_of!(
12714        _cef_browser_process_handler_t,
12715        on_register_custom_preferences
12716    )
12717        - 40usize];
12718    ["Offset of field: _cef_browser_process_handler_t::on_context_initialized"]
12719        [::std::mem::offset_of!(_cef_browser_process_handler_t, on_context_initialized) - 48usize];
12720    ["Offset of field: _cef_browser_process_handler_t::on_before_child_process_launch"][::std::mem::offset_of!(
12721        _cef_browser_process_handler_t,
12722        on_before_child_process_launch
12723    )
12724        - 56usize];
12725    ["Offset of field: _cef_browser_process_handler_t::on_already_running_app_relaunch"][::std::mem::offset_of!(
12726        _cef_browser_process_handler_t,
12727        on_already_running_app_relaunch
12728    )
12729        - 64usize];
12730    ["Offset of field: _cef_browser_process_handler_t::on_schedule_message_pump_work"][::std::mem::offset_of!(
12731        _cef_browser_process_handler_t,
12732        on_schedule_message_pump_work
12733    ) - 72usize];
12734    ["Offset of field: _cef_browser_process_handler_t::get_default_client"]
12735        [::std::mem::offset_of!(_cef_browser_process_handler_t, get_default_client) - 80usize];
12736    ["Offset of field: _cef_browser_process_handler_t::get_default_request_context_handler"][::std::mem::offset_of!(
12737        _cef_browser_process_handler_t,
12738        get_default_request_context_handler
12739    )
12740        - 88usize];
12741};
12742#[doc = "\n Structure used to implement browser process callbacks. The functions of this\n structure will be called on the browser process main thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
12743pub type cef_browser_process_handler_t = _cef_browser_process_handler_t;
12744#[doc = "\n Implement this structure for asynchronous task execution. If the task is\n posted successfully and if the associated message loop is still running then\n the execute() function will be called on the target thread. If the task\n fails to post then the task object may be destroyed on the source thread\n instead of the target thread. For this reason be cautious when performing\n work in the task object destructor.\n\n NOTE: This struct is allocated client-side.\n"]
12745#[repr(C)]
12746#[derive(Debug, Copy, Clone)]
12747pub struct _cef_task_t {
12748    #[doc = "\n Base structure.\n"]
12749    pub base: cef_base_ref_counted_t,
12750    #[doc = "\n Method that will be executed on the target thread.\n"]
12751    pub execute: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_task_t)>,
12752}
12753#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12754const _: () = {
12755    ["Size of _cef_task_t"][::std::mem::size_of::<_cef_task_t>() - 48usize];
12756    ["Alignment of _cef_task_t"][::std::mem::align_of::<_cef_task_t>() - 8usize];
12757    ["Offset of field: _cef_task_t::base"][::std::mem::offset_of!(_cef_task_t, base) - 0usize];
12758    ["Offset of field: _cef_task_t::execute"]
12759        [::std::mem::offset_of!(_cef_task_t, execute) - 40usize];
12760};
12761#[doc = "\n Implement this structure for asynchronous task execution. If the task is\n posted successfully and if the associated message loop is still running then\n the execute() function will be called on the target thread. If the task\n fails to post then the task object may be destroyed on the source thread\n instead of the target thread. For this reason be cautious when performing\n work in the task object destructor.\n\n NOTE: This struct is allocated client-side.\n"]
12762pub type cef_task_t = _cef_task_t;
12763#[doc = "\n Structure that asynchronously executes tasks on the associated thread. It is\n safe to call the functions of this structure on any thread.\n\n CEF maintains multiple internal threads that are used for handling different\n types of tasks in different processes. The cef_thread_id_t definitions in\n cef_types.h list the common CEF threads. Task runners are also available for\n other CEF threads as appropriate (for example, V8 WebWorker threads).\n\n NOTE: This struct is allocated DLL-side.\n"]
12764#[repr(C)]
12765#[derive(Debug, Copy, Clone)]
12766pub struct _cef_task_runner_t {
12767    #[doc = "\n Base structure.\n"]
12768    pub base: cef_base_ref_counted_t,
12769    #[doc = "\n Returns true (1) if this object is pointing to the same task runner as\n |that| object.\n"]
12770    pub is_same: ::std::option::Option<
12771        unsafe extern "C" fn(
12772            self_: *mut _cef_task_runner_t,
12773            that: *mut _cef_task_runner_t,
12774        ) -> ::std::os::raw::c_int,
12775    >,
12776    #[doc = "\n Returns true (1) if this task runner belongs to the current thread.\n"]
12777    pub belongs_to_current_thread: ::std::option::Option<
12778        unsafe extern "C" fn(self_: *mut _cef_task_runner_t) -> ::std::os::raw::c_int,
12779    >,
12780    #[doc = "\n Returns true (1) if this task runner is for the specified CEF thread.\n"]
12781    pub belongs_to_thread: ::std::option::Option<
12782        unsafe extern "C" fn(
12783            self_: *mut _cef_task_runner_t,
12784            threadId: cef_thread_id_t,
12785        ) -> ::std::os::raw::c_int,
12786    >,
12787    #[doc = "\n Post a task for execution on the thread associated with this task runner.\n Execution will occur asynchronously.\n"]
12788    pub post_task: ::std::option::Option<
12789        unsafe extern "C" fn(
12790            self_: *mut _cef_task_runner_t,
12791            task: *mut _cef_task_t,
12792        ) -> ::std::os::raw::c_int,
12793    >,
12794    #[doc = "\n Post a task for delayed execution on the thread associated with this task\n runner. Execution will occur asynchronously. Delayed tasks are not\n supported on V8 WebWorker threads and will be executed without the\n specified delay.\n"]
12795    pub post_delayed_task: ::std::option::Option<
12796        unsafe extern "C" fn(
12797            self_: *mut _cef_task_runner_t,
12798            task: *mut _cef_task_t,
12799            delay_ms: i64,
12800        ) -> ::std::os::raw::c_int,
12801    >,
12802}
12803#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12804const _: () = {
12805    ["Size of _cef_task_runner_t"][::std::mem::size_of::<_cef_task_runner_t>() - 80usize];
12806    ["Alignment of _cef_task_runner_t"][::std::mem::align_of::<_cef_task_runner_t>() - 8usize];
12807    ["Offset of field: _cef_task_runner_t::base"]
12808        [::std::mem::offset_of!(_cef_task_runner_t, base) - 0usize];
12809    ["Offset of field: _cef_task_runner_t::is_same"]
12810        [::std::mem::offset_of!(_cef_task_runner_t, is_same) - 40usize];
12811    ["Offset of field: _cef_task_runner_t::belongs_to_current_thread"]
12812        [::std::mem::offset_of!(_cef_task_runner_t, belongs_to_current_thread) - 48usize];
12813    ["Offset of field: _cef_task_runner_t::belongs_to_thread"]
12814        [::std::mem::offset_of!(_cef_task_runner_t, belongs_to_thread) - 56usize];
12815    ["Offset of field: _cef_task_runner_t::post_task"]
12816        [::std::mem::offset_of!(_cef_task_runner_t, post_task) - 64usize];
12817    ["Offset of field: _cef_task_runner_t::post_delayed_task"]
12818        [::std::mem::offset_of!(_cef_task_runner_t, post_delayed_task) - 72usize];
12819};
12820#[doc = "\n Structure that asynchronously executes tasks on the associated thread. It is\n safe to call the functions of this structure on any thread.\n\n CEF maintains multiple internal threads that are used for handling different\n types of tasks in different processes. The cef_thread_id_t definitions in\n cef_types.h list the common CEF threads. Task runners are also available for\n other CEF threads as appropriate (for example, V8 WebWorker threads).\n\n NOTE: This struct is allocated DLL-side.\n"]
12821pub type cef_task_runner_t = _cef_task_runner_t;
12822unsafe extern "C" {
12823    #[doc = "\n Returns the task runner for the current thread. Only CEF threads will have\n task runners. An NULL reference will be returned if this function is called\n on an invalid thread.\n"]
12824    pub fn cef_task_runner_get_for_current_thread() -> *mut cef_task_runner_t;
12825}
12826unsafe extern "C" {
12827    #[doc = "\n Returns the task runner for the specified CEF thread.\n"]
12828    pub fn cef_task_runner_get_for_thread(threadId: cef_thread_id_t) -> *mut cef_task_runner_t;
12829}
12830unsafe extern "C" {
12831    #[doc = "\n Returns true (1) if called on the specified thread. Equivalent to using\n cef_task_runner_t::GetForThread(threadId)->belongs_to_current_thread().\n"]
12832    pub fn cef_currently_on(threadId: cef_thread_id_t) -> ::std::os::raw::c_int;
12833}
12834unsafe extern "C" {
12835    #[doc = "\n Post a task for execution on the specified thread. Equivalent to using\n cef_task_runner_t::GetForThread(threadId)->PostTask(task).\n"]
12836    pub fn cef_post_task(threadId: cef_thread_id_t, task: *mut cef_task_t)
12837        -> ::std::os::raw::c_int;
12838}
12839unsafe extern "C" {
12840    #[doc = "\n Post a task for delayed execution on the specified thread. Equivalent to\n using cef_task_runner_t::GetForThread(threadId)->PostDelayedTask(task,\n delay_ms).\n"]
12841    pub fn cef_post_delayed_task(
12842        threadId: cef_thread_id_t,
12843        task: *mut cef_task_t,
12844        delay_ms: i64,
12845    ) -> ::std::os::raw::c_int;
12846}
12847#[doc = "\n Structure representing a V8 context handle. V8 handles can only be accessed\n from the thread on which they are created. Valid threads for creating a V8\n handle include the render process main thread (TID_RENDERER) and WebWorker\n threads. A task runner for posting tasks on the associated thread can be\n retrieved via the cef_v8_context_t::get_task_runner() function.\n\n NOTE: This struct is allocated DLL-side.\n"]
12848#[repr(C)]
12849#[derive(Debug, Copy, Clone)]
12850pub struct _cef_v8_context_t {
12851    #[doc = "\n Base structure.\n"]
12852    pub base: cef_base_ref_counted_t,
12853    #[doc = "\n Returns the task runner associated with this context. V8 handles can only\n be accessed from the thread on which they are created. This function can\n be called on any render process thread.\n"]
12854    pub get_task_runner: ::std::option::Option<
12855        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_task_runner_t,
12856    >,
12857    #[doc = "\n Returns true (1) if the underlying handle is valid and it can be accessed\n on the current thread. Do not call any other functions if this function\n returns false (0).\n"]
12858    pub is_valid: ::std::option::Option<
12859        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12860    >,
12861    #[doc = "\n Returns the browser for this context. This function will return an NULL\n reference for WebWorker contexts.\n"]
12862    pub get_browser: ::std::option::Option<
12863        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_browser_t,
12864    >,
12865    #[doc = "\n Returns the frame for this context. This function will return an NULL\n reference for WebWorker contexts.\n"]
12866    pub get_frame: ::std::option::Option<
12867        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_frame_t,
12868    >,
12869    #[doc = "\n Returns the global object for this context. The context must be entered\n before calling this function.\n"]
12870    pub get_global: ::std::option::Option<
12871        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_v8_value_t,
12872    >,
12873    #[doc = "\n Enter this context. A context must be explicitly entered before creating a\n V8 Object, Array, Function or Date asynchronously. exit() must be called\n the same number of times as enter() before releasing this context. V8\n objects belong to the context in which they are created. Returns true (1)\n if the scope was entered successfully.\n"]
12874    pub enter: ::std::option::Option<
12875        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12876    >,
12877    #[doc = "\n Exit this context. Call this function only after calling enter(). Returns\n true (1) if the scope was exited successfully.\n"]
12878    pub exit: ::std::option::Option<
12879        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12880    >,
12881    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
12882    pub is_same: ::std::option::Option<
12883        unsafe extern "C" fn(
12884            self_: *mut _cef_v8_context_t,
12885            that: *mut _cef_v8_context_t,
12886        ) -> ::std::os::raw::c_int,
12887    >,
12888    #[doc = "\n Execute a string of JavaScript code in this V8 context. The |script_url|\n parameter is the URL where the script in question can be found, if any.\n The |start_line| parameter is the base line number to use for error\n reporting. On success |retval| will be set to the return value, if any,\n and the function will return true (1). On failure |exception| will be set\n to the exception, if any, and the function will return false (0).\n"]
12889    pub eval: ::std::option::Option<
12890        unsafe extern "C" fn(
12891            self_: *mut _cef_v8_context_t,
12892            code: *const cef_string_t,
12893            script_url: *const cef_string_t,
12894            start_line: ::std::os::raw::c_int,
12895            retval: *mut *mut _cef_v8_value_t,
12896            exception: *mut *mut _cef_v8_exception_t,
12897        ) -> ::std::os::raw::c_int,
12898    >,
12899}
12900#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12901const _: () = {
12902    ["Size of _cef_v8_context_t"][::std::mem::size_of::<_cef_v8_context_t>() - 112usize];
12903    ["Alignment of _cef_v8_context_t"][::std::mem::align_of::<_cef_v8_context_t>() - 8usize];
12904    ["Offset of field: _cef_v8_context_t::base"]
12905        [::std::mem::offset_of!(_cef_v8_context_t, base) - 0usize];
12906    ["Offset of field: _cef_v8_context_t::get_task_runner"]
12907        [::std::mem::offset_of!(_cef_v8_context_t, get_task_runner) - 40usize];
12908    ["Offset of field: _cef_v8_context_t::is_valid"]
12909        [::std::mem::offset_of!(_cef_v8_context_t, is_valid) - 48usize];
12910    ["Offset of field: _cef_v8_context_t::get_browser"]
12911        [::std::mem::offset_of!(_cef_v8_context_t, get_browser) - 56usize];
12912    ["Offset of field: _cef_v8_context_t::get_frame"]
12913        [::std::mem::offset_of!(_cef_v8_context_t, get_frame) - 64usize];
12914    ["Offset of field: _cef_v8_context_t::get_global"]
12915        [::std::mem::offset_of!(_cef_v8_context_t, get_global) - 72usize];
12916    ["Offset of field: _cef_v8_context_t::enter"]
12917        [::std::mem::offset_of!(_cef_v8_context_t, enter) - 80usize];
12918    ["Offset of field: _cef_v8_context_t::exit"]
12919        [::std::mem::offset_of!(_cef_v8_context_t, exit) - 88usize];
12920    ["Offset of field: _cef_v8_context_t::is_same"]
12921        [::std::mem::offset_of!(_cef_v8_context_t, is_same) - 96usize];
12922    ["Offset of field: _cef_v8_context_t::eval"]
12923        [::std::mem::offset_of!(_cef_v8_context_t, eval) - 104usize];
12924};
12925#[doc = "\n Structure representing a V8 context handle. V8 handles can only be accessed\n from the thread on which they are created. Valid threads for creating a V8\n handle include the render process main thread (TID_RENDERER) and WebWorker\n threads. A task runner for posting tasks on the associated thread can be\n retrieved via the cef_v8_context_t::get_task_runner() function.\n\n NOTE: This struct is allocated DLL-side.\n"]
12926pub type cef_v8_context_t = _cef_v8_context_t;
12927unsafe extern "C" {
12928    #[doc = "\n Returns the current (top) context object in the V8 context stack.\n"]
12929    pub fn cef_v8_context_get_current_context() -> *mut cef_v8_context_t;
12930}
12931unsafe extern "C" {
12932    #[doc = "\n Returns the entered (bottom) context object in the V8 context stack.\n"]
12933    pub fn cef_v8_context_get_entered_context() -> *mut cef_v8_context_t;
12934}
12935unsafe extern "C" {
12936    #[doc = "\n Returns true (1) if V8 is currently inside a context.\n"]
12937    pub fn cef_v8_context_in_context() -> ::std::os::raw::c_int;
12938}
12939#[doc = "\n Structure that should be implemented to handle V8 function calls. The\n functions of this structure will be called on the thread associated with the\n V8 function.\n\n NOTE: This struct is allocated client-side.\n"]
12940#[repr(C)]
12941#[derive(Debug, Copy, Clone)]
12942pub struct _cef_v8_handler_t {
12943    #[doc = "\n Base structure.\n"]
12944    pub base: cef_base_ref_counted_t,
12945    #[doc = "\n Handle execution of the function identified by |name|. |object| is the\n receiver ('this' object) of the function. |arguments| is the list of\n arguments passed to the function. If execution succeeds set |retval| to\n the function return value. If execution fails set |exception| to the\n exception that will be thrown. Return true (1) if execution was handled.\n"]
12946    pub execute: ::std::option::Option<
12947        unsafe extern "C" fn(
12948            self_: *mut _cef_v8_handler_t,
12949            name: *const cef_string_t,
12950            object: *mut _cef_v8_value_t,
12951            argumentsCount: usize,
12952            arguments: *const *mut _cef_v8_value_t,
12953            retval: *mut *mut _cef_v8_value_t,
12954            exception: *mut cef_string_t,
12955        ) -> ::std::os::raw::c_int,
12956    >,
12957}
12958#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12959const _: () = {
12960    ["Size of _cef_v8_handler_t"][::std::mem::size_of::<_cef_v8_handler_t>() - 48usize];
12961    ["Alignment of _cef_v8_handler_t"][::std::mem::align_of::<_cef_v8_handler_t>() - 8usize];
12962    ["Offset of field: _cef_v8_handler_t::base"]
12963        [::std::mem::offset_of!(_cef_v8_handler_t, base) - 0usize];
12964    ["Offset of field: _cef_v8_handler_t::execute"]
12965        [::std::mem::offset_of!(_cef_v8_handler_t, execute) - 40usize];
12966};
12967#[doc = "\n Structure that should be implemented to handle V8 function calls. The\n functions of this structure will be called on the thread associated with the\n V8 function.\n\n NOTE: This struct is allocated client-side.\n"]
12968pub type cef_v8_handler_t = _cef_v8_handler_t;
12969#[doc = "\n Structure that should be implemented to handle V8 accessor calls. Accessor\n identifiers are registered by calling cef_v8_value_t::set_value(). The\n functions of this structure will be called on the thread associated with the\n V8 accessor.\n\n NOTE: This struct is allocated client-side.\n"]
12970#[repr(C)]
12971#[derive(Debug, Copy, Clone)]
12972pub struct _cef_v8_accessor_t {
12973    #[doc = "\n Base structure.\n"]
12974    pub base: cef_base_ref_counted_t,
12975    #[doc = "\n Handle retrieval the accessor value identified by |name|. |object| is the\n receiver ('this' object) of the accessor. If retrieval succeeds set\n |retval| to the return value. If retrieval fails set |exception| to the\n exception that will be thrown. Return true (1) if accessor retrieval was\n handled.\n"]
12976    pub get: ::std::option::Option<
12977        unsafe extern "C" fn(
12978            self_: *mut _cef_v8_accessor_t,
12979            name: *const cef_string_t,
12980            object: *mut _cef_v8_value_t,
12981            retval: *mut *mut _cef_v8_value_t,
12982            exception: *mut cef_string_t,
12983        ) -> ::std::os::raw::c_int,
12984    >,
12985    #[doc = "\n Handle assignment of the accessor value identified by |name|. |object| is\n the receiver ('this' object) of the accessor. |value| is the new value\n being assigned to the accessor. If assignment fails set |exception| to the\n exception that will be thrown. Return true (1) if accessor assignment was\n handled.\n"]
12986    pub set: ::std::option::Option<
12987        unsafe extern "C" fn(
12988            self_: *mut _cef_v8_accessor_t,
12989            name: *const cef_string_t,
12990            object: *mut _cef_v8_value_t,
12991            value: *mut _cef_v8_value_t,
12992            exception: *mut cef_string_t,
12993        ) -> ::std::os::raw::c_int,
12994    >,
12995}
12996#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12997const _: () = {
12998    ["Size of _cef_v8_accessor_t"][::std::mem::size_of::<_cef_v8_accessor_t>() - 56usize];
12999    ["Alignment of _cef_v8_accessor_t"][::std::mem::align_of::<_cef_v8_accessor_t>() - 8usize];
13000    ["Offset of field: _cef_v8_accessor_t::base"]
13001        [::std::mem::offset_of!(_cef_v8_accessor_t, base) - 0usize];
13002    ["Offset of field: _cef_v8_accessor_t::get"]
13003        [::std::mem::offset_of!(_cef_v8_accessor_t, get) - 40usize];
13004    ["Offset of field: _cef_v8_accessor_t::set"]
13005        [::std::mem::offset_of!(_cef_v8_accessor_t, set) - 48usize];
13006};
13007#[doc = "\n Structure that should be implemented to handle V8 accessor calls. Accessor\n identifiers are registered by calling cef_v8_value_t::set_value(). The\n functions of this structure will be called on the thread associated with the\n V8 accessor.\n\n NOTE: This struct is allocated client-side.\n"]
13008pub type cef_v8_accessor_t = _cef_v8_accessor_t;
13009#[doc = "\n Structure that should be implemented to handle V8 interceptor calls. The\n functions of this structure will be called on the thread associated with the\n V8 interceptor. Interceptor's named property handlers (with first argument\n of type CefString) are called when object is indexed by string. Indexed\n property handlers (with first argument of type int) are called when object\n is indexed by integer.\n\n NOTE: This struct is allocated client-side.\n"]
13010#[repr(C)]
13011#[derive(Debug, Copy, Clone)]
13012pub struct _cef_v8_interceptor_t {
13013    #[doc = "\n Base structure.\n"]
13014    pub base: cef_base_ref_counted_t,
13015    #[doc = "\n Handle retrieval of the interceptor value identified by |name|. |object|\n is the receiver ('this' object) of the interceptor. If retrieval succeeds,\n set |retval| to the return value. If the requested value does not exist,\n don't set either |retval| or |exception|. If retrieval fails, set\n |exception| to the exception that will be thrown. If the property has an\n associated accessor, it will be called only if you don't set |retval|.\n Return true (1) if interceptor retrieval was handled, false (0) otherwise.\n"]
13016    pub get_byname: ::std::option::Option<
13017        unsafe extern "C" fn(
13018            self_: *mut _cef_v8_interceptor_t,
13019            name: *const cef_string_t,
13020            object: *mut _cef_v8_value_t,
13021            retval: *mut *mut _cef_v8_value_t,
13022            exception: *mut cef_string_t,
13023        ) -> ::std::os::raw::c_int,
13024    >,
13025    #[doc = "\n Handle retrieval of the interceptor value identified by |index|. |object|\n is the receiver ('this' object) of the interceptor. If retrieval succeeds,\n set |retval| to the return value. If the requested value does not exist,\n don't set either |retval| or |exception|. If retrieval fails, set\n |exception| to the exception that will be thrown. Return true (1) if\n interceptor retrieval was handled, false (0) otherwise.\n"]
13026    pub get_byindex: ::std::option::Option<
13027        unsafe extern "C" fn(
13028            self_: *mut _cef_v8_interceptor_t,
13029            index: ::std::os::raw::c_int,
13030            object: *mut _cef_v8_value_t,
13031            retval: *mut *mut _cef_v8_value_t,
13032            exception: *mut cef_string_t,
13033        ) -> ::std::os::raw::c_int,
13034    >,
13035    #[doc = "\n Handle assignment of the interceptor value identified by |name|. |object|\n is the receiver ('this' object) of the interceptor. |value| is the new\n value being assigned to the interceptor. If assignment fails, set\n |exception| to the exception that will be thrown. This setter will always\n be called, even when the property has an associated accessor. Return true\n (1) if interceptor assignment was handled, false (0) otherwise.\n"]
13036    pub set_byname: ::std::option::Option<
13037        unsafe extern "C" fn(
13038            self_: *mut _cef_v8_interceptor_t,
13039            name: *const cef_string_t,
13040            object: *mut _cef_v8_value_t,
13041            value: *mut _cef_v8_value_t,
13042            exception: *mut cef_string_t,
13043        ) -> ::std::os::raw::c_int,
13044    >,
13045    #[doc = "\n Handle assignment of the interceptor value identified by |index|. |object|\n is the receiver ('this' object) of the interceptor. |value| is the new\n value being assigned to the interceptor. If assignment fails, set\n |exception| to the exception that will be thrown. Return true (1) if\n interceptor assignment was handled, false (0) otherwise.\n"]
13046    pub set_byindex: ::std::option::Option<
13047        unsafe extern "C" fn(
13048            self_: *mut _cef_v8_interceptor_t,
13049            index: ::std::os::raw::c_int,
13050            object: *mut _cef_v8_value_t,
13051            value: *mut _cef_v8_value_t,
13052            exception: *mut cef_string_t,
13053        ) -> ::std::os::raw::c_int,
13054    >,
13055}
13056#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13057const _: () = {
13058    ["Size of _cef_v8_interceptor_t"][::std::mem::size_of::<_cef_v8_interceptor_t>() - 72usize];
13059    ["Alignment of _cef_v8_interceptor_t"]
13060        [::std::mem::align_of::<_cef_v8_interceptor_t>() - 8usize];
13061    ["Offset of field: _cef_v8_interceptor_t::base"]
13062        [::std::mem::offset_of!(_cef_v8_interceptor_t, base) - 0usize];
13063    ["Offset of field: _cef_v8_interceptor_t::get_byname"]
13064        [::std::mem::offset_of!(_cef_v8_interceptor_t, get_byname) - 40usize];
13065    ["Offset of field: _cef_v8_interceptor_t::get_byindex"]
13066        [::std::mem::offset_of!(_cef_v8_interceptor_t, get_byindex) - 48usize];
13067    ["Offset of field: _cef_v8_interceptor_t::set_byname"]
13068        [::std::mem::offset_of!(_cef_v8_interceptor_t, set_byname) - 56usize];
13069    ["Offset of field: _cef_v8_interceptor_t::set_byindex"]
13070        [::std::mem::offset_of!(_cef_v8_interceptor_t, set_byindex) - 64usize];
13071};
13072#[doc = "\n Structure that should be implemented to handle V8 interceptor calls. The\n functions of this structure will be called on the thread associated with the\n V8 interceptor. Interceptor's named property handlers (with first argument\n of type CefString) are called when object is indexed by string. Indexed\n property handlers (with first argument of type int) are called when object\n is indexed by integer.\n\n NOTE: This struct is allocated client-side.\n"]
13073pub type cef_v8_interceptor_t = _cef_v8_interceptor_t;
13074#[doc = "\n Structure representing a V8 exception. The functions of this structure may\n be called on any render process thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
13075#[repr(C)]
13076#[derive(Debug, Copy, Clone)]
13077pub struct _cef_v8_exception_t {
13078    #[doc = "\n Base structure.\n"]
13079    pub base: cef_base_ref_counted_t,
13080    #[doc = "\n Returns the exception message.\n"]
13081    pub get_message: ::std::option::Option<
13082        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
13083    >,
13084    #[doc = "\n Returns the line of source code that the exception occurred within.\n"]
13085    pub get_source_line: ::std::option::Option<
13086        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
13087    >,
13088    #[doc = "\n Returns the resource name for the script from where the function causing\n the error originates.\n"]
13089    pub get_script_resource_name: ::std::option::Option<
13090        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
13091    >,
13092    #[doc = "\n Returns the 1-based number of the line where the error occurred or 0 if\n the line number is unknown.\n"]
13093    pub get_line_number: ::std::option::Option<
13094        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
13095    >,
13096    #[doc = "\n Returns the index within the script of the first character where the error\n occurred.\n"]
13097    pub get_start_position: ::std::option::Option<
13098        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
13099    >,
13100    #[doc = "\n Returns the index within the script of the last character where the error\n occurred.\n"]
13101    pub get_end_position: ::std::option::Option<
13102        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
13103    >,
13104    #[doc = "\n Returns the index within the line of the first character where the error\n occurred.\n"]
13105    pub get_start_column: ::std::option::Option<
13106        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
13107    >,
13108    #[doc = "\n Returns the index within the line of the last character where the error\n occurred.\n"]
13109    pub get_end_column: ::std::option::Option<
13110        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
13111    >,
13112}
13113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13114const _: () = {
13115    ["Size of _cef_v8_exception_t"][::std::mem::size_of::<_cef_v8_exception_t>() - 104usize];
13116    ["Alignment of _cef_v8_exception_t"][::std::mem::align_of::<_cef_v8_exception_t>() - 8usize];
13117    ["Offset of field: _cef_v8_exception_t::base"]
13118        [::std::mem::offset_of!(_cef_v8_exception_t, base) - 0usize];
13119    ["Offset of field: _cef_v8_exception_t::get_message"]
13120        [::std::mem::offset_of!(_cef_v8_exception_t, get_message) - 40usize];
13121    ["Offset of field: _cef_v8_exception_t::get_source_line"]
13122        [::std::mem::offset_of!(_cef_v8_exception_t, get_source_line) - 48usize];
13123    ["Offset of field: _cef_v8_exception_t::get_script_resource_name"]
13124        [::std::mem::offset_of!(_cef_v8_exception_t, get_script_resource_name) - 56usize];
13125    ["Offset of field: _cef_v8_exception_t::get_line_number"]
13126        [::std::mem::offset_of!(_cef_v8_exception_t, get_line_number) - 64usize];
13127    ["Offset of field: _cef_v8_exception_t::get_start_position"]
13128        [::std::mem::offset_of!(_cef_v8_exception_t, get_start_position) - 72usize];
13129    ["Offset of field: _cef_v8_exception_t::get_end_position"]
13130        [::std::mem::offset_of!(_cef_v8_exception_t, get_end_position) - 80usize];
13131    ["Offset of field: _cef_v8_exception_t::get_start_column"]
13132        [::std::mem::offset_of!(_cef_v8_exception_t, get_start_column) - 88usize];
13133    ["Offset of field: _cef_v8_exception_t::get_end_column"]
13134        [::std::mem::offset_of!(_cef_v8_exception_t, get_end_column) - 96usize];
13135};
13136#[doc = "\n Structure representing a V8 exception. The functions of this structure may\n be called on any render process thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
13137pub type cef_v8_exception_t = _cef_v8_exception_t;
13138#[doc = "\n Callback structure that is passed to cef_v8_value_t::CreateArrayBuffer.\n\n NOTE: This struct is allocated client-side.\n"]
13139#[repr(C)]
13140#[derive(Debug, Copy, Clone)]
13141pub struct _cef_v8_array_buffer_release_callback_t {
13142    #[doc = "\n Base structure.\n"]
13143    pub base: cef_base_ref_counted_t,
13144    #[doc = "\n Called to release |buffer| when the ArrayBuffer JS object is garbage\n collected. |buffer| is the value that was passed to CreateArrayBuffer\n along with this object.\n"]
13145    pub release_buffer: ::std::option::Option<
13146        unsafe extern "C" fn(
13147            self_: *mut _cef_v8_array_buffer_release_callback_t,
13148            buffer: *mut ::std::os::raw::c_void,
13149        ),
13150    >,
13151}
13152#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13153const _: () = {
13154    ["Size of _cef_v8_array_buffer_release_callback_t"]
13155        [::std::mem::size_of::<_cef_v8_array_buffer_release_callback_t>() - 48usize];
13156    ["Alignment of _cef_v8_array_buffer_release_callback_t"]
13157        [::std::mem::align_of::<_cef_v8_array_buffer_release_callback_t>() - 8usize];
13158    ["Offset of field: _cef_v8_array_buffer_release_callback_t::base"]
13159        [::std::mem::offset_of!(_cef_v8_array_buffer_release_callback_t, base) - 0usize];
13160    ["Offset of field: _cef_v8_array_buffer_release_callback_t::release_buffer"]
13161        [::std::mem::offset_of!(_cef_v8_array_buffer_release_callback_t, release_buffer) - 40usize];
13162};
13163#[doc = "\n Callback structure that is passed to cef_v8_value_t::CreateArrayBuffer.\n\n NOTE: This struct is allocated client-side.\n"]
13164pub type cef_v8_array_buffer_release_callback_t = _cef_v8_array_buffer_release_callback_t;
13165#[doc = "\n Structure representing a V8 ArrayBuffer backing store. The backing store\n holds the memory that backs an ArrayBuffer. It must be created on a thread\n with a valid V8 isolate (renderer main thread or WebWorker thread). Once\n created, the data() pointer can be safely read/written from any thread. This\n allows expensive operations like memcpy to be performed on a background\n thread before creating the ArrayBuffer on the V8 thread.\n\n The backing store is consumed when passed to\n cef_v8_value_t::cef_v8_value_create_array_buffer_from_backing_store(), after\n which is_valid() returns false (0).\n\n NOTE: This struct is allocated DLL-side.\n"]
13166#[repr(C)]
13167#[derive(Debug, Copy, Clone)]
13168pub struct _cef_v8_backing_store_t {
13169    #[doc = "\n Base structure.\n"]
13170    pub base: cef_base_ref_counted_t,
13171    #[doc = "\n Returns a pointer to the allocated memory, or nullptr if the backing store\n has been consumed or is otherwise invalid. The pointer is safe to\n read/write from any thread. The caller must ensure all writes are complete\n before passing this object to\n cef_v8_value_create_array_buffer_from_backing_store(). Pointers obtained\n from this function should not be retained after calling\n cef_v8_value_create_array_buffer_from_backing_store(), as the memory will\n then be owned by the ArrayBuffer and subject to V8 garbage collection.\n"]
13172    pub data: ::std::option::Option<
13173        unsafe extern "C" fn(self_: *mut _cef_v8_backing_store_t) -> *mut ::std::os::raw::c_void,
13174    >,
13175    #[doc = "\n Returns the size of the allocated memory in bytes, or 0 if the backing\n store has been consumed.\n"]
13176    pub byte_length:
13177        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_backing_store_t) -> usize>,
13178    #[doc = "\n Returns true (1) if this backing store has not yet been consumed by\n cef_v8_value_create_array_buffer_from_backing_store().\n"]
13179    pub is_valid: ::std::option::Option<
13180        unsafe extern "C" fn(self_: *mut _cef_v8_backing_store_t) -> ::std::os::raw::c_int,
13181    >,
13182}
13183#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13184const _: () = {
13185    ["Size of _cef_v8_backing_store_t"][::std::mem::size_of::<_cef_v8_backing_store_t>() - 64usize];
13186    ["Alignment of _cef_v8_backing_store_t"]
13187        [::std::mem::align_of::<_cef_v8_backing_store_t>() - 8usize];
13188    ["Offset of field: _cef_v8_backing_store_t::base"]
13189        [::std::mem::offset_of!(_cef_v8_backing_store_t, base) - 0usize];
13190    ["Offset of field: _cef_v8_backing_store_t::data"]
13191        [::std::mem::offset_of!(_cef_v8_backing_store_t, data) - 40usize];
13192    ["Offset of field: _cef_v8_backing_store_t::byte_length"]
13193        [::std::mem::offset_of!(_cef_v8_backing_store_t, byte_length) - 48usize];
13194    ["Offset of field: _cef_v8_backing_store_t::is_valid"]
13195        [::std::mem::offset_of!(_cef_v8_backing_store_t, is_valid) - 56usize];
13196};
13197#[doc = "\n Structure representing a V8 ArrayBuffer backing store. The backing store\n holds the memory that backs an ArrayBuffer. It must be created on a thread\n with a valid V8 isolate (renderer main thread or WebWorker thread). Once\n created, the data() pointer can be safely read/written from any thread. This\n allows expensive operations like memcpy to be performed on a background\n thread before creating the ArrayBuffer on the V8 thread.\n\n The backing store is consumed when passed to\n cef_v8_value_t::cef_v8_value_create_array_buffer_from_backing_store(), after\n which is_valid() returns false (0).\n\n NOTE: This struct is allocated DLL-side.\n"]
13198pub type cef_v8_backing_store_t = _cef_v8_backing_store_t;
13199unsafe extern "C" {
13200    #[doc = "\n Create a new backing store with allocated memory of |byte_length| bytes. The\n memory is uninitialized. This function must be called on a thread with a\n valid V8 isolate. The returned object can safely be passed to other threads.\n Returns nullptr on failure.\n"]
13201    pub fn cef_v8_backing_store_create(byte_length: usize) -> *mut cef_v8_backing_store_t;
13202}
13203#[doc = "\n Structure representing a V8 value handle. V8 handles can only be accessed\n from the thread on which they are created. Valid threads for creating a V8\n handle include the render process main thread (TID_RENDERER) and WebWorker\n threads. A task runner for posting tasks on the associated thread can be\n retrieved via the cef_v8_context_t::get_task_runner() function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13204#[repr(C)]
13205#[derive(Debug, Copy, Clone)]
13206pub struct _cef_v8_value_t {
13207    #[doc = "\n Base structure.\n"]
13208    pub base: cef_base_ref_counted_t,
13209    #[doc = "\n Returns true (1) if the underlying handle is valid and it can be accessed\n on the current thread. Do not call any other functions if this function\n returns false (0).\n"]
13210    pub is_valid: ::std::option::Option<
13211        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13212    >,
13213    #[doc = "\n True if the value type is undefined.\n"]
13214    pub is_undefined: ::std::option::Option<
13215        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13216    >,
13217    #[doc = "\n True if the value type is null.\n"]
13218    pub is_null: ::std::option::Option<
13219        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13220    >,
13221    #[doc = "\n True if the value type is bool.\n"]
13222    pub is_bool: ::std::option::Option<
13223        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13224    >,
13225    #[doc = "\n True if the value type is int.\n"]
13226    pub is_int: ::std::option::Option<
13227        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13228    >,
13229    #[doc = "\n True if the value type is unsigned int.\n"]
13230    pub is_uint: ::std::option::Option<
13231        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13232    >,
13233    #[doc = "\n True if the value type is double.\n"]
13234    pub is_double: ::std::option::Option<
13235        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13236    >,
13237    #[doc = "\n True if the value type is Date.\n"]
13238    pub is_date: ::std::option::Option<
13239        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13240    >,
13241    #[doc = "\n True if the value type is string.\n"]
13242    pub is_string: ::std::option::Option<
13243        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13244    >,
13245    #[doc = "\n True if the value type is object.\n"]
13246    pub is_object: ::std::option::Option<
13247        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13248    >,
13249    #[doc = "\n True if the value type is array.\n"]
13250    pub is_array: ::std::option::Option<
13251        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13252    >,
13253    #[doc = "\n True if the value type is an ArrayBuffer.\n"]
13254    pub is_array_buffer: ::std::option::Option<
13255        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13256    >,
13257    #[doc = "\n True if the value type is function.\n"]
13258    pub is_function: ::std::option::Option<
13259        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13260    >,
13261    #[doc = "\n True if the value type is a Promise.\n"]
13262    pub is_promise: ::std::option::Option<
13263        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13264    >,
13265    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
13266    pub is_same: ::std::option::Option<
13267        unsafe extern "C" fn(
13268            self_: *mut _cef_v8_value_t,
13269            that: *mut _cef_v8_value_t,
13270        ) -> ::std::os::raw::c_int,
13271    >,
13272    #[doc = "\n Return a bool value.\n"]
13273    pub get_bool_value: ::std::option::Option<
13274        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13275    >,
13276    #[doc = "\n Return an int value.\n"]
13277    pub get_int_value:
13278        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> i32>,
13279    #[doc = "\n Return an unsigned int value.\n"]
13280    pub get_uint_value:
13281        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> u32>,
13282    #[doc = "\n Return a double value.\n"]
13283    pub get_double_value:
13284        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> f64>,
13285    #[doc = "\n Return a Date value.\n"]
13286    pub get_date_value:
13287        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_basetime_t>,
13288    #[doc = "\n Return a string value.\n"]
13289    pub get_string_value: ::std::option::Option<
13290        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_string_userfree_t,
13291    >,
13292    #[doc = "\n Returns true (1) if this is a user created object.\n"]
13293    pub is_user_created: ::std::option::Option<
13294        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13295    >,
13296    #[doc = "\n Returns true (1) if the last function call resulted in an exception. This\n attribute exists only in the scope of the current CEF value object.\n"]
13297    pub has_exception: ::std::option::Option<
13298        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13299    >,
13300    #[doc = "\n Returns the exception resulting from the last function call. This\n attribute exists only in the scope of the current CEF value object.\n"]
13301    pub get_exception: ::std::option::Option<
13302        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_v8_exception_t,
13303    >,
13304    #[doc = "\n Clears the last exception and returns true (1) on success.\n"]
13305    pub clear_exception: ::std::option::Option<
13306        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13307    >,
13308    #[doc = "\n Returns true (1) if this object will re-throw future exceptions. This\n attribute exists only in the scope of the current CEF value object.\n"]
13309    pub will_rethrow_exceptions: ::std::option::Option<
13310        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13311    >,
13312    #[doc = "\n Set whether this object will re-throw future exceptions. By default\n exceptions are not re-thrown. If a exception is re-thrown the current\n context should not be accessed again until after the exception has been\n caught and not re-thrown. Returns true (1) on success. This attribute\n exists only in the scope of the current CEF value object.\n"]
13313    pub set_rethrow_exceptions: ::std::option::Option<
13314        unsafe extern "C" fn(
13315            self_: *mut _cef_v8_value_t,
13316            rethrow: ::std::os::raw::c_int,
13317        ) -> ::std::os::raw::c_int,
13318    >,
13319    #[doc = "\n Returns true (1) if the object has a value with the specified identifier.\n"]
13320    pub has_value_bykey: ::std::option::Option<
13321        unsafe extern "C" fn(
13322            self_: *mut _cef_v8_value_t,
13323            key: *const cef_string_t,
13324        ) -> ::std::os::raw::c_int,
13325    >,
13326    #[doc = "\n Returns true (1) if the object has a value with the specified identifier.\n"]
13327    pub has_value_byindex: ::std::option::Option<
13328        unsafe extern "C" fn(
13329            self_: *mut _cef_v8_value_t,
13330            index: ::std::os::raw::c_int,
13331        ) -> ::std::os::raw::c_int,
13332    >,
13333    #[doc = "\n Deletes the value with the specified identifier and returns true (1) on\n success. Returns false (0) if this function is called incorrectly or an\n exception is thrown. For read-only and don't-delete values this function\n will return true (1) even though deletion failed.\n"]
13334    pub delete_value_bykey: ::std::option::Option<
13335        unsafe extern "C" fn(
13336            self_: *mut _cef_v8_value_t,
13337            key: *const cef_string_t,
13338        ) -> ::std::os::raw::c_int,
13339    >,
13340    #[doc = "\n Deletes the value with the specified identifier and returns true (1) on\n success. Returns false (0) if this function is called incorrectly,\n deletion fails or an exception is thrown. For read-only and don't-delete\n values this function will return true (1) even though deletion failed.\n"]
13341    pub delete_value_byindex: ::std::option::Option<
13342        unsafe extern "C" fn(
13343            self_: *mut _cef_v8_value_t,
13344            index: ::std::os::raw::c_int,
13345        ) -> ::std::os::raw::c_int,
13346    >,
13347    #[doc = "\n Returns the value with the specified identifier on success. Returns NULL\n if this function is called incorrectly or an exception is thrown.\n"]
13348    pub get_value_bykey: ::std::option::Option<
13349        unsafe extern "C" fn(
13350            self_: *mut _cef_v8_value_t,
13351            key: *const cef_string_t,
13352        ) -> *mut _cef_v8_value_t,
13353    >,
13354    #[doc = "\n Returns the value with the specified identifier on success. Returns NULL\n if this function is called incorrectly or an exception is thrown.\n"]
13355    pub get_value_byindex: ::std::option::Option<
13356        unsafe extern "C" fn(
13357            self_: *mut _cef_v8_value_t,
13358            index: ::std::os::raw::c_int,
13359        ) -> *mut _cef_v8_value_t,
13360    >,
13361    #[doc = "\n Associates a value with the specified identifier and returns true (1) on\n success. Returns false (0) if this function is called incorrectly or an\n exception is thrown. For read-only values this function will return true\n (1) even though assignment failed.\n"]
13362    pub set_value_bykey: ::std::option::Option<
13363        unsafe extern "C" fn(
13364            self_: *mut _cef_v8_value_t,
13365            key: *const cef_string_t,
13366            value: *mut _cef_v8_value_t,
13367            attribute: cef_v8_propertyattribute_t,
13368        ) -> ::std::os::raw::c_int,
13369    >,
13370    #[doc = "\n Associates a value with the specified identifier and returns true (1) on\n success. Returns false (0) if this function is called incorrectly or an\n exception is thrown. For read-only values this function will return true\n (1) even though assignment failed.\n"]
13371    pub set_value_byindex: ::std::option::Option<
13372        unsafe extern "C" fn(
13373            self_: *mut _cef_v8_value_t,
13374            index: ::std::os::raw::c_int,
13375            value: *mut _cef_v8_value_t,
13376        ) -> ::std::os::raw::c_int,
13377    >,
13378    #[doc = "\n Registers an identifier and returns true (1) on success. Access to the\n identifier will be forwarded to the cef_v8_accessor_t instance passed to\n cef_v8_value_t::cef_v8_value_create_object(). Returns false (0) if this\n function is called incorrectly or an exception is thrown. For read-only\n values this function will return true (1) even though assignment failed.\n"]
13379    pub set_value_byaccessor: ::std::option::Option<
13380        unsafe extern "C" fn(
13381            self_: *mut _cef_v8_value_t,
13382            key: *const cef_string_t,
13383            attribute: cef_v8_propertyattribute_t,
13384        ) -> ::std::os::raw::c_int,
13385    >,
13386    #[doc = "\n Read the keys for the object's values into the specified vector. Integer-\n based keys will also be returned as strings.\n"]
13387    pub get_keys: ::std::option::Option<
13388        unsafe extern "C" fn(
13389            self_: *mut _cef_v8_value_t,
13390            keys: cef_string_list_t,
13391        ) -> ::std::os::raw::c_int,
13392    >,
13393    #[doc = "\n Sets the user data for this object and returns true (1) on success.\n Returns false (0) if this function is called incorrectly. This function\n can only be called on user created objects.\n"]
13394    pub set_user_data: ::std::option::Option<
13395        unsafe extern "C" fn(
13396            self_: *mut _cef_v8_value_t,
13397            user_data: *mut _cef_base_ref_counted_t,
13398        ) -> ::std::os::raw::c_int,
13399    >,
13400    #[doc = "\n Returns the user data, if any, assigned to this object.\n"]
13401    pub get_user_data: ::std::option::Option<
13402        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_base_ref_counted_t,
13403    >,
13404    #[doc = "\n Returns the amount of externally allocated memory registered for the\n object.\n"]
13405    pub get_externally_allocated_memory: ::std::option::Option<
13406        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13407    >,
13408    #[doc = "\n Adjusts the amount of registered external memory for the object. Used to\n give V8 an indication of the amount of externally allocated memory that is\n kept alive by JavaScript objects. V8 uses this information to decide when\n to perform global garbage collection. Each cef_v8_value_t tracks the\n amount of external memory associated with it and automatically decreases\n the global total by the appropriate amount on its destruction.\n |change_in_bytes| specifies the number of bytes to adjust by. This\n function returns the number of bytes associated with the object after the\n adjustment. This function can only be called on user created objects.\n"]
13409    pub adjust_externally_allocated_memory: ::std::option::Option<
13410        unsafe extern "C" fn(
13411            self_: *mut _cef_v8_value_t,
13412            change_in_bytes: ::std::os::raw::c_int,
13413        ) -> ::std::os::raw::c_int,
13414    >,
13415    #[doc = "\n Returns the number of elements in the array.\n"]
13416    pub get_array_length: ::std::option::Option<
13417        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13418    >,
13419    #[doc = "\n Returns the ReleaseCallback object associated with the ArrayBuffer or NULL\n if the ArrayBuffer was not created with CreateArrayBuffer.\n"]
13420    pub get_array_buffer_release_callback: ::std::option::Option<
13421        unsafe extern "C" fn(
13422            self_: *mut _cef_v8_value_t,
13423        ) -> *mut _cef_v8_array_buffer_release_callback_t,
13424    >,
13425    #[doc = "\n Prevent the ArrayBuffer from using it's memory block by setting the length\n to zero. This operation cannot be undone. If the ArrayBuffer was created\n with CreateArrayBuffer then\n cef_v8_array_buffer_release_callback_t::ReleaseBuffer will be called to\n release the underlying buffer.\n"]
13426    pub neuter_array_buffer: ::std::option::Option<
13427        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13428    >,
13429    #[doc = "\n Returns the length (in bytes) of the ArrayBuffer.\n"]
13430    pub get_array_buffer_byte_length:
13431        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> usize>,
13432    #[doc = "\n Returns a pointer to the beginning of the memory block for this\n ArrayBuffer backing store. The returned pointer is valid as long as the\n cef_v8_value_t is alive.\n"]
13433    pub get_array_buffer_data: ::std::option::Option<
13434        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut ::std::os::raw::c_void,
13435    >,
13436    #[doc = "\n Returns the function name.\n"]
13437    pub get_function_name: ::std::option::Option<
13438        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_string_userfree_t,
13439    >,
13440    #[doc = "\n Returns the function handler or NULL if not a CEF-created function.\n"]
13441    pub get_function_handler: ::std::option::Option<
13442        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_v8_handler_t,
13443    >,
13444    #[doc = "\n Execute the function using the current V8 context. This function should\n only be called from within the scope of a cef_v8_handler_t or\n cef_v8_accessor_t callback, or in combination with calling enter() and\n exit() on a stored cef_v8_context_t reference. |object| is the receiver\n ('this' object) of the function. If |object| is NULL the current context's\n global object will be used. |arguments| is the list of arguments that will\n be passed to the function. Returns the function return value on success.\n Returns NULL if this function is called incorrectly or an exception is\n thrown.\n"]
13445    pub execute_function: ::std::option::Option<
13446        unsafe extern "C" fn(
13447            self_: *mut _cef_v8_value_t,
13448            object: *mut _cef_v8_value_t,
13449            argumentsCount: usize,
13450            arguments: *const *mut _cef_v8_value_t,
13451        ) -> *mut _cef_v8_value_t,
13452    >,
13453    #[doc = "\n Execute the function using the specified V8 context. |object| is the\n receiver ('this' object) of the function. If |object| is NULL the\n specified context's global object will be used. |arguments| is the list of\n arguments that will be passed to the function. Returns the function return\n value on success. Returns NULL if this function is called incorrectly or\n an exception is thrown.\n"]
13454    pub execute_function_with_context: ::std::option::Option<
13455        unsafe extern "C" fn(
13456            self_: *mut _cef_v8_value_t,
13457            context: *mut _cef_v8_context_t,
13458            object: *mut _cef_v8_value_t,
13459            argumentsCount: usize,
13460            arguments: *const *mut _cef_v8_value_t,
13461        ) -> *mut _cef_v8_value_t,
13462    >,
13463    #[doc = "\n Resolve the Promise using the current V8 context. This function should\n only be called from within the scope of a cef_v8_handler_t or\n cef_v8_accessor_t callback, or in combination with calling enter() and\n exit() on a stored cef_v8_context_t reference. |arg| is the argument\n passed to the resolved promise. Returns true (1) on success. Returns false\n (0) if this function is called incorrectly or an exception is thrown.\n"]
13464    pub resolve_promise: ::std::option::Option<
13465        unsafe extern "C" fn(
13466            self_: *mut _cef_v8_value_t,
13467            arg: *mut _cef_v8_value_t,
13468        ) -> ::std::os::raw::c_int,
13469    >,
13470    #[doc = "\n Reject the Promise using the current V8 context. This function should only\n be called from within the scope of a cef_v8_handler_t or cef_v8_accessor_t\n callback, or in combination with calling enter() and exit() on a stored\n cef_v8_context_t reference. Returns true (1) on success. Returns false (0)\n if this function is called incorrectly or an exception is thrown.\n"]
13471    pub reject_promise: ::std::option::Option<
13472        unsafe extern "C" fn(
13473            self_: *mut _cef_v8_value_t,
13474            errorMsg: *const cef_string_t,
13475        ) -> ::std::os::raw::c_int,
13476    >,
13477}
13478#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13479const _: () = {
13480    ["Size of _cef_v8_value_t"][::std::mem::size_of::<_cef_v8_value_t>() - 456usize];
13481    ["Alignment of _cef_v8_value_t"][::std::mem::align_of::<_cef_v8_value_t>() - 8usize];
13482    ["Offset of field: _cef_v8_value_t::base"]
13483        [::std::mem::offset_of!(_cef_v8_value_t, base) - 0usize];
13484    ["Offset of field: _cef_v8_value_t::is_valid"]
13485        [::std::mem::offset_of!(_cef_v8_value_t, is_valid) - 40usize];
13486    ["Offset of field: _cef_v8_value_t::is_undefined"]
13487        [::std::mem::offset_of!(_cef_v8_value_t, is_undefined) - 48usize];
13488    ["Offset of field: _cef_v8_value_t::is_null"]
13489        [::std::mem::offset_of!(_cef_v8_value_t, is_null) - 56usize];
13490    ["Offset of field: _cef_v8_value_t::is_bool"]
13491        [::std::mem::offset_of!(_cef_v8_value_t, is_bool) - 64usize];
13492    ["Offset of field: _cef_v8_value_t::is_int"]
13493        [::std::mem::offset_of!(_cef_v8_value_t, is_int) - 72usize];
13494    ["Offset of field: _cef_v8_value_t::is_uint"]
13495        [::std::mem::offset_of!(_cef_v8_value_t, is_uint) - 80usize];
13496    ["Offset of field: _cef_v8_value_t::is_double"]
13497        [::std::mem::offset_of!(_cef_v8_value_t, is_double) - 88usize];
13498    ["Offset of field: _cef_v8_value_t::is_date"]
13499        [::std::mem::offset_of!(_cef_v8_value_t, is_date) - 96usize];
13500    ["Offset of field: _cef_v8_value_t::is_string"]
13501        [::std::mem::offset_of!(_cef_v8_value_t, is_string) - 104usize];
13502    ["Offset of field: _cef_v8_value_t::is_object"]
13503        [::std::mem::offset_of!(_cef_v8_value_t, is_object) - 112usize];
13504    ["Offset of field: _cef_v8_value_t::is_array"]
13505        [::std::mem::offset_of!(_cef_v8_value_t, is_array) - 120usize];
13506    ["Offset of field: _cef_v8_value_t::is_array_buffer"]
13507        [::std::mem::offset_of!(_cef_v8_value_t, is_array_buffer) - 128usize];
13508    ["Offset of field: _cef_v8_value_t::is_function"]
13509        [::std::mem::offset_of!(_cef_v8_value_t, is_function) - 136usize];
13510    ["Offset of field: _cef_v8_value_t::is_promise"]
13511        [::std::mem::offset_of!(_cef_v8_value_t, is_promise) - 144usize];
13512    ["Offset of field: _cef_v8_value_t::is_same"]
13513        [::std::mem::offset_of!(_cef_v8_value_t, is_same) - 152usize];
13514    ["Offset of field: _cef_v8_value_t::get_bool_value"]
13515        [::std::mem::offset_of!(_cef_v8_value_t, get_bool_value) - 160usize];
13516    ["Offset of field: _cef_v8_value_t::get_int_value"]
13517        [::std::mem::offset_of!(_cef_v8_value_t, get_int_value) - 168usize];
13518    ["Offset of field: _cef_v8_value_t::get_uint_value"]
13519        [::std::mem::offset_of!(_cef_v8_value_t, get_uint_value) - 176usize];
13520    ["Offset of field: _cef_v8_value_t::get_double_value"]
13521        [::std::mem::offset_of!(_cef_v8_value_t, get_double_value) - 184usize];
13522    ["Offset of field: _cef_v8_value_t::get_date_value"]
13523        [::std::mem::offset_of!(_cef_v8_value_t, get_date_value) - 192usize];
13524    ["Offset of field: _cef_v8_value_t::get_string_value"]
13525        [::std::mem::offset_of!(_cef_v8_value_t, get_string_value) - 200usize];
13526    ["Offset of field: _cef_v8_value_t::is_user_created"]
13527        [::std::mem::offset_of!(_cef_v8_value_t, is_user_created) - 208usize];
13528    ["Offset of field: _cef_v8_value_t::has_exception"]
13529        [::std::mem::offset_of!(_cef_v8_value_t, has_exception) - 216usize];
13530    ["Offset of field: _cef_v8_value_t::get_exception"]
13531        [::std::mem::offset_of!(_cef_v8_value_t, get_exception) - 224usize];
13532    ["Offset of field: _cef_v8_value_t::clear_exception"]
13533        [::std::mem::offset_of!(_cef_v8_value_t, clear_exception) - 232usize];
13534    ["Offset of field: _cef_v8_value_t::will_rethrow_exceptions"]
13535        [::std::mem::offset_of!(_cef_v8_value_t, will_rethrow_exceptions) - 240usize];
13536    ["Offset of field: _cef_v8_value_t::set_rethrow_exceptions"]
13537        [::std::mem::offset_of!(_cef_v8_value_t, set_rethrow_exceptions) - 248usize];
13538    ["Offset of field: _cef_v8_value_t::has_value_bykey"]
13539        [::std::mem::offset_of!(_cef_v8_value_t, has_value_bykey) - 256usize];
13540    ["Offset of field: _cef_v8_value_t::has_value_byindex"]
13541        [::std::mem::offset_of!(_cef_v8_value_t, has_value_byindex) - 264usize];
13542    ["Offset of field: _cef_v8_value_t::delete_value_bykey"]
13543        [::std::mem::offset_of!(_cef_v8_value_t, delete_value_bykey) - 272usize];
13544    ["Offset of field: _cef_v8_value_t::delete_value_byindex"]
13545        [::std::mem::offset_of!(_cef_v8_value_t, delete_value_byindex) - 280usize];
13546    ["Offset of field: _cef_v8_value_t::get_value_bykey"]
13547        [::std::mem::offset_of!(_cef_v8_value_t, get_value_bykey) - 288usize];
13548    ["Offset of field: _cef_v8_value_t::get_value_byindex"]
13549        [::std::mem::offset_of!(_cef_v8_value_t, get_value_byindex) - 296usize];
13550    ["Offset of field: _cef_v8_value_t::set_value_bykey"]
13551        [::std::mem::offset_of!(_cef_v8_value_t, set_value_bykey) - 304usize];
13552    ["Offset of field: _cef_v8_value_t::set_value_byindex"]
13553        [::std::mem::offset_of!(_cef_v8_value_t, set_value_byindex) - 312usize];
13554    ["Offset of field: _cef_v8_value_t::set_value_byaccessor"]
13555        [::std::mem::offset_of!(_cef_v8_value_t, set_value_byaccessor) - 320usize];
13556    ["Offset of field: _cef_v8_value_t::get_keys"]
13557        [::std::mem::offset_of!(_cef_v8_value_t, get_keys) - 328usize];
13558    ["Offset of field: _cef_v8_value_t::set_user_data"]
13559        [::std::mem::offset_of!(_cef_v8_value_t, set_user_data) - 336usize];
13560    ["Offset of field: _cef_v8_value_t::get_user_data"]
13561        [::std::mem::offset_of!(_cef_v8_value_t, get_user_data) - 344usize];
13562    ["Offset of field: _cef_v8_value_t::get_externally_allocated_memory"]
13563        [::std::mem::offset_of!(_cef_v8_value_t, get_externally_allocated_memory) - 352usize];
13564    ["Offset of field: _cef_v8_value_t::adjust_externally_allocated_memory"]
13565        [::std::mem::offset_of!(_cef_v8_value_t, adjust_externally_allocated_memory) - 360usize];
13566    ["Offset of field: _cef_v8_value_t::get_array_length"]
13567        [::std::mem::offset_of!(_cef_v8_value_t, get_array_length) - 368usize];
13568    ["Offset of field: _cef_v8_value_t::get_array_buffer_release_callback"]
13569        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_release_callback) - 376usize];
13570    ["Offset of field: _cef_v8_value_t::neuter_array_buffer"]
13571        [::std::mem::offset_of!(_cef_v8_value_t, neuter_array_buffer) - 384usize];
13572    ["Offset of field: _cef_v8_value_t::get_array_buffer_byte_length"]
13573        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_byte_length) - 392usize];
13574    ["Offset of field: _cef_v8_value_t::get_array_buffer_data"]
13575        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_data) - 400usize];
13576    ["Offset of field: _cef_v8_value_t::get_function_name"]
13577        [::std::mem::offset_of!(_cef_v8_value_t, get_function_name) - 408usize];
13578    ["Offset of field: _cef_v8_value_t::get_function_handler"]
13579        [::std::mem::offset_of!(_cef_v8_value_t, get_function_handler) - 416usize];
13580    ["Offset of field: _cef_v8_value_t::execute_function"]
13581        [::std::mem::offset_of!(_cef_v8_value_t, execute_function) - 424usize];
13582    ["Offset of field: _cef_v8_value_t::execute_function_with_context"]
13583        [::std::mem::offset_of!(_cef_v8_value_t, execute_function_with_context) - 432usize];
13584    ["Offset of field: _cef_v8_value_t::resolve_promise"]
13585        [::std::mem::offset_of!(_cef_v8_value_t, resolve_promise) - 440usize];
13586    ["Offset of field: _cef_v8_value_t::reject_promise"]
13587        [::std::mem::offset_of!(_cef_v8_value_t, reject_promise) - 448usize];
13588};
13589#[doc = "\n Structure representing a V8 value handle. V8 handles can only be accessed\n from the thread on which they are created. Valid threads for creating a V8\n handle include the render process main thread (TID_RENDERER) and WebWorker\n threads. A task runner for posting tasks on the associated thread can be\n retrieved via the cef_v8_context_t::get_task_runner() function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13590pub type cef_v8_value_t = _cef_v8_value_t;
13591unsafe extern "C" {
13592    #[doc = "\n Create a new cef_v8_value_t object of type undefined.\n"]
13593    pub fn cef_v8_value_create_undefined() -> *mut cef_v8_value_t;
13594}
13595unsafe extern "C" {
13596    #[doc = "\n Create a new cef_v8_value_t object of type null.\n"]
13597    pub fn cef_v8_value_create_null() -> *mut cef_v8_value_t;
13598}
13599unsafe extern "C" {
13600    #[doc = "\n Create a new cef_v8_value_t object of type bool.\n"]
13601    pub fn cef_v8_value_create_bool(value: ::std::os::raw::c_int) -> *mut cef_v8_value_t;
13602}
13603unsafe extern "C" {
13604    #[doc = "\n Create a new cef_v8_value_t object of type int.\n"]
13605    pub fn cef_v8_value_create_int(value: i32) -> *mut cef_v8_value_t;
13606}
13607unsafe extern "C" {
13608    #[doc = "\n Create a new cef_v8_value_t object of type unsigned int.\n"]
13609    pub fn cef_v8_value_create_uint(value: u32) -> *mut cef_v8_value_t;
13610}
13611unsafe extern "C" {
13612    #[doc = "\n Create a new cef_v8_value_t object of type double.\n"]
13613    pub fn cef_v8_value_create_double(value: f64) -> *mut cef_v8_value_t;
13614}
13615unsafe extern "C" {
13616    #[doc = "\n Create a new cef_v8_value_t object of type Date. This function should only\n be called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n"]
13617    pub fn cef_v8_value_create_date(date: cef_basetime_t) -> *mut cef_v8_value_t;
13618}
13619unsafe extern "C" {
13620    #[doc = "\n Create a new cef_v8_value_t object of type string.\n"]
13621    pub fn cef_v8_value_create_string(value: *const cef_string_t) -> *mut cef_v8_value_t;
13622}
13623unsafe extern "C" {
13624    #[doc = "\n Create a new cef_v8_value_t object of type object with optional accessor\n and/or interceptor. This function should only be called from within the\n scope of a cef_render_process_handler_t, cef_v8_handler_t or\n cef_v8_accessor_t callback, or in combination with calling enter() and\n exit() on a stored cef_v8_context_t reference.\n"]
13625    pub fn cef_v8_value_create_object(
13626        accessor: *mut cef_v8_accessor_t,
13627        interceptor: *mut cef_v8_interceptor_t,
13628    ) -> *mut cef_v8_value_t;
13629}
13630unsafe extern "C" {
13631    #[doc = "\n Create a new cef_v8_value_t object of type array with the specified\n |length|. If |length| is negative the returned array will have length 0.\n This function should only be called from within the scope of a\n cef_render_process_handler_t, cef_v8_handler_t or cef_v8_accessor_t\n callback, or in combination with calling enter() and exit() on a stored\n cef_v8_context_t reference.\n"]
13632    pub fn cef_v8_value_create_array(length: ::std::os::raw::c_int) -> *mut cef_v8_value_t;
13633}
13634unsafe extern "C" {
13635    #[doc = "\n Create a new cef_v8_value_t object of type ArrayBuffer which wraps the\n provided |buffer| of size |length| bytes. The ArrayBuffer is externalized,\n meaning that it does not own |buffer|. The caller is responsible for freeing\n |buffer| when requested via a call to\n cef_v8_array_buffer_release_callback_t::ReleaseBuffer. This function should\n only be called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n\n NOTE: Always returns nullptr when V8 sandbox is enabled.\n"]
13636    pub fn cef_v8_value_create_array_buffer(
13637        buffer: *mut ::std::os::raw::c_void,
13638        length: usize,
13639        release_callback: *mut cef_v8_array_buffer_release_callback_t,
13640    ) -> *mut cef_v8_value_t;
13641}
13642unsafe extern "C" {
13643    #[doc = "\n Create a new cef_v8_value_t object of type ArrayBuffer which copies the\n provided |buffer| of size |length| bytes. This function should only be\n called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n"]
13644    pub fn cef_v8_value_create_array_buffer_with_copy(
13645        buffer: *mut ::std::os::raw::c_void,
13646        length: usize,
13647    ) -> *mut cef_v8_value_t;
13648}
13649unsafe extern "C" {
13650    #[doc = "\n Create a new cef_v8_value_t object of type ArrayBuffer from a backing store\n previously created with cef_v8_backing_store_t::cef_translator_test_scoped_l\n ibrary_child_child_create(). This is a zero-copy operation - the ArrayBuffer\n uses the memory already allocated by the backing store. The backing store is\n consumed and becomes invalid after this call. This function should only be\n called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n"]
13651    pub fn cef_v8_value_create_array_buffer_from_backing_store(
13652        backing_store: *mut cef_v8_backing_store_t,
13653    ) -> *mut cef_v8_value_t;
13654}
13655unsafe extern "C" {
13656    #[doc = "\n Create a new cef_v8_value_t object of type function. This function should\n only be called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n"]
13657    pub fn cef_v8_value_create_function(
13658        name: *const cef_string_t,
13659        handler: *mut cef_v8_handler_t,
13660    ) -> *mut cef_v8_value_t;
13661}
13662unsafe extern "C" {
13663    #[doc = "\n Create a new cef_v8_value_t object of type Promise. This function should\n only be called from within the scope of a cef_render_process_handler_t,\n cef_v8_handler_t or cef_v8_accessor_t callback, or in combination with\n calling enter() and exit() on a stored cef_v8_context_t reference.\n"]
13664    pub fn cef_v8_value_create_promise() -> *mut cef_v8_value_t;
13665}
13666#[doc = "\n Structure representing a V8 stack trace handle. V8 handles can only be\n accessed from the thread on which they are created. Valid threads for\n creating a V8 handle include the render process main thread (TID_RENDERER)\n and WebWorker threads. A task runner for posting tasks on the associated\n thread can be retrieved via the cef_v8_context_t::get_task_runner()\n function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13667#[repr(C)]
13668#[derive(Debug, Copy, Clone)]
13669pub struct _cef_v8_stack_trace_t {
13670    #[doc = "\n Base structure.\n"]
13671    pub base: cef_base_ref_counted_t,
13672    #[doc = "\n Returns true (1) if the underlying handle is valid and it can be accessed\n on the current thread. Do not call any other functions if this function\n returns false (0).\n"]
13673    pub is_valid: ::std::option::Option<
13674        unsafe extern "C" fn(self_: *mut _cef_v8_stack_trace_t) -> ::std::os::raw::c_int,
13675    >,
13676    #[doc = "\n Returns the number of stack frames.\n"]
13677    pub get_frame_count: ::std::option::Option<
13678        unsafe extern "C" fn(self_: *mut _cef_v8_stack_trace_t) -> ::std::os::raw::c_int,
13679    >,
13680    #[doc = "\n Returns the stack frame at the specified 0-based index.\n"]
13681    pub get_frame: ::std::option::Option<
13682        unsafe extern "C" fn(
13683            self_: *mut _cef_v8_stack_trace_t,
13684            index: ::std::os::raw::c_int,
13685        ) -> *mut _cef_v8_stack_frame_t,
13686    >,
13687}
13688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13689const _: () = {
13690    ["Size of _cef_v8_stack_trace_t"][::std::mem::size_of::<_cef_v8_stack_trace_t>() - 64usize];
13691    ["Alignment of _cef_v8_stack_trace_t"]
13692        [::std::mem::align_of::<_cef_v8_stack_trace_t>() - 8usize];
13693    ["Offset of field: _cef_v8_stack_trace_t::base"]
13694        [::std::mem::offset_of!(_cef_v8_stack_trace_t, base) - 0usize];
13695    ["Offset of field: _cef_v8_stack_trace_t::is_valid"]
13696        [::std::mem::offset_of!(_cef_v8_stack_trace_t, is_valid) - 40usize];
13697    ["Offset of field: _cef_v8_stack_trace_t::get_frame_count"]
13698        [::std::mem::offset_of!(_cef_v8_stack_trace_t, get_frame_count) - 48usize];
13699    ["Offset of field: _cef_v8_stack_trace_t::get_frame"]
13700        [::std::mem::offset_of!(_cef_v8_stack_trace_t, get_frame) - 56usize];
13701};
13702#[doc = "\n Structure representing a V8 stack trace handle. V8 handles can only be\n accessed from the thread on which they are created. Valid threads for\n creating a V8 handle include the render process main thread (TID_RENDERER)\n and WebWorker threads. A task runner for posting tasks on the associated\n thread can be retrieved via the cef_v8_context_t::get_task_runner()\n function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13703pub type cef_v8_stack_trace_t = _cef_v8_stack_trace_t;
13704unsafe extern "C" {
13705    #[doc = "\n Returns the stack trace for the currently active context. |frame_limit| is\n the maximum number of frames that will be captured.\n"]
13706    pub fn cef_v8_stack_trace_get_current(
13707        frame_limit: ::std::os::raw::c_int,
13708    ) -> *mut cef_v8_stack_trace_t;
13709}
13710#[doc = "\n Structure representing a V8 stack frame handle. V8 handles can only be\n accessed from the thread on which they are created. Valid threads for\n creating a V8 handle include the render process main thread (TID_RENDERER)\n and WebWorker threads. A task runner for posting tasks on the associated\n thread can be retrieved via the cef_v8_context_t::get_task_runner()\n function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13711#[repr(C)]
13712#[derive(Debug, Copy, Clone)]
13713pub struct _cef_v8_stack_frame_t {
13714    #[doc = "\n Base structure.\n"]
13715    pub base: cef_base_ref_counted_t,
13716    #[doc = "\n Returns true (1) if the underlying handle is valid and it can be accessed\n on the current thread. Do not call any other functions if this function\n returns false (0).\n"]
13717    pub is_valid: ::std::option::Option<
13718        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13719    >,
13720    #[doc = "\n Returns the name of the resource script that contains the function.\n"]
13721    pub get_script_name: ::std::option::Option<
13722        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13723    >,
13724    #[doc = "\n Returns the name of the resource script that contains the function or the\n sourceURL value if the script name is undefined and its source ends with a\n \"//@ sourceURL=...\" string.\n"]
13725    pub get_script_name_or_source_url: ::std::option::Option<
13726        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13727    >,
13728    #[doc = "\n Returns the name of the function.\n"]
13729    pub get_function_name: ::std::option::Option<
13730        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13731    >,
13732    #[doc = "\n Returns the 1-based line number for the function call or 0 if unknown.\n"]
13733    pub get_line_number: ::std::option::Option<
13734        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13735    >,
13736    #[doc = "\n Returns the 1-based column offset on the line for the function call or 0\n if unknown.\n"]
13737    pub get_column: ::std::option::Option<
13738        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13739    >,
13740    #[doc = "\n Returns true (1) if the function was compiled using eval().\n"]
13741    pub is_eval: ::std::option::Option<
13742        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13743    >,
13744    #[doc = "\n Returns true (1) if the function was called as a constructor via \"new\".\n"]
13745    pub is_constructor: ::std::option::Option<
13746        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13747    >,
13748}
13749#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13750const _: () = {
13751    ["Size of _cef_v8_stack_frame_t"][::std::mem::size_of::<_cef_v8_stack_frame_t>() - 104usize];
13752    ["Alignment of _cef_v8_stack_frame_t"]
13753        [::std::mem::align_of::<_cef_v8_stack_frame_t>() - 8usize];
13754    ["Offset of field: _cef_v8_stack_frame_t::base"]
13755        [::std::mem::offset_of!(_cef_v8_stack_frame_t, base) - 0usize];
13756    ["Offset of field: _cef_v8_stack_frame_t::is_valid"]
13757        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_valid) - 40usize];
13758    ["Offset of field: _cef_v8_stack_frame_t::get_script_name"]
13759        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_script_name) - 48usize];
13760    ["Offset of field: _cef_v8_stack_frame_t::get_script_name_or_source_url"]
13761        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_script_name_or_source_url) - 56usize];
13762    ["Offset of field: _cef_v8_stack_frame_t::get_function_name"]
13763        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_function_name) - 64usize];
13764    ["Offset of field: _cef_v8_stack_frame_t::get_line_number"]
13765        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_line_number) - 72usize];
13766    ["Offset of field: _cef_v8_stack_frame_t::get_column"]
13767        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_column) - 80usize];
13768    ["Offset of field: _cef_v8_stack_frame_t::is_eval"]
13769        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_eval) - 88usize];
13770    ["Offset of field: _cef_v8_stack_frame_t::is_constructor"]
13771        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_constructor) - 96usize];
13772};
13773#[doc = "\n Structure representing a V8 stack frame handle. V8 handles can only be\n accessed from the thread on which they are created. Valid threads for\n creating a V8 handle include the render process main thread (TID_RENDERER)\n and WebWorker threads. A task runner for posting tasks on the associated\n thread can be retrieved via the cef_v8_context_t::get_task_runner()\n function.\n\n NOTE: This struct is allocated DLL-side.\n"]
13774pub type cef_v8_stack_frame_t = _cef_v8_stack_frame_t;
13775unsafe extern "C" {
13776    #[doc = "\n Register a new V8 extension with the specified JavaScript extension code and\n handler. Functions implemented by the handler are prototyped using the\n keyword 'native'. The calling of a native function is restricted to the\n scope in which the prototype of the native function is defined. This\n function may only be called on the render process main thread.\n\n Example JavaScript extension code: <pre>\n   // create the 'example' global object if it doesn't already exist.\n   if (!example)\n     example = {};\n   // create the 'example.test' global object if it doesn't already exist.\n   if (!example.test)\n     example.test = {};\n   (function() {\n     // Define the function 'example.test.myfunction'.\n     example.test.myfunction = function() {\n       // Call CefV8Handler::Execute() with the function name 'MyFunction'\n       // and no arguments.\n       native function MyFunction();\n       return MyFunction();\n     };\n     // Define the getter function for parameter 'example.test.myparam'.\n     example.test.__defineGetter__('myparam', function() {\n       // Call CefV8Handler::Execute() with the function name 'GetMyParam'\n       // and no arguments.\n       native function GetMyParam();\n       return GetMyParam();\n     });\n     // Define the setter function for parameter 'example.test.myparam'.\n     example.test.__defineSetter__('myparam', function(b) {\n       // Call CefV8Handler::Execute() with the function name 'SetMyParam'\n       // and a single argument.\n       native function SetMyParam();\n       if(b) SetMyParam(b);\n     });\n\n     // Extension definitions can also contain normal JavaScript variables\n     // and functions.\n     var myint = 0;\n     example.test.increment = function() {\n       myint += 1;\n       return myint;\n     };\n   })();\n </pre>\n\n Example usage in the page: <pre>\n   // Call the function.\n   example.test.myfunction();\n   // Set the parameter.\n   example.test.myparam = value;\n   // Get the parameter.\n   value = example.test.myparam;\n   // Call another function.\n   example.test.increment();\n </pre>\n"]
13777    pub fn cef_register_extension(
13778        extension_name: *const cef_string_t,
13779        javascript_code: *const cef_string_t,
13780        handler: *mut cef_v8_handler_t,
13781    ) -> ::std::os::raw::c_int;
13782}
13783#[doc = "\n Structure used to implement render process callbacks. The functions of this\n structure will be called on the render process main thread (TID_RENDERER)\n unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
13784#[repr(C)]
13785#[derive(Debug, Copy, Clone)]
13786pub struct _cef_render_process_handler_t {
13787    #[doc = "\n Base structure.\n"]
13788    pub base: cef_base_ref_counted_t,
13789    #[doc = "\n Called after WebKit has been initialized.\n"]
13790    pub on_web_kit_initialized:
13791        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_render_process_handler_t)>,
13792    #[doc = "\n Called after a browser has been created. When browsing cross-origin a new\n browser will be created before the old browser with the same identifier is\n destroyed. |extra_info| is an optional read-only value originating from\n cef_browser_host_t::cef_browser_host_create_browser(),\n cef_browser_host_t::cef_browser_host_create_browser_sync(),\n cef_life_span_handler_t::on_before_popup() or\n cef_browser_view_t::cef_browser_view_create().\n"]
13793    pub on_browser_created: ::std::option::Option<
13794        unsafe extern "C" fn(
13795            self_: *mut _cef_render_process_handler_t,
13796            browser: *mut _cef_browser_t,
13797            extra_info: *mut _cef_dictionary_value_t,
13798        ),
13799    >,
13800    #[doc = "\n Called before a browser is destroyed.\n"]
13801    pub on_browser_destroyed: ::std::option::Option<
13802        unsafe extern "C" fn(
13803            self_: *mut _cef_render_process_handler_t,
13804            browser: *mut _cef_browser_t,
13805        ),
13806    >,
13807    #[doc = "\n Return the handler for browser load status events.\n"]
13808    pub get_load_handler: ::std::option::Option<
13809        unsafe extern "C" fn(self_: *mut _cef_render_process_handler_t) -> *mut _cef_load_handler_t,
13810    >,
13811    #[doc = "\n Called immediately after the V8 context for a frame has been created. To\n retrieve the JavaScript 'window' object use the\n cef_v8_context_t::get_global() function. V8 handles can only be accessed\n from the thread on which they are created. A task runner for posting tasks\n on the associated thread can be retrieved via the\n cef_v8_context_t::get_task_runner() function.\n"]
13812    pub on_context_created: ::std::option::Option<
13813        unsafe extern "C" fn(
13814            self_: *mut _cef_render_process_handler_t,
13815            browser: *mut _cef_browser_t,
13816            frame: *mut _cef_frame_t,
13817            context: *mut _cef_v8_context_t,
13818        ),
13819    >,
13820    #[doc = "\n Called immediately before the V8 context for a frame is released. No\n references to the context should be kept after this function is called.\n"]
13821    pub on_context_released: ::std::option::Option<
13822        unsafe extern "C" fn(
13823            self_: *mut _cef_render_process_handler_t,
13824            browser: *mut _cef_browser_t,
13825            frame: *mut _cef_frame_t,
13826            context: *mut _cef_v8_context_t,
13827        ),
13828    >,
13829    #[doc = "\n Called for global uncaught exceptions in a frame. Execution of this\n callback is disabled by default. To enable set\n cef_settings_t.uncaught_exception_stack_size > 0.\n"]
13830    pub on_uncaught_exception: ::std::option::Option<
13831        unsafe extern "C" fn(
13832            self_: *mut _cef_render_process_handler_t,
13833            browser: *mut _cef_browser_t,
13834            frame: *mut _cef_frame_t,
13835            context: *mut _cef_v8_context_t,
13836            exception: *mut _cef_v8_exception_t,
13837            stackTrace: *mut _cef_v8_stack_trace_t,
13838        ),
13839    >,
13840    #[doc = "\n Called when a new node in the the browser gets focus. The |node| value may\n be NULL if no specific node has gained focus. The node object passed to\n this function represents a snapshot of the DOM at the time this function\n is executed. DOM objects are only valid for the scope of this function. Do\n not keep references to or attempt to access any DOM objects outside the\n scope of this function.\n"]
13841    pub on_focused_node_changed: ::std::option::Option<
13842        unsafe extern "C" fn(
13843            self_: *mut _cef_render_process_handler_t,
13844            browser: *mut _cef_browser_t,
13845            frame: *mut _cef_frame_t,
13846            node: *mut _cef_domnode_t,
13847        ),
13848    >,
13849    #[doc = "\n Called when a new message is received from a different process. Return\n true (1) if the message was handled or false (0) otherwise. It is safe to\n keep a reference to |message| outside of this callback.\n"]
13850    pub on_process_message_received: ::std::option::Option<
13851        unsafe extern "C" fn(
13852            self_: *mut _cef_render_process_handler_t,
13853            browser: *mut _cef_browser_t,
13854            frame: *mut _cef_frame_t,
13855            source_process: cef_process_id_t,
13856            message: *mut _cef_process_message_t,
13857        ) -> ::std::os::raw::c_int,
13858    >,
13859}
13860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13861const _: () = {
13862    ["Size of _cef_render_process_handler_t"]
13863        [::std::mem::size_of::<_cef_render_process_handler_t>() - 112usize];
13864    ["Alignment of _cef_render_process_handler_t"]
13865        [::std::mem::align_of::<_cef_render_process_handler_t>() - 8usize];
13866    ["Offset of field: _cef_render_process_handler_t::base"]
13867        [::std::mem::offset_of!(_cef_render_process_handler_t, base) - 0usize];
13868    ["Offset of field: _cef_render_process_handler_t::on_web_kit_initialized"]
13869        [::std::mem::offset_of!(_cef_render_process_handler_t, on_web_kit_initialized) - 40usize];
13870    ["Offset of field: _cef_render_process_handler_t::on_browser_created"]
13871        [::std::mem::offset_of!(_cef_render_process_handler_t, on_browser_created) - 48usize];
13872    ["Offset of field: _cef_render_process_handler_t::on_browser_destroyed"]
13873        [::std::mem::offset_of!(_cef_render_process_handler_t, on_browser_destroyed) - 56usize];
13874    ["Offset of field: _cef_render_process_handler_t::get_load_handler"]
13875        [::std::mem::offset_of!(_cef_render_process_handler_t, get_load_handler) - 64usize];
13876    ["Offset of field: _cef_render_process_handler_t::on_context_created"]
13877        [::std::mem::offset_of!(_cef_render_process_handler_t, on_context_created) - 72usize];
13878    ["Offset of field: _cef_render_process_handler_t::on_context_released"]
13879        [::std::mem::offset_of!(_cef_render_process_handler_t, on_context_released) - 80usize];
13880    ["Offset of field: _cef_render_process_handler_t::on_uncaught_exception"]
13881        [::std::mem::offset_of!(_cef_render_process_handler_t, on_uncaught_exception) - 88usize];
13882    ["Offset of field: _cef_render_process_handler_t::on_focused_node_changed"]
13883        [::std::mem::offset_of!(_cef_render_process_handler_t, on_focused_node_changed) - 96usize];
13884    ["Offset of field: _cef_render_process_handler_t::on_process_message_received"][::std::mem::offset_of!(
13885        _cef_render_process_handler_t,
13886        on_process_message_received
13887    ) - 104usize];
13888};
13889#[doc = "\n Structure used to implement render process callbacks. The functions of this\n structure will be called on the render process main thread (TID_RENDERER)\n unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
13890pub type cef_render_process_handler_t = _cef_render_process_handler_t;
13891#[doc = "\n Structure used to implement a custom resource bundle structure. See\n CefSettings for additional options related to resource bundle loading. The\n functions of this structure may be called on multiple threads.\n\n NOTE: This struct is allocated client-side.\n"]
13892#[repr(C)]
13893#[derive(Debug, Copy, Clone)]
13894pub struct _cef_resource_bundle_handler_t {
13895    #[doc = "\n Base structure.\n"]
13896    pub base: cef_base_ref_counted_t,
13897    #[doc = "\n Called to retrieve a localized translation for the specified |string_id|.\n To provide the translation set |string| to the translation string and\n return true (1). To use the default translation return false (0). Use the\n cef_id_for_pack_string_name() function for version-safe mapping of string\n IDS names from cef_pack_strings.h to version-specific numerical\n |string_id| values.\n"]
13898    pub get_localized_string: ::std::option::Option<
13899        unsafe extern "C" fn(
13900            self_: *mut _cef_resource_bundle_handler_t,
13901            string_id: ::std::os::raw::c_int,
13902            string: *mut cef_string_t,
13903        ) -> ::std::os::raw::c_int,
13904    >,
13905    #[doc = "\n Called to retrieve data for the specified scale independent |resource_id|.\n To provide the resource data set |data| and |data_size| to the data\n pointer and size respectively and return true (1). To use the default\n resource data return false (0). The resource data will not be copied and\n must remain resident in memory. Use the cef_id_for_pack_resource_name()\n function for version-safe mapping of resource IDR names from\n cef_pack_resources.h to version-specific numerical |resource_id| values.\n"]
13906    pub get_data_resource: ::std::option::Option<
13907        unsafe extern "C" fn(
13908            self_: *mut _cef_resource_bundle_handler_t,
13909            resource_id: ::std::os::raw::c_int,
13910            data: *mut *mut ::std::os::raw::c_void,
13911            data_size: *mut usize,
13912        ) -> ::std::os::raw::c_int,
13913    >,
13914    #[doc = "\n Called to retrieve data for the specified |resource_id| nearest the scale\n factor |scale_factor|. To provide the resource data set |data| and\n |data_size| to the data pointer and size respectively and return true (1).\n To use the default resource data return false (0). The resource data will\n not be copied and must remain resident in memory. Use the\n cef_id_for_pack_resource_name() function for version-safe mapping of\n resource IDR names from cef_pack_resources.h to version-specific numerical\n |resource_id| values.\n"]
13915    pub get_data_resource_for_scale: ::std::option::Option<
13916        unsafe extern "C" fn(
13917            self_: *mut _cef_resource_bundle_handler_t,
13918            resource_id: ::std::os::raw::c_int,
13919            scale_factor: cef_scale_factor_t,
13920            data: *mut *mut ::std::os::raw::c_void,
13921            data_size: *mut usize,
13922        ) -> ::std::os::raw::c_int,
13923    >,
13924}
13925#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13926const _: () = {
13927    ["Size of _cef_resource_bundle_handler_t"]
13928        [::std::mem::size_of::<_cef_resource_bundle_handler_t>() - 64usize];
13929    ["Alignment of _cef_resource_bundle_handler_t"]
13930        [::std::mem::align_of::<_cef_resource_bundle_handler_t>() - 8usize];
13931    ["Offset of field: _cef_resource_bundle_handler_t::base"]
13932        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, base) - 0usize];
13933    ["Offset of field: _cef_resource_bundle_handler_t::get_localized_string"]
13934        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, get_localized_string) - 40usize];
13935    ["Offset of field: _cef_resource_bundle_handler_t::get_data_resource"]
13936        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, get_data_resource) - 48usize];
13937    ["Offset of field: _cef_resource_bundle_handler_t::get_data_resource_for_scale"][::std::mem::offset_of!(
13938        _cef_resource_bundle_handler_t,
13939        get_data_resource_for_scale
13940    ) - 56usize];
13941};
13942#[doc = "\n Structure used to implement a custom resource bundle structure. See\n CefSettings for additional options related to resource bundle loading. The\n functions of this structure may be called on multiple threads.\n\n NOTE: This struct is allocated client-side.\n"]
13943pub type cef_resource_bundle_handler_t = _cef_resource_bundle_handler_t;
13944#[doc = "\n Structure that manages custom scheme registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
13945#[repr(C)]
13946#[derive(Debug, Copy, Clone)]
13947pub struct _cef_scheme_registrar_t {
13948    #[doc = "\n Base structure.\n"]
13949    pub base: cef_base_scoped_t,
13950    #[doc = "\n Register a custom scheme. This function should not be called for the\n built-in HTTP, HTTPS, FILE, FTP, ABOUT and DATA schemes.\n\n See cef_scheme_options_t for possible values for |options|.\n\n This function may be called on any thread. It should only be called once\n per unique |scheme_name| value. If |scheme_name| is already registered or\n if an error occurs this function will return false (0).\n"]
13951    pub add_custom_scheme: ::std::option::Option<
13952        unsafe extern "C" fn(
13953            self_: *mut _cef_scheme_registrar_t,
13954            scheme_name: *const cef_string_t,
13955            options: ::std::os::raw::c_int,
13956        ) -> ::std::os::raw::c_int,
13957    >,
13958}
13959#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13960const _: () = {
13961    ["Size of _cef_scheme_registrar_t"][::std::mem::size_of::<_cef_scheme_registrar_t>() - 24usize];
13962    ["Alignment of _cef_scheme_registrar_t"]
13963        [::std::mem::align_of::<_cef_scheme_registrar_t>() - 8usize];
13964    ["Offset of field: _cef_scheme_registrar_t::base"]
13965        [::std::mem::offset_of!(_cef_scheme_registrar_t, base) - 0usize];
13966    ["Offset of field: _cef_scheme_registrar_t::add_custom_scheme"]
13967        [::std::mem::offset_of!(_cef_scheme_registrar_t, add_custom_scheme) - 16usize];
13968};
13969#[doc = "\n Structure that manages custom scheme registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
13970pub type cef_scheme_registrar_t = _cef_scheme_registrar_t;
13971#[doc = "\n Structure that creates cef_resource_handler_t instances for handling scheme\n requests. The functions of this structure will always be called on the IO\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
13972#[repr(C)]
13973#[derive(Debug, Copy, Clone)]
13974pub struct _cef_scheme_handler_factory_t {
13975    #[doc = "\n Base structure.\n"]
13976    pub base: cef_base_ref_counted_t,
13977    #[doc = "\n Return a new resource handler instance to handle the request or an NULL\n reference to allow default handling of the request. |browser| and |frame|\n will be the browser window and frame respectively that originated the\n request or NULL if the request did not originate from a browser window\n (for example, if the request came from cef_urlrequest_t). The |request|\n object passed to this function cannot be modified.\n"]
13978    pub create: ::std::option::Option<
13979        unsafe extern "C" fn(
13980            self_: *mut _cef_scheme_handler_factory_t,
13981            browser: *mut _cef_browser_t,
13982            frame: *mut _cef_frame_t,
13983            scheme_name: *const cef_string_t,
13984            request: *mut _cef_request_t,
13985        ) -> *mut _cef_resource_handler_t,
13986    >,
13987}
13988#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13989const _: () = {
13990    ["Size of _cef_scheme_handler_factory_t"]
13991        [::std::mem::size_of::<_cef_scheme_handler_factory_t>() - 48usize];
13992    ["Alignment of _cef_scheme_handler_factory_t"]
13993        [::std::mem::align_of::<_cef_scheme_handler_factory_t>() - 8usize];
13994    ["Offset of field: _cef_scheme_handler_factory_t::base"]
13995        [::std::mem::offset_of!(_cef_scheme_handler_factory_t, base) - 0usize];
13996    ["Offset of field: _cef_scheme_handler_factory_t::create"]
13997        [::std::mem::offset_of!(_cef_scheme_handler_factory_t, create) - 40usize];
13998};
13999#[doc = "\n Structure that creates cef_resource_handler_t instances for handling scheme\n requests. The functions of this structure will always be called on the IO\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
14000pub type cef_scheme_handler_factory_t = _cef_scheme_handler_factory_t;
14001unsafe extern "C" {
14002    #[doc = "\n Register a scheme handler factory with the global request context. An NULL\n |domain_name| value for a standard scheme will cause the factory to match\n all domain names. The |domain_name| value will be ignored for non-standard\n schemes. If |scheme_name| is a built-in scheme and no handler is returned by\n |factory| then the built-in scheme handler factory will be called. If\n |scheme_name| is a custom scheme then you must also implement the\n cef_app_t::on_register_custom_schemes() function in all processes. This\n function may be called multiple times to change or remove the factory that\n matches the specified |scheme_name| and optional |domain_name|. Returns\n false (0) if an error occurs. This function may be called on any thread in\n the browser process. Using this function is equivalent to calling cef_reques\n t_context_t::cef_request_context_get_global_context()-\n >register_scheme_handler_factory().\n"]
14003    pub fn cef_register_scheme_handler_factory(
14004        scheme_name: *const cef_string_t,
14005        domain_name: *const cef_string_t,
14006        factory: *mut cef_scheme_handler_factory_t,
14007    ) -> ::std::os::raw::c_int;
14008}
14009unsafe extern "C" {
14010    #[doc = "\n Clear all scheme handler factories registered with the global request\n context. Returns false (0) on error. This function may be called on any\n thread in the browser process. Using this function is equivalent to calling\n cef_request_context_t::cef_request_context_get_global_context()-\n >clear_scheme_handler_factories().\n"]
14011    pub fn cef_clear_scheme_handler_factories() -> ::std::os::raw::c_int;
14012}
14013#[doc = "\n Implement this structure to provide handler implementations. Methods will be\n called by the process and/or thread indicated.\n\n NOTE: This struct is allocated client-side.\n"]
14014#[repr(C)]
14015#[derive(Debug, Copy, Clone)]
14016pub struct _cef_app_t {
14017    #[doc = "\n Base structure.\n"]
14018    pub base: cef_base_ref_counted_t,
14019    #[doc = "\n Provides an opportunity to view and/or modify command-line arguments\n before processing by CEF and Chromium. The |process_type| value will be\n NULL for the browser process. Do not keep a reference to the\n cef_command_line_t object passed to this function. The\n cef_settings_t.command_line_args_disabled value can be used to start with\n an NULL command-line object. Any values specified in CefSettings that\n equate to command-line arguments will be set before this function is\n called. Be cautious when using this function to modify command-line\n arguments for non-browser processes as this may result in undefined\n behavior including crashes.\n"]
14020    pub on_before_command_line_processing: ::std::option::Option<
14021        unsafe extern "C" fn(
14022            self_: *mut _cef_app_t,
14023            process_type: *const cef_string_t,
14024            command_line: *mut _cef_command_line_t,
14025        ),
14026    >,
14027    #[doc = "\n Provides an opportunity to register custom schemes. Do not keep a\n reference to the |registrar| object. This function is called on the main\n thread for each process and the registered schemes should be the same\n across all processes.\n"]
14028    pub on_register_custom_schemes: ::std::option::Option<
14029        unsafe extern "C" fn(self_: *mut _cef_app_t, registrar: *mut _cef_scheme_registrar_t),
14030    >,
14031    #[doc = "\n Return the handler for resource bundle events. If no handler is returned\n resources will be loaded from pack files. This function is called by the\n browser and render processes on multiple threads.\n"]
14032    pub get_resource_bundle_handler: ::std::option::Option<
14033        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_resource_bundle_handler_t,
14034    >,
14035    #[doc = "\n Return the handler for functionality specific to the browser process. This\n function is called on multiple threads in the browser process.\n"]
14036    pub get_browser_process_handler: ::std::option::Option<
14037        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_browser_process_handler_t,
14038    >,
14039    #[doc = "\n Return the handler for functionality specific to the render process. This\n function is called on the render process main thread.\n"]
14040    pub get_render_process_handler: ::std::option::Option<
14041        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_render_process_handler_t,
14042    >,
14043}
14044#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14045const _: () = {
14046    ["Size of _cef_app_t"][::std::mem::size_of::<_cef_app_t>() - 80usize];
14047    ["Alignment of _cef_app_t"][::std::mem::align_of::<_cef_app_t>() - 8usize];
14048    ["Offset of field: _cef_app_t::base"][::std::mem::offset_of!(_cef_app_t, base) - 0usize];
14049    ["Offset of field: _cef_app_t::on_before_command_line_processing"]
14050        [::std::mem::offset_of!(_cef_app_t, on_before_command_line_processing) - 40usize];
14051    ["Offset of field: _cef_app_t::on_register_custom_schemes"]
14052        [::std::mem::offset_of!(_cef_app_t, on_register_custom_schemes) - 48usize];
14053    ["Offset of field: _cef_app_t::get_resource_bundle_handler"]
14054        [::std::mem::offset_of!(_cef_app_t, get_resource_bundle_handler) - 56usize];
14055    ["Offset of field: _cef_app_t::get_browser_process_handler"]
14056        [::std::mem::offset_of!(_cef_app_t, get_browser_process_handler) - 64usize];
14057    ["Offset of field: _cef_app_t::get_render_process_handler"]
14058        [::std::mem::offset_of!(_cef_app_t, get_render_process_handler) - 72usize];
14059};
14060#[doc = "\n Implement this structure to provide handler implementations. Methods will be\n called by the process and/or thread indicated.\n\n NOTE: This struct is allocated client-side.\n"]
14061pub type cef_app_t = _cef_app_t;
14062unsafe extern "C" {
14063    #[doc = "\n This function should be called from the application entry point function to\n execute a secondary process. It can be used to run secondary processes from\n the browser client executable (default behavior) or from a separate\n executable specified by the cef_settings_t.browser_subprocess_path value. If\n called for the browser process (identified by no \"type\" command-line value)\n it will return immediately with a value of -1. If called for a recognized\n secondary process it will block until the process should exit and then\n return the process exit code. The |application| parameter may be NULL. The\n |windows_sandbox_info| parameter is only used on Windows and may be NULL\n (see cef_sandbox_win.h for details).\n"]
14064    pub fn cef_execute_process(
14065        args: *const cef_main_args_t,
14066        application: *mut cef_app_t,
14067        windows_sandbox_info: *mut ::std::os::raw::c_void,
14068    ) -> ::std::os::raw::c_int;
14069}
14070unsafe extern "C" {
14071    #[doc = "\n This function should be called on the main application thread to initialize\n the CEF browser process. The |application| parameter may be NULL. Returns\n true (1) if initialization succeeds. Returns false (0) if initialization\n fails or if early exit is desired (for example, due to process singleton\n relaunch behavior). If this function returns false (0) then the application\n should exit immediately without calling any other CEF functions except,\n optionally, CefGetExitCode. The |windows_sandbox_info| parameter is only\n used on Windows and may be NULL (see cef_sandbox_win.h for details).\n"]
14072    pub fn cef_initialize(
14073        args: *const cef_main_args_t,
14074        settings: *const _cef_settings_t,
14075        application: *mut cef_app_t,
14076        windows_sandbox_info: *mut ::std::os::raw::c_void,
14077    ) -> ::std::os::raw::c_int;
14078}
14079unsafe extern "C" {
14080    #[doc = "\n This function can optionally be called on the main application thread after\n CefInitialize to retrieve the initialization exit code. When CefInitialize\n returns true (1) the exit code will be 0 (CEF_RESULT_CODE_NORMAL_EXIT).\n Otherwise, see cef_resultcode_t for possible exit code values including\n browser process initialization errors and normal early exit conditions (such\n as CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED for process singleton\n relaunch behavior).\n"]
14081    pub fn cef_get_exit_code() -> ::std::os::raw::c_int;
14082}
14083unsafe extern "C" {
14084    #[doc = "\n This function should be called on the main application thread to shut down\n the CEF browser process before the application exits. Do not call any other\n CEF functions after calling this function.\n"]
14085    pub fn cef_shutdown();
14086}
14087unsafe extern "C" {
14088    #[doc = "\n Perform a single iteration of CEF message loop processing. This function is\n provided for cases where the CEF message loop must be integrated into an\n existing application message loop. Use of this function is not recommended\n for most users; use either the cef_run_message_loop() function or\n cef_settings_t.multi_threaded_message_loop if possible. When using this\n function care must be taken to balance performance against excessive CPU\n usage. It is recommended to enable the cef_settings_t.external_message_pump\n option when using this function so that\n cef_browser_process_handler_t::on_schedule_message_pump_work() callbacks can\n facilitate the scheduling process. This function should only be called on\n the main application thread and only if cef_initialize() is called with a\n cef_settings_t.multi_threaded_message_loop value of false (0). This function\n will not block.\n"]
14089    pub fn cef_do_message_loop_work();
14090}
14091unsafe extern "C" {
14092    #[doc = "\n Run the CEF message loop. Use this function instead of an application-\n provided message loop to get the best balance between performance and CPU\n usage. This function should only be called on the main application thread\n and only if cef_initialize() is called with a\n cef_settings_t.multi_threaded_message_loop value of false (0). This function\n will block until a quit message is received by the system.\n"]
14093    pub fn cef_run_message_loop();
14094}
14095unsafe extern "C" {
14096    #[doc = "\n Quit the CEF message loop that was started by calling\n cef_run_message_loop(). This function should only be called on the main\n application thread and only if cef_run_message_loop() was used.\n"]
14097    pub fn cef_quit_message_loop();
14098}
14099unsafe extern "C" {
14100    #[doc = "\n Set to true (1) before calling OS APIs on the CEF UI thread that will enter\n a native message loop (see usage restrictions below). Set to false (0) after\n exiting the native message loop. On Windows, use the CefSetOSModalLoop\n function instead in cases like native top menus where resize of the browser\n content is not required, or in cases like printer APIs where reentrancy\n safety cannot be guaranteed.\n\n Nested processing of Chromium tasks is disabled by default because common\n controls and/or printer functions may use nested native message loops that\n lead to unplanned reentrancy. This function re-enables nested processing in\n the scope of an upcoming native message loop. It must only be used in cases\n where the stack is reentrancy safe and processing nestable tasks is\n explicitly safe. Do not use in cases (like the printer example) where an OS\n API may experience unplanned reentrancy as a result of a new task executing\n immediately.\n\n For instance,\n - The UI thread is running a message loop.\n - It receives a task #1 and executes it.\n - The task #1 implicitly starts a nested message loop. For example, via\n   Windows APIs such as MessageBox or GetSaveFileName, or default handling of\n   a user-initiated drag/resize operation (e.g. DefWindowProc handling of\n   WM_SYSCOMMAND for SC_MOVE/SC_SIZE).\n - The UI thread receives a task #2 before or while in this second message\n   loop.\n - With NestableTasksAllowed set to true (1), the task #2 will run right\n   away. Otherwise, it will be executed right after task #1 completes at\n   \"thread message loop level\".\n"]
14101    pub fn cef_set_nestable_tasks_allowed(allowed: ::std::os::raw::c_int);
14102}
14103#[repr(u32)]
14104#[non_exhaustive]
14105#[doc = "\n Component update error codes. These map to update_client::Error values\n from components/update_client/update_client_errors.h\n"]
14106#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14107pub enum cef_component_update_error_t {
14108    #[doc = "\n No error.\n"]
14109    CEF_COMPONENT_UPDATE_ERROR_NONE = 0,
14110    #[doc = "\n An update is already in progress for this component.\n"]
14111    CEF_COMPONENT_UPDATE_ERROR_UPDATE_IN_PROGRESS = 1,
14112    #[doc = "\n The update was canceled.\n"]
14113    CEF_COMPONENT_UPDATE_ERROR_UPDATE_CANCELED = 2,
14114    #[doc = "\n The update should be retried later.\n"]
14115    CEF_COMPONENT_UPDATE_ERROR_RETRY_LATER = 3,
14116    #[doc = "\n A service error occurred.\n"]
14117    CEF_COMPONENT_UPDATE_ERROR_SERVICE_ERROR = 4,
14118    #[doc = "\n An error occurred during the update check.\n"]
14119    CEF_COMPONENT_UPDATE_ERROR_UPDATE_CHECK_ERROR = 5,
14120    #[doc = "\n The component was not found.\n"]
14121    CEF_COMPONENT_UPDATE_ERROR_CRX_NOT_FOUND = 6,
14122    #[doc = "\n An invalid argument was provided.\n"]
14123    CEF_COMPONENT_UPDATE_ERROR_INVALID_ARGUMENT = 7,
14124    #[doc = "\n Bad CRX data callback.\n"]
14125    CEF_COMPONENT_UPDATE_ERROR_BAD_CRX_DATA_CALLBACK = 8,
14126}
14127#[repr(u32)]
14128#[non_exhaustive]
14129#[doc = "\n Component update priority. Maps to\n component_updater::OnDemandUpdater::Priority.\n"]
14130#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14131pub enum cef_component_update_priority_t {
14132    #[doc = "\n Background priority. Update requests may be queued.\n"]
14133    CEF_COMPONENT_UPDATE_PRIORITY_BACKGROUND = 0,
14134    #[doc = "\n Foreground priority. Update requests are processed immediately.\n"]
14135    CEF_COMPONENT_UPDATE_PRIORITY_FOREGROUND = 1,
14136}
14137#[repr(u32)]
14138#[non_exhaustive]
14139#[doc = "\n Component state values. These map to update_client::ComponentState values\n from components/update_client/update_client.h\n\n A component is considered \"installed\" when its state is one of:\n CEF_COMPONENT_STATE_UPDATED, CEF_COMPONENT_STATE_UP_TO_DATE, or\n CEF_COMPONENT_STATE_RUN.\n"]
14140#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
14141pub enum cef_component_state_t {
14142    #[doc = "\n The component has not yet been checked for updates.\n"]
14143    CEF_COMPONENT_STATE_NEW = 0,
14144    #[doc = "\n The component is being checked for updates now.\n"]
14145    CEF_COMPONENT_STATE_CHECKING = 1,
14146    #[doc = "\n An update is available and will soon be processed.\n"]
14147    CEF_COMPONENT_STATE_CAN_UPDATE = 2,
14148    #[doc = "\n An update is being downloaded.\n"]
14149    CEF_COMPONENT_STATE_DOWNLOADING = 3,
14150    #[doc = "\n An update is being decompressed.\n"]
14151    CEF_COMPONENT_STATE_DECOMPRESSING = 4,
14152    #[doc = "\n A patch is being applied.\n"]
14153    CEF_COMPONENT_STATE_PATCHING = 5,
14154    #[doc = "\n An update is being installed.\n"]
14155    CEF_COMPONENT_STATE_UPDATING = 6,
14156    #[doc = "\n An update was successfully applied. The component is now installed.\n"]
14157    CEF_COMPONENT_STATE_UPDATED = 7,
14158    #[doc = "\n The component was already up to date. The component is installed.\n"]
14159    CEF_COMPONENT_STATE_UP_TO_DATE = 8,
14160    #[doc = "\n The service encountered an error during the update process.\n"]
14161    CEF_COMPONENT_STATE_UPDATE_ERROR = 9,
14162    #[doc = "\n The component is running a server-specified action. The component is\n installed.\n"]
14163    CEF_COMPONENT_STATE_RUN = 10,
14164}
14165#[doc = "\n Callback structure for component update results.\n\n NOTE: This struct is allocated client-side.\n"]
14166#[repr(C)]
14167#[derive(Debug, Copy, Clone)]
14168pub struct _cef_component_update_callback_t {
14169    #[doc = "\n Base structure.\n"]
14170    pub base: cef_base_ref_counted_t,
14171    #[doc = "\n Called when the component update operation completes. |component_id| is\n the ID of the component that was updated. |error| contains the result of\n the operation.\n"]
14172    pub on_complete: ::std::option::Option<
14173        unsafe extern "C" fn(
14174            self_: *mut _cef_component_update_callback_t,
14175            component_id: *const cef_string_t,
14176            error: cef_component_update_error_t,
14177        ),
14178    >,
14179}
14180#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14181const _: () = {
14182    ["Size of _cef_component_update_callback_t"]
14183        [::std::mem::size_of::<_cef_component_update_callback_t>() - 48usize];
14184    ["Alignment of _cef_component_update_callback_t"]
14185        [::std::mem::align_of::<_cef_component_update_callback_t>() - 8usize];
14186    ["Offset of field: _cef_component_update_callback_t::base"]
14187        [::std::mem::offset_of!(_cef_component_update_callback_t, base) - 0usize];
14188    ["Offset of field: _cef_component_update_callback_t::on_complete"]
14189        [::std::mem::offset_of!(_cef_component_update_callback_t, on_complete) - 40usize];
14190};
14191#[doc = "\n Callback structure for component update results.\n\n NOTE: This struct is allocated client-side.\n"]
14192pub type cef_component_update_callback_t = _cef_component_update_callback_t;
14193#[doc = "\n Structure representing a snapshot of a component's state at the time of\n retrieval. To get updated information, retrieve a new cef_component_t object\n via cef_component_updater_t::GetComponentByID or GetComponents. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
14194#[repr(C)]
14195#[derive(Debug, Copy, Clone)]
14196pub struct _cef_component_t {
14197    #[doc = "\n Base structure.\n"]
14198    pub base: cef_base_ref_counted_t,
14199    #[doc = "\n Returns the unique identifier for this component.\n"]
14200    pub get_id: ::std::option::Option<
14201        unsafe extern "C" fn(self_: *mut _cef_component_t) -> cef_string_userfree_t,
14202    >,
14203    #[doc = "\n Returns the human-readable name of this component. Returns an NULL string\n if the component is not installed.\n"]
14204    pub get_name: ::std::option::Option<
14205        unsafe extern "C" fn(self_: *mut _cef_component_t) -> cef_string_userfree_t,
14206    >,
14207    #[doc = "\n Returns the version of this component as a string (e.g., \"1.2.3.4\").\n Returns an NULL string if the component is not installed.\n"]
14208    pub get_version: ::std::option::Option<
14209        unsafe extern "C" fn(self_: *mut _cef_component_t) -> cef_string_userfree_t,
14210    >,
14211    #[doc = "\n Returns the state of this component at the time this object was created. A\n component is considered installed when its state is one of:\n CEF_COMPONENT_STATE_UPDATED, CEF_COMPONENT_STATE_UP_TO_DATE, or\n CEF_COMPONENT_STATE_RUN.\n"]
14212    pub get_state: ::std::option::Option<
14213        unsafe extern "C" fn(self_: *mut _cef_component_t) -> cef_component_state_t,
14214    >,
14215}
14216#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14217const _: () = {
14218    ["Size of _cef_component_t"][::std::mem::size_of::<_cef_component_t>() - 72usize];
14219    ["Alignment of _cef_component_t"][::std::mem::align_of::<_cef_component_t>() - 8usize];
14220    ["Offset of field: _cef_component_t::base"]
14221        [::std::mem::offset_of!(_cef_component_t, base) - 0usize];
14222    ["Offset of field: _cef_component_t::get_id"]
14223        [::std::mem::offset_of!(_cef_component_t, get_id) - 40usize];
14224    ["Offset of field: _cef_component_t::get_name"]
14225        [::std::mem::offset_of!(_cef_component_t, get_name) - 48usize];
14226    ["Offset of field: _cef_component_t::get_version"]
14227        [::std::mem::offset_of!(_cef_component_t, get_version) - 56usize];
14228    ["Offset of field: _cef_component_t::get_state"]
14229        [::std::mem::offset_of!(_cef_component_t, get_state) - 64usize];
14230};
14231#[doc = "\n Structure representing a snapshot of a component's state at the time of\n retrieval. To get updated information, retrieve a new cef_component_t object\n via cef_component_updater_t::GetComponentByID or GetComponents. The\n functions of this structure may be called on any thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
14232pub type cef_component_t = _cef_component_t;
14233#[doc = "\n This structure provides access to Chromium's component updater service,\n allowing clients to discover registered components and trigger on-demand\n updates. The functions of this structure may only be called on the browser\n process UI thread. If the CEF context is not initialized or the component\n updater service is not available, functions will return safe defaults (0,\n nullptr, or NULL).\n\n NOTE: This struct is allocated DLL-side.\n"]
14234#[repr(C)]
14235#[derive(Debug, Copy, Clone)]
14236pub struct _cef_component_updater_t {
14237    #[doc = "\n Base structure.\n"]
14238    pub base: cef_base_ref_counted_t,
14239    #[doc = "\n Returns the number of registered components, or 0 if the service is not\n available.\n"]
14240    pub get_component_count:
14241        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_component_updater_t) -> usize>,
14242    #[doc = "\n Populates |components| with all registered components. Any existing\n contents will be cleared first.\n"]
14243    pub get_components: ::std::option::Option<
14244        unsafe extern "C" fn(
14245            self_: *mut _cef_component_updater_t,
14246            componentsCount: *mut usize,
14247            components: *mut *mut _cef_component_t,
14248        ),
14249    >,
14250    #[doc = "\n Returns the component with the specified |component_id|, or nullptr if not\n found or the service is not available.\n"]
14251    pub get_component_by_id: ::std::option::Option<
14252        unsafe extern "C" fn(
14253            self_: *mut _cef_component_updater_t,
14254            component_id: *const cef_string_t,
14255        ) -> *mut _cef_component_t,
14256    >,
14257    #[doc = "\n Triggers an on-demand update for the component with the specified\n |component_id|. |priority| specifies whether the update should be\n processed in the background or foreground. Use\n CEF_COMPONENT_UPDATE_PRIORITY_FOREGROUND for user-initiated updates.\n\n |callback| will be called asynchronously on the UI thread when the update\n operation completes. The callback is always executed, including when the\n component is already up-to-date (returns CEF_COMPONENT_UPDATE_ERROR_NONE),\n when the requested component doesn't exist, or when the service is\n unavailable (returns CEF_COMPONENT_UPDATE_ERROR_SERVICE_ERROR). The\n callback may be nullptr if no notification is needed.\n"]
14258    pub update: ::std::option::Option<
14259        unsafe extern "C" fn(
14260            self_: *mut _cef_component_updater_t,
14261            component_id: *const cef_string_t,
14262            priority: cef_component_update_priority_t,
14263            callback: *mut _cef_component_update_callback_t,
14264        ),
14265    >,
14266}
14267#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14268const _: () = {
14269    ["Size of _cef_component_updater_t"]
14270        [::std::mem::size_of::<_cef_component_updater_t>() - 72usize];
14271    ["Alignment of _cef_component_updater_t"]
14272        [::std::mem::align_of::<_cef_component_updater_t>() - 8usize];
14273    ["Offset of field: _cef_component_updater_t::base"]
14274        [::std::mem::offset_of!(_cef_component_updater_t, base) - 0usize];
14275    ["Offset of field: _cef_component_updater_t::get_component_count"]
14276        [::std::mem::offset_of!(_cef_component_updater_t, get_component_count) - 40usize];
14277    ["Offset of field: _cef_component_updater_t::get_components"]
14278        [::std::mem::offset_of!(_cef_component_updater_t, get_components) - 48usize];
14279    ["Offset of field: _cef_component_updater_t::get_component_by_id"]
14280        [::std::mem::offset_of!(_cef_component_updater_t, get_component_by_id) - 56usize];
14281    ["Offset of field: _cef_component_updater_t::update"]
14282        [::std::mem::offset_of!(_cef_component_updater_t, update) - 64usize];
14283};
14284#[doc = "\n This structure provides access to Chromium's component updater service,\n allowing clients to discover registered components and trigger on-demand\n updates. The functions of this structure may only be called on the browser\n process UI thread. If the CEF context is not initialized or the component\n updater service is not available, functions will return safe defaults (0,\n nullptr, or NULL).\n\n NOTE: This struct is allocated DLL-side.\n"]
14285pub type cef_component_updater_t = _cef_component_updater_t;
14286unsafe extern "C" {
14287    #[doc = "\n Returns the global cef_component_updater_t singleton. Returns nullptr if\n called from the incorrect thread.\n"]
14288    pub fn cef_component_updater_get() -> *mut cef_component_updater_t;
14289}
14290unsafe extern "C" {
14291    #[doc = "\n Crash reporting is configured using an INI-style config file named\n \"crash_reporter.cfg\". On Windows and Linux this file must be placed next to\n the main application executable. On macOS this file must be placed in the\n top-level app bundle Resources directory (e.g.\n \"<appname>.app/Contents/Resources\"). File contents are as follows:\n\n <pre>\n  # Comments start with a hash character and must be on their own line.\n\n  [Config]\n  ProductName=<Value of the \"prod\" crash key; defaults to \"cef\">\n  ProductVersion=<Value of the \"ver\" crash key; defaults to the CEF version>\n  AppName=<Windows only; App-specific folder name component for storing crash\n           information; default to \"CEF\">\n  ExternalHandler=<Windows only; Name of the external handler exe to use\n                   instead of re-launching the main exe; default to empty>\n  BrowserCrashForwardingEnabled=<macOS only; True if browser process crashes\n                                 should be forwarded to the system crash\n                                 reporter; default to false>\n  ServerURL=<crash server URL; default to empty>\n  RateLimitEnabled=<True if uploads should be rate limited; default to true>\n  MaxUploadsPerDay=<Max uploads per 24 hours, used if rate limit is enabled;\n                    default to 5>\n  MaxDatabaseSizeInMb=<Total crash report disk usage greater than this value\n                       will cause older reports to be deleted; default to 20>\n  MaxDatabaseAgeInDays=<Crash reports older than this value will be deleted;\n                        default to 5>\n\n  [CrashKeys]\n  my_key1=<small|medium|large>\n  my_key2=<small|medium|large>\n </pre>\n\n <b>Config section:</b>\n\n If \"ProductName\" and/or \"ProductVersion\" are set then the specified values\n will be included in the crash dump metadata. On macOS if these values are\n set to NULL then they will be retrieved from the Info.plist file using the\n \"CFBundleName\" and \"CFBundleShortVersionString\" keys respectively.\n\n If \"AppName\" is set on Windows then crash report information (metrics,\n database and dumps) will be stored locally on disk under the\n \"C:\\Users\\[CurrentUser]\\AppData\\Local\\[AppName]\\User Data\" folder. On other\n platforms the cef_settings_t.root_cache_path value will be used.\n\n If \"ExternalHandler\" is set on Windows then the specified exe will be\n launched as the crashpad-handler instead of re-launching the main process\n exe. The value can be an absolute path or a path relative to the main exe\n directory. On Linux the cef_settings_t.browser_subprocess_path value will be\n used. On macOS the existing subprocess app bundle will be used.\n\n If \"BrowserCrashForwardingEnabled\" is set to true (1) on macOS then browser\n process crashes will be forwarded to the system crash reporter. This results\n in the crash UI dialog being displayed to the user and crash reports being\n logged under \"~/Library/Logs/DiagnosticReports\". Forwarding of crash reports\n from non-browser processes and Debug builds is always disabled.\n\n If \"ServerURL\" is set then crashes will be uploaded as a multi-part POST\n request to the specified URL. Otherwise, reports will only be stored locally\n on disk.\n\n If \"RateLimitEnabled\" is set to true (1) then crash report uploads will be\n rate limited as follows:\n  1. If \"MaxUploadsPerDay\" is set to a positive value then at most the\n     specified number of crashes will be uploaded in each 24 hour period.\n  2. If crash upload fails due to a network or server error then an\n     incremental backoff delay up to a maximum of 24 hours will be applied\n     for retries.\n  3. If a backoff delay is applied and \"MaxUploadsPerDay\" is > 1 then the\n     \"MaxUploadsPerDay\" value will be reduced to 1 until the client is\n     restarted. This helps to avoid an upload flood when the network or\n     server error is resolved.\n Rate limiting is not supported on Linux.\n\n If \"MaxDatabaseSizeInMb\" is set to a positive value then crash report\n storage on disk will be limited to that size in megabytes. For example, on\n Windows each dump is about 600KB so a \"MaxDatabaseSizeInMb\" value of 20\n equates to about 34 crash reports stored on disk. Not supported on Linux.\n\n If \"MaxDatabaseAgeInDays\" is set to a positive value then crash reports\n older than the specified age in days will be deleted. Not supported on\n Linux.\n\n <b>CrashKeys section:</b>\n\n A maximum of 26 crash keys of each size can be specified for use by the\n application. Crash key values will be truncated based on the specified size\n (small = 64 bytes, medium = 256 bytes, large = 1024 bytes). The value of\n crash keys can be set from any thread or process using the\n CefSetCrashKeyValue function. These key/value pairs will be sent to the\n crash server along with the crash dump file.\n"]
14292    pub fn cef_crash_reporting_enabled() -> ::std::os::raw::c_int;
14293}
14294unsafe extern "C" {
14295    #[doc = "\n Sets or clears a specific key-value pair from the crash metadata.\n"]
14296    pub fn cef_set_crash_key_value(key: *const cef_string_t, value: *const cef_string_t);
14297}
14298unsafe extern "C" {
14299    #[doc = "\n Creates a directory and all parent directories if they don't already exist.\n Returns true (1) on successful creation or if the directory already exists.\n The directory is only readable by the current user. Calling this function on\n the browser process UI or IO threads is not allowed.\n"]
14300    pub fn cef_create_directory(full_path: *const cef_string_t) -> ::std::os::raw::c_int;
14301}
14302unsafe extern "C" {
14303    #[doc = "\n Get the temporary directory provided by the system.\n\n WARNING: In general, you should use the temp directory variants below\n instead of this function. Those variants will ensure that the proper\n permissions are set so that other users on the system can't edit them while\n they're open (which could lead to security issues).\n"]
14304    pub fn cef_get_temp_directory(temp_dir: *mut cef_string_t) -> ::std::os::raw::c_int;
14305}
14306unsafe extern "C" {
14307    #[doc = "\n Creates a new directory. On Windows if |prefix| is provided the new\n directory name is in the format of \"prefixyyyy\". Returns true (1) on success\n and sets |new_temp_path| to the full path of the directory that was created.\n The directory is only readable by the current user. Calling this function on\n the browser process UI or IO threads is not allowed.\n"]
14308    pub fn cef_create_new_temp_directory(
14309        prefix: *const cef_string_t,
14310        new_temp_path: *mut cef_string_t,
14311    ) -> ::std::os::raw::c_int;
14312}
14313unsafe extern "C" {
14314    #[doc = "\n Creates a directory within another directory. Extra characters will be\n appended to |prefix| to ensure that the new directory does not have the same\n name as an existing directory. Returns true (1) on success and sets\n |new_dir| to the full path of the directory that was created. The directory\n is only readable by the current user. Calling this function on the browser\n process UI or IO threads is not allowed.\n"]
14315    pub fn cef_create_temp_directory_in_directory(
14316        base_dir: *const cef_string_t,
14317        prefix: *const cef_string_t,
14318        new_dir: *mut cef_string_t,
14319    ) -> ::std::os::raw::c_int;
14320}
14321unsafe extern "C" {
14322    #[doc = "\n Returns true (1) if the given path exists and is a directory. Calling this\n function on the browser process UI or IO threads is not allowed.\n"]
14323    pub fn cef_directory_exists(path: *const cef_string_t) -> ::std::os::raw::c_int;
14324}
14325unsafe extern "C" {
14326    #[doc = "\n Deletes the given path whether it's a file or a directory. If |path| is a\n directory all contents will be deleted.  If |recursive| is true (1) any sub-\n directories and their contents will also be deleted (equivalent to executing\n \"rm -rf\", so use with caution). On POSIX environments if |path| is a\n symbolic link then only the symlink will be deleted. Returns true (1) on\n successful deletion or if |path| does not exist. Calling this function on\n the browser process UI or IO threads is not allowed.\n"]
14327    pub fn cef_delete_file(
14328        path: *const cef_string_t,
14329        recursive: ::std::os::raw::c_int,
14330    ) -> ::std::os::raw::c_int;
14331}
14332unsafe extern "C" {
14333    #[doc = "\n Writes the contents of |src_dir| into a zip archive at |dest_file|. If\n |include_hidden_files| is true (1) files starting with \".\" will be included.\n Returns true (1) on success.  Calling this function on the browser process\n UI or IO threads is not allowed.\n"]
14334    pub fn cef_zip_directory(
14335        src_dir: *const cef_string_t,
14336        dest_file: *const cef_string_t,
14337        include_hidden_files: ::std::os::raw::c_int,
14338    ) -> ::std::os::raw::c_int;
14339}
14340unsafe extern "C" {
14341    #[doc = "\n Loads the existing \"Certificate Revocation Lists\" file that is managed by\n Google Chrome. This file can generally be found in Chrome's User Data\n directory (e.g. \"C:\\Users\\[User]\\AppData\\Local\\Google\\Chrome\\User Data\\\" on\n Windows) and is updated periodically by Chrome's component updater service.\n Must be called in the browser process after the context has been\n initialized. See https://dev.chromium.org/Home/chromium-security/crlsets for\n background.\n"]
14342    pub fn cef_load_crlsets_file(path: *const cef_string_t);
14343}
14344unsafe extern "C" {
14345    #[doc = "\n Returns true (1) if the application text direction is right-to-left.\n"]
14346    pub fn cef_is_rtl() -> ::std::os::raw::c_int;
14347}
14348unsafe extern "C" {
14349    #[doc = "\n Add an entry to the cross-origin access whitelist.\n\n The same-origin policy restricts how scripts hosted from different origins\n (scheme + domain + port) can communicate. By default, scripts can only\n access resources with the same origin. Scripts hosted on the HTTP and HTTPS\n schemes (but no other schemes) can use the \"Access-Control-Allow-Origin\"\n header to allow cross-origin requests. For example,\n https://source.example.com can make XMLHttpRequest requests on\n http://target.example.com if the http://target.example.com request returns\n an \"Access-Control-Allow-Origin: https://source.example.com\" response\n header.\n\n Scripts in separate frames or iframes and hosted from the same protocol and\n domain suffix can execute cross-origin JavaScript if both pages set the\n document.domain value to the same domain suffix. For example,\n scheme://foo.example.com and scheme://bar.example.com can communicate using\n JavaScript if both domains set document.domain=\"example.com\".\n\n This function is used to allow access to origins that would otherwise\n violate the same-origin policy. Scripts hosted underneath the fully\n qualified |source_origin| URL (like http://www.example.com) will be allowed\n access to all resources hosted on the specified |target_protocol| and\n |target_domain|. If |target_domain| is non-NULL and\n |allow_target_subdomains| is false (0) only exact domain matches will be\n allowed. If |target_domain| contains a top- level domain component (like\n \"example.com\") and |allow_target_subdomains| is true (1) sub-domain matches\n will be allowed. If |target_domain| is NULL and |allow_target_subdomains| if\n true (1) all domains and IP addresses will be allowed.\n\n This function cannot be used to bypass the restrictions on local or display\n isolated schemes. See the comments on CefRegisterCustomScheme for more\n information.\n\n This function may be called on any thread. Returns false (0) if\n |source_origin| is invalid or the whitelist cannot be accessed.\n"]
14350    pub fn cef_add_cross_origin_whitelist_entry(
14351        source_origin: *const cef_string_t,
14352        target_protocol: *const cef_string_t,
14353        target_domain: *const cef_string_t,
14354        allow_target_subdomains: ::std::os::raw::c_int,
14355    ) -> ::std::os::raw::c_int;
14356}
14357unsafe extern "C" {
14358    #[doc = "\n Remove an entry from the cross-origin access whitelist. Returns false (0) if\n |source_origin| is invalid or the whitelist cannot be accessed.\n"]
14359    pub fn cef_remove_cross_origin_whitelist_entry(
14360        source_origin: *const cef_string_t,
14361        target_protocol: *const cef_string_t,
14362        target_domain: *const cef_string_t,
14363        allow_target_subdomains: ::std::os::raw::c_int,
14364    ) -> ::std::os::raw::c_int;
14365}
14366unsafe extern "C" {
14367    #[doc = "\n Remove all entries from the cross-origin access whitelist. Returns false (0)\n if the whitelist cannot be accessed.\n"]
14368    pub fn cef_clear_cross_origin_whitelist() -> ::std::os::raw::c_int;
14369}
14370unsafe extern "C" {
14371    #[doc = "\n Combines specified |base_url| and |relative_url| into |resolved_url|.\n Returns false (0) if one of the URLs is NULL or invalid.\n"]
14372    pub fn cef_resolve_url(
14373        base_url: *const cef_string_t,
14374        relative_url: *const cef_string_t,
14375        resolved_url: *mut cef_string_t,
14376    ) -> ::std::os::raw::c_int;
14377}
14378unsafe extern "C" {
14379    #[doc = "\n Parse the specified |url| into its component parts. Returns false (0) if the\n URL is NULL or invalid.\n"]
14380    pub fn cef_parse_url(
14381        url: *const cef_string_t,
14382        parts: *mut _cef_urlparts_t,
14383    ) -> ::std::os::raw::c_int;
14384}
14385unsafe extern "C" {
14386    #[doc = "\n Creates a URL from the specified |parts|, which must contain a non-NULL spec\n or a non-NULL host and path (at a minimum), but not both. Returns false (0)\n if |parts| isn't initialized as described.\n"]
14387    pub fn cef_create_url(
14388        parts: *const _cef_urlparts_t,
14389        url: *mut cef_string_t,
14390    ) -> ::std::os::raw::c_int;
14391}
14392unsafe extern "C" {
14393    #[doc = "\n This is a convenience function for formatting a URL in a concise and human-\n friendly way to help users make security-related decisions (or in other\n circumstances when people need to distinguish sites, origins, or otherwise-\n simplified URLs from each other). Internationalized domain names (IDN) may\n be presented in Unicode if the conversion is considered safe. The returned\n value will (a) omit the path for standard schemes, excepting file and\n filesystem, and (b) omit the port if it is the default for the scheme. Do\n not use this for URLs which will be parsed or sent to other applications.\n"]
14394    pub fn cef_format_url_for_security_display(
14395        origin_url: *const cef_string_t,
14396    ) -> cef_string_userfree_t;
14397}
14398unsafe extern "C" {
14399    #[doc = "\n Returns the mime type for the specified file extension or an NULL string if\n unknown.\n"]
14400    pub fn cef_get_mime_type(extension: *const cef_string_t) -> cef_string_userfree_t;
14401}
14402unsafe extern "C" {
14403    #[doc = "\n Get the extensions associated with the given mime type. This should be\n passed in lower case. There could be multiple extensions for a given mime\n type, like \"html,htm\" for \"text/html\", or \"txt,text,html,...\" for \"text/*\".\n Any existing elements in the provided vector will not be erased.\n"]
14404    pub fn cef_get_extensions_for_mime_type(
14405        mime_type: *const cef_string_t,
14406        extensions: cef_string_list_t,
14407    );
14408}
14409unsafe extern "C" {
14410    #[doc = "\n Encodes |data| as a base64 string.\n"]
14411    pub fn cef_base64_encode(
14412        data: *const ::std::os::raw::c_void,
14413        data_size: usize,
14414    ) -> cef_string_userfree_t;
14415}
14416unsafe extern "C" {
14417    #[doc = "\n Decodes the base64 encoded string |data|. The returned value will be NULL if\n the decoding fails.\n"]
14418    pub fn cef_base64_decode(data: *const cef_string_t) -> *mut _cef_binary_value_t;
14419}
14420unsafe extern "C" {
14421    #[doc = "\n Escapes characters in |text| which are unsuitable for use as a query\n parameter value. Everything except alphanumerics and -_.!~*'() will be\n converted to \"%XX\". If |use_plus| is true (1) spaces will change to \"+\". The\n result is basically the same as encodeURIComponent in Javacript.\n"]
14422    pub fn cef_uriencode(
14423        text: *const cef_string_t,
14424        use_plus: ::std::os::raw::c_int,
14425    ) -> cef_string_userfree_t;
14426}
14427unsafe extern "C" {
14428    #[doc = "\n Unescapes |text| and returns the result. Unescaping consists of looking for\n the exact pattern \"%XX\" where each X is a hex digit and converting to the\n character with the numerical value of those digits (e.g. \"i%20=%203%3b\"\n unescapes to \"i = 3;\"). If |convert_to_utf8| is true (1) this function will\n attempt to interpret the initial decoded result as UTF-8. If the result is\n convertable into UTF-8 it will be returned as converted. Otherwise the\n initial decoded result will be returned.  The |unescape_rule| parameter\n supports further customization the decoding process.\n"]
14429    pub fn cef_uridecode(
14430        text: *const cef_string_t,
14431        convert_to_utf8: ::std::os::raw::c_int,
14432        unescape_rule: cef_uri_unescape_rule_t,
14433    ) -> cef_string_userfree_t;
14434}
14435unsafe extern "C" {
14436    #[doc = "\n Parses the specified |json_string| and returns a dictionary or list\n representation. If JSON parsing fails this function returns NULL.\n"]
14437    pub fn cef_parse_json(
14438        json_string: *const cef_string_t,
14439        options: cef_json_parser_options_t,
14440    ) -> *mut _cef_value_t;
14441}
14442unsafe extern "C" {
14443    #[doc = "\n Parses the specified UTF8-encoded |json| buffer of size |json_size| and\n returns a dictionary or list representation. If JSON parsing fails this\n function returns NULL.\n"]
14444    pub fn cef_parse_json_buffer(
14445        json: *const ::std::os::raw::c_void,
14446        json_size: usize,
14447        options: cef_json_parser_options_t,
14448    ) -> *mut _cef_value_t;
14449}
14450unsafe extern "C" {
14451    #[doc = "\n Parses the specified |json_string| and returns a dictionary or list\n representation. If JSON parsing fails this function returns NULL and\n populates |error_msg_out| with a formatted error message.\n"]
14452    pub fn cef_parse_jsonand_return_error(
14453        json_string: *const cef_string_t,
14454        options: cef_json_parser_options_t,
14455        error_msg_out: *mut cef_string_t,
14456    ) -> *mut _cef_value_t;
14457}
14458unsafe extern "C" {
14459    #[doc = "\n Generates a JSON string from the specified root |node| which should be a\n dictionary or list value. Returns an NULL string on failure. This function\n requires exclusive access to |node| including any underlying data.\n"]
14460    pub fn cef_write_json(
14461        node: *mut _cef_value_t,
14462        options: cef_json_writer_options_t,
14463    ) -> cef_string_userfree_t;
14464}
14465unsafe extern "C" {
14466    #[doc = "\n Retrieve the path associated with the specified |key|. Returns true (1) on\n success. Can be called on any thread in the browser process.\n"]
14467    pub fn cef_get_path(key: cef_path_key_t, path: *mut cef_string_t) -> ::std::os::raw::c_int;
14468}
14469unsafe extern "C" {
14470    #[doc = "\n Launches the process specified via |command_line|. Returns true (1) upon\n success. Must be called on the browser process TID_PROCESS_LAUNCHER thread.\n\n Unix-specific notes:\n - All file descriptors open in the parent process will be closed in the\n   child process except for stdin, stdout, and stderr.\n - If the first argument on the command line does not contain a slash, PATH\n   will be searched. (See man execvp.)\n"]
14471    pub fn cef_launch_process(command_line: *mut _cef_command_line_t) -> ::std::os::raw::c_int;
14472}
14473#[doc = "\n Structure used for retrieving resources from the resource bundle (*.pak)\n files loaded by CEF during startup or via the cef_resource_bundle_handler_t\n returned from cef_app_t::GetResourceBundleHandler. See CefSettings for\n additional options related to resource bundle loading. The functions of this\n structure may be called on any thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
14474#[repr(C)]
14475#[derive(Debug, Copy, Clone)]
14476pub struct _cef_resource_bundle_t {
14477    #[doc = "\n Base structure.\n"]
14478    pub base: cef_base_ref_counted_t,
14479    #[doc = "\n Returns the localized string for the specified |string_id| or an NULL\n string if the value is not found. Use the cef_id_for_pack_string_name()\n function for version-safe mapping of string IDS names from\n cef_pack_strings.h to version-specific numerical |string_id| values.\n"]
14480    pub get_localized_string: ::std::option::Option<
14481        unsafe extern "C" fn(
14482            self_: *mut _cef_resource_bundle_t,
14483            string_id: ::std::os::raw::c_int,
14484        ) -> cef_string_userfree_t,
14485    >,
14486    #[doc = "\n Returns a cef_binary_value_t containing the decompressed contents of the\n specified scale independent |resource_id| or NULL if not found. Use the\n cef_id_for_pack_resource_name() function for version-safe mapping of\n resource IDR names from cef_pack_resources.h to version-specific numerical\n |resource_id| values.\n"]
14487    pub get_data_resource: ::std::option::Option<
14488        unsafe extern "C" fn(
14489            self_: *mut _cef_resource_bundle_t,
14490            resource_id: ::std::os::raw::c_int,
14491        ) -> *mut _cef_binary_value_t,
14492    >,
14493    #[doc = "\n Returns a cef_binary_value_t containing the decompressed contents of the\n specified |resource_id| nearest the scale factor |scale_factor| or NULL if\n not found. Use a |scale_factor| value of SCALE_FACTOR_NONE for scale\n independent resources or call GetDataResource instead. Use the\n cef_id_for_pack_resource_name() function for version-safe mapping of\n resource IDR names from cef_pack_resources.h to version-specific numerical\n |resource_id| values.\n"]
14494    pub get_data_resource_for_scale: ::std::option::Option<
14495        unsafe extern "C" fn(
14496            self_: *mut _cef_resource_bundle_t,
14497            resource_id: ::std::os::raw::c_int,
14498            scale_factor: cef_scale_factor_t,
14499        ) -> *mut _cef_binary_value_t,
14500    >,
14501}
14502#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14503const _: () = {
14504    ["Size of _cef_resource_bundle_t"][::std::mem::size_of::<_cef_resource_bundle_t>() - 64usize];
14505    ["Alignment of _cef_resource_bundle_t"]
14506        [::std::mem::align_of::<_cef_resource_bundle_t>() - 8usize];
14507    ["Offset of field: _cef_resource_bundle_t::base"]
14508        [::std::mem::offset_of!(_cef_resource_bundle_t, base) - 0usize];
14509    ["Offset of field: _cef_resource_bundle_t::get_localized_string"]
14510        [::std::mem::offset_of!(_cef_resource_bundle_t, get_localized_string) - 40usize];
14511    ["Offset of field: _cef_resource_bundle_t::get_data_resource"]
14512        [::std::mem::offset_of!(_cef_resource_bundle_t, get_data_resource) - 48usize];
14513    ["Offset of field: _cef_resource_bundle_t::get_data_resource_for_scale"]
14514        [::std::mem::offset_of!(_cef_resource_bundle_t, get_data_resource_for_scale) - 56usize];
14515};
14516#[doc = "\n Structure used for retrieving resources from the resource bundle (*.pak)\n files loaded by CEF during startup or via the cef_resource_bundle_handler_t\n returned from cef_app_t::GetResourceBundleHandler. See CefSettings for\n additional options related to resource bundle loading. The functions of this\n structure may be called on any thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
14517pub type cef_resource_bundle_t = _cef_resource_bundle_t;
14518unsafe extern "C" {
14519    #[doc = "\n Returns the global resource bundle instance.\n"]
14520    pub fn cef_resource_bundle_get_global() -> *mut cef_resource_bundle_t;
14521}
14522#[doc = "\n Structure representing a server that supports HTTP and WebSocket requests.\n Server capacity is limited and is intended to handle only a small number of\n simultaneous connections (e.g. for communicating between applications on\n localhost). The functions of this structure are safe to call from any thread\n in the brower process unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
14523#[repr(C)]
14524#[derive(Debug, Copy, Clone)]
14525pub struct _cef_server_t {
14526    #[doc = "\n Base structure.\n"]
14527    pub base: cef_base_ref_counted_t,
14528    #[doc = "\n Returns the task runner for the dedicated server thread.\n"]
14529    pub get_task_runner: ::std::option::Option<
14530        unsafe extern "C" fn(self_: *mut _cef_server_t) -> *mut _cef_task_runner_t,
14531    >,
14532    #[doc = "\n Stop the server and shut down the dedicated server thread. See\n cef_server_handler_t::OnServerCreated documentation for a description of\n server lifespan.\n"]
14533    pub shutdown: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_server_t)>,
14534    #[doc = "\n Returns true (1) if the server is currently running and accepting incoming\n connections. See cef_server_handler_t::OnServerCreated documentation for a\n description of server lifespan. This function must be called on the\n dedicated server thread.\n"]
14535    pub is_running: ::std::option::Option<
14536        unsafe extern "C" fn(self_: *mut _cef_server_t) -> ::std::os::raw::c_int,
14537    >,
14538    #[doc = "\n Returns the server address including the port number.\n"]
14539    pub get_address: ::std::option::Option<
14540        unsafe extern "C" fn(self_: *mut _cef_server_t) -> cef_string_userfree_t,
14541    >,
14542    #[doc = "\n Returns true (1) if the server currently has a connection. This function\n must be called on the dedicated server thread.\n"]
14543    pub has_connection: ::std::option::Option<
14544        unsafe extern "C" fn(self_: *mut _cef_server_t) -> ::std::os::raw::c_int,
14545    >,
14546    #[doc = "\n Returns true (1) if |connection_id| represents a valid connection. This\n function must be called on the dedicated server thread.\n"]
14547    pub is_valid_connection: ::std::option::Option<
14548        unsafe extern "C" fn(
14549            self_: *mut _cef_server_t,
14550            connection_id: ::std::os::raw::c_int,
14551        ) -> ::std::os::raw::c_int,
14552    >,
14553    #[doc = "\n Send an HTTP 200 \"OK\" response to the connection identified by\n |connection_id|. |content_type| is the response content type (e.g.\n \"text/html\"), |data| is the response content, and |data_size| is the size\n of |data| in bytes. The contents of |data| will be copied. The connection\n will be closed automatically after the response is sent.\n"]
14554    pub send_http200_response: ::std::option::Option<
14555        unsafe extern "C" fn(
14556            self_: *mut _cef_server_t,
14557            connection_id: ::std::os::raw::c_int,
14558            content_type: *const cef_string_t,
14559            data: *const ::std::os::raw::c_void,
14560            data_size: usize,
14561        ),
14562    >,
14563    #[doc = "\n Send an HTTP 404 \"Not Found\" response to the connection identified by\n |connection_id|. The connection will be closed automatically after the\n response is sent.\n"]
14564    pub send_http404_response: ::std::option::Option<
14565        unsafe extern "C" fn(self_: *mut _cef_server_t, connection_id: ::std::os::raw::c_int),
14566    >,
14567    #[doc = "\n Send an HTTP 500 \"Internal Server Error\" response to the connection\n identified by |connection_id|. |error_message| is the associated error\n message. The connection will be closed automatically after the response is\n sent.\n"]
14568    pub send_http500_response: ::std::option::Option<
14569        unsafe extern "C" fn(
14570            self_: *mut _cef_server_t,
14571            connection_id: ::std::os::raw::c_int,
14572            error_message: *const cef_string_t,
14573        ),
14574    >,
14575    #[doc = "\n Send a custom HTTP response to the connection identified by\n |connection_id|. |response_code| is the HTTP response code sent in the\n status line (e.g. 200), |content_type| is the response content type sent\n as the \"Content-Type\" header (e.g. \"text/html\"), |content_length| is the\n expected content length, and |extra_headers| is the map of extra response\n headers. If |content_length| is >= 0 then the \"Content-Length\" header will\n be sent. If |content_length| is 0 then no content is expected and the\n connection will be closed automatically after the response is sent. If\n |content_length| is < 0 then no \"Content-Length\" header will be sent and\n the client will continue reading until the connection is closed. Use the\n SendRawData function to send the content, if applicable, and call\n CloseConnection after all content has been sent.\n"]
14576    pub send_http_response: ::std::option::Option<
14577        unsafe extern "C" fn(
14578            self_: *mut _cef_server_t,
14579            connection_id: ::std::os::raw::c_int,
14580            response_code: ::std::os::raw::c_int,
14581            content_type: *const cef_string_t,
14582            content_length: i64,
14583            extra_headers: cef_string_multimap_t,
14584        ),
14585    >,
14586    #[doc = "\n Send raw data directly to the connection identified by |connection_id|.\n |data| is the raw data and |data_size| is the size of |data| in bytes. The\n contents of |data| will be copied. No validation of |data| is performed\n internally so the client should be careful to send the amount indicated by\n the \"Content-Length\" header, if specified. See SendHttpResponse\n documentation for intended usage.\n"]
14587    pub send_raw_data: ::std::option::Option<
14588        unsafe extern "C" fn(
14589            self_: *mut _cef_server_t,
14590            connection_id: ::std::os::raw::c_int,
14591            data: *const ::std::os::raw::c_void,
14592            data_size: usize,
14593        ),
14594    >,
14595    #[doc = "\n Close the connection identified by |connection_id|. See SendHttpResponse\n documentation for intended usage.\n"]
14596    pub close_connection: ::std::option::Option<
14597        unsafe extern "C" fn(self_: *mut _cef_server_t, connection_id: ::std::os::raw::c_int),
14598    >,
14599    #[doc = "\n Send a WebSocket message to the connection identified by |connection_id|.\n |data| is the response content and |data_size| is the size of |data| in\n bytes. The contents of |data| will be copied. See\n cef_server_handler_t::OnWebSocketRequest documentation for intended usage.\n"]
14600    pub send_web_socket_message: ::std::option::Option<
14601        unsafe extern "C" fn(
14602            self_: *mut _cef_server_t,
14603            connection_id: ::std::os::raw::c_int,
14604            data: *const ::std::os::raw::c_void,
14605            data_size: usize,
14606        ),
14607    >,
14608}
14609#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14610const _: () = {
14611    ["Size of _cef_server_t"][::std::mem::size_of::<_cef_server_t>() - 144usize];
14612    ["Alignment of _cef_server_t"][::std::mem::align_of::<_cef_server_t>() - 8usize];
14613    ["Offset of field: _cef_server_t::base"][::std::mem::offset_of!(_cef_server_t, base) - 0usize];
14614    ["Offset of field: _cef_server_t::get_task_runner"]
14615        [::std::mem::offset_of!(_cef_server_t, get_task_runner) - 40usize];
14616    ["Offset of field: _cef_server_t::shutdown"]
14617        [::std::mem::offset_of!(_cef_server_t, shutdown) - 48usize];
14618    ["Offset of field: _cef_server_t::is_running"]
14619        [::std::mem::offset_of!(_cef_server_t, is_running) - 56usize];
14620    ["Offset of field: _cef_server_t::get_address"]
14621        [::std::mem::offset_of!(_cef_server_t, get_address) - 64usize];
14622    ["Offset of field: _cef_server_t::has_connection"]
14623        [::std::mem::offset_of!(_cef_server_t, has_connection) - 72usize];
14624    ["Offset of field: _cef_server_t::is_valid_connection"]
14625        [::std::mem::offset_of!(_cef_server_t, is_valid_connection) - 80usize];
14626    ["Offset of field: _cef_server_t::send_http200_response"]
14627        [::std::mem::offset_of!(_cef_server_t, send_http200_response) - 88usize];
14628    ["Offset of field: _cef_server_t::send_http404_response"]
14629        [::std::mem::offset_of!(_cef_server_t, send_http404_response) - 96usize];
14630    ["Offset of field: _cef_server_t::send_http500_response"]
14631        [::std::mem::offset_of!(_cef_server_t, send_http500_response) - 104usize];
14632    ["Offset of field: _cef_server_t::send_http_response"]
14633        [::std::mem::offset_of!(_cef_server_t, send_http_response) - 112usize];
14634    ["Offset of field: _cef_server_t::send_raw_data"]
14635        [::std::mem::offset_of!(_cef_server_t, send_raw_data) - 120usize];
14636    ["Offset of field: _cef_server_t::close_connection"]
14637        [::std::mem::offset_of!(_cef_server_t, close_connection) - 128usize];
14638    ["Offset of field: _cef_server_t::send_web_socket_message"]
14639        [::std::mem::offset_of!(_cef_server_t, send_web_socket_message) - 136usize];
14640};
14641#[doc = "\n Structure representing a server that supports HTTP and WebSocket requests.\n Server capacity is limited and is intended to handle only a small number of\n simultaneous connections (e.g. for communicating between applications on\n localhost). The functions of this structure are safe to call from any thread\n in the brower process unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
14642pub type cef_server_t = _cef_server_t;
14643unsafe extern "C" {
14644    #[doc = "\n Create a new server that binds to |address| and |port|. |address| must be a\n valid IPv4 or IPv6 address (e.g. 127.0.0.1 or ::1) and |port| must be a port\n number outside of the reserved range (e.g. between 1025 and 65535 on most\n platforms). |backlog| is the maximum number of pending connections. A new\n thread will be created for each CreateServer call (the \"dedicated server\n thread\"). It is therefore recommended to use a different\n cef_server_handler_t instance for each CreateServer call to avoid thread\n safety issues in the cef_server_handler_t implementation. The\n cef_server_handler_t::OnServerCreated function will be called on the\n dedicated server thread to report success or failure. See\n cef_server_handler_t::OnServerCreated documentation for a description of\n server lifespan.\n"]
14645    pub fn cef_server_create(
14646        address: *const cef_string_t,
14647        port: u16,
14648        backlog: ::std::os::raw::c_int,
14649        handler: *mut _cef_server_handler_t,
14650    );
14651}
14652#[doc = "\n Implement this structure to handle HTTP server requests. A new thread will\n be created for each cef_server_t::CreateServer call (the \"dedicated server\n thread\"), and the functions of this structure will be called on that thread.\n It is therefore recommended to use a different cef_server_handler_t instance\n for each cef_server_t::CreateServer call to avoid thread safety issues in\n the cef_server_handler_t implementation.\n\n NOTE: This struct is allocated client-side.\n"]
14653#[repr(C)]
14654#[derive(Debug, Copy, Clone)]
14655pub struct _cef_server_handler_t {
14656    #[doc = "\n Base structure.\n"]
14657    pub base: cef_base_ref_counted_t,
14658    #[doc = "\n Called when |server| is created. If the server was started successfully\n then cef_server_t::IsRunning will return true (1). The server will\n continue running until cef_server_t::Shutdown is called, after which time\n OnServerDestroyed will be called. If the server failed to start then\n OnServerDestroyed will be called immediately after this function returns.\n"]
14659    pub on_server_created: ::std::option::Option<
14660        unsafe extern "C" fn(self_: *mut _cef_server_handler_t, server: *mut _cef_server_t),
14661    >,
14662    #[doc = "\n Called when |server| is destroyed. The server thread will be stopped after\n this function returns. The client should release any references to\n |server| when this function is called. See OnServerCreated documentation\n for a description of server lifespan.\n"]
14663    pub on_server_destroyed: ::std::option::Option<
14664        unsafe extern "C" fn(self_: *mut _cef_server_handler_t, server: *mut _cef_server_t),
14665    >,
14666    #[doc = "\n Called when a client connects to |server|. |connection_id| uniquely\n identifies the connection. Each call to this function will have a matching\n call to OnClientDisconnected.\n"]
14667    pub on_client_connected: ::std::option::Option<
14668        unsafe extern "C" fn(
14669            self_: *mut _cef_server_handler_t,
14670            server: *mut _cef_server_t,
14671            connection_id: ::std::os::raw::c_int,
14672        ),
14673    >,
14674    #[doc = "\n Called when a client disconnects from |server|. |connection_id| uniquely\n identifies the connection. The client should release any data associated\n with |connection_id| when this function is called and |connection_id|\n should no longer be passed to cef_server_t functions. Disconnects can\n originate from either the client or the server. For example, the server\n will disconnect automatically after a cef_server_t::SendHttpXXXResponse\n function is called.\n"]
14675    pub on_client_disconnected: ::std::option::Option<
14676        unsafe extern "C" fn(
14677            self_: *mut _cef_server_handler_t,
14678            server: *mut _cef_server_t,
14679            connection_id: ::std::os::raw::c_int,
14680        ),
14681    >,
14682    #[doc = "\n Called when |server| receives an HTTP request. |connection_id| uniquely\n identifies the connection, |client_address| is the requesting IPv4 or IPv6\n client address including port number, and |request| contains the request\n contents (URL, function, headers and optional POST data). Call\n cef_server_t functions either synchronously or asynchronusly to send a\n response.\n"]
14683    pub on_http_request: ::std::option::Option<
14684        unsafe extern "C" fn(
14685            self_: *mut _cef_server_handler_t,
14686            server: *mut _cef_server_t,
14687            connection_id: ::std::os::raw::c_int,
14688            client_address: *const cef_string_t,
14689            request: *mut _cef_request_t,
14690        ),
14691    >,
14692    #[doc = "\n Called when |server| receives a WebSocket request. |connection_id|\n uniquely identifies the connection, |client_address| is the requesting\n IPv4 or IPv6 client address including port number, and |request| contains\n the request contents (URL, function, headers and optional POST data).\n Execute |callback| either synchronously or asynchronously to accept or\n decline the WebSocket connection. If the request is accepted then\n OnWebSocketConnected will be called after the WebSocket has connected and\n incoming messages will be delivered to the OnWebSocketMessage callback. If\n the request is declined then the client will be disconnected and\n OnClientDisconnected will be called. Call the\n cef_server_t::SendWebSocketMessage function after receiving the\n OnWebSocketConnected callback to respond with WebSocket messages.\n"]
14693    pub on_web_socket_request: ::std::option::Option<
14694        unsafe extern "C" fn(
14695            self_: *mut _cef_server_handler_t,
14696            server: *mut _cef_server_t,
14697            connection_id: ::std::os::raw::c_int,
14698            client_address: *const cef_string_t,
14699            request: *mut _cef_request_t,
14700            callback: *mut _cef_callback_t,
14701        ),
14702    >,
14703    #[doc = "\n Called after the client has accepted the WebSocket connection for |server|\n and |connection_id| via the OnWebSocketRequest callback. See\n OnWebSocketRequest documentation for intended usage.\n"]
14704    pub on_web_socket_connected: ::std::option::Option<
14705        unsafe extern "C" fn(
14706            self_: *mut _cef_server_handler_t,
14707            server: *mut _cef_server_t,
14708            connection_id: ::std::os::raw::c_int,
14709        ),
14710    >,
14711    #[doc = "\n Called when |server| receives an WebSocket message. |connection_id|\n uniquely identifies the connection, |data| is the message content and\n |data_size| is the size of |data| in bytes. Do not keep a reference to\n |data| outside of this function. See OnWebSocketRequest documentation for\n intended usage.\n"]
14712    pub on_web_socket_message: ::std::option::Option<
14713        unsafe extern "C" fn(
14714            self_: *mut _cef_server_handler_t,
14715            server: *mut _cef_server_t,
14716            connection_id: ::std::os::raw::c_int,
14717            data: *const ::std::os::raw::c_void,
14718            data_size: usize,
14719        ),
14720    >,
14721}
14722#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14723const _: () = {
14724    ["Size of _cef_server_handler_t"][::std::mem::size_of::<_cef_server_handler_t>() - 104usize];
14725    ["Alignment of _cef_server_handler_t"]
14726        [::std::mem::align_of::<_cef_server_handler_t>() - 8usize];
14727    ["Offset of field: _cef_server_handler_t::base"]
14728        [::std::mem::offset_of!(_cef_server_handler_t, base) - 0usize];
14729    ["Offset of field: _cef_server_handler_t::on_server_created"]
14730        [::std::mem::offset_of!(_cef_server_handler_t, on_server_created) - 40usize];
14731    ["Offset of field: _cef_server_handler_t::on_server_destroyed"]
14732        [::std::mem::offset_of!(_cef_server_handler_t, on_server_destroyed) - 48usize];
14733    ["Offset of field: _cef_server_handler_t::on_client_connected"]
14734        [::std::mem::offset_of!(_cef_server_handler_t, on_client_connected) - 56usize];
14735    ["Offset of field: _cef_server_handler_t::on_client_disconnected"]
14736        [::std::mem::offset_of!(_cef_server_handler_t, on_client_disconnected) - 64usize];
14737    ["Offset of field: _cef_server_handler_t::on_http_request"]
14738        [::std::mem::offset_of!(_cef_server_handler_t, on_http_request) - 72usize];
14739    ["Offset of field: _cef_server_handler_t::on_web_socket_request"]
14740        [::std::mem::offset_of!(_cef_server_handler_t, on_web_socket_request) - 80usize];
14741    ["Offset of field: _cef_server_handler_t::on_web_socket_connected"]
14742        [::std::mem::offset_of!(_cef_server_handler_t, on_web_socket_connected) - 88usize];
14743    ["Offset of field: _cef_server_handler_t::on_web_socket_message"]
14744        [::std::mem::offset_of!(_cef_server_handler_t, on_web_socket_message) - 96usize];
14745};
14746#[doc = "\n Implement this structure to handle HTTP server requests. A new thread will\n be created for each cef_server_t::CreateServer call (the \"dedicated server\n thread\"), and the functions of this structure will be called on that thread.\n It is therefore recommended to use a different cef_server_handler_t instance\n for each cef_server_t::CreateServer call to avoid thread safety issues in\n the cef_server_handler_t implementation.\n\n NOTE: This struct is allocated client-side.\n"]
14747pub type cef_server_handler_t = _cef_server_handler_t;
14748#[doc = "\n Structure that builds a cef_process_message_t containing a shared memory\n region. This structure is not thread-safe but may be used exclusively on a\n different thread from the one which constructed it.\n\n NOTE: This struct is allocated DLL-side.\n"]
14749#[repr(C)]
14750#[derive(Debug, Copy, Clone)]
14751pub struct _cef_shared_process_message_builder_t {
14752    #[doc = "\n Base structure.\n"]
14753    pub base: cef_base_ref_counted_t,
14754    #[doc = "\n Returns true (1) if the builder is valid.\n"]
14755    pub is_valid: ::std::option::Option<
14756        unsafe extern "C" fn(
14757            self_: *mut _cef_shared_process_message_builder_t,
14758        ) -> ::std::os::raw::c_int,
14759    >,
14760    #[doc = "\n Returns the size of the shared memory region in bytes. Returns 0 for\n invalid instances.\n"]
14761    pub size: ::std::option::Option<
14762        unsafe extern "C" fn(self_: *mut _cef_shared_process_message_builder_t) -> usize,
14763    >,
14764    #[doc = "\n Returns the pointer to the writable memory. Returns nullptr for invalid\n instances. The returned pointer is only valid for the life span of this\n object.\n"]
14765    pub memory: ::std::option::Option<
14766        unsafe extern "C" fn(
14767            self_: *mut _cef_shared_process_message_builder_t,
14768        ) -> *mut ::std::os::raw::c_void,
14769    >,
14770    #[doc = "\n Creates a new cef_process_message_t from the data provided to the builder.\n Returns nullptr for invalid instances. Invalidates the builder instance.\n"]
14771    pub build: ::std::option::Option<
14772        unsafe extern "C" fn(
14773            self_: *mut _cef_shared_process_message_builder_t,
14774        ) -> *mut _cef_process_message_t,
14775    >,
14776}
14777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14778const _: () = {
14779    ["Size of _cef_shared_process_message_builder_t"]
14780        [::std::mem::size_of::<_cef_shared_process_message_builder_t>() - 72usize];
14781    ["Alignment of _cef_shared_process_message_builder_t"]
14782        [::std::mem::align_of::<_cef_shared_process_message_builder_t>() - 8usize];
14783    ["Offset of field: _cef_shared_process_message_builder_t::base"]
14784        [::std::mem::offset_of!(_cef_shared_process_message_builder_t, base) - 0usize];
14785    ["Offset of field: _cef_shared_process_message_builder_t::is_valid"]
14786        [::std::mem::offset_of!(_cef_shared_process_message_builder_t, is_valid) - 40usize];
14787    ["Offset of field: _cef_shared_process_message_builder_t::size"]
14788        [::std::mem::offset_of!(_cef_shared_process_message_builder_t, size) - 48usize];
14789    ["Offset of field: _cef_shared_process_message_builder_t::memory"]
14790        [::std::mem::offset_of!(_cef_shared_process_message_builder_t, memory) - 56usize];
14791    ["Offset of field: _cef_shared_process_message_builder_t::build"]
14792        [::std::mem::offset_of!(_cef_shared_process_message_builder_t, build) - 64usize];
14793};
14794#[doc = "\n Structure that builds a cef_process_message_t containing a shared memory\n region. This structure is not thread-safe but may be used exclusively on a\n different thread from the one which constructed it.\n\n NOTE: This struct is allocated DLL-side.\n"]
14795pub type cef_shared_process_message_builder_t = _cef_shared_process_message_builder_t;
14796unsafe extern "C" {
14797    #[doc = "\n Creates a new cef_shared_process_message_builder_t with the specified |name|\n and shared memory region of specified |byte_size|.\n"]
14798    pub fn cef_shared_process_message_builder_create(
14799        name: *const cef_string_t,
14800        byte_size: usize,
14801    ) -> *mut cef_shared_process_message_builder_t;
14802}
14803#[doc = "\n Structure that facilitates managing the browser-related tasks. The functions\n of this structure may only be called on the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
14804#[repr(C)]
14805#[derive(Debug, Copy, Clone)]
14806pub struct _cef_task_manager_t {
14807    #[doc = "\n Base structure.\n"]
14808    pub base: cef_base_ref_counted_t,
14809    #[doc = "\n Returns the number of tasks currently tracked by the task manager. Returns\n 0 if the function was called from the incorrect thread.\n"]
14810    pub get_tasks_count:
14811        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_task_manager_t) -> usize>,
14812    #[doc = "\n Gets the list of task IDs currently tracked by the task manager. Tasks\n that share the same process id will always be consecutive. The list will\n be sorted in a way that reflects the process tree: the browser process\n will be first, followed by the gpu process if it exists. Related processes\n (e.g., a subframe process and its parent) will be kept together if\n possible. Callers can expect this ordering to be stable when a process is\n added or removed. The task IDs are unique within the application lifespan.\n Returns false (0) if the function was called from the incorrect thread.\n"]
14813    pub get_task_ids_list: ::std::option::Option<
14814        unsafe extern "C" fn(
14815            self_: *mut _cef_task_manager_t,
14816            task_idsCount: *mut usize,
14817            task_ids: *mut i64,
14818        ) -> ::std::os::raw::c_int,
14819    >,
14820    #[doc = "\n Gets information about the task with |task_id|. Returns true (1) if the\n information about the task was successfully retrieved and false (0) if the\n |task_id| is invalid or the function was called from the incorrect thread.\n"]
14821    pub get_task_info: ::std::option::Option<
14822        unsafe extern "C" fn(
14823            self_: *mut _cef_task_manager_t,
14824            task_id: i64,
14825            info: *mut _cef_task_info_t,
14826        ) -> ::std::os::raw::c_int,
14827    >,
14828    #[doc = "\n Attempts to terminate a task with |task_id|. Returns false (0) if the\n |task_id| is invalid, the call is made from an incorrect thread, or if the\n task cannot be terminated.\n"]
14829    pub kill_task: ::std::option::Option<
14830        unsafe extern "C" fn(
14831            self_: *mut _cef_task_manager_t,
14832            task_id: i64,
14833        ) -> ::std::os::raw::c_int,
14834    >,
14835    #[doc = "\n Returns the task ID associated with the main task for |browser_id| (value\n from cef_browser_t::GetIdentifier). Returns -1 if |browser_id| is invalid,\n does not currently have an associated task, or the function was called\n from the incorrect thread.\n"]
14836    pub get_task_id_for_browser_id: ::std::option::Option<
14837        unsafe extern "C" fn(
14838            self_: *mut _cef_task_manager_t,
14839            browser_id: ::std::os::raw::c_int,
14840        ) -> i64,
14841    >,
14842}
14843#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14844const _: () = {
14845    ["Size of _cef_task_manager_t"][::std::mem::size_of::<_cef_task_manager_t>() - 80usize];
14846    ["Alignment of _cef_task_manager_t"][::std::mem::align_of::<_cef_task_manager_t>() - 8usize];
14847    ["Offset of field: _cef_task_manager_t::base"]
14848        [::std::mem::offset_of!(_cef_task_manager_t, base) - 0usize];
14849    ["Offset of field: _cef_task_manager_t::get_tasks_count"]
14850        [::std::mem::offset_of!(_cef_task_manager_t, get_tasks_count) - 40usize];
14851    ["Offset of field: _cef_task_manager_t::get_task_ids_list"]
14852        [::std::mem::offset_of!(_cef_task_manager_t, get_task_ids_list) - 48usize];
14853    ["Offset of field: _cef_task_manager_t::get_task_info"]
14854        [::std::mem::offset_of!(_cef_task_manager_t, get_task_info) - 56usize];
14855    ["Offset of field: _cef_task_manager_t::kill_task"]
14856        [::std::mem::offset_of!(_cef_task_manager_t, kill_task) - 64usize];
14857    ["Offset of field: _cef_task_manager_t::get_task_id_for_browser_id"]
14858        [::std::mem::offset_of!(_cef_task_manager_t, get_task_id_for_browser_id) - 72usize];
14859};
14860#[doc = "\n Structure that facilitates managing the browser-related tasks. The functions\n of this structure may only be called on the UI thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
14861pub type cef_task_manager_t = _cef_task_manager_t;
14862unsafe extern "C" {
14863    #[doc = "\n Returns the global task manager object. Returns nullptr if the function was\n called from the incorrect thread.\n"]
14864    pub fn cef_task_manager_get() -> *mut cef_task_manager_t;
14865}
14866pub type pthread_t = ::std::os::raw::c_ulong;
14867pub type cef_platform_thread_id_t = pid_t;
14868unsafe extern "C" {
14869    #[doc = "\n Returns the current platform thread ID.\n"]
14870    pub fn cef_get_current_platform_thread_id() -> cef_platform_thread_id_t;
14871}
14872pub type cef_platform_thread_handle_t = pthread_t;
14873unsafe extern "C" {
14874    #[doc = "\n Returns the current platform thread handle.\n"]
14875    pub fn cef_get_current_platform_thread_handle() -> cef_platform_thread_handle_t;
14876}
14877#[doc = "\n A simple thread abstraction that establishes a message loop on a new thread.\n The consumer uses cef_task_runner_t to execute code on the thread's message\n loop. The thread is terminated when the cef_thread_t object is destroyed or\n stop() is called. All pending tasks queued on the thread's message loop will\n run to completion before the thread is terminated. cef_thread_create() can\n be called on any valid CEF thread in either the browser or render process.\n This structure should only be used for tasks that require a dedicated\n thread. In most cases you can post tasks to an existing CEF thread instead\n of creating a new one; see cef_task.h for details.\n\n NOTE: This struct is allocated DLL-side.\n"]
14878#[repr(C)]
14879#[derive(Debug, Copy, Clone)]
14880pub struct _cef_thread_t {
14881    #[doc = "\n Base structure.\n"]
14882    pub base: cef_base_ref_counted_t,
14883    #[doc = "\n Returns the cef_task_runner_t that will execute code on this thread's\n message loop. This function is safe to call from any thread.\n"]
14884    pub get_task_runner: ::std::option::Option<
14885        unsafe extern "C" fn(self_: *mut _cef_thread_t) -> *mut _cef_task_runner_t,
14886    >,
14887    #[doc = "\n Returns the platform thread ID. It will return the same value after stop()\n is called. This function is safe to call from any thread.\n"]
14888    pub get_platform_thread_id: ::std::option::Option<
14889        unsafe extern "C" fn(self_: *mut _cef_thread_t) -> cef_platform_thread_id_t,
14890    >,
14891    #[doc = "\n Stop and join the thread. This function must be called from the same\n thread that called cef_thread_create(). Do not call this function if\n cef_thread_create() was called with a |stoppable| value of false (0).\n"]
14892    pub stop: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_thread_t)>,
14893    #[doc = "\n Returns true (1) if the thread is currently running. This function must be\n called from the same thread that called cef_thread_create().\n"]
14894    pub is_running: ::std::option::Option<
14895        unsafe extern "C" fn(self_: *mut _cef_thread_t) -> ::std::os::raw::c_int,
14896    >,
14897}
14898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14899const _: () = {
14900    ["Size of _cef_thread_t"][::std::mem::size_of::<_cef_thread_t>() - 72usize];
14901    ["Alignment of _cef_thread_t"][::std::mem::align_of::<_cef_thread_t>() - 8usize];
14902    ["Offset of field: _cef_thread_t::base"][::std::mem::offset_of!(_cef_thread_t, base) - 0usize];
14903    ["Offset of field: _cef_thread_t::get_task_runner"]
14904        [::std::mem::offset_of!(_cef_thread_t, get_task_runner) - 40usize];
14905    ["Offset of field: _cef_thread_t::get_platform_thread_id"]
14906        [::std::mem::offset_of!(_cef_thread_t, get_platform_thread_id) - 48usize];
14907    ["Offset of field: _cef_thread_t::stop"][::std::mem::offset_of!(_cef_thread_t, stop) - 56usize];
14908    ["Offset of field: _cef_thread_t::is_running"]
14909        [::std::mem::offset_of!(_cef_thread_t, is_running) - 64usize];
14910};
14911#[doc = "\n A simple thread abstraction that establishes a message loop on a new thread.\n The consumer uses cef_task_runner_t to execute code on the thread's message\n loop. The thread is terminated when the cef_thread_t object is destroyed or\n stop() is called. All pending tasks queued on the thread's message loop will\n run to completion before the thread is terminated. cef_thread_create() can\n be called on any valid CEF thread in either the browser or render process.\n This structure should only be used for tasks that require a dedicated\n thread. In most cases you can post tasks to an existing CEF thread instead\n of creating a new one; see cef_task.h for details.\n\n NOTE: This struct is allocated DLL-side.\n"]
14912pub type cef_thread_t = _cef_thread_t;
14913unsafe extern "C" {
14914    #[doc = "\n Create and start a new thread. This function does not block waiting for the\n thread to run initialization. |display_name| is the name that will be used\n to identify the thread. |priority| is the thread execution priority.\n |message_loop_type| indicates the set of asynchronous events that the thread\n can process. If |stoppable| is true (1) the thread will stopped and joined\n on destruction or when stop() is called; otherwise, the thread cannot be\n stopped and will be leaked on shutdown. On Windows the |com_init_mode| value\n specifies how COM will be initialized for the thread. If |com_init_mode| is\n set to COM_INIT_MODE_STA then |message_loop_type| must be set to ML_TYPE_UI.\n"]
14915    pub fn cef_thread_create(
14916        display_name: *const cef_string_t,
14917        priority: cef_thread_priority_t,
14918        message_loop_type: cef_message_loop_type_t,
14919        stoppable: ::std::os::raw::c_int,
14920        com_init_mode: cef_com_init_mode_t,
14921    ) -> *mut cef_thread_t;
14922}
14923#[doc = "\n Implement this structure to receive notification when tracing has completed.\n The functions of this structure will be called on the browser process UI\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
14924#[repr(C)]
14925#[derive(Debug, Copy, Clone)]
14926pub struct _cef_end_tracing_callback_t {
14927    #[doc = "\n Base structure.\n"]
14928    pub base: cef_base_ref_counted_t,
14929    #[doc = "\n Called after all processes have sent their trace data. |tracing_file| is\n the path at which tracing data was written. The client is responsible for\n deleting |tracing_file|.\n"]
14930    pub on_end_tracing_complete: ::std::option::Option<
14931        unsafe extern "C" fn(
14932            self_: *mut _cef_end_tracing_callback_t,
14933            tracing_file: *const cef_string_t,
14934        ),
14935    >,
14936}
14937#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14938const _: () = {
14939    ["Size of _cef_end_tracing_callback_t"]
14940        [::std::mem::size_of::<_cef_end_tracing_callback_t>() - 48usize];
14941    ["Alignment of _cef_end_tracing_callback_t"]
14942        [::std::mem::align_of::<_cef_end_tracing_callback_t>() - 8usize];
14943    ["Offset of field: _cef_end_tracing_callback_t::base"]
14944        [::std::mem::offset_of!(_cef_end_tracing_callback_t, base) - 0usize];
14945    ["Offset of field: _cef_end_tracing_callback_t::on_end_tracing_complete"]
14946        [::std::mem::offset_of!(_cef_end_tracing_callback_t, on_end_tracing_complete) - 40usize];
14947};
14948#[doc = "\n Implement this structure to receive notification when tracing has completed.\n The functions of this structure will be called on the browser process UI\n thread.\n\n NOTE: This struct is allocated client-side.\n"]
14949pub type cef_end_tracing_callback_t = _cef_end_tracing_callback_t;
14950unsafe extern "C" {
14951    #[doc = "\n Start tracing events on all processes. Tracing is initialized asynchronously\n and |callback| will be executed on the UI thread after initialization is\n complete.\n\n If CefBeginTracing was called previously, or if a CefEndTracingAsync call is\n pending, CefBeginTracing will fail and return false (0).\n\n |categories| is a comma-delimited list of category wildcards. A category can\n have an optional '-' prefix to make it an excluded category. Having both\n included and excluded categories in the same list is not supported.\n\n Examples:\n - \"test_MyTest*\"\n - \"test_MyTest*,test_OtherStuff\"\n - \"-excluded_category1,-excluded_category2\"\n\n This function must be called on the browser process UI thread.\n"]
14952    pub fn cef_begin_tracing(
14953        categories: *const cef_string_t,
14954        callback: *mut _cef_completion_callback_t,
14955    ) -> ::std::os::raw::c_int;
14956}
14957unsafe extern "C" {
14958    #[doc = "\n Stop tracing events on all processes.\n\n This function will fail and return false (0) if a previous call to\n CefEndTracingAsync is already pending or if CefBeginTracing was not called.\n\n |tracing_file| is the path at which tracing data will be written and\n |callback| is the callback that will be executed once all processes have\n sent their trace data. If |tracing_file| is NULL a new temporary file path\n will be used. If |callback| is NULL no trace data will be written.\n\n This function must be called on the browser process UI thread.\n"]
14959    pub fn cef_end_tracing(
14960        tracing_file: *const cef_string_t,
14961        callback: *mut cef_end_tracing_callback_t,
14962    ) -> ::std::os::raw::c_int;
14963}
14964unsafe extern "C" {
14965    #[doc = "\n Returns the current system trace time or, if none is defined, the current\n high-res time. Can be used by clients to synchronize with the time\n information in trace events.\n"]
14966    pub fn cef_now_from_system_trace_time() -> i64;
14967}
14968#[doc = "\n Structure used to make a URL request. URL requests are not associated with a\n browser instance so no cef_client_t callbacks will be executed. URL requests\n can be created on any valid CEF thread in either the browser or render\n process. Once created the functions of the URL request object must be\n accessed on the same thread that created it.\n\n NOTE: This struct is allocated DLL-side.\n"]
14969#[repr(C)]
14970#[derive(Debug, Copy, Clone)]
14971pub struct _cef_urlrequest_t {
14972    #[doc = "\n Base structure.\n"]
14973    pub base: cef_base_ref_counted_t,
14974    #[doc = "\n Returns the request object used to create this URL request. The returned\n object is read-only and should not be modified.\n"]
14975    pub get_request: ::std::option::Option<
14976        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_request_t,
14977    >,
14978    #[doc = "\n Returns the client.\n"]
14979    pub get_client: ::std::option::Option<
14980        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_urlrequest_client_t,
14981    >,
14982    #[doc = "\n Returns the request status.\n"]
14983    pub get_request_status: ::std::option::Option<
14984        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> cef_urlrequest_status_t,
14985    >,
14986    #[doc = "\n Returns the request error if status is UR_CANCELED or UR_FAILED, or 0\n otherwise.\n"]
14987    pub get_request_error: ::std::option::Option<
14988        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> cef_errorcode_t,
14989    >,
14990    #[doc = "\n Returns the response, or NULL if no response information is available.\n Response information will only be available after the upload has\n completed. The returned object is read-only and should not be modified.\n"]
14991    pub get_response: ::std::option::Option<
14992        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_response_t,
14993    >,
14994    #[doc = "\n Returns true (1) if the response body was served from the cache. This\n includes responses for which revalidation was required.\n"]
14995    pub response_was_cached: ::std::option::Option<
14996        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> ::std::os::raw::c_int,
14997    >,
14998    #[doc = "\n Cancel the request.\n"]
14999    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_urlrequest_t)>,
15000}
15001#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15002const _: () = {
15003    ["Size of _cef_urlrequest_t"][::std::mem::size_of::<_cef_urlrequest_t>() - 96usize];
15004    ["Alignment of _cef_urlrequest_t"][::std::mem::align_of::<_cef_urlrequest_t>() - 8usize];
15005    ["Offset of field: _cef_urlrequest_t::base"]
15006        [::std::mem::offset_of!(_cef_urlrequest_t, base) - 0usize];
15007    ["Offset of field: _cef_urlrequest_t::get_request"]
15008        [::std::mem::offset_of!(_cef_urlrequest_t, get_request) - 40usize];
15009    ["Offset of field: _cef_urlrequest_t::get_client"]
15010        [::std::mem::offset_of!(_cef_urlrequest_t, get_client) - 48usize];
15011    ["Offset of field: _cef_urlrequest_t::get_request_status"]
15012        [::std::mem::offset_of!(_cef_urlrequest_t, get_request_status) - 56usize];
15013    ["Offset of field: _cef_urlrequest_t::get_request_error"]
15014        [::std::mem::offset_of!(_cef_urlrequest_t, get_request_error) - 64usize];
15015    ["Offset of field: _cef_urlrequest_t::get_response"]
15016        [::std::mem::offset_of!(_cef_urlrequest_t, get_response) - 72usize];
15017    ["Offset of field: _cef_urlrequest_t::response_was_cached"]
15018        [::std::mem::offset_of!(_cef_urlrequest_t, response_was_cached) - 80usize];
15019    ["Offset of field: _cef_urlrequest_t::cancel"]
15020        [::std::mem::offset_of!(_cef_urlrequest_t, cancel) - 88usize];
15021};
15022#[doc = "\n Structure used to make a URL request. URL requests are not associated with a\n browser instance so no cef_client_t callbacks will be executed. URL requests\n can be created on any valid CEF thread in either the browser or render\n process. Once created the functions of the URL request object must be\n accessed on the same thread that created it.\n\n NOTE: This struct is allocated DLL-side.\n"]
15023pub type cef_urlrequest_t = _cef_urlrequest_t;
15024unsafe extern "C" {
15025    #[doc = "\n Create a new URL request that is not associated with a specific browser or\n frame. Use cef_frame_t::CreateURLRequest instead if you want the request to\n have this association, in which case it may be handled differently (see\n documentation on that function). A request created with this function may\n only originate from the browser process, and will behave as follows:\n   - It may be intercepted by the client via CefResourceRequestHandler or\n     CefSchemeHandlerFactory.\n   - POST data may only contain only a single element of type PDE_TYPE_FILE\n     or PDE_TYPE_BYTES.\n   - If |request_context| is empty the global request context will be used.\n\n The |request| object will be marked as read-only after calling this\n function.\n"]
15026    pub fn cef_urlrequest_create(
15027        request: *mut _cef_request_t,
15028        client: *mut _cef_urlrequest_client_t,
15029        request_context: *mut _cef_request_context_t,
15030    ) -> *mut cef_urlrequest_t;
15031}
15032#[doc = "\n Structure that should be implemented by the cef_urlrequest_t client. The\n functions of this structure will be called on the same thread that created\n the request unless otherwise documented.\n\n NOTE: This struct is allocated client-side.\n"]
15033#[repr(C)]
15034#[derive(Debug, Copy, Clone)]
15035pub struct _cef_urlrequest_client_t {
15036    #[doc = "\n Base structure.\n"]
15037    pub base: cef_base_ref_counted_t,
15038    #[doc = "\n Notifies the client that the request has completed. Use the\n cef_urlrequest_t::GetRequestStatus function to determine if the request\n was successful or not.\n"]
15039    pub on_request_complete: ::std::option::Option<
15040        unsafe extern "C" fn(self_: *mut _cef_urlrequest_client_t, request: *mut _cef_urlrequest_t),
15041    >,
15042    #[doc = "\n Notifies the client of upload progress. |current| denotes the number of\n bytes sent so far and |total| is the total size of uploading data (or -1\n if chunked upload is enabled). This function will only be called if the\n UR_FLAG_REPORT_UPLOAD_PROGRESS flag is set on the request.\n"]
15043    pub on_upload_progress: ::std::option::Option<
15044        unsafe extern "C" fn(
15045            self_: *mut _cef_urlrequest_client_t,
15046            request: *mut _cef_urlrequest_t,
15047            current: i64,
15048            total: i64,
15049        ),
15050    >,
15051    #[doc = "\n Notifies the client of download progress. |current| denotes the number of\n bytes received up to the call and |total| is the expected total size of\n the response (or -1 if not determined).\n"]
15052    pub on_download_progress: ::std::option::Option<
15053        unsafe extern "C" fn(
15054            self_: *mut _cef_urlrequest_client_t,
15055            request: *mut _cef_urlrequest_t,
15056            current: i64,
15057            total: i64,
15058        ),
15059    >,
15060    #[doc = "\n Called when some part of the response is read. |data| contains the current\n bytes received since the last call. This function will not be called if\n the UR_FLAG_NO_DOWNLOAD_DATA flag is set on the request.\n"]
15061    pub on_download_data: ::std::option::Option<
15062        unsafe extern "C" fn(
15063            self_: *mut _cef_urlrequest_client_t,
15064            request: *mut _cef_urlrequest_t,
15065            data: *const ::std::os::raw::c_void,
15066            data_length: usize,
15067        ),
15068    >,
15069    #[doc = "\n Called on the IO thread when the browser needs credentials from the user.\n |isProxy| indicates whether the host is a proxy server. |host| contains\n the hostname and |port| contains the port number. Return true (1) to\n continue the request and call cef_auth_callback_t::cont() when the\n authentication information is available. If the request has an associated\n browser/frame then returning false (0) will result in a call to\n GetAuthCredentials on the cef_request_handler_t associated with that\n browser, if any. Otherwise, returning false (0) will cancel the request\n immediately. This function will only be called for requests initiated from\n the browser process.\n"]
15070    pub get_auth_credentials: ::std::option::Option<
15071        unsafe extern "C" fn(
15072            self_: *mut _cef_urlrequest_client_t,
15073            isProxy: ::std::os::raw::c_int,
15074            host: *const cef_string_t,
15075            port: ::std::os::raw::c_int,
15076            realm: *const cef_string_t,
15077            scheme: *const cef_string_t,
15078            callback: *mut _cef_auth_callback_t,
15079        ) -> ::std::os::raw::c_int,
15080    >,
15081}
15082#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15083const _: () = {
15084    ["Size of _cef_urlrequest_client_t"]
15085        [::std::mem::size_of::<_cef_urlrequest_client_t>() - 80usize];
15086    ["Alignment of _cef_urlrequest_client_t"]
15087        [::std::mem::align_of::<_cef_urlrequest_client_t>() - 8usize];
15088    ["Offset of field: _cef_urlrequest_client_t::base"]
15089        [::std::mem::offset_of!(_cef_urlrequest_client_t, base) - 0usize];
15090    ["Offset of field: _cef_urlrequest_client_t::on_request_complete"]
15091        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_request_complete) - 40usize];
15092    ["Offset of field: _cef_urlrequest_client_t::on_upload_progress"]
15093        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_upload_progress) - 48usize];
15094    ["Offset of field: _cef_urlrequest_client_t::on_download_progress"]
15095        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_download_progress) - 56usize];
15096    ["Offset of field: _cef_urlrequest_client_t::on_download_data"]
15097        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_download_data) - 64usize];
15098    ["Offset of field: _cef_urlrequest_client_t::get_auth_credentials"]
15099        [::std::mem::offset_of!(_cef_urlrequest_client_t, get_auth_credentials) - 72usize];
15100};
15101#[doc = "\n Structure that should be implemented by the cef_urlrequest_t client. The\n functions of this structure will be called on the same thread that created\n the request unless otherwise documented.\n\n NOTE: This struct is allocated client-side.\n"]
15102pub type cef_urlrequest_client_t = _cef_urlrequest_client_t;
15103#[doc = "\n WaitableEvent is a thread synchronization tool that allows one thread to\n wait for another thread to finish some work. This is equivalent to using a\n Lock+ConditionVariable to protect a simple boolean value. However, using\n WaitableEvent in conjunction with a Lock to wait for a more complex state\n change (e.g., for an item to be added to a queue) is not recommended. In\n that case consider using a ConditionVariable instead of a WaitableEvent. It\n is safe to create and/or signal a WaitableEvent from any thread. Blocking on\n a WaitableEvent by calling the *wait() functions is not allowed on the\n browser process UI or IO threads.\n\n NOTE: This struct is allocated DLL-side.\n"]
15104#[repr(C)]
15105#[derive(Debug, Copy, Clone)]
15106pub struct _cef_waitable_event_t {
15107    #[doc = "\n Base structure.\n"]
15108    pub base: cef_base_ref_counted_t,
15109    #[doc = "\n Put the event in the un-signaled state.\n"]
15110    pub reset: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_waitable_event_t)>,
15111    #[doc = "\n Put the event in the signaled state. This causes any thread blocked on\n Wait to be woken up.\n"]
15112    pub signal: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_waitable_event_t)>,
15113    #[doc = "\n Returns true (1) if the event is in the signaled state, else false (0). If\n the event was created with |automatic_reset| set to true (1) then calling\n this function will also cause a reset.\n"]
15114    pub is_signaled: ::std::option::Option<
15115        unsafe extern "C" fn(self_: *mut _cef_waitable_event_t) -> ::std::os::raw::c_int,
15116    >,
15117    #[doc = "\n Wait indefinitely for the event to be signaled. This function will not\n return until after the call to signal() has completed. This function\n cannot be called on the browser process UI or IO threads.\n"]
15118    pub wait: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_waitable_event_t)>,
15119    #[doc = "\n Wait up to |max_ms| milliseconds for the event to be signaled. Returns\n true (1) if the event was signaled. A return value of false (0) does not\n necessarily mean that |max_ms| was exceeded. This function will not return\n until after the call to signal() has completed. This function cannot be\n called on the browser process UI or IO threads.\n"]
15120    pub timed_wait: ::std::option::Option<
15121        unsafe extern "C" fn(
15122            self_: *mut _cef_waitable_event_t,
15123            max_ms: i64,
15124        ) -> ::std::os::raw::c_int,
15125    >,
15126}
15127#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15128const _: () = {
15129    ["Size of _cef_waitable_event_t"][::std::mem::size_of::<_cef_waitable_event_t>() - 80usize];
15130    ["Alignment of _cef_waitable_event_t"]
15131        [::std::mem::align_of::<_cef_waitable_event_t>() - 8usize];
15132    ["Offset of field: _cef_waitable_event_t::base"]
15133        [::std::mem::offset_of!(_cef_waitable_event_t, base) - 0usize];
15134    ["Offset of field: _cef_waitable_event_t::reset"]
15135        [::std::mem::offset_of!(_cef_waitable_event_t, reset) - 40usize];
15136    ["Offset of field: _cef_waitable_event_t::signal"]
15137        [::std::mem::offset_of!(_cef_waitable_event_t, signal) - 48usize];
15138    ["Offset of field: _cef_waitable_event_t::is_signaled"]
15139        [::std::mem::offset_of!(_cef_waitable_event_t, is_signaled) - 56usize];
15140    ["Offset of field: _cef_waitable_event_t::wait"]
15141        [::std::mem::offset_of!(_cef_waitable_event_t, wait) - 64usize];
15142    ["Offset of field: _cef_waitable_event_t::timed_wait"]
15143        [::std::mem::offset_of!(_cef_waitable_event_t, timed_wait) - 72usize];
15144};
15145#[doc = "\n WaitableEvent is a thread synchronization tool that allows one thread to\n wait for another thread to finish some work. This is equivalent to using a\n Lock+ConditionVariable to protect a simple boolean value. However, using\n WaitableEvent in conjunction with a Lock to wait for a more complex state\n change (e.g., for an item to be added to a queue) is not recommended. In\n that case consider using a ConditionVariable instead of a WaitableEvent. It\n is safe to create and/or signal a WaitableEvent from any thread. Blocking on\n a WaitableEvent by calling the *wait() functions is not allowed on the\n browser process UI or IO threads.\n\n NOTE: This struct is allocated DLL-side.\n"]
15146pub type cef_waitable_event_t = _cef_waitable_event_t;
15147unsafe extern "C" {
15148    #[doc = "\n Create a new waitable event. If |automatic_reset| is true (1) then the event\n state is automatically reset to un-signaled after a single waiting thread\n has been released; otherwise, the state remains signaled until reset() is\n called manually. If |initially_signaled| is true (1) then the event will\n start in the signaled state.\n"]
15149    pub fn cef_waitable_event_create(
15150        automatic_reset: ::std::os::raw::c_int,
15151        initially_signaled: ::std::os::raw::c_int,
15152    ) -> *mut cef_waitable_event_t;
15153}
15154#[doc = "\n Structure that supports the reading of XML data via the libxml streaming\n API. The functions of this structure should only be called on the thread\n that creates the object.\n\n NOTE: This struct is allocated DLL-side.\n"]
15155#[repr(C)]
15156#[derive(Debug, Copy, Clone)]
15157pub struct _cef_xml_reader_t {
15158    #[doc = "\n Base structure.\n"]
15159    pub base: cef_base_ref_counted_t,
15160    #[doc = "\n Moves the cursor to the next node in the document. This function must be\n called at least once to set the current cursor position. Returns true (1)\n if the cursor position was set successfully.\n"]
15161    pub move_to_next_node: ::std::option::Option<
15162        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15163    >,
15164    #[doc = "\n Close the document. This should be called directly to ensure that cleanup\n occurs on the correct thread.\n"]
15165    pub close: ::std::option::Option<
15166        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15167    >,
15168    #[doc = "\n Returns true (1) if an error has been reported by the XML parser.\n"]
15169    pub has_error: ::std::option::Option<
15170        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15171    >,
15172    #[doc = "\n Returns the error string.\n"]
15173    pub get_error: ::std::option::Option<
15174        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15175    >,
15176    #[doc = "\n Returns the node type.\n"]
15177    pub get_type: ::std::option::Option<
15178        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_xml_node_type_t,
15179    >,
15180    #[doc = "\n Returns the node depth. Depth starts at 0 for the root node.\n"]
15181    pub get_depth: ::std::option::Option<
15182        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15183    >,
15184    #[doc = "\n Returns the local name. See http://www.w3.org/TR/REC-xml-names/#NT-\n LocalPart for additional details.\n"]
15185    pub get_local_name: ::std::option::Option<
15186        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15187    >,
15188    #[doc = "\n Returns the namespace prefix. See http://www.w3.org/TR/REC-xml-names/ for\n additional details.\n"]
15189    pub get_prefix: ::std::option::Option<
15190        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15191    >,
15192    #[doc = "\n Returns the qualified name, equal to (Prefix:)LocalName. See\n http://www.w3.org/TR/REC-xml-names/#ns-qualnames for additional details.\n"]
15193    pub get_qualified_name: ::std::option::Option<
15194        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15195    >,
15196    #[doc = "\n Returns the URI defining the namespace associated with the node. See\n http://www.w3.org/TR/REC-xml-names/ for additional details.\n"]
15197    pub get_namespace_uri: ::std::option::Option<
15198        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15199    >,
15200    #[doc = "\n Returns the base URI of the node. See http://www.w3.org/TR/xmlbase/ for\n additional details.\n"]
15201    pub get_base_uri: ::std::option::Option<
15202        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15203    >,
15204    #[doc = "\n Returns the xml:lang scope within which the node resides. See\n http://www.w3.org/TR/REC-xml/#sec-lang-tag for additional details.\n"]
15205    pub get_xml_lang: ::std::option::Option<
15206        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15207    >,
15208    #[doc = "\n Returns true (1) if the node represents an NULL element. \"<a/>\" is\n considered NULL but \"<a></a>\" is not.\n"]
15209    pub is_empty_element: ::std::option::Option<
15210        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15211    >,
15212    #[doc = "\n Returns true (1) if the node has a text value.\n"]
15213    pub has_value: ::std::option::Option<
15214        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15215    >,
15216    #[doc = "\n Returns the text value.\n"]
15217    pub get_value: ::std::option::Option<
15218        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15219    >,
15220    #[doc = "\n Returns true (1) if the node has attributes.\n"]
15221    pub has_attributes: ::std::option::Option<
15222        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15223    >,
15224    #[doc = "\n Returns the number of attributes.\n"]
15225    pub get_attribute_count:
15226        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> usize>,
15227    #[doc = "\n Returns the value of the attribute at the specified 0-based index.\n"]
15228    pub get_attribute_byindex: ::std::option::Option<
15229        unsafe extern "C" fn(
15230            self_: *mut _cef_xml_reader_t,
15231            index: ::std::os::raw::c_int,
15232        ) -> cef_string_userfree_t,
15233    >,
15234    #[doc = "\n Returns the value of the attribute with the specified qualified name.\n"]
15235    pub get_attribute_byqname: ::std::option::Option<
15236        unsafe extern "C" fn(
15237            self_: *mut _cef_xml_reader_t,
15238            qualifiedName: *const cef_string_t,
15239        ) -> cef_string_userfree_t,
15240    >,
15241    #[doc = "\n Returns the value of the attribute with the specified local name and\n namespace URI.\n"]
15242    pub get_attribute_bylname: ::std::option::Option<
15243        unsafe extern "C" fn(
15244            self_: *mut _cef_xml_reader_t,
15245            localName: *const cef_string_t,
15246            namespaceURI: *const cef_string_t,
15247        ) -> cef_string_userfree_t,
15248    >,
15249    #[doc = "\n Returns an XML representation of the current node's children.\n"]
15250    pub get_inner_xml: ::std::option::Option<
15251        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15252    >,
15253    #[doc = "\n Returns an XML representation of the current node including its children.\n"]
15254    pub get_outer_xml: ::std::option::Option<
15255        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> cef_string_userfree_t,
15256    >,
15257    #[doc = "\n Returns the line number for the current node.\n"]
15258    pub get_line_number: ::std::option::Option<
15259        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15260    >,
15261    #[doc = "\n Moves the cursor to the attribute at the specified 0-based index. Returns\n true (1) if the cursor position was set successfully.\n"]
15262    pub move_to_attribute_byindex: ::std::option::Option<
15263        unsafe extern "C" fn(
15264            self_: *mut _cef_xml_reader_t,
15265            index: ::std::os::raw::c_int,
15266        ) -> ::std::os::raw::c_int,
15267    >,
15268    #[doc = "\n Moves the cursor to the attribute with the specified qualified name.\n Returns true (1) if the cursor position was set successfully.\n"]
15269    pub move_to_attribute_byqname: ::std::option::Option<
15270        unsafe extern "C" fn(
15271            self_: *mut _cef_xml_reader_t,
15272            qualifiedName: *const cef_string_t,
15273        ) -> ::std::os::raw::c_int,
15274    >,
15275    #[doc = "\n Moves the cursor to the attribute with the specified local name and\n namespace URI. Returns true (1) if the cursor position was set\n successfully.\n"]
15276    pub move_to_attribute_bylname: ::std::option::Option<
15277        unsafe extern "C" fn(
15278            self_: *mut _cef_xml_reader_t,
15279            localName: *const cef_string_t,
15280            namespaceURI: *const cef_string_t,
15281        ) -> ::std::os::raw::c_int,
15282    >,
15283    #[doc = "\n Moves the cursor to the first attribute in the current element. Returns\n true (1) if the cursor position was set successfully.\n"]
15284    pub move_to_first_attribute: ::std::option::Option<
15285        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15286    >,
15287    #[doc = "\n Moves the cursor to the next attribute in the current element. Returns\n true (1) if the cursor position was set successfully.\n"]
15288    pub move_to_next_attribute: ::std::option::Option<
15289        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15290    >,
15291    #[doc = "\n Moves the cursor back to the carrying element. Returns true (1) if the\n cursor position was set successfully.\n"]
15292    pub move_to_carrying_element: ::std::option::Option<
15293        unsafe extern "C" fn(self_: *mut _cef_xml_reader_t) -> ::std::os::raw::c_int,
15294    >,
15295}
15296#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15297const _: () = {
15298    ["Size of _cef_xml_reader_t"][::std::mem::size_of::<_cef_xml_reader_t>() - 272usize];
15299    ["Alignment of _cef_xml_reader_t"][::std::mem::align_of::<_cef_xml_reader_t>() - 8usize];
15300    ["Offset of field: _cef_xml_reader_t::base"]
15301        [::std::mem::offset_of!(_cef_xml_reader_t, base) - 0usize];
15302    ["Offset of field: _cef_xml_reader_t::move_to_next_node"]
15303        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_next_node) - 40usize];
15304    ["Offset of field: _cef_xml_reader_t::close"]
15305        [::std::mem::offset_of!(_cef_xml_reader_t, close) - 48usize];
15306    ["Offset of field: _cef_xml_reader_t::has_error"]
15307        [::std::mem::offset_of!(_cef_xml_reader_t, has_error) - 56usize];
15308    ["Offset of field: _cef_xml_reader_t::get_error"]
15309        [::std::mem::offset_of!(_cef_xml_reader_t, get_error) - 64usize];
15310    ["Offset of field: _cef_xml_reader_t::get_type"]
15311        [::std::mem::offset_of!(_cef_xml_reader_t, get_type) - 72usize];
15312    ["Offset of field: _cef_xml_reader_t::get_depth"]
15313        [::std::mem::offset_of!(_cef_xml_reader_t, get_depth) - 80usize];
15314    ["Offset of field: _cef_xml_reader_t::get_local_name"]
15315        [::std::mem::offset_of!(_cef_xml_reader_t, get_local_name) - 88usize];
15316    ["Offset of field: _cef_xml_reader_t::get_prefix"]
15317        [::std::mem::offset_of!(_cef_xml_reader_t, get_prefix) - 96usize];
15318    ["Offset of field: _cef_xml_reader_t::get_qualified_name"]
15319        [::std::mem::offset_of!(_cef_xml_reader_t, get_qualified_name) - 104usize];
15320    ["Offset of field: _cef_xml_reader_t::get_namespace_uri"]
15321        [::std::mem::offset_of!(_cef_xml_reader_t, get_namespace_uri) - 112usize];
15322    ["Offset of field: _cef_xml_reader_t::get_base_uri"]
15323        [::std::mem::offset_of!(_cef_xml_reader_t, get_base_uri) - 120usize];
15324    ["Offset of field: _cef_xml_reader_t::get_xml_lang"]
15325        [::std::mem::offset_of!(_cef_xml_reader_t, get_xml_lang) - 128usize];
15326    ["Offset of field: _cef_xml_reader_t::is_empty_element"]
15327        [::std::mem::offset_of!(_cef_xml_reader_t, is_empty_element) - 136usize];
15328    ["Offset of field: _cef_xml_reader_t::has_value"]
15329        [::std::mem::offset_of!(_cef_xml_reader_t, has_value) - 144usize];
15330    ["Offset of field: _cef_xml_reader_t::get_value"]
15331        [::std::mem::offset_of!(_cef_xml_reader_t, get_value) - 152usize];
15332    ["Offset of field: _cef_xml_reader_t::has_attributes"]
15333        [::std::mem::offset_of!(_cef_xml_reader_t, has_attributes) - 160usize];
15334    ["Offset of field: _cef_xml_reader_t::get_attribute_count"]
15335        [::std::mem::offset_of!(_cef_xml_reader_t, get_attribute_count) - 168usize];
15336    ["Offset of field: _cef_xml_reader_t::get_attribute_byindex"]
15337        [::std::mem::offset_of!(_cef_xml_reader_t, get_attribute_byindex) - 176usize];
15338    ["Offset of field: _cef_xml_reader_t::get_attribute_byqname"]
15339        [::std::mem::offset_of!(_cef_xml_reader_t, get_attribute_byqname) - 184usize];
15340    ["Offset of field: _cef_xml_reader_t::get_attribute_bylname"]
15341        [::std::mem::offset_of!(_cef_xml_reader_t, get_attribute_bylname) - 192usize];
15342    ["Offset of field: _cef_xml_reader_t::get_inner_xml"]
15343        [::std::mem::offset_of!(_cef_xml_reader_t, get_inner_xml) - 200usize];
15344    ["Offset of field: _cef_xml_reader_t::get_outer_xml"]
15345        [::std::mem::offset_of!(_cef_xml_reader_t, get_outer_xml) - 208usize];
15346    ["Offset of field: _cef_xml_reader_t::get_line_number"]
15347        [::std::mem::offset_of!(_cef_xml_reader_t, get_line_number) - 216usize];
15348    ["Offset of field: _cef_xml_reader_t::move_to_attribute_byindex"]
15349        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_attribute_byindex) - 224usize];
15350    ["Offset of field: _cef_xml_reader_t::move_to_attribute_byqname"]
15351        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_attribute_byqname) - 232usize];
15352    ["Offset of field: _cef_xml_reader_t::move_to_attribute_bylname"]
15353        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_attribute_bylname) - 240usize];
15354    ["Offset of field: _cef_xml_reader_t::move_to_first_attribute"]
15355        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_first_attribute) - 248usize];
15356    ["Offset of field: _cef_xml_reader_t::move_to_next_attribute"]
15357        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_next_attribute) - 256usize];
15358    ["Offset of field: _cef_xml_reader_t::move_to_carrying_element"]
15359        [::std::mem::offset_of!(_cef_xml_reader_t, move_to_carrying_element) - 264usize];
15360};
15361#[doc = "\n Structure that supports the reading of XML data via the libxml streaming\n API. The functions of this structure should only be called on the thread\n that creates the object.\n\n NOTE: This struct is allocated DLL-side.\n"]
15362pub type cef_xml_reader_t = _cef_xml_reader_t;
15363unsafe extern "C" {
15364    #[doc = "\n Create a new cef_xml_reader_t object. The returned object's functions can\n only be called from the thread that created the object.\n"]
15365    pub fn cef_xml_reader_create(
15366        stream: *mut _cef_stream_reader_t,
15367        encodingType: cef_xml_encoding_type_t,
15368        URI: *const cef_string_t,
15369    ) -> *mut cef_xml_reader_t;
15370}
15371#[doc = "\n Structure that supports the reading of zip archives via the zlib unzip API.\n The functions of this structure should only be called on the thread that\n creates the object.\n\n NOTE: This struct is allocated DLL-side.\n"]
15372#[repr(C)]
15373#[derive(Debug, Copy, Clone)]
15374pub struct _cef_zip_reader_t {
15375    #[doc = "\n Base structure.\n"]
15376    pub base: cef_base_ref_counted_t,
15377    #[doc = "\n Moves the cursor to the first file in the archive. Returns true (1) if the\n cursor position was set successfully.\n"]
15378    pub move_to_first_file: ::std::option::Option<
15379        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> ::std::os::raw::c_int,
15380    >,
15381    #[doc = "\n Moves the cursor to the next file in the archive. Returns true (1) if the\n cursor position was set successfully.\n"]
15382    pub move_to_next_file: ::std::option::Option<
15383        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> ::std::os::raw::c_int,
15384    >,
15385    #[doc = "\n Moves the cursor to the specified file in the archive. If |caseSensitive|\n is true (1) then the search will be case sensitive. Returns true (1) if\n the cursor position was set successfully.\n"]
15386    pub move_to_file: ::std::option::Option<
15387        unsafe extern "C" fn(
15388            self_: *mut _cef_zip_reader_t,
15389            fileName: *const cef_string_t,
15390            caseSensitive: ::std::os::raw::c_int,
15391        ) -> ::std::os::raw::c_int,
15392    >,
15393    #[doc = "\n Closes the archive. This should be called directly to ensure that cleanup\n occurs on the correct thread.\n"]
15394    pub close: ::std::option::Option<
15395        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> ::std::os::raw::c_int,
15396    >,
15397    #[doc = "\n Returns the name of the file.\n"]
15398    pub get_file_name: ::std::option::Option<
15399        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> cef_string_userfree_t,
15400    >,
15401    #[doc = "\n Returns the uncompressed size of the file.\n"]
15402    pub get_file_size:
15403        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> i64>,
15404    #[doc = "\n Returns the last modified timestamp for the file.\n"]
15405    pub get_file_last_modified: ::std::option::Option<
15406        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> cef_basetime_t,
15407    >,
15408    #[doc = "\n Opens the file for reading of uncompressed data. A read password may\n optionally be specified.\n"]
15409    pub open_file: ::std::option::Option<
15410        unsafe extern "C" fn(
15411            self_: *mut _cef_zip_reader_t,
15412            password: *const cef_string_t,
15413        ) -> ::std::os::raw::c_int,
15414    >,
15415    #[doc = "\n Closes the file.\n"]
15416    pub close_file: ::std::option::Option<
15417        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> ::std::os::raw::c_int,
15418    >,
15419    #[doc = "\n Read uncompressed file contents into the specified buffer. Returns < 0 if\n an error occurred, 0 if at the end of file, or the number of bytes read.\n"]
15420    pub read_file: ::std::option::Option<
15421        unsafe extern "C" fn(
15422            self_: *mut _cef_zip_reader_t,
15423            buffer: *mut ::std::os::raw::c_void,
15424            bufferSize: usize,
15425        ) -> ::std::os::raw::c_int,
15426    >,
15427    #[doc = "\n Returns the current offset in the uncompressed file contents.\n"]
15428    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> i64>,
15429    #[doc = "\n Returns true (1) if at end of the file contents.\n"]
15430    pub eof: ::std::option::Option<
15431        unsafe extern "C" fn(self_: *mut _cef_zip_reader_t) -> ::std::os::raw::c_int,
15432    >,
15433}
15434#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15435const _: () = {
15436    ["Size of _cef_zip_reader_t"][::std::mem::size_of::<_cef_zip_reader_t>() - 136usize];
15437    ["Alignment of _cef_zip_reader_t"][::std::mem::align_of::<_cef_zip_reader_t>() - 8usize];
15438    ["Offset of field: _cef_zip_reader_t::base"]
15439        [::std::mem::offset_of!(_cef_zip_reader_t, base) - 0usize];
15440    ["Offset of field: _cef_zip_reader_t::move_to_first_file"]
15441        [::std::mem::offset_of!(_cef_zip_reader_t, move_to_first_file) - 40usize];
15442    ["Offset of field: _cef_zip_reader_t::move_to_next_file"]
15443        [::std::mem::offset_of!(_cef_zip_reader_t, move_to_next_file) - 48usize];
15444    ["Offset of field: _cef_zip_reader_t::move_to_file"]
15445        [::std::mem::offset_of!(_cef_zip_reader_t, move_to_file) - 56usize];
15446    ["Offset of field: _cef_zip_reader_t::close"]
15447        [::std::mem::offset_of!(_cef_zip_reader_t, close) - 64usize];
15448    ["Offset of field: _cef_zip_reader_t::get_file_name"]
15449        [::std::mem::offset_of!(_cef_zip_reader_t, get_file_name) - 72usize];
15450    ["Offset of field: _cef_zip_reader_t::get_file_size"]
15451        [::std::mem::offset_of!(_cef_zip_reader_t, get_file_size) - 80usize];
15452    ["Offset of field: _cef_zip_reader_t::get_file_last_modified"]
15453        [::std::mem::offset_of!(_cef_zip_reader_t, get_file_last_modified) - 88usize];
15454    ["Offset of field: _cef_zip_reader_t::open_file"]
15455        [::std::mem::offset_of!(_cef_zip_reader_t, open_file) - 96usize];
15456    ["Offset of field: _cef_zip_reader_t::close_file"]
15457        [::std::mem::offset_of!(_cef_zip_reader_t, close_file) - 104usize];
15458    ["Offset of field: _cef_zip_reader_t::read_file"]
15459        [::std::mem::offset_of!(_cef_zip_reader_t, read_file) - 112usize];
15460    ["Offset of field: _cef_zip_reader_t::tell"]
15461        [::std::mem::offset_of!(_cef_zip_reader_t, tell) - 120usize];
15462    ["Offset of field: _cef_zip_reader_t::eof"]
15463        [::std::mem::offset_of!(_cef_zip_reader_t, eof) - 128usize];
15464};
15465#[doc = "\n Structure that supports the reading of zip archives via the zlib unzip API.\n The functions of this structure should only be called on the thread that\n creates the object.\n\n NOTE: This struct is allocated DLL-side.\n"]
15466pub type cef_zip_reader_t = _cef_zip_reader_t;
15467unsafe extern "C" {
15468    #[doc = "\n Create a new cef_zip_reader_t object. The returned object's functions can\n only be called from the thread that created the object.\n"]
15469    pub fn cef_zip_reader_create(stream: *mut _cef_stream_reader_t) -> *mut cef_zip_reader_t;
15470}
15471#[doc = "\n A Layout handles the sizing of the children of a Panel according to\n implementation-specific heuristics. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
15472#[repr(C)]
15473#[derive(Debug, Copy, Clone)]
15474pub struct _cef_layout_t {
15475    #[doc = "\n Base structure.\n"]
15476    pub base: cef_base_ref_counted_t,
15477    #[doc = "\n Returns this Layout as a BoxLayout or NULL if this is not a BoxLayout.\n"]
15478    pub as_box_layout: ::std::option::Option<
15479        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> *mut _cef_box_layout_t,
15480    >,
15481    #[doc = "\n Returns this Layout as a FillLayout or NULL if this is not a FillLayout.\n"]
15482    pub as_fill_layout: ::std::option::Option<
15483        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> *mut _cef_fill_layout_t,
15484    >,
15485    #[doc = "\n Returns true (1) if this Layout is valid.\n"]
15486    pub is_valid: ::std::option::Option<
15487        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> ::std::os::raw::c_int,
15488    >,
15489}
15490#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15491const _: () = {
15492    ["Size of _cef_layout_t"][::std::mem::size_of::<_cef_layout_t>() - 64usize];
15493    ["Alignment of _cef_layout_t"][::std::mem::align_of::<_cef_layout_t>() - 8usize];
15494    ["Offset of field: _cef_layout_t::base"][::std::mem::offset_of!(_cef_layout_t, base) - 0usize];
15495    ["Offset of field: _cef_layout_t::as_box_layout"]
15496        [::std::mem::offset_of!(_cef_layout_t, as_box_layout) - 40usize];
15497    ["Offset of field: _cef_layout_t::as_fill_layout"]
15498        [::std::mem::offset_of!(_cef_layout_t, as_fill_layout) - 48usize];
15499    ["Offset of field: _cef_layout_t::is_valid"]
15500        [::std::mem::offset_of!(_cef_layout_t, is_valid) - 56usize];
15501};
15502#[doc = "\n A Layout handles the sizing of the children of a Panel according to\n implementation-specific heuristics. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
15503pub type cef_layout_t = _cef_layout_t;
15504#[doc = "\n A Layout manager that arranges child views vertically or horizontally in a\n side-by-side fashion with spacing around and between the child views. The\n child views are always sized according to their preferred size. If the\n host's bounds provide insufficient space, child views will be clamped.\n Excess space will not be distributed. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
15505#[repr(C)]
15506#[derive(Debug, Copy, Clone)]
15507pub struct _cef_box_layout_t {
15508    #[doc = "\n Base structure.\n"]
15509    pub base: cef_layout_t,
15510    #[doc = "\n Set the flex weight for the given |view|. Using the preferred size as the\n basis, free space along the main axis is distributed to views in the ratio\n of their flex weights. Similarly, if the views will overflow the parent,\n space is subtracted in these ratios. A flex of 0 means this view is not\n resized. Flex values must not be negative.\n"]
15511    pub set_flex_for_view: ::std::option::Option<
15512        unsafe extern "C" fn(
15513            self_: *mut _cef_box_layout_t,
15514            view: *mut _cef_view_t,
15515            flex: ::std::os::raw::c_int,
15516        ),
15517    >,
15518    #[doc = "\n Clears the flex for the given |view|, causing it to use the default flex\n specified via cef_box_layout_tSettings.default_flex.\n"]
15519    pub clear_flex_for_view: ::std::option::Option<
15520        unsafe extern "C" fn(self_: *mut _cef_box_layout_t, view: *mut _cef_view_t),
15521    >,
15522}
15523#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15524const _: () = {
15525    ["Size of _cef_box_layout_t"][::std::mem::size_of::<_cef_box_layout_t>() - 80usize];
15526    ["Alignment of _cef_box_layout_t"][::std::mem::align_of::<_cef_box_layout_t>() - 8usize];
15527    ["Offset of field: _cef_box_layout_t::base"]
15528        [::std::mem::offset_of!(_cef_box_layout_t, base) - 0usize];
15529    ["Offset of field: _cef_box_layout_t::set_flex_for_view"]
15530        [::std::mem::offset_of!(_cef_box_layout_t, set_flex_for_view) - 64usize];
15531    ["Offset of field: _cef_box_layout_t::clear_flex_for_view"]
15532        [::std::mem::offset_of!(_cef_box_layout_t, clear_flex_for_view) - 72usize];
15533};
15534#[doc = "\n A Layout manager that arranges child views vertically or horizontally in a\n side-by-side fashion with spacing around and between the child views. The\n child views are always sized according to their preferred size. If the\n host's bounds provide insufficient space, child views will be clamped.\n Excess space will not be distributed. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
15535pub type cef_box_layout_t = _cef_box_layout_t;
15536#[doc = "\n Implement this structure to handle view events. All size and position values\n are in density independent pixels (DIP) unless otherwise indicated. The\n functions of this structure will be called on the browser process UI thread\n unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
15537#[repr(C)]
15538#[derive(Debug, Copy, Clone)]
15539pub struct _cef_view_delegate_t {
15540    #[doc = "\n Base structure.\n"]
15541    pub base: cef_base_ref_counted_t,
15542    #[doc = "\n Return the preferred size for |view|. The Layout will use this information\n to determine the display size.\n"]
15543    pub get_preferred_size: ::std::option::Option<
15544        unsafe extern "C" fn(
15545            self_: *mut _cef_view_delegate_t,
15546            view: *mut _cef_view_t,
15547        ) -> cef_size_t,
15548    >,
15549    #[doc = "\n Return the minimum size for |view|.\n"]
15550    pub get_minimum_size: ::std::option::Option<
15551        unsafe extern "C" fn(
15552            self_: *mut _cef_view_delegate_t,
15553            view: *mut _cef_view_t,
15554        ) -> cef_size_t,
15555    >,
15556    #[doc = "\n Return the maximum size for |view|.\n"]
15557    pub get_maximum_size: ::std::option::Option<
15558        unsafe extern "C" fn(
15559            self_: *mut _cef_view_delegate_t,
15560            view: *mut _cef_view_t,
15561        ) -> cef_size_t,
15562    >,
15563    #[doc = "\n Return the height necessary to display |view| with the provided |width|.\n If not specified the result of get_preferred_size().height will be used by\n default. Override if |view|'s preferred height depends upon the width (for\n example, with Labels).\n"]
15564    pub get_height_for_width: ::std::option::Option<
15565        unsafe extern "C" fn(
15566            self_: *mut _cef_view_delegate_t,
15567            view: *mut _cef_view_t,
15568            width: ::std::os::raw::c_int,
15569        ) -> ::std::os::raw::c_int,
15570    >,
15571    #[doc = "\n Called when the parent of |view| has changed. If |view| is being added to\n |parent| then |added| will be true (1). If |view| is being removed from\n |parent| then |added| will be false (0). If |view| is being reparented the\n remove notification will be sent before the add notification. Do not\n modify the view hierarchy in this callback.\n"]
15572    pub on_parent_view_changed: ::std::option::Option<
15573        unsafe extern "C" fn(
15574            self_: *mut _cef_view_delegate_t,
15575            view: *mut _cef_view_t,
15576            added: ::std::os::raw::c_int,
15577            parent: *mut _cef_view_t,
15578        ),
15579    >,
15580    #[doc = "\n Called when a child of |view| has changed. If |child| is being added to\n |view| then |added| will be true (1). If |child| is being removed from\n |view| then |added| will be false (0). If |child| is being reparented the\n remove notification will be sent to the old parent before the add\n notification is sent to the new parent. Do not modify the view hierarchy\n in this callback.\n"]
15581    pub on_child_view_changed: ::std::option::Option<
15582        unsafe extern "C" fn(
15583            self_: *mut _cef_view_delegate_t,
15584            view: *mut _cef_view_t,
15585            added: ::std::os::raw::c_int,
15586            child: *mut _cef_view_t,
15587        ),
15588    >,
15589    #[doc = "\n Called when |view| is added or removed from the cef_window_t.\n"]
15590    pub on_window_changed: ::std::option::Option<
15591        unsafe extern "C" fn(
15592            self_: *mut _cef_view_delegate_t,
15593            view: *mut _cef_view_t,
15594            added: ::std::os::raw::c_int,
15595        ),
15596    >,
15597    #[doc = "\n Called when the layout of |view| has changed.\n"]
15598    pub on_layout_changed: ::std::option::Option<
15599        unsafe extern "C" fn(
15600            self_: *mut _cef_view_delegate_t,
15601            view: *mut _cef_view_t,
15602            new_bounds: *const cef_rect_t,
15603        ),
15604    >,
15605    #[doc = "\n Called when |view| gains focus.\n"]
15606    pub on_focus: ::std::option::Option<
15607        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
15608    >,
15609    #[doc = "\n Called when |view| loses focus.\n"]
15610    pub on_blur: ::std::option::Option<
15611        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
15612    >,
15613    #[doc = "\n Called when the theme for |view| has changed, after the new theme colors\n have already been applied. Views are notified via the component hierarchy\n in depth-first reverse order (children before parents).\n\n This will be called in the following cases:\n\n 1. When |view|, or a parent of |view|, is added to a Window. 2. When the\n native/OS or Chrome theme changes for the Window that contains\n    |view|. See CefWindowDelegate::OnThemeColorsChanged documentation.\n 3. When the client explicitly calls cef_window_t::ThemeChanged on the\n Window\n    that contains |view|.\n\n Optionally use this callback to override the new per-View theme colors by\n calling cef_view_t::SetBackgroundColor or the appropriate component-\n specific function. See cef_window_t::SetThemeColor documentation for how\n to customize additional Window theme colors.\n"]
15614    pub on_theme_changed: ::std::option::Option<
15615        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
15616    >,
15617}
15618#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15619const _: () = {
15620    ["Size of _cef_view_delegate_t"][::std::mem::size_of::<_cef_view_delegate_t>() - 128usize];
15621    ["Alignment of _cef_view_delegate_t"][::std::mem::align_of::<_cef_view_delegate_t>() - 8usize];
15622    ["Offset of field: _cef_view_delegate_t::base"]
15623        [::std::mem::offset_of!(_cef_view_delegate_t, base) - 0usize];
15624    ["Offset of field: _cef_view_delegate_t::get_preferred_size"]
15625        [::std::mem::offset_of!(_cef_view_delegate_t, get_preferred_size) - 40usize];
15626    ["Offset of field: _cef_view_delegate_t::get_minimum_size"]
15627        [::std::mem::offset_of!(_cef_view_delegate_t, get_minimum_size) - 48usize];
15628    ["Offset of field: _cef_view_delegate_t::get_maximum_size"]
15629        [::std::mem::offset_of!(_cef_view_delegate_t, get_maximum_size) - 56usize];
15630    ["Offset of field: _cef_view_delegate_t::get_height_for_width"]
15631        [::std::mem::offset_of!(_cef_view_delegate_t, get_height_for_width) - 64usize];
15632    ["Offset of field: _cef_view_delegate_t::on_parent_view_changed"]
15633        [::std::mem::offset_of!(_cef_view_delegate_t, on_parent_view_changed) - 72usize];
15634    ["Offset of field: _cef_view_delegate_t::on_child_view_changed"]
15635        [::std::mem::offset_of!(_cef_view_delegate_t, on_child_view_changed) - 80usize];
15636    ["Offset of field: _cef_view_delegate_t::on_window_changed"]
15637        [::std::mem::offset_of!(_cef_view_delegate_t, on_window_changed) - 88usize];
15638    ["Offset of field: _cef_view_delegate_t::on_layout_changed"]
15639        [::std::mem::offset_of!(_cef_view_delegate_t, on_layout_changed) - 96usize];
15640    ["Offset of field: _cef_view_delegate_t::on_focus"]
15641        [::std::mem::offset_of!(_cef_view_delegate_t, on_focus) - 104usize];
15642    ["Offset of field: _cef_view_delegate_t::on_blur"]
15643        [::std::mem::offset_of!(_cef_view_delegate_t, on_blur) - 112usize];
15644    ["Offset of field: _cef_view_delegate_t::on_theme_changed"]
15645        [::std::mem::offset_of!(_cef_view_delegate_t, on_theme_changed) - 120usize];
15646};
15647#[doc = "\n Implement this structure to handle view events. All size and position values\n are in density independent pixels (DIP) unless otherwise indicated. The\n functions of this structure will be called on the browser process UI thread\n unless otherwise indicated.\n\n NOTE: This struct is allocated client-side.\n"]
15648pub type cef_view_delegate_t = _cef_view_delegate_t;
15649#[doc = "\n Implement this structure to handle BrowserView events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
15650#[repr(C)]
15651#[derive(Debug, Copy, Clone)]
15652pub struct _cef_browser_view_delegate_t {
15653    #[doc = "\n Base structure.\n"]
15654    pub base: cef_view_delegate_t,
15655    #[doc = "\n Called when |browser| associated with |browser_view| is created. This\n function will be called after cef_life_span_handler_t::on_after_created()\n is called for |browser| and before on_popup_browser_view_created() is\n called for |browser|'s parent delegate if |browser| is a popup.\n"]
15656    pub on_browser_created: ::std::option::Option<
15657        unsafe extern "C" fn(
15658            self_: *mut _cef_browser_view_delegate_t,
15659            browser_view: *mut _cef_browser_view_t,
15660            browser: *mut _cef_browser_t,
15661        ),
15662    >,
15663    #[doc = "\n Called when |browser| associated with |browser_view| is destroyed. Release\n all references to |browser| and do not attempt to execute any functions on\n |browser| after this callback returns. This function will be called before\n cef_life_span_handler_t::on_before_close() is called for |browser|.\n"]
15664    pub on_browser_destroyed: ::std::option::Option<
15665        unsafe extern "C" fn(
15666            self_: *mut _cef_browser_view_delegate_t,
15667            browser_view: *mut _cef_browser_view_t,
15668            browser: *mut _cef_browser_t,
15669        ),
15670    >,
15671    #[doc = "\n Called before a new popup BrowserView is created. The popup originated\n from |browser_view|. |settings| and |client| are the values returned from\n cef_life_span_handler_t::on_before_popup(). |is_devtools| will be true (1)\n if the popup will be a DevTools browser. Return the delegate that will be\n used for the new popup BrowserView.\n"]
15672    pub get_delegate_for_popup_browser_view: ::std::option::Option<
15673        unsafe extern "C" fn(
15674            self_: *mut _cef_browser_view_delegate_t,
15675            browser_view: *mut _cef_browser_view_t,
15676            settings: *const _cef_browser_settings_t,
15677            client: *mut _cef_client_t,
15678            is_devtools: ::std::os::raw::c_int,
15679        ) -> *mut _cef_browser_view_delegate_t,
15680    >,
15681    #[doc = "\n Called after |popup_browser_view| is created. This function will be called\n after cef_life_span_handler_t::on_after_created() and on_browser_created()\n are called for the new popup browser. The popup originated from\n |browser_view|. |is_devtools| will be true (1) if the popup is a DevTools\n browser. Optionally add |popup_browser_view| to the views hierarchy\n yourself and return true (1). Otherwise return false (0) and a default\n cef_window_t will be created for the popup.\n"]
15682    pub on_popup_browser_view_created: ::std::option::Option<
15683        unsafe extern "C" fn(
15684            self_: *mut _cef_browser_view_delegate_t,
15685            browser_view: *mut _cef_browser_view_t,
15686            popup_browser_view: *mut _cef_browser_view_t,
15687            is_devtools: ::std::os::raw::c_int,
15688        ) -> ::std::os::raw::c_int,
15689    >,
15690    #[doc = "\n Returns the Chrome toolbar type that will be available via\n cef_browser_view_t::get_chrome_toolbar(). See that function for related\n documentation.\n"]
15691    pub get_chrome_toolbar_type: ::std::option::Option<
15692        unsafe extern "C" fn(
15693            self_: *mut _cef_browser_view_delegate_t,
15694            browser_view: *mut _cef_browser_view_t,
15695        ) -> cef_chrome_toolbar_type_t,
15696    >,
15697    #[doc = "\n Return true (1) to create frameless windows for Document picture-in-\n picture popups. Content in frameless windows should specify draggable\n regions using \"-webkit-app-region: drag\" CSS.\n"]
15698    pub use_frameless_window_for_picture_in_picture: ::std::option::Option<
15699        unsafe extern "C" fn(
15700            self_: *mut _cef_browser_view_delegate_t,
15701            browser_view: *mut _cef_browser_view_t,
15702        ) -> ::std::os::raw::c_int,
15703    >,
15704    #[doc = "\n Called when |browser_view| receives a gesture command. Return true (1) to\n handle (or disable) a |gesture_command| or false (0) to propagate the\n gesture to the browser for default handling. With Chrome style these\n commands can also be handled via cef_command_handler_t::OnChromeCommand.\n"]
15705    pub on_gesture_command: ::std::option::Option<
15706        unsafe extern "C" fn(
15707            self_: *mut _cef_browser_view_delegate_t,
15708            browser_view: *mut _cef_browser_view_t,
15709            gesture_command: cef_gesture_command_t,
15710        ) -> ::std::os::raw::c_int,
15711    >,
15712    #[doc = "\n Optionally change the runtime style for this BrowserView. See\n cef_runtime_style_t documentation for details.\n"]
15713    pub get_browser_runtime_style: ::std::option::Option<
15714        unsafe extern "C" fn(self_: *mut _cef_browser_view_delegate_t) -> cef_runtime_style_t,
15715    >,
15716    #[doc = "\n Return true (1) to allow the use of JavaScript moveTo/By() and\n resizeTo/By() (without user activation) with Document picture-in-picture\n popups.\n"]
15717    pub allow_move_for_picture_in_picture: ::std::option::Option<
15718        unsafe extern "C" fn(
15719            self_: *mut _cef_browser_view_delegate_t,
15720            browser_view: *mut _cef_browser_view_t,
15721        ) -> ::std::os::raw::c_int,
15722    >,
15723    #[doc = "\n Return true (1) to allow opening Document picture-in-picture without user\n activation. Default is false (0) (user activation required).\n"]
15724    pub allow_picture_in_picture_without_user_activation: ::std::option::Option<
15725        unsafe extern "C" fn(
15726            self_: *mut _cef_browser_view_delegate_t,
15727            browser_view: *mut _cef_browser_view_t,
15728        ) -> ::std::os::raw::c_int,
15729    >,
15730}
15731#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15732const _: () = {
15733    ["Size of _cef_browser_view_delegate_t"]
15734        [::std::mem::size_of::<_cef_browser_view_delegate_t>() - 208usize];
15735    ["Alignment of _cef_browser_view_delegate_t"]
15736        [::std::mem::align_of::<_cef_browser_view_delegate_t>() - 8usize];
15737    ["Offset of field: _cef_browser_view_delegate_t::base"]
15738        [::std::mem::offset_of!(_cef_browser_view_delegate_t, base) - 0usize];
15739    ["Offset of field: _cef_browser_view_delegate_t::on_browser_created"]
15740        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_browser_created) - 128usize];
15741    ["Offset of field: _cef_browser_view_delegate_t::on_browser_destroyed"]
15742        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_browser_destroyed) - 136usize];
15743    ["Offset of field: _cef_browser_view_delegate_t::get_delegate_for_popup_browser_view"][::std::mem::offset_of!(
15744        _cef_browser_view_delegate_t,
15745        get_delegate_for_popup_browser_view
15746    )
15747        - 144usize];
15748    ["Offset of field: _cef_browser_view_delegate_t::on_popup_browser_view_created"][::std::mem::offset_of!(
15749        _cef_browser_view_delegate_t,
15750        on_popup_browser_view_created
15751    ) - 152usize];
15752    ["Offset of field: _cef_browser_view_delegate_t::get_chrome_toolbar_type"]
15753        [::std::mem::offset_of!(_cef_browser_view_delegate_t, get_chrome_toolbar_type) - 160usize];
15754    ["Offset of field: _cef_browser_view_delegate_t::use_frameless_window_for_picture_in_picture"] [:: std :: mem :: offset_of ! (_cef_browser_view_delegate_t , use_frameless_window_for_picture_in_picture) - 168usize] ;
15755    ["Offset of field: _cef_browser_view_delegate_t::on_gesture_command"]
15756        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_gesture_command) - 176usize];
15757    ["Offset of field: _cef_browser_view_delegate_t::get_browser_runtime_style"][::std::mem::offset_of!(
15758        _cef_browser_view_delegate_t,
15759        get_browser_runtime_style
15760    ) - 184usize];
15761    ["Offset of field: _cef_browser_view_delegate_t::allow_move_for_picture_in_picture"][::std::mem::offset_of!(
15762        _cef_browser_view_delegate_t,
15763        allow_move_for_picture_in_picture
15764    )
15765        - 192usize];
15766    ["Offset of field: _cef_browser_view_delegate_t::allow_picture_in_picture_without_user_activation"] [:: std :: mem :: offset_of ! (_cef_browser_view_delegate_t , allow_picture_in_picture_without_user_activation) - 200usize] ;
15767};
15768#[doc = "\n Implement this structure to handle BrowserView events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
15769pub type cef_browser_view_delegate_t = _cef_browser_view_delegate_t;
15770#[doc = "\n A View is a rectangle within the views View hierarchy. It is the base\n structure for all Views. All size and position values are in density\n independent pixels (DIP) unless otherwise indicated. Methods must be called\n on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
15771#[repr(C)]
15772#[derive(Debug, Copy, Clone)]
15773pub struct _cef_view_t {
15774    #[doc = "\n Base structure.\n"]
15775    pub base: cef_base_ref_counted_t,
15776    #[doc = "\n Returns this View as a BrowserView or NULL if this is not a BrowserView.\n"]
15777    pub as_browser_view: ::std::option::Option<
15778        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_browser_view_t,
15779    >,
15780    #[doc = "\n Returns this View as a Button or NULL if this is not a Button.\n"]
15781    pub as_button:
15782        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_button_t>,
15783    #[doc = "\n Returns this View as a Panel or NULL if this is not a Panel.\n"]
15784    pub as_panel:
15785        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_panel_t>,
15786    #[doc = "\n Returns this View as a ScrollView or NULL if this is not a ScrollView.\n"]
15787    pub as_scroll_view: ::std::option::Option<
15788        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_scroll_view_t,
15789    >,
15790    #[doc = "\n Returns this View as a Textfield or NULL if this is not a Textfield.\n"]
15791    pub as_textfield: ::std::option::Option<
15792        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_textfield_t,
15793    >,
15794    #[doc = "\n Returns the type of this View as a string. Used primarily for testing\n purposes.\n"]
15795    pub get_type_string: ::std::option::Option<
15796        unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_string_userfree_t,
15797    >,
15798    #[doc = "\n Returns a string representation of this View which includes the type and\n various type-specific identifying attributes. If |include_children| is\n true (1) any child Views will also be included. Used primarily for testing\n purposes.\n"]
15799    pub to_string: ::std::option::Option<
15800        unsafe extern "C" fn(
15801            self_: *mut _cef_view_t,
15802            include_children: ::std::os::raw::c_int,
15803        ) -> cef_string_userfree_t,
15804    >,
15805    #[doc = "\n Returns true (1) if this View is valid.\n"]
15806    pub is_valid: ::std::option::Option<
15807        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15808    >,
15809    #[doc = "\n Returns true (1) if this View is currently attached to another View. A\n View can only be attached to one View at a time.\n"]
15810    pub is_attached: ::std::option::Option<
15811        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15812    >,
15813    #[doc = "\n Returns true (1) if this View is the same as |that| View.\n"]
15814    pub is_same: ::std::option::Option<
15815        unsafe extern "C" fn(
15816            self_: *mut _cef_view_t,
15817            that: *mut _cef_view_t,
15818        ) -> ::std::os::raw::c_int,
15819    >,
15820    #[doc = "\n Returns the delegate associated with this View, if any.\n"]
15821    pub get_delegate: ::std::option::Option<
15822        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_view_delegate_t,
15823    >,
15824    #[doc = "\n Returns the top-level Window hosting this View, if any.\n"]
15825    pub get_window:
15826        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_window_t>,
15827    #[doc = "\n Returns the ID for this View.\n"]
15828    pub get_id: ::std::option::Option<
15829        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15830    >,
15831    #[doc = "\n Sets the ID for this View. ID should be unique within the subtree that you\n intend to search for it. 0 is the default ID for views.\n"]
15832    pub set_id: ::std::option::Option<
15833        unsafe extern "C" fn(self_: *mut _cef_view_t, id: ::std::os::raw::c_int),
15834    >,
15835    #[doc = "\n Returns the group id of this View, or -1 if not set.\n"]
15836    pub get_group_id: ::std::option::Option<
15837        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15838    >,
15839    #[doc = "\n A group id is used to tag Views which are part of the same logical group.\n Focus can be moved between views with the same group using the arrow keys.\n The group id is immutable once it's set.\n"]
15840    pub set_group_id: ::std::option::Option<
15841        unsafe extern "C" fn(self_: *mut _cef_view_t, group_id: ::std::os::raw::c_int),
15842    >,
15843    #[doc = "\n Returns the View that contains this View, if any.\n"]
15844    pub get_parent_view:
15845        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_view_t>,
15846    #[doc = "\n Recursively descends the view tree starting at this View, and returns the\n first child that it encounters with the given ID. Returns NULL if no\n matching child view is found.\n"]
15847    pub get_view_for_id: ::std::option::Option<
15848        unsafe extern "C" fn(
15849            self_: *mut _cef_view_t,
15850            id: ::std::os::raw::c_int,
15851        ) -> *mut _cef_view_t,
15852    >,
15853    #[doc = "\n Sets the bounds (size and position) of this View. |bounds| is in parent\n coordinates, or DIP screen coordinates if there is no parent.\n"]
15854    pub set_bounds: ::std::option::Option<
15855        unsafe extern "C" fn(self_: *mut _cef_view_t, bounds: *const cef_rect_t),
15856    >,
15857    #[doc = "\n Returns the bounds (size and position) of this View in parent coordinates,\n or DIP screen coordinates if there is no parent.\n"]
15858    pub get_bounds:
15859        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_rect_t>,
15860    #[doc = "\n Returns the bounds (size and position) of this View in DIP screen\n coordinates.\n"]
15861    pub get_bounds_in_screen:
15862        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_rect_t>,
15863    #[doc = "\n Sets the size of this View without changing the position. |size| in parent\n coordinates, or DIP screen coordinates if there is no parent.\n"]
15864    pub set_size: ::std::option::Option<
15865        unsafe extern "C" fn(self_: *mut _cef_view_t, size: *const cef_size_t),
15866    >,
15867    #[doc = "\n Returns the size of this View in parent coordinates, or DIP screen\n coordinates if there is no parent.\n"]
15868    pub get_size:
15869        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
15870    #[doc = "\n Sets the position of this View without changing the size. |position| is in\n parent coordinates, or DIP screen coordinates if there is no parent.\n"]
15871    pub set_position: ::std::option::Option<
15872        unsafe extern "C" fn(self_: *mut _cef_view_t, position: *const cef_point_t),
15873    >,
15874    #[doc = "\n Returns the position of this View. Position is in parent coordinates, or\n DIP screen coordinates if there is no parent.\n"]
15875    pub get_position:
15876        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_point_t>,
15877    #[doc = "\n Sets the insets for this View. |insets| is in parent coordinates, or DIP\n screen coordinates if there is no parent.\n"]
15878    pub set_insets: ::std::option::Option<
15879        unsafe extern "C" fn(self_: *mut _cef_view_t, insets: *const cef_insets_t),
15880    >,
15881    #[doc = "\n Returns the insets for this View in parent coordinates, or DIP screen\n coordinates if there is no parent.\n"]
15882    pub get_insets:
15883        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_insets_t>,
15884    #[doc = "\n Returns the size this View would like to be if enough space is available.\n Size is in parent coordinates, or DIP screen coordinates if there is no\n parent.\n"]
15885    pub get_preferred_size:
15886        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
15887    #[doc = "\n Size this View to its preferred size. Size is in parent coordinates, or\n DIP screen coordinates if there is no parent.\n"]
15888    pub size_to_preferred_size:
15889        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
15890    #[doc = "\n Returns the minimum size for this View. Size is in parent coordinates, or\n DIP screen coordinates if there is no parent.\n"]
15891    pub get_minimum_size:
15892        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
15893    #[doc = "\n Returns the maximum size for this View. Size is in parent coordinates, or\n DIP screen coordinates if there is no parent.\n"]
15894    pub get_maximum_size:
15895        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
15896    #[doc = "\n Returns the height necessary to display this View with the provided width.\n"]
15897    pub get_height_for_width: ::std::option::Option<
15898        unsafe extern "C" fn(
15899            self_: *mut _cef_view_t,
15900            width: ::std::os::raw::c_int,
15901        ) -> ::std::os::raw::c_int,
15902    >,
15903    #[doc = "\n Indicate that this View and all parent Views require a re-layout. This\n ensures the next call to layout() will propagate to this View even if the\n bounds of parent Views do not change.\n"]
15904    pub invalidate_layout: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
15905    #[doc = "\n Sets whether this View is visible. Windows are hidden by default and other\n views are visible by default. This View and any parent views must be set\n as visible for this View to be drawn in a Window. If this View is set as\n hidden then it and any child views will not be drawn and, if any of those\n views currently have focus, then focus will also be cleared. Painting is\n scheduled as needed. If this View is a Window then calling this function\n is equivalent to calling the Window show() and hide() functions.\n"]
15906    pub set_visible: ::std::option::Option<
15907        unsafe extern "C" fn(self_: *mut _cef_view_t, visible: ::std::os::raw::c_int),
15908    >,
15909    #[doc = "\n Returns whether this View is visible. A view may be visible but still not\n drawn in a Window if any parent views are hidden. If this View is a Window\n then a return value of true (1) indicates that this Window is currently\n visible to the user on-screen. If this View is not a Window then call\n is_drawn() to determine whether this View and all parent views are visible\n and will be drawn.\n"]
15910    pub is_visible: ::std::option::Option<
15911        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15912    >,
15913    #[doc = "\n Returns whether this View is visible and drawn in a Window. A view is\n drawn if it and all parent views are visible. If this View is a Window\n then calling this function is equivalent to calling is_visible().\n Otherwise, to determine if the containing Window is visible to the user\n on-screen call is_visible() on the Window.\n"]
15914    pub is_drawn: ::std::option::Option<
15915        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15916    >,
15917    #[doc = "\n Set whether this View is enabled. A disabled View does not receive\n keyboard or mouse inputs. If |enabled| differs from the current value the\n View will be repainted. Also, clears focus if the focused View is\n disabled.\n"]
15918    pub set_enabled: ::std::option::Option<
15919        unsafe extern "C" fn(self_: *mut _cef_view_t, enabled: ::std::os::raw::c_int),
15920    >,
15921    #[doc = "\n Returns whether this View is enabled.\n"]
15922    pub is_enabled: ::std::option::Option<
15923        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15924    >,
15925    #[doc = "\n Sets whether this View is capable of taking focus. It will clear focus if\n the focused View is set to be non-focusable. This is false (0) by default\n so that a View used as a container does not get the focus.\n"]
15926    pub set_focusable: ::std::option::Option<
15927        unsafe extern "C" fn(self_: *mut _cef_view_t, focusable: ::std::os::raw::c_int),
15928    >,
15929    #[doc = "\n Returns true (1) if this View is focusable, enabled and drawn.\n"]
15930    pub is_focusable: ::std::option::Option<
15931        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15932    >,
15933    #[doc = "\n Return whether this View is focusable when the user requires full keyboard\n access, even though it may not be normally focusable.\n"]
15934    pub is_accessibility_focusable: ::std::option::Option<
15935        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15936    >,
15937    #[doc = "\n Returns true (1) if this View has focus in the context of the containing\n Window. Check both this function and cef_window_t::IsActive to determine\n global keyboard focus.\n"]
15938    pub has_focus: ::std::option::Option<
15939        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
15940    >,
15941    #[doc = "\n Request focus for this View in the context of the containing Window. If\n this View is focusable it will become the focused View. Any focus changes\n while a Window is not active may be applied after that Window next becomes\n active.\n"]
15942    pub request_focus: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
15943    #[doc = "\n Sets the background color for this View. The background color will be\n automatically reset when cef_view_delegate_t::OnThemeChanged is called.\n"]
15944    pub set_background_color:
15945        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t, color: cef_color_t)>,
15946    #[doc = "\n Returns the background color for this View. If the background color is\n unset then the current `GetThemeColor(CEF_ColorPrimaryBackground)` value\n will be returned. If this View belongs to an overlay (created with\n cef_window_t::AddOverlayView), and the background color is unset, then a\n value of transparent (0) will be returned.\n"]
15947    pub get_background_color:
15948        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_color_t>,
15949    #[doc = "\n Returns the current theme color associated with |color_id|, or the\n placeholder color (red) if unset. See cef_color_ids.h for standard ID\n values. Standard colors can be overridden and custom colors can be added\n using cef_window_t::SetThemeColor.\n"]
15950    pub get_theme_color: ::std::option::Option<
15951        unsafe extern "C" fn(
15952            self_: *mut _cef_view_t,
15953            color_id: ::std::os::raw::c_int,
15954        ) -> cef_color_t,
15955    >,
15956    #[doc = "\n Convert |point| from this View's coordinate system to DIP screen\n coordinates. This View must belong to a Window when calling this function.\n Returns true (1) if the conversion is successful or false (0) otherwise.\n Use cef_display_t::convert_point_to_pixels() after calling this function\n if further conversion to display-specific pixel coordinates is desired.\n"]
15957    pub convert_point_to_screen: ::std::option::Option<
15958        unsafe extern "C" fn(
15959            self_: *mut _cef_view_t,
15960            point: *mut cef_point_t,
15961        ) -> ::std::os::raw::c_int,
15962    >,
15963    #[doc = "\n Convert |point| to this View's coordinate system from DIP screen\n coordinates. This View must belong to a Window when calling this function.\n Returns true (1) if the conversion is successful or false (0) otherwise.\n Use cef_display_t::convert_point_from_pixels() before calling this\n function if conversion from display-specific pixel coordinates is\n necessary.\n"]
15964    pub convert_point_from_screen: ::std::option::Option<
15965        unsafe extern "C" fn(
15966            self_: *mut _cef_view_t,
15967            point: *mut cef_point_t,
15968        ) -> ::std::os::raw::c_int,
15969    >,
15970    #[doc = "\n Convert |point| from this View's coordinate system to that of the Window.\n This View must belong to a Window when calling this function. Returns true\n (1) if the conversion is successful or false (0) otherwise.\n"]
15971    pub convert_point_to_window: ::std::option::Option<
15972        unsafe extern "C" fn(
15973            self_: *mut _cef_view_t,
15974            point: *mut cef_point_t,
15975        ) -> ::std::os::raw::c_int,
15976    >,
15977    #[doc = "\n Convert |point| to this View's coordinate system from that of the Window.\n This View must belong to a Window when calling this function. Returns true\n (1) if the conversion is successful or false (0) otherwise.\n"]
15978    pub convert_point_from_window: ::std::option::Option<
15979        unsafe extern "C" fn(
15980            self_: *mut _cef_view_t,
15981            point: *mut cef_point_t,
15982        ) -> ::std::os::raw::c_int,
15983    >,
15984    #[doc = "\n Convert |point| from this View's coordinate system to that of |view|.\n |view| needs to be in the same Window but not necessarily the same view\n hierarchy. Returns true (1) if the conversion is successful or false (0)\n otherwise.\n"]
15985    pub convert_point_to_view: ::std::option::Option<
15986        unsafe extern "C" fn(
15987            self_: *mut _cef_view_t,
15988            view: *mut _cef_view_t,
15989            point: *mut cef_point_t,
15990        ) -> ::std::os::raw::c_int,
15991    >,
15992    #[doc = "\n Convert |point| to this View's coordinate system from that |view|. |view|\n needs to be in the same Window but not necessarily the same view\n hierarchy. Returns true (1) if the conversion is successful or false (0)\n otherwise.\n"]
15993    pub convert_point_from_view: ::std::option::Option<
15994        unsafe extern "C" fn(
15995            self_: *mut _cef_view_t,
15996            view: *mut _cef_view_t,
15997            point: *mut cef_point_t,
15998        ) -> ::std::os::raw::c_int,
15999    >,
16000}
16001#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16002const _: () = {
16003    ["Size of _cef_view_t"][::std::mem::size_of::<_cef_view_t>() - 456usize];
16004    ["Alignment of _cef_view_t"][::std::mem::align_of::<_cef_view_t>() - 8usize];
16005    ["Offset of field: _cef_view_t::base"][::std::mem::offset_of!(_cef_view_t, base) - 0usize];
16006    ["Offset of field: _cef_view_t::as_browser_view"]
16007        [::std::mem::offset_of!(_cef_view_t, as_browser_view) - 40usize];
16008    ["Offset of field: _cef_view_t::as_button"]
16009        [::std::mem::offset_of!(_cef_view_t, as_button) - 48usize];
16010    ["Offset of field: _cef_view_t::as_panel"]
16011        [::std::mem::offset_of!(_cef_view_t, as_panel) - 56usize];
16012    ["Offset of field: _cef_view_t::as_scroll_view"]
16013        [::std::mem::offset_of!(_cef_view_t, as_scroll_view) - 64usize];
16014    ["Offset of field: _cef_view_t::as_textfield"]
16015        [::std::mem::offset_of!(_cef_view_t, as_textfield) - 72usize];
16016    ["Offset of field: _cef_view_t::get_type_string"]
16017        [::std::mem::offset_of!(_cef_view_t, get_type_string) - 80usize];
16018    ["Offset of field: _cef_view_t::to_string"]
16019        [::std::mem::offset_of!(_cef_view_t, to_string) - 88usize];
16020    ["Offset of field: _cef_view_t::is_valid"]
16021        [::std::mem::offset_of!(_cef_view_t, is_valid) - 96usize];
16022    ["Offset of field: _cef_view_t::is_attached"]
16023        [::std::mem::offset_of!(_cef_view_t, is_attached) - 104usize];
16024    ["Offset of field: _cef_view_t::is_same"]
16025        [::std::mem::offset_of!(_cef_view_t, is_same) - 112usize];
16026    ["Offset of field: _cef_view_t::get_delegate"]
16027        [::std::mem::offset_of!(_cef_view_t, get_delegate) - 120usize];
16028    ["Offset of field: _cef_view_t::get_window"]
16029        [::std::mem::offset_of!(_cef_view_t, get_window) - 128usize];
16030    ["Offset of field: _cef_view_t::get_id"]
16031        [::std::mem::offset_of!(_cef_view_t, get_id) - 136usize];
16032    ["Offset of field: _cef_view_t::set_id"]
16033        [::std::mem::offset_of!(_cef_view_t, set_id) - 144usize];
16034    ["Offset of field: _cef_view_t::get_group_id"]
16035        [::std::mem::offset_of!(_cef_view_t, get_group_id) - 152usize];
16036    ["Offset of field: _cef_view_t::set_group_id"]
16037        [::std::mem::offset_of!(_cef_view_t, set_group_id) - 160usize];
16038    ["Offset of field: _cef_view_t::get_parent_view"]
16039        [::std::mem::offset_of!(_cef_view_t, get_parent_view) - 168usize];
16040    ["Offset of field: _cef_view_t::get_view_for_id"]
16041        [::std::mem::offset_of!(_cef_view_t, get_view_for_id) - 176usize];
16042    ["Offset of field: _cef_view_t::set_bounds"]
16043        [::std::mem::offset_of!(_cef_view_t, set_bounds) - 184usize];
16044    ["Offset of field: _cef_view_t::get_bounds"]
16045        [::std::mem::offset_of!(_cef_view_t, get_bounds) - 192usize];
16046    ["Offset of field: _cef_view_t::get_bounds_in_screen"]
16047        [::std::mem::offset_of!(_cef_view_t, get_bounds_in_screen) - 200usize];
16048    ["Offset of field: _cef_view_t::set_size"]
16049        [::std::mem::offset_of!(_cef_view_t, set_size) - 208usize];
16050    ["Offset of field: _cef_view_t::get_size"]
16051        [::std::mem::offset_of!(_cef_view_t, get_size) - 216usize];
16052    ["Offset of field: _cef_view_t::set_position"]
16053        [::std::mem::offset_of!(_cef_view_t, set_position) - 224usize];
16054    ["Offset of field: _cef_view_t::get_position"]
16055        [::std::mem::offset_of!(_cef_view_t, get_position) - 232usize];
16056    ["Offset of field: _cef_view_t::set_insets"]
16057        [::std::mem::offset_of!(_cef_view_t, set_insets) - 240usize];
16058    ["Offset of field: _cef_view_t::get_insets"]
16059        [::std::mem::offset_of!(_cef_view_t, get_insets) - 248usize];
16060    ["Offset of field: _cef_view_t::get_preferred_size"]
16061        [::std::mem::offset_of!(_cef_view_t, get_preferred_size) - 256usize];
16062    ["Offset of field: _cef_view_t::size_to_preferred_size"]
16063        [::std::mem::offset_of!(_cef_view_t, size_to_preferred_size) - 264usize];
16064    ["Offset of field: _cef_view_t::get_minimum_size"]
16065        [::std::mem::offset_of!(_cef_view_t, get_minimum_size) - 272usize];
16066    ["Offset of field: _cef_view_t::get_maximum_size"]
16067        [::std::mem::offset_of!(_cef_view_t, get_maximum_size) - 280usize];
16068    ["Offset of field: _cef_view_t::get_height_for_width"]
16069        [::std::mem::offset_of!(_cef_view_t, get_height_for_width) - 288usize];
16070    ["Offset of field: _cef_view_t::invalidate_layout"]
16071        [::std::mem::offset_of!(_cef_view_t, invalidate_layout) - 296usize];
16072    ["Offset of field: _cef_view_t::set_visible"]
16073        [::std::mem::offset_of!(_cef_view_t, set_visible) - 304usize];
16074    ["Offset of field: _cef_view_t::is_visible"]
16075        [::std::mem::offset_of!(_cef_view_t, is_visible) - 312usize];
16076    ["Offset of field: _cef_view_t::is_drawn"]
16077        [::std::mem::offset_of!(_cef_view_t, is_drawn) - 320usize];
16078    ["Offset of field: _cef_view_t::set_enabled"]
16079        [::std::mem::offset_of!(_cef_view_t, set_enabled) - 328usize];
16080    ["Offset of field: _cef_view_t::is_enabled"]
16081        [::std::mem::offset_of!(_cef_view_t, is_enabled) - 336usize];
16082    ["Offset of field: _cef_view_t::set_focusable"]
16083        [::std::mem::offset_of!(_cef_view_t, set_focusable) - 344usize];
16084    ["Offset of field: _cef_view_t::is_focusable"]
16085        [::std::mem::offset_of!(_cef_view_t, is_focusable) - 352usize];
16086    ["Offset of field: _cef_view_t::is_accessibility_focusable"]
16087        [::std::mem::offset_of!(_cef_view_t, is_accessibility_focusable) - 360usize];
16088    ["Offset of field: _cef_view_t::has_focus"]
16089        [::std::mem::offset_of!(_cef_view_t, has_focus) - 368usize];
16090    ["Offset of field: _cef_view_t::request_focus"]
16091        [::std::mem::offset_of!(_cef_view_t, request_focus) - 376usize];
16092    ["Offset of field: _cef_view_t::set_background_color"]
16093        [::std::mem::offset_of!(_cef_view_t, set_background_color) - 384usize];
16094    ["Offset of field: _cef_view_t::get_background_color"]
16095        [::std::mem::offset_of!(_cef_view_t, get_background_color) - 392usize];
16096    ["Offset of field: _cef_view_t::get_theme_color"]
16097        [::std::mem::offset_of!(_cef_view_t, get_theme_color) - 400usize];
16098    ["Offset of field: _cef_view_t::convert_point_to_screen"]
16099        [::std::mem::offset_of!(_cef_view_t, convert_point_to_screen) - 408usize];
16100    ["Offset of field: _cef_view_t::convert_point_from_screen"]
16101        [::std::mem::offset_of!(_cef_view_t, convert_point_from_screen) - 416usize];
16102    ["Offset of field: _cef_view_t::convert_point_to_window"]
16103        [::std::mem::offset_of!(_cef_view_t, convert_point_to_window) - 424usize];
16104    ["Offset of field: _cef_view_t::convert_point_from_window"]
16105        [::std::mem::offset_of!(_cef_view_t, convert_point_from_window) - 432usize];
16106    ["Offset of field: _cef_view_t::convert_point_to_view"]
16107        [::std::mem::offset_of!(_cef_view_t, convert_point_to_view) - 440usize];
16108    ["Offset of field: _cef_view_t::convert_point_from_view"]
16109        [::std::mem::offset_of!(_cef_view_t, convert_point_from_view) - 448usize];
16110};
16111#[doc = "\n A View is a rectangle within the views View hierarchy. It is the base\n structure for all Views. All size and position values are in density\n independent pixels (DIP) unless otherwise indicated. Methods must be called\n on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16112pub type cef_view_t = _cef_view_t;
16113#[doc = "\n A View hosting a cef_browser_t instance. Methods must be called on the\n browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16114#[repr(C)]
16115#[derive(Debug, Copy, Clone)]
16116pub struct _cef_browser_view_t {
16117    #[doc = "\n Base structure.\n"]
16118    pub base: cef_view_t,
16119    #[doc = "\n Returns the cef_browser_t hosted by this BrowserView. Will return NULL if\n the browser has not yet been created or has already been destroyed.\n"]
16120    pub get_browser: ::std::option::Option<
16121        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> *mut _cef_browser_t,
16122    >,
16123    #[doc = "\n Returns the Chrome toolbar associated with this BrowserView. Only\n supported when using Chrome style. The cef_browser_view_delegate_t::\n get_chrome_toolbar_type() function must return a value other than\n CEF_CTT_NONE and the toolbar will not be available until after this\n BrowserView is added to a cef_window_t and\n cef_view_delegate_t::on_window_changed() has been called.\n"]
16124    pub get_chrome_toolbar: ::std::option::Option<
16125        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> *mut _cef_view_t,
16126    >,
16127    #[doc = "\n Sets whether normal priority accelerators are first forwarded to the web\n content (`keydown` event handler) or cef_keyboard_handler_t. Normal\n priority accelerators can be registered via cef_window_t::SetAccelerator\n (with |high_priority|=false (0)) or internally for standard accelerators\n supported by Chrome style. If |prefer_accelerators| is true (1) then the\n matching accelerator will be triggered immediately (calling\n cef_window_delegate_t::OnAccelerator or\n cef_command_handler_t::OnChromeCommand respectively) and the event will\n not be forwarded to the web content or cef_keyboard_handler_t first. If\n |prefer_accelerators| is false (0) then the matching accelerator will only\n be triggered if the event is not handled by web content (`keydown` event\n handler that calls `event.preventDefault()`) or by cef_keyboard_handler_t.\n The default value is false (0).\n"]
16128    pub set_prefer_accelerators: ::std::option::Option<
16129        unsafe extern "C" fn(
16130            self_: *mut _cef_browser_view_t,
16131            prefer_accelerators: ::std::os::raw::c_int,
16132        ),
16133    >,
16134    #[doc = "\n Returns the runtime style for this BrowserView (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
16135    pub get_runtime_style: ::std::option::Option<
16136        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> cef_runtime_style_t,
16137    >,
16138}
16139#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16140const _: () = {
16141    ["Size of _cef_browser_view_t"][::std::mem::size_of::<_cef_browser_view_t>() - 488usize];
16142    ["Alignment of _cef_browser_view_t"][::std::mem::align_of::<_cef_browser_view_t>() - 8usize];
16143    ["Offset of field: _cef_browser_view_t::base"]
16144        [::std::mem::offset_of!(_cef_browser_view_t, base) - 0usize];
16145    ["Offset of field: _cef_browser_view_t::get_browser"]
16146        [::std::mem::offset_of!(_cef_browser_view_t, get_browser) - 456usize];
16147    ["Offset of field: _cef_browser_view_t::get_chrome_toolbar"]
16148        [::std::mem::offset_of!(_cef_browser_view_t, get_chrome_toolbar) - 464usize];
16149    ["Offset of field: _cef_browser_view_t::set_prefer_accelerators"]
16150        [::std::mem::offset_of!(_cef_browser_view_t, set_prefer_accelerators) - 472usize];
16151    ["Offset of field: _cef_browser_view_t::get_runtime_style"]
16152        [::std::mem::offset_of!(_cef_browser_view_t, get_runtime_style) - 480usize];
16153};
16154#[doc = "\n A View hosting a cef_browser_t instance. Methods must be called on the\n browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16155pub type cef_browser_view_t = _cef_browser_view_t;
16156unsafe extern "C" {
16157    #[doc = "\n Create a new BrowserView. The underlying cef_browser_t will not be created\n until this view is added to the views hierarchy. The optional |extra_info|\n parameter provides an opportunity to specify extra information specific to\n the created browser that will be passed to\n cef_render_process_handler_t::on_browser_created() in the render process.\n"]
16158    pub fn cef_browser_view_create(
16159        client: *mut _cef_client_t,
16160        url: *const cef_string_t,
16161        settings: *const _cef_browser_settings_t,
16162        extra_info: *mut _cef_dictionary_value_t,
16163        request_context: *mut _cef_request_context_t,
16164        delegate: *mut _cef_browser_view_delegate_t,
16165    ) -> *mut cef_browser_view_t;
16166}
16167unsafe extern "C" {
16168    #[doc = "\n Returns the BrowserView associated with |browser|.\n"]
16169    pub fn cef_browser_view_get_for_browser(
16170        browser: *mut _cef_browser_t,
16171    ) -> *mut cef_browser_view_t;
16172}
16173#[doc = "\n A View representing a button. Depending on the specific type, the button\n could be implemented by a native control or custom rendered. Methods must be\n called on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16174#[repr(C)]
16175#[derive(Debug, Copy, Clone)]
16176pub struct _cef_button_t {
16177    #[doc = "\n Base structure.\n"]
16178    pub base: cef_view_t,
16179    #[doc = "\n Returns this Button as a LabelButton or NULL if this is not a LabelButton.\n"]
16180    pub as_label_button: ::std::option::Option<
16181        unsafe extern "C" fn(self_: *mut _cef_button_t) -> *mut _cef_label_button_t,
16182    >,
16183    #[doc = "\n Sets the current display state of the Button.\n"]
16184    pub set_state: ::std::option::Option<
16185        unsafe extern "C" fn(self_: *mut _cef_button_t, state: cef_button_state_t),
16186    >,
16187    #[doc = "\n Returns the current display state of the Button.\n"]
16188    pub get_state: ::std::option::Option<
16189        unsafe extern "C" fn(self_: *mut _cef_button_t) -> cef_button_state_t,
16190    >,
16191    #[doc = "\n Sets the Button will use an ink drop effect for displaying state changes.\n"]
16192    pub set_ink_drop_enabled: ::std::option::Option<
16193        unsafe extern "C" fn(self_: *mut _cef_button_t, enabled: ::std::os::raw::c_int),
16194    >,
16195    #[doc = "\n Sets the tooltip text that will be displayed when the user hovers the\n mouse cursor over the Button.\n"]
16196    pub set_tooltip_text: ::std::option::Option<
16197        unsafe extern "C" fn(self_: *mut _cef_button_t, tooltip_text: *const cef_string_t),
16198    >,
16199    #[doc = "\n Sets the accessible name that will be exposed to assistive technology\n (AT).\n"]
16200    pub set_accessible_name: ::std::option::Option<
16201        unsafe extern "C" fn(self_: *mut _cef_button_t, name: *const cef_string_t),
16202    >,
16203}
16204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16205const _: () = {
16206    ["Size of _cef_button_t"][::std::mem::size_of::<_cef_button_t>() - 504usize];
16207    ["Alignment of _cef_button_t"][::std::mem::align_of::<_cef_button_t>() - 8usize];
16208    ["Offset of field: _cef_button_t::base"][::std::mem::offset_of!(_cef_button_t, base) - 0usize];
16209    ["Offset of field: _cef_button_t::as_label_button"]
16210        [::std::mem::offset_of!(_cef_button_t, as_label_button) - 456usize];
16211    ["Offset of field: _cef_button_t::set_state"]
16212        [::std::mem::offset_of!(_cef_button_t, set_state) - 464usize];
16213    ["Offset of field: _cef_button_t::get_state"]
16214        [::std::mem::offset_of!(_cef_button_t, get_state) - 472usize];
16215    ["Offset of field: _cef_button_t::set_ink_drop_enabled"]
16216        [::std::mem::offset_of!(_cef_button_t, set_ink_drop_enabled) - 480usize];
16217    ["Offset of field: _cef_button_t::set_tooltip_text"]
16218        [::std::mem::offset_of!(_cef_button_t, set_tooltip_text) - 488usize];
16219    ["Offset of field: _cef_button_t::set_accessible_name"]
16220        [::std::mem::offset_of!(_cef_button_t, set_accessible_name) - 496usize];
16221};
16222#[doc = "\n A View representing a button. Depending on the specific type, the button\n could be implemented by a native control or custom rendered. Methods must be\n called on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16223pub type cef_button_t = _cef_button_t;
16224#[doc = "\n Implement this structure to handle Button events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16225#[repr(C)]
16226#[derive(Debug, Copy, Clone)]
16227pub struct _cef_button_delegate_t {
16228    #[doc = "\n Base structure.\n"]
16229    pub base: cef_view_delegate_t,
16230    #[doc = "\n Called when |button| is pressed.\n"]
16231    pub on_button_pressed: ::std::option::Option<
16232        unsafe extern "C" fn(self_: *mut _cef_button_delegate_t, button: *mut _cef_button_t),
16233    >,
16234    #[doc = "\n Called when the state of |button| changes.\n"]
16235    pub on_button_state_changed: ::std::option::Option<
16236        unsafe extern "C" fn(self_: *mut _cef_button_delegate_t, button: *mut _cef_button_t),
16237    >,
16238}
16239#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16240const _: () = {
16241    ["Size of _cef_button_delegate_t"][::std::mem::size_of::<_cef_button_delegate_t>() - 144usize];
16242    ["Alignment of _cef_button_delegate_t"]
16243        [::std::mem::align_of::<_cef_button_delegate_t>() - 8usize];
16244    ["Offset of field: _cef_button_delegate_t::base"]
16245        [::std::mem::offset_of!(_cef_button_delegate_t, base) - 0usize];
16246    ["Offset of field: _cef_button_delegate_t::on_button_pressed"]
16247        [::std::mem::offset_of!(_cef_button_delegate_t, on_button_pressed) - 128usize];
16248    ["Offset of field: _cef_button_delegate_t::on_button_state_changed"]
16249        [::std::mem::offset_of!(_cef_button_delegate_t, on_button_state_changed) - 136usize];
16250};
16251#[doc = "\n Implement this structure to handle Button events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16252pub type cef_button_delegate_t = _cef_button_delegate_t;
16253#[doc = "\n This structure typically, but not always, corresponds to a physical display\n connected to the system. A fake Display may exist on a headless system, or a\n Display may correspond to a remote, virtual display. All size and position\n values are in density independent pixel (DIP) coordinates unless otherwise\n indicated. Methods must be called on the browser process UI thread unless\n otherwise indicated.\n\n For details on coordinate systems and usage see\n https://chromiumembedded.github.io/cef/general_usage#coordinate-systems\n\n NOTE: This struct is allocated DLL-side.\n"]
16254#[repr(C)]
16255#[derive(Debug, Copy, Clone)]
16256pub struct _cef_display_t {
16257    #[doc = "\n Base structure.\n"]
16258    pub base: cef_base_ref_counted_t,
16259    #[doc = "\n Returns the unique identifier for this Display.\n"]
16260    pub get_id: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> i64>,
16261    #[doc = "\n Returns this Display's device pixel scale factor. This specifies how much\n the UI should be scaled when the actual output has more pixels than\n standard displays (which is around 100~120dpi). The potential return\n values differ by platform. Windowed browsers with 1.0 zoom will have a\n JavaScript `window.devicePixelRatio` value matching the associated\n Display's get_device_scale_factor() value.\n"]
16262    pub get_device_scale_factor:
16263        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> f32>,
16264    #[doc = "\n Convert |point| from DIP coordinates to pixel coordinates using this\n Display's device scale factor.\n"]
16265    pub convert_point_to_pixels: ::std::option::Option<
16266        unsafe extern "C" fn(self_: *mut _cef_display_t, point: *mut cef_point_t),
16267    >,
16268    #[doc = "\n Convert |point| from pixel coordinates to DIP coordinates using this\n Display's device scale factor.\n"]
16269    pub convert_point_from_pixels: ::std::option::Option<
16270        unsafe extern "C" fn(self_: *mut _cef_display_t, point: *mut cef_point_t),
16271    >,
16272    #[doc = "\n Returns this Display's bounds in DIP screen coordinates. This is the full\n size of the display.\n"]
16273    pub get_bounds:
16274        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> cef_rect_t>,
16275    #[doc = "\n Returns this Display's work area in DIP screen coordinates. This excludes\n areas of the display that are occupied with window manager toolbars, etc.\n"]
16276    pub get_work_area:
16277        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> cef_rect_t>,
16278    #[doc = "\n Returns this Display's rotation in degrees.\n"]
16279    pub get_rotation: ::std::option::Option<
16280        unsafe extern "C" fn(self_: *mut _cef_display_t) -> ::std::os::raw::c_int,
16281    >,
16282}
16283#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16284const _: () = {
16285    ["Size of _cef_display_t"][::std::mem::size_of::<_cef_display_t>() - 96usize];
16286    ["Alignment of _cef_display_t"][::std::mem::align_of::<_cef_display_t>() - 8usize];
16287    ["Offset of field: _cef_display_t::base"]
16288        [::std::mem::offset_of!(_cef_display_t, base) - 0usize];
16289    ["Offset of field: _cef_display_t::get_id"]
16290        [::std::mem::offset_of!(_cef_display_t, get_id) - 40usize];
16291    ["Offset of field: _cef_display_t::get_device_scale_factor"]
16292        [::std::mem::offset_of!(_cef_display_t, get_device_scale_factor) - 48usize];
16293    ["Offset of field: _cef_display_t::convert_point_to_pixels"]
16294        [::std::mem::offset_of!(_cef_display_t, convert_point_to_pixels) - 56usize];
16295    ["Offset of field: _cef_display_t::convert_point_from_pixels"]
16296        [::std::mem::offset_of!(_cef_display_t, convert_point_from_pixels) - 64usize];
16297    ["Offset of field: _cef_display_t::get_bounds"]
16298        [::std::mem::offset_of!(_cef_display_t, get_bounds) - 72usize];
16299    ["Offset of field: _cef_display_t::get_work_area"]
16300        [::std::mem::offset_of!(_cef_display_t, get_work_area) - 80usize];
16301    ["Offset of field: _cef_display_t::get_rotation"]
16302        [::std::mem::offset_of!(_cef_display_t, get_rotation) - 88usize];
16303};
16304#[doc = "\n This structure typically, but not always, corresponds to a physical display\n connected to the system. A fake Display may exist on a headless system, or a\n Display may correspond to a remote, virtual display. All size and position\n values are in density independent pixel (DIP) coordinates unless otherwise\n indicated. Methods must be called on the browser process UI thread unless\n otherwise indicated.\n\n For details on coordinate systems and usage see\n https://chromiumembedded.github.io/cef/general_usage#coordinate-systems\n\n NOTE: This struct is allocated DLL-side.\n"]
16305pub type cef_display_t = _cef_display_t;
16306unsafe extern "C" {
16307    #[doc = "\n Returns the primary Display.\n"]
16308    pub fn cef_display_get_primary() -> *mut cef_display_t;
16309}
16310unsafe extern "C" {
16311    #[doc = "\n Returns the Display nearest |point|. Set |input_pixel_coords| to true (1) if\n |point| is in pixel screen coordinates instead of DIP screen coordinates.\n"]
16312    pub fn cef_display_get_nearest_point(
16313        point: *const cef_point_t,
16314        input_pixel_coords: ::std::os::raw::c_int,
16315    ) -> *mut cef_display_t;
16316}
16317unsafe extern "C" {
16318    #[doc = "\n Returns the Display that most closely intersects |bounds|.  Set\n |input_pixel_coords| to true (1) if |bounds| is in pixel screen coordinates\n instead of DIP screen coordinates.\n"]
16319    pub fn cef_display_get_matching_bounds(
16320        bounds: *const cef_rect_t,
16321        input_pixel_coords: ::std::os::raw::c_int,
16322    ) -> *mut cef_display_t;
16323}
16324unsafe extern "C" {
16325    #[doc = "\n Returns the total number of Displays. Mirrored displays are excluded; this\n function is intended to return the number of distinct, usable displays.\n"]
16326    pub fn cef_display_get_count() -> usize;
16327}
16328unsafe extern "C" {
16329    #[doc = "\n Returns all Displays. Mirrored displays are excluded; this function is\n intended to return distinct, usable displays.\n"]
16330    pub fn cef_display_get_alls(displaysCount: *mut usize, displays: *mut *mut cef_display_t);
16331}
16332unsafe extern "C" {
16333    #[doc = "\n Convert |point| from DIP screen coordinates to pixel screen coordinates.\n This function is only used on Windows.\n"]
16334    pub fn cef_display_convert_screen_point_to_pixels(point: *const cef_point_t) -> cef_point_t;
16335}
16336unsafe extern "C" {
16337    #[doc = "\n Convert |point| from pixel screen coordinates to DIP screen coordinates.\n This function is only used on Windows.\n"]
16338    pub fn cef_display_convert_screen_point_from_pixels(point: *const cef_point_t) -> cef_point_t;
16339}
16340unsafe extern "C" {
16341    #[doc = "\n Convert |rect| from DIP screen coordinates to pixel screen coordinates. This\n function is only used on Windows.\n"]
16342    pub fn cef_display_convert_screen_rect_to_pixels(rect: *const cef_rect_t) -> cef_rect_t;
16343}
16344unsafe extern "C" {
16345    #[doc = "\n Convert |rect| from pixel screen coordinates to DIP screen coordinates. This\n function is only used on Windows.\n"]
16346    pub fn cef_display_convert_screen_rect_from_pixels(rect: *const cef_rect_t) -> cef_rect_t;
16347}
16348#[doc = "\n A simple Layout that causes the associated Panel's one child to be sized to\n match the bounds of its parent. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16349#[repr(C)]
16350#[derive(Debug, Copy, Clone)]
16351pub struct _cef_fill_layout_t {
16352    #[doc = "\n Base structure.\n"]
16353    pub base: cef_layout_t,
16354}
16355#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16356const _: () = {
16357    ["Size of _cef_fill_layout_t"][::std::mem::size_of::<_cef_fill_layout_t>() - 64usize];
16358    ["Alignment of _cef_fill_layout_t"][::std::mem::align_of::<_cef_fill_layout_t>() - 8usize];
16359    ["Offset of field: _cef_fill_layout_t::base"]
16360        [::std::mem::offset_of!(_cef_fill_layout_t, base) - 0usize];
16361};
16362#[doc = "\n A simple Layout that causes the associated Panel's one child to be sized to\n match the bounds of its parent. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16363pub type cef_fill_layout_t = _cef_fill_layout_t;
16364#[doc = "\n LabelButton is a button with optional text and/or icon. Methods must be\n called on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16365#[repr(C)]
16366#[derive(Debug, Copy, Clone)]
16367pub struct _cef_label_button_t {
16368    #[doc = "\n Base structure.\n"]
16369    pub base: cef_button_t,
16370    #[doc = "\n Returns this LabelButton as a MenuButton or NULL if this is not a\n MenuButton.\n"]
16371    pub as_menu_button: ::std::option::Option<
16372        unsafe extern "C" fn(self_: *mut _cef_label_button_t) -> *mut _cef_menu_button_t,
16373    >,
16374    #[doc = "\n Sets the text shown on the LabelButton. By default |text| will also be\n used as the accessible name.\n"]
16375    pub set_text: ::std::option::Option<
16376        unsafe extern "C" fn(self_: *mut _cef_label_button_t, text: *const cef_string_t),
16377    >,
16378    #[doc = "\n Returns the text shown on the LabelButton.\n"]
16379    pub get_text: ::std::option::Option<
16380        unsafe extern "C" fn(self_: *mut _cef_label_button_t) -> cef_string_userfree_t,
16381    >,
16382    #[doc = "\n Sets the image shown for |button_state|. When this Button is drawn if no\n image exists for the current state then the image for\n CEF_BUTTON_STATE_NORMAL, if any, will be shown.\n"]
16383    pub set_image: ::std::option::Option<
16384        unsafe extern "C" fn(
16385            self_: *mut _cef_label_button_t,
16386            button_state: cef_button_state_t,
16387            image: *mut _cef_image_t,
16388        ),
16389    >,
16390    #[doc = "\n Returns the image shown for |button_state|. If no image exists for that\n state then the image for CEF_BUTTON_STATE_NORMAL will be returned.\n"]
16391    pub get_image: ::std::option::Option<
16392        unsafe extern "C" fn(
16393            self_: *mut _cef_label_button_t,
16394            button_state: cef_button_state_t,
16395        ) -> *mut _cef_image_t,
16396    >,
16397    #[doc = "\n Sets the text color shown for the specified button |for_state| to |color|.\n"]
16398    pub set_text_color: ::std::option::Option<
16399        unsafe extern "C" fn(
16400            self_: *mut _cef_label_button_t,
16401            for_state: cef_button_state_t,
16402            color: cef_color_t,
16403        ),
16404    >,
16405    #[doc = "\n Sets the text colors shown for the non-disabled states to |color|.\n"]
16406    pub set_enabled_text_colors: ::std::option::Option<
16407        unsafe extern "C" fn(self_: *mut _cef_label_button_t, color: cef_color_t),
16408    >,
16409    #[doc = "\n Sets the font list. The format is \"<FONT_FAMILY_LIST>,[STYLES] <SIZE>\",\n where:\n - FONT_FAMILY_LIST is a comma-separated list of font family names,\n - STYLES is an optional space-separated list of style names (case-\n   sensitive \"Bold\" and \"Italic\" are supported), and\n - SIZE is an integer font size in pixels with the suffix \"px\".\n\n Here are examples of valid font description strings:\n - \"Arial, Helvetica, Bold Italic 14px\"\n - \"Arial, 14px\"\n"]
16410    pub set_font_list: ::std::option::Option<
16411        unsafe extern "C" fn(self_: *mut _cef_label_button_t, font_list: *const cef_string_t),
16412    >,
16413    #[doc = "\n Sets the horizontal alignment; reversed in RTL. Default is\n CEF_HORIZONTAL_ALIGNMENT_CENTER.\n"]
16414    pub set_horizontal_alignment: ::std::option::Option<
16415        unsafe extern "C" fn(
16416            self_: *mut _cef_label_button_t,
16417            alignment: cef_horizontal_alignment_t,
16418        ),
16419    >,
16420    #[doc = "\n Reset the minimum size of this LabelButton to |size|.\n"]
16421    pub set_minimum_size: ::std::option::Option<
16422        unsafe extern "C" fn(self_: *mut _cef_label_button_t, size: *const cef_size_t),
16423    >,
16424    #[doc = "\n Reset the maximum size of this LabelButton to |size|.\n"]
16425    pub set_maximum_size: ::std::option::Option<
16426        unsafe extern "C" fn(self_: *mut _cef_label_button_t, size: *const cef_size_t),
16427    >,
16428}
16429#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16430const _: () = {
16431    ["Size of _cef_label_button_t"][::std::mem::size_of::<_cef_label_button_t>() - 592usize];
16432    ["Alignment of _cef_label_button_t"][::std::mem::align_of::<_cef_label_button_t>() - 8usize];
16433    ["Offset of field: _cef_label_button_t::base"]
16434        [::std::mem::offset_of!(_cef_label_button_t, base) - 0usize];
16435    ["Offset of field: _cef_label_button_t::as_menu_button"]
16436        [::std::mem::offset_of!(_cef_label_button_t, as_menu_button) - 504usize];
16437    ["Offset of field: _cef_label_button_t::set_text"]
16438        [::std::mem::offset_of!(_cef_label_button_t, set_text) - 512usize];
16439    ["Offset of field: _cef_label_button_t::get_text"]
16440        [::std::mem::offset_of!(_cef_label_button_t, get_text) - 520usize];
16441    ["Offset of field: _cef_label_button_t::set_image"]
16442        [::std::mem::offset_of!(_cef_label_button_t, set_image) - 528usize];
16443    ["Offset of field: _cef_label_button_t::get_image"]
16444        [::std::mem::offset_of!(_cef_label_button_t, get_image) - 536usize];
16445    ["Offset of field: _cef_label_button_t::set_text_color"]
16446        [::std::mem::offset_of!(_cef_label_button_t, set_text_color) - 544usize];
16447    ["Offset of field: _cef_label_button_t::set_enabled_text_colors"]
16448        [::std::mem::offset_of!(_cef_label_button_t, set_enabled_text_colors) - 552usize];
16449    ["Offset of field: _cef_label_button_t::set_font_list"]
16450        [::std::mem::offset_of!(_cef_label_button_t, set_font_list) - 560usize];
16451    ["Offset of field: _cef_label_button_t::set_horizontal_alignment"]
16452        [::std::mem::offset_of!(_cef_label_button_t, set_horizontal_alignment) - 568usize];
16453    ["Offset of field: _cef_label_button_t::set_minimum_size"]
16454        [::std::mem::offset_of!(_cef_label_button_t, set_minimum_size) - 576usize];
16455    ["Offset of field: _cef_label_button_t::set_maximum_size"]
16456        [::std::mem::offset_of!(_cef_label_button_t, set_maximum_size) - 584usize];
16457};
16458#[doc = "\n LabelButton is a button with optional text and/or icon. Methods must be\n called on the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16459pub type cef_label_button_t = _cef_label_button_t;
16460unsafe extern "C" {
16461    #[doc = "\n Create a new LabelButton. A |delegate| must be provided to handle the button\n click. |text| will be shown on the LabelButton and used as the default\n accessible name.\n"]
16462    pub fn cef_label_button_create(
16463        delegate: *mut _cef_button_delegate_t,
16464        text: *const cef_string_t,
16465    ) -> *mut cef_label_button_t;
16466}
16467#[doc = "\n MenuButton pressed lock is released when this object is destroyed.\n\n NOTE: This struct is allocated DLL-side.\n"]
16468#[repr(C)]
16469#[derive(Debug, Copy, Clone)]
16470pub struct _cef_menu_button_pressed_lock_t {
16471    #[doc = "\n Base structure.\n"]
16472    pub base: cef_base_ref_counted_t,
16473}
16474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16475const _: () = {
16476    ["Size of _cef_menu_button_pressed_lock_t"]
16477        [::std::mem::size_of::<_cef_menu_button_pressed_lock_t>() - 40usize];
16478    ["Alignment of _cef_menu_button_pressed_lock_t"]
16479        [::std::mem::align_of::<_cef_menu_button_pressed_lock_t>() - 8usize];
16480    ["Offset of field: _cef_menu_button_pressed_lock_t::base"]
16481        [::std::mem::offset_of!(_cef_menu_button_pressed_lock_t, base) - 0usize];
16482};
16483#[doc = "\n MenuButton pressed lock is released when this object is destroyed.\n\n NOTE: This struct is allocated DLL-side.\n"]
16484pub type cef_menu_button_pressed_lock_t = _cef_menu_button_pressed_lock_t;
16485#[doc = "\n Implement this structure to handle MenuButton events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16486#[repr(C)]
16487#[derive(Debug, Copy, Clone)]
16488pub struct _cef_menu_button_delegate_t {
16489    #[doc = "\n Base structure.\n"]
16490    pub base: cef_button_delegate_t,
16491    #[doc = "\n Called when |button| is pressed. Call cef_menu_button_t::show_menu() to\n show a popup menu at |screen_point|. When showing a custom popup such as a\n window keep a reference to |button_pressed_lock| until the popup is hidden\n to maintain the pressed button state.\n"]
16492    pub on_menu_button_pressed: ::std::option::Option<
16493        unsafe extern "C" fn(
16494            self_: *mut _cef_menu_button_delegate_t,
16495            menu_button: *mut _cef_menu_button_t,
16496            screen_point: *const cef_point_t,
16497            button_pressed_lock: *mut _cef_menu_button_pressed_lock_t,
16498        ),
16499    >,
16500}
16501#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16502const _: () = {
16503    ["Size of _cef_menu_button_delegate_t"]
16504        [::std::mem::size_of::<_cef_menu_button_delegate_t>() - 152usize];
16505    ["Alignment of _cef_menu_button_delegate_t"]
16506        [::std::mem::align_of::<_cef_menu_button_delegate_t>() - 8usize];
16507    ["Offset of field: _cef_menu_button_delegate_t::base"]
16508        [::std::mem::offset_of!(_cef_menu_button_delegate_t, base) - 0usize];
16509    ["Offset of field: _cef_menu_button_delegate_t::on_menu_button_pressed"]
16510        [::std::mem::offset_of!(_cef_menu_button_delegate_t, on_menu_button_pressed) - 144usize];
16511};
16512#[doc = "\n Implement this structure to handle MenuButton events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16513pub type cef_menu_button_delegate_t = _cef_menu_button_delegate_t;
16514#[doc = "\n MenuButton is a button with optional text, icon and/or menu marker that\n shows a menu when clicked with the left mouse button. All size and position\n values are in density independent pixels (DIP) unless otherwise indicated.\n Methods must be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16515#[repr(C)]
16516#[derive(Debug, Copy, Clone)]
16517pub struct _cef_menu_button_t {
16518    #[doc = "\n Base structure.\n"]
16519    pub base: cef_label_button_t,
16520    #[doc = "\n Show a menu with contents |menu_model|. |screen_point| specifies the menu\n position in screen coordinates. |anchor_position| specifies how the menu\n will be anchored relative to |screen_point|. This function should be\n called from cef_menu_button_delegate_t::on_menu_button_pressed().\n"]
16521    pub show_menu: ::std::option::Option<
16522        unsafe extern "C" fn(
16523            self_: *mut _cef_menu_button_t,
16524            menu_model: *mut _cef_menu_model_t,
16525            screen_point: *const cef_point_t,
16526            anchor_position: cef_menu_anchor_position_t,
16527        ),
16528    >,
16529    #[doc = "\n Show the menu for this button. Results in a call to\n cef_menu_button_delegate_t::on_menu_button_pressed().\n"]
16530    pub trigger_menu: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_menu_button_t)>,
16531}
16532#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16533const _: () = {
16534    ["Size of _cef_menu_button_t"][::std::mem::size_of::<_cef_menu_button_t>() - 608usize];
16535    ["Alignment of _cef_menu_button_t"][::std::mem::align_of::<_cef_menu_button_t>() - 8usize];
16536    ["Offset of field: _cef_menu_button_t::base"]
16537        [::std::mem::offset_of!(_cef_menu_button_t, base) - 0usize];
16538    ["Offset of field: _cef_menu_button_t::show_menu"]
16539        [::std::mem::offset_of!(_cef_menu_button_t, show_menu) - 592usize];
16540    ["Offset of field: _cef_menu_button_t::trigger_menu"]
16541        [::std::mem::offset_of!(_cef_menu_button_t, trigger_menu) - 600usize];
16542};
16543#[doc = "\n MenuButton is a button with optional text, icon and/or menu marker that\n shows a menu when clicked with the left mouse button. All size and position\n values are in density independent pixels (DIP) unless otherwise indicated.\n Methods must be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16544pub type cef_menu_button_t = _cef_menu_button_t;
16545unsafe extern "C" {
16546    #[doc = "\n Create a new MenuButton. A |delegate| must be provided to call show_menu()\n when the button is clicked. |text| will be shown on the MenuButton and used\n as the default accessible name. If |with_frame| is true (1) the button will\n have a visible frame at all times, center alignment, additional padding and\n a default minimum size of 70x33 DIP. If |with_frame| is false (0) the button\n will only have a visible frame on hover/press, left alignment, less padding\n and no default minimum size.\n"]
16547    pub fn cef_menu_button_create(
16548        delegate: *mut _cef_menu_button_delegate_t,
16549        text: *const cef_string_t,
16550    ) -> *mut cef_menu_button_t;
16551}
16552#[doc = "\n Controller for an overlay that contains a contents View added via\n cef_window_t::AddOverlayView. Methods exposed by this controller should be\n called in preference to functions of the same name exposed by the contents\n View unless otherwise indicated. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16553#[repr(C)]
16554#[derive(Debug, Copy, Clone)]
16555pub struct _cef_overlay_controller_t {
16556    #[doc = "\n Base structure.\n"]
16557    pub base: cef_base_ref_counted_t,
16558    #[doc = "\n Returns true (1) if this object is valid.\n"]
16559    pub is_valid: ::std::option::Option<
16560        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
16561    >,
16562    #[doc = "\n Returns true (1) if this object is the same as |that| object.\n"]
16563    pub is_same: ::std::option::Option<
16564        unsafe extern "C" fn(
16565            self_: *mut _cef_overlay_controller_t,
16566            that: *mut _cef_overlay_controller_t,
16567        ) -> ::std::os::raw::c_int,
16568    >,
16569    #[doc = "\n Returns the contents View for this overlay.\n"]
16570    pub get_contents_view: ::std::option::Option<
16571        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> *mut _cef_view_t,
16572    >,
16573    #[doc = "\n Returns the top-level Window hosting this overlay. Use this function\n instead of calling get_window() on the contents View.\n"]
16574    pub get_window: ::std::option::Option<
16575        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> *mut _cef_window_t,
16576    >,
16577    #[doc = "\n Returns the docking mode for this overlay.\n"]
16578    pub get_docking_mode: ::std::option::Option<
16579        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_docking_mode_t,
16580    >,
16581    #[doc = "\n Destroy this overlay.\n"]
16582    pub destroy: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t)>,
16583    #[doc = "\n Sets the bounds (size and position) of this overlay. This will set the\n bounds of the contents View to match and trigger a re-layout if necessary.\n |bounds| is in parent coordinates and any insets configured on this\n overlay will be ignored. Use this function only for overlays created with\n a docking mode value of CEF_DOCKING_MODE_CUSTOM. With other docking modes\n modify the insets of this overlay and/or layout of the contents View and\n call size_to_preferred_size() instead to calculate the new size and re-\n position the overlay if necessary.\n"]
16584    pub set_bounds: ::std::option::Option<
16585        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, bounds: *const cef_rect_t),
16586    >,
16587    #[doc = "\n Returns the bounds (size and position) of this overlay in parent\n coordinates.\n"]
16588    pub get_bounds: ::std::option::Option<
16589        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_rect_t,
16590    >,
16591    #[doc = "\n Returns the bounds (size and position) of this overlay in DIP screen\n coordinates.\n"]
16592    pub get_bounds_in_screen: ::std::option::Option<
16593        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_rect_t,
16594    >,
16595    #[doc = "\n Sets the size of this overlay without changing the position. This will set\n the size of the contents View to match and trigger a re-layout if\n necessary. |size| is in parent coordinates and any insets configured on\n this overlay will be ignored. Use this function only for overlays created\n with a docking mode value of CEF_DOCKING_MODE_CUSTOM. With other docking\n modes modify the insets of this overlay and/or layout of the contents View\n and call size_to_preferred_size() instead to calculate the new size and\n re-position the overlay if necessary.\n"]
16596    pub set_size: ::std::option::Option<
16597        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, size: *const cef_size_t),
16598    >,
16599    #[doc = "\n Returns the size of this overlay in parent coordinates.\n"]
16600    pub get_size: ::std::option::Option<
16601        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_size_t,
16602    >,
16603    #[doc = "\n Sets the position of this overlay without changing the size. |position| is\n in parent coordinates and any insets configured on this overlay will be\n ignored. Use this function only for overlays created with a docking mode\n value of CEF_DOCKING_MODE_CUSTOM. With other docking modes modify the\n insets of this overlay and/or layout of the contents View and call\n size_to_preferred_size() instead to calculate the new size and re-position\n the overlay if necessary.\n"]
16604    pub set_position: ::std::option::Option<
16605        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, position: *const cef_point_t),
16606    >,
16607    #[doc = "\n Returns the position of this overlay in parent coordinates.\n"]
16608    pub get_position: ::std::option::Option<
16609        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_point_t,
16610    >,
16611    #[doc = "\n Sets the insets for this overlay. |insets| is in parent coordinates. Use\n this function only for overlays created with a docking mode value other\n than CEF_DOCKING_MODE_CUSTOM.\n"]
16612    pub set_insets: ::std::option::Option<
16613        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, insets: *const cef_insets_t),
16614    >,
16615    #[doc = "\n Returns the insets for this overlay in parent coordinates.\n"]
16616    pub get_insets: ::std::option::Option<
16617        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_insets_t,
16618    >,
16619    #[doc = "\n Size this overlay to its preferred size and trigger a re-layout if\n necessary. The position of overlays created with a docking mode value of\n CEF_DOCKING_MODE_CUSTOM will not be modified by calling this function.\n With other docking modes this function may re-position the overlay if\n necessary to accommodate the new size and any insets configured on the\n contents View.\n"]
16620    pub size_to_preferred_size:
16621        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t)>,
16622    #[doc = "\n Sets whether this overlay is visible. Overlays are hidden by default. If\n this overlay is hidden then it and any child Views will not be drawn and,\n if any of those Views currently have focus, then focus will also be\n cleared. Painting is scheduled as needed.\n"]
16623    pub set_visible: ::std::option::Option<
16624        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, visible: ::std::os::raw::c_int),
16625    >,
16626    #[doc = "\n Returns whether this overlay is visible. A View may be visible but still\n not drawn in a Window if any parent Views are hidden. Call is_drawn() to\n determine whether this overlay and all parent Views are visible and will\n be drawn.\n"]
16627    pub is_visible: ::std::option::Option<
16628        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
16629    >,
16630    #[doc = "\n Returns whether this overlay is visible and drawn in a Window. A View is\n drawn if it and all parent Views are visible. To determine if the\n containing Window is visible to the user on-screen call is_visible() on\n the Window.\n"]
16631    pub is_drawn: ::std::option::Option<
16632        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
16633    >,
16634}
16635#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16636const _: () = {
16637    ["Size of _cef_overlay_controller_t"]
16638        [::std::mem::size_of::<_cef_overlay_controller_t>() - 192usize];
16639    ["Alignment of _cef_overlay_controller_t"]
16640        [::std::mem::align_of::<_cef_overlay_controller_t>() - 8usize];
16641    ["Offset of field: _cef_overlay_controller_t::base"]
16642        [::std::mem::offset_of!(_cef_overlay_controller_t, base) - 0usize];
16643    ["Offset of field: _cef_overlay_controller_t::is_valid"]
16644        [::std::mem::offset_of!(_cef_overlay_controller_t, is_valid) - 40usize];
16645    ["Offset of field: _cef_overlay_controller_t::is_same"]
16646        [::std::mem::offset_of!(_cef_overlay_controller_t, is_same) - 48usize];
16647    ["Offset of field: _cef_overlay_controller_t::get_contents_view"]
16648        [::std::mem::offset_of!(_cef_overlay_controller_t, get_contents_view) - 56usize];
16649    ["Offset of field: _cef_overlay_controller_t::get_window"]
16650        [::std::mem::offset_of!(_cef_overlay_controller_t, get_window) - 64usize];
16651    ["Offset of field: _cef_overlay_controller_t::get_docking_mode"]
16652        [::std::mem::offset_of!(_cef_overlay_controller_t, get_docking_mode) - 72usize];
16653    ["Offset of field: _cef_overlay_controller_t::destroy"]
16654        [::std::mem::offset_of!(_cef_overlay_controller_t, destroy) - 80usize];
16655    ["Offset of field: _cef_overlay_controller_t::set_bounds"]
16656        [::std::mem::offset_of!(_cef_overlay_controller_t, set_bounds) - 88usize];
16657    ["Offset of field: _cef_overlay_controller_t::get_bounds"]
16658        [::std::mem::offset_of!(_cef_overlay_controller_t, get_bounds) - 96usize];
16659    ["Offset of field: _cef_overlay_controller_t::get_bounds_in_screen"]
16660        [::std::mem::offset_of!(_cef_overlay_controller_t, get_bounds_in_screen) - 104usize];
16661    ["Offset of field: _cef_overlay_controller_t::set_size"]
16662        [::std::mem::offset_of!(_cef_overlay_controller_t, set_size) - 112usize];
16663    ["Offset of field: _cef_overlay_controller_t::get_size"]
16664        [::std::mem::offset_of!(_cef_overlay_controller_t, get_size) - 120usize];
16665    ["Offset of field: _cef_overlay_controller_t::set_position"]
16666        [::std::mem::offset_of!(_cef_overlay_controller_t, set_position) - 128usize];
16667    ["Offset of field: _cef_overlay_controller_t::get_position"]
16668        [::std::mem::offset_of!(_cef_overlay_controller_t, get_position) - 136usize];
16669    ["Offset of field: _cef_overlay_controller_t::set_insets"]
16670        [::std::mem::offset_of!(_cef_overlay_controller_t, set_insets) - 144usize];
16671    ["Offset of field: _cef_overlay_controller_t::get_insets"]
16672        [::std::mem::offset_of!(_cef_overlay_controller_t, get_insets) - 152usize];
16673    ["Offset of field: _cef_overlay_controller_t::size_to_preferred_size"]
16674        [::std::mem::offset_of!(_cef_overlay_controller_t, size_to_preferred_size) - 160usize];
16675    ["Offset of field: _cef_overlay_controller_t::set_visible"]
16676        [::std::mem::offset_of!(_cef_overlay_controller_t, set_visible) - 168usize];
16677    ["Offset of field: _cef_overlay_controller_t::is_visible"]
16678        [::std::mem::offset_of!(_cef_overlay_controller_t, is_visible) - 176usize];
16679    ["Offset of field: _cef_overlay_controller_t::is_drawn"]
16680        [::std::mem::offset_of!(_cef_overlay_controller_t, is_drawn) - 184usize];
16681};
16682#[doc = "\n Controller for an overlay that contains a contents View added via\n cef_window_t::AddOverlayView. Methods exposed by this controller should be\n called in preference to functions of the same name exposed by the contents\n View unless otherwise indicated. Methods must be called on the browser\n process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16683pub type cef_overlay_controller_t = _cef_overlay_controller_t;
16684#[doc = "\n Implement this structure to handle Panel events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16685#[repr(C)]
16686#[derive(Debug, Copy, Clone)]
16687pub struct _cef_panel_delegate_t {
16688    #[doc = "\n Base structure.\n"]
16689    pub base: cef_view_delegate_t,
16690}
16691#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16692const _: () = {
16693    ["Size of _cef_panel_delegate_t"][::std::mem::size_of::<_cef_panel_delegate_t>() - 128usize];
16694    ["Alignment of _cef_panel_delegate_t"]
16695        [::std::mem::align_of::<_cef_panel_delegate_t>() - 8usize];
16696    ["Offset of field: _cef_panel_delegate_t::base"]
16697        [::std::mem::offset_of!(_cef_panel_delegate_t, base) - 0usize];
16698};
16699#[doc = "\n Implement this structure to handle Panel events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16700pub type cef_panel_delegate_t = _cef_panel_delegate_t;
16701#[doc = "\n A Panel is a container in the views hierarchy that can contain other Views\n as children. Methods must be called on the browser process UI thread unless\n otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16702#[repr(C)]
16703#[derive(Debug, Copy, Clone)]
16704pub struct _cef_panel_t {
16705    #[doc = "\n Base structure.\n"]
16706    pub base: cef_view_t,
16707    #[doc = "\n Returns this Panel as a Window or NULL if this is not a Window.\n"]
16708    pub as_window:
16709        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_window_t>,
16710    #[doc = "\n Set this Panel's Layout to FillLayout and return the FillLayout object.\n"]
16711    pub set_to_fill_layout: ::std::option::Option<
16712        unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_fill_layout_t,
16713    >,
16714    #[doc = "\n Set this Panel's Layout to BoxLayout and return the BoxLayout object.\n"]
16715    pub set_to_box_layout: ::std::option::Option<
16716        unsafe extern "C" fn(
16717            self_: *mut _cef_panel_t,
16718            settings: *const cef_box_layout_settings_t,
16719        ) -> *mut _cef_box_layout_t,
16720    >,
16721    #[doc = "\n Get the Layout.\n"]
16722    pub get_layout:
16723        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_layout_t>,
16724    #[doc = "\n Lay out the child Views (set their bounds based on sizing heuristics\n specific to the current Layout).\n"]
16725    pub layout: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t)>,
16726    #[doc = "\n Add a child View.\n"]
16727    pub add_child_view: ::std::option::Option<
16728        unsafe extern "C" fn(self_: *mut _cef_panel_t, view: *mut _cef_view_t),
16729    >,
16730    #[doc = "\n Add a child View at the specified |index|. If |index| matches the result\n of GetChildCount() then the View will be added at the end.\n"]
16731    pub add_child_view_at: ::std::option::Option<
16732        unsafe extern "C" fn(
16733            self_: *mut _cef_panel_t,
16734            view: *mut _cef_view_t,
16735            index: ::std::os::raw::c_int,
16736        ),
16737    >,
16738    #[doc = "\n Move the child View to the specified |index|. A negative value for |index|\n will move the View to the end.\n"]
16739    pub reorder_child_view: ::std::option::Option<
16740        unsafe extern "C" fn(
16741            self_: *mut _cef_panel_t,
16742            view: *mut _cef_view_t,
16743            index: ::std::os::raw::c_int,
16744        ),
16745    >,
16746    #[doc = "\n Remove a child View. The View can then be added to another Panel.\n"]
16747    pub remove_child_view: ::std::option::Option<
16748        unsafe extern "C" fn(self_: *mut _cef_panel_t, view: *mut _cef_view_t),
16749    >,
16750    #[doc = "\n Remove all child Views. The removed Views will be deleted if the client\n holds no references to them.\n"]
16751    pub remove_all_child_views:
16752        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t)>,
16753    #[doc = "\n Returns the number of child Views.\n"]
16754    pub get_child_view_count:
16755        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> usize>,
16756    #[doc = "\n Returns the child View at the specified |index|.\n"]
16757    pub get_child_view_at: ::std::option::Option<
16758        unsafe extern "C" fn(
16759            self_: *mut _cef_panel_t,
16760            index: ::std::os::raw::c_int,
16761        ) -> *mut _cef_view_t,
16762    >,
16763}
16764#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16765const _: () = {
16766    ["Size of _cef_panel_t"][::std::mem::size_of::<_cef_panel_t>() - 552usize];
16767    ["Alignment of _cef_panel_t"][::std::mem::align_of::<_cef_panel_t>() - 8usize];
16768    ["Offset of field: _cef_panel_t::base"][::std::mem::offset_of!(_cef_panel_t, base) - 0usize];
16769    ["Offset of field: _cef_panel_t::as_window"]
16770        [::std::mem::offset_of!(_cef_panel_t, as_window) - 456usize];
16771    ["Offset of field: _cef_panel_t::set_to_fill_layout"]
16772        [::std::mem::offset_of!(_cef_panel_t, set_to_fill_layout) - 464usize];
16773    ["Offset of field: _cef_panel_t::set_to_box_layout"]
16774        [::std::mem::offset_of!(_cef_panel_t, set_to_box_layout) - 472usize];
16775    ["Offset of field: _cef_panel_t::get_layout"]
16776        [::std::mem::offset_of!(_cef_panel_t, get_layout) - 480usize];
16777    ["Offset of field: _cef_panel_t::layout"]
16778        [::std::mem::offset_of!(_cef_panel_t, layout) - 488usize];
16779    ["Offset of field: _cef_panel_t::add_child_view"]
16780        [::std::mem::offset_of!(_cef_panel_t, add_child_view) - 496usize];
16781    ["Offset of field: _cef_panel_t::add_child_view_at"]
16782        [::std::mem::offset_of!(_cef_panel_t, add_child_view_at) - 504usize];
16783    ["Offset of field: _cef_panel_t::reorder_child_view"]
16784        [::std::mem::offset_of!(_cef_panel_t, reorder_child_view) - 512usize];
16785    ["Offset of field: _cef_panel_t::remove_child_view"]
16786        [::std::mem::offset_of!(_cef_panel_t, remove_child_view) - 520usize];
16787    ["Offset of field: _cef_panel_t::remove_all_child_views"]
16788        [::std::mem::offset_of!(_cef_panel_t, remove_all_child_views) - 528usize];
16789    ["Offset of field: _cef_panel_t::get_child_view_count"]
16790        [::std::mem::offset_of!(_cef_panel_t, get_child_view_count) - 536usize];
16791    ["Offset of field: _cef_panel_t::get_child_view_at"]
16792        [::std::mem::offset_of!(_cef_panel_t, get_child_view_at) - 544usize];
16793};
16794#[doc = "\n A Panel is a container in the views hierarchy that can contain other Views\n as children. Methods must be called on the browser process UI thread unless\n otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16795pub type cef_panel_t = _cef_panel_t;
16796unsafe extern "C" {
16797    #[doc = "\n Create a new Panel.\n"]
16798    pub fn cef_panel_create(delegate: *mut _cef_panel_delegate_t) -> *mut cef_panel_t;
16799}
16800#[doc = "\n A ScrollView will show horizontal and/or vertical scrollbars when necessary\n based on the size of the attached content view. Methods must be called on\n the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16801#[repr(C)]
16802#[derive(Debug, Copy, Clone)]
16803pub struct _cef_scroll_view_t {
16804    #[doc = "\n Base structure.\n"]
16805    pub base: cef_view_t,
16806    #[doc = "\n Set the content View. The content View must have a specified size (e.g.\n via cef_view_t::SetBounds or cef_view_delegate_t::GetPreferredSize).\n"]
16807    pub set_content_view: ::std::option::Option<
16808        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t, view: *mut _cef_view_t),
16809    >,
16810    #[doc = "\n Returns the content View.\n"]
16811    pub get_content_view: ::std::option::Option<
16812        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> *mut _cef_view_t,
16813    >,
16814    #[doc = "\n Returns the visible region of the content View.\n"]
16815    pub get_visible_content_rect:
16816        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> cef_rect_t>,
16817    #[doc = "\n Returns true (1) if the horizontal scrollbar is currently showing.\n"]
16818    pub has_horizontal_scrollbar: ::std::option::Option<
16819        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
16820    >,
16821    #[doc = "\n Returns the height of the horizontal scrollbar.\n"]
16822    pub get_horizontal_scrollbar_height: ::std::option::Option<
16823        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
16824    >,
16825    #[doc = "\n Returns true (1) if the vertical scrollbar is currently showing.\n"]
16826    pub has_vertical_scrollbar: ::std::option::Option<
16827        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
16828    >,
16829    #[doc = "\n Returns the width of the vertical scrollbar.\n"]
16830    pub get_vertical_scrollbar_width: ::std::option::Option<
16831        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
16832    >,
16833}
16834#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16835const _: () = {
16836    ["Size of _cef_scroll_view_t"][::std::mem::size_of::<_cef_scroll_view_t>() - 512usize];
16837    ["Alignment of _cef_scroll_view_t"][::std::mem::align_of::<_cef_scroll_view_t>() - 8usize];
16838    ["Offset of field: _cef_scroll_view_t::base"]
16839        [::std::mem::offset_of!(_cef_scroll_view_t, base) - 0usize];
16840    ["Offset of field: _cef_scroll_view_t::set_content_view"]
16841        [::std::mem::offset_of!(_cef_scroll_view_t, set_content_view) - 456usize];
16842    ["Offset of field: _cef_scroll_view_t::get_content_view"]
16843        [::std::mem::offset_of!(_cef_scroll_view_t, get_content_view) - 464usize];
16844    ["Offset of field: _cef_scroll_view_t::get_visible_content_rect"]
16845        [::std::mem::offset_of!(_cef_scroll_view_t, get_visible_content_rect) - 472usize];
16846    ["Offset of field: _cef_scroll_view_t::has_horizontal_scrollbar"]
16847        [::std::mem::offset_of!(_cef_scroll_view_t, has_horizontal_scrollbar) - 480usize];
16848    ["Offset of field: _cef_scroll_view_t::get_horizontal_scrollbar_height"]
16849        [::std::mem::offset_of!(_cef_scroll_view_t, get_horizontal_scrollbar_height) - 488usize];
16850    ["Offset of field: _cef_scroll_view_t::has_vertical_scrollbar"]
16851        [::std::mem::offset_of!(_cef_scroll_view_t, has_vertical_scrollbar) - 496usize];
16852    ["Offset of field: _cef_scroll_view_t::get_vertical_scrollbar_width"]
16853        [::std::mem::offset_of!(_cef_scroll_view_t, get_vertical_scrollbar_width) - 504usize];
16854};
16855#[doc = "\n A ScrollView will show horizontal and/or vertical scrollbars when necessary\n based on the size of the attached content view. Methods must be called on\n the browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16856pub type cef_scroll_view_t = _cef_scroll_view_t;
16857unsafe extern "C" {
16858    #[doc = "\n Create a new ScrollView.\n"]
16859    pub fn cef_scroll_view_create(delegate: *mut _cef_view_delegate_t) -> *mut cef_scroll_view_t;
16860}
16861#[doc = "\n Implement this structure to handle Textfield events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16862#[repr(C)]
16863#[derive(Debug, Copy, Clone)]
16864pub struct _cef_textfield_delegate_t {
16865    #[doc = "\n Base structure.\n"]
16866    pub base: cef_view_delegate_t,
16867    #[doc = "\n Called when |textfield| receives a keyboard event. |event| contains\n information about the keyboard event. Return true (1) if the keyboard\n event was handled or false (0) otherwise for default handling.\n"]
16868    pub on_key_event: ::std::option::Option<
16869        unsafe extern "C" fn(
16870            self_: *mut _cef_textfield_delegate_t,
16871            textfield: *mut _cef_textfield_t,
16872            event: *const cef_key_event_t,
16873        ) -> ::std::os::raw::c_int,
16874    >,
16875    #[doc = "\n Called after performing a user action that may change |textfield|.\n"]
16876    pub on_after_user_action: ::std::option::Option<
16877        unsafe extern "C" fn(
16878            self_: *mut _cef_textfield_delegate_t,
16879            textfield: *mut _cef_textfield_t,
16880        ),
16881    >,
16882}
16883#[allow(clippy::unnecessary_operation, clippy::identity_op)]
16884const _: () = {
16885    ["Size of _cef_textfield_delegate_t"]
16886        [::std::mem::size_of::<_cef_textfield_delegate_t>() - 144usize];
16887    ["Alignment of _cef_textfield_delegate_t"]
16888        [::std::mem::align_of::<_cef_textfield_delegate_t>() - 8usize];
16889    ["Offset of field: _cef_textfield_delegate_t::base"]
16890        [::std::mem::offset_of!(_cef_textfield_delegate_t, base) - 0usize];
16891    ["Offset of field: _cef_textfield_delegate_t::on_key_event"]
16892        [::std::mem::offset_of!(_cef_textfield_delegate_t, on_key_event) - 128usize];
16893    ["Offset of field: _cef_textfield_delegate_t::on_after_user_action"]
16894        [::std::mem::offset_of!(_cef_textfield_delegate_t, on_after_user_action) - 136usize];
16895};
16896#[doc = "\n Implement this structure to handle Textfield events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
16897pub type cef_textfield_delegate_t = _cef_textfield_delegate_t;
16898#[doc = "\n A Textfield supports editing of text. This control is custom rendered with\n no platform-specific code. Methods must be called on the browser process UI\n thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
16899#[repr(C)]
16900#[derive(Debug, Copy, Clone)]
16901pub struct _cef_textfield_t {
16902    #[doc = "\n Base structure.\n"]
16903    pub base: cef_view_t,
16904    #[doc = "\n Sets whether the text will be displayed as asterisks.\n"]
16905    pub set_password_input: ::std::option::Option<
16906        unsafe extern "C" fn(self_: *mut _cef_textfield_t, password_input: ::std::os::raw::c_int),
16907    >,
16908    #[doc = "\n Returns true (1) if the text will be displayed as asterisks.\n"]
16909    pub is_password_input: ::std::option::Option<
16910        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
16911    >,
16912    #[doc = "\n Sets whether the text will read-only.\n"]
16913    pub set_read_only: ::std::option::Option<
16914        unsafe extern "C" fn(self_: *mut _cef_textfield_t, read_only: ::std::os::raw::c_int),
16915    >,
16916    #[doc = "\n Returns true (1) if the text is read-only.\n"]
16917    pub is_read_only: ::std::option::Option<
16918        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
16919    >,
16920    #[doc = "\n Returns the currently displayed text.\n"]
16921    pub get_text: ::std::option::Option<
16922        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
16923    >,
16924    #[doc = "\n Sets the contents to |text|. The cursor will be moved to end of the text\n if the current position is outside of the text range.\n"]
16925    pub set_text: ::std::option::Option<
16926        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
16927    >,
16928    #[doc = "\n Appends |text| to the previously-existing text.\n"]
16929    pub append_text: ::std::option::Option<
16930        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
16931    >,
16932    #[doc = "\n Inserts |text| at the current cursor position replacing any selected text.\n"]
16933    pub insert_or_replace_text: ::std::option::Option<
16934        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
16935    >,
16936    #[doc = "\n Returns true (1) if there is any selected text.\n"]
16937    pub has_selection: ::std::option::Option<
16938        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
16939    >,
16940    #[doc = "\n Returns the currently selected text.\n"]
16941    pub get_selected_text: ::std::option::Option<
16942        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
16943    >,
16944    #[doc = "\n Selects all text. If |reversed| is true (1) the range will end at the\n logical beginning of the text; this generally shows the leading portion of\n text that overflows its display area.\n"]
16945    pub select_all: ::std::option::Option<
16946        unsafe extern "C" fn(self_: *mut _cef_textfield_t, reversed: ::std::os::raw::c_int),
16947    >,
16948    #[doc = "\n Clears the text selection and sets the caret to the end.\n"]
16949    pub clear_selection: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t)>,
16950    #[doc = "\n Returns the selected logical text range.\n"]
16951    pub get_selected_range:
16952        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_range_t>,
16953    #[doc = "\n Selects the specified logical text range.\n"]
16954    pub select_range: ::std::option::Option<
16955        unsafe extern "C" fn(self_: *mut _cef_textfield_t, range: *const cef_range_t),
16956    >,
16957    #[doc = "\n Returns the current cursor position.\n"]
16958    pub get_cursor_position:
16959        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> usize>,
16960    #[doc = "\n Sets the text color.\n"]
16961    pub set_text_color: ::std::option::Option<
16962        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
16963    >,
16964    #[doc = "\n Returns the text color.\n"]
16965    pub get_text_color:
16966        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
16967    #[doc = "\n Sets the selection text color.\n"]
16968    pub set_selection_text_color: ::std::option::Option<
16969        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
16970    >,
16971    #[doc = "\n Returns the selection text color.\n"]
16972    pub get_selection_text_color:
16973        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
16974    #[doc = "\n Sets the selection background color.\n"]
16975    pub set_selection_background_color: ::std::option::Option<
16976        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
16977    >,
16978    #[doc = "\n Returns the selection background color.\n"]
16979    pub get_selection_background_color:
16980        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
16981    #[doc = "\n Sets the font list. The format is \"<FONT_FAMILY_LIST>,[STYLES] <SIZE>\",\n where:\n - FONT_FAMILY_LIST is a comma-separated list of font family names,\n - STYLES is an optional space-separated list of style names (case-\n   sensitive \"Bold\" and \"Italic\" are supported), and\n - SIZE is an integer font size in pixels with the suffix \"px\".\n\n Here are examples of valid font description strings:\n - \"Arial, Helvetica, Bold Italic 14px\"\n - \"Arial, 14px\"\n"]
16982    pub set_font_list: ::std::option::Option<
16983        unsafe extern "C" fn(self_: *mut _cef_textfield_t, font_list: *const cef_string_t),
16984    >,
16985    #[doc = "\n Applies |color| to the specified |range| without changing the default\n color. If |range| is NULL the color will be set on the complete text\n contents.\n"]
16986    pub apply_text_color: ::std::option::Option<
16987        unsafe extern "C" fn(
16988            self_: *mut _cef_textfield_t,
16989            color: cef_color_t,
16990            range: *const cef_range_t,
16991        ),
16992    >,
16993    #[doc = "\n Applies |style| to the specified |range| without changing the default\n style. If |add| is true (1) the style will be added, otherwise the style\n will be removed. If |range| is NULL the style will be set on the complete\n text contents.\n"]
16994    pub apply_text_style: ::std::option::Option<
16995        unsafe extern "C" fn(
16996            self_: *mut _cef_textfield_t,
16997            style: cef_text_style_t,
16998            add: ::std::os::raw::c_int,
16999            range: *const cef_range_t,
17000        ),
17001    >,
17002    #[doc = "\n Returns true (1) if the action associated with the specified command id is\n enabled. See additional comments on execute_command().\n"]
17003    pub is_command_enabled: ::std::option::Option<
17004        unsafe extern "C" fn(
17005            self_: *mut _cef_textfield_t,
17006            command_id: cef_text_field_commands_t,
17007        ) -> ::std::os::raw::c_int,
17008    >,
17009    #[doc = "\n Performs the action associated with the specified command id.\n"]
17010    pub execute_command: ::std::option::Option<
17011        unsafe extern "C" fn(self_: *mut _cef_textfield_t, command_id: cef_text_field_commands_t),
17012    >,
17013    #[doc = "\n Clears Edit history.\n"]
17014    pub clear_edit_history:
17015        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t)>,
17016    #[doc = "\n Sets the placeholder text that will be displayed when the Textfield is\n NULL.\n"]
17017    pub set_placeholder_text: ::std::option::Option<
17018        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
17019    >,
17020    #[doc = "\n Returns the placeholder text that will be displayed when the Textfield is\n NULL.\n"]
17021    pub get_placeholder_text: ::std::option::Option<
17022        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
17023    >,
17024    #[doc = "\n Sets the placeholder text color.\n"]
17025    pub set_placeholder_text_color: ::std::option::Option<
17026        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
17027    >,
17028    #[doc = "\n Set the accessible name that will be exposed to assistive technology (AT).\n"]
17029    pub set_accessible_name: ::std::option::Option<
17030        unsafe extern "C" fn(self_: *mut _cef_textfield_t, name: *const cef_string_t),
17031    >,
17032}
17033#[allow(clippy::unnecessary_operation, clippy::identity_op)]
17034const _: () = {
17035    ["Size of _cef_textfield_t"][::std::mem::size_of::<_cef_textfield_t>() - 704usize];
17036    ["Alignment of _cef_textfield_t"][::std::mem::align_of::<_cef_textfield_t>() - 8usize];
17037    ["Offset of field: _cef_textfield_t::base"]
17038        [::std::mem::offset_of!(_cef_textfield_t, base) - 0usize];
17039    ["Offset of field: _cef_textfield_t::set_password_input"]
17040        [::std::mem::offset_of!(_cef_textfield_t, set_password_input) - 456usize];
17041    ["Offset of field: _cef_textfield_t::is_password_input"]
17042        [::std::mem::offset_of!(_cef_textfield_t, is_password_input) - 464usize];
17043    ["Offset of field: _cef_textfield_t::set_read_only"]
17044        [::std::mem::offset_of!(_cef_textfield_t, set_read_only) - 472usize];
17045    ["Offset of field: _cef_textfield_t::is_read_only"]
17046        [::std::mem::offset_of!(_cef_textfield_t, is_read_only) - 480usize];
17047    ["Offset of field: _cef_textfield_t::get_text"]
17048        [::std::mem::offset_of!(_cef_textfield_t, get_text) - 488usize];
17049    ["Offset of field: _cef_textfield_t::set_text"]
17050        [::std::mem::offset_of!(_cef_textfield_t, set_text) - 496usize];
17051    ["Offset of field: _cef_textfield_t::append_text"]
17052        [::std::mem::offset_of!(_cef_textfield_t, append_text) - 504usize];
17053    ["Offset of field: _cef_textfield_t::insert_or_replace_text"]
17054        [::std::mem::offset_of!(_cef_textfield_t, insert_or_replace_text) - 512usize];
17055    ["Offset of field: _cef_textfield_t::has_selection"]
17056        [::std::mem::offset_of!(_cef_textfield_t, has_selection) - 520usize];
17057    ["Offset of field: _cef_textfield_t::get_selected_text"]
17058        [::std::mem::offset_of!(_cef_textfield_t, get_selected_text) - 528usize];
17059    ["Offset of field: _cef_textfield_t::select_all"]
17060        [::std::mem::offset_of!(_cef_textfield_t, select_all) - 536usize];
17061    ["Offset of field: _cef_textfield_t::clear_selection"]
17062        [::std::mem::offset_of!(_cef_textfield_t, clear_selection) - 544usize];
17063    ["Offset of field: _cef_textfield_t::get_selected_range"]
17064        [::std::mem::offset_of!(_cef_textfield_t, get_selected_range) - 552usize];
17065    ["Offset of field: _cef_textfield_t::select_range"]
17066        [::std::mem::offset_of!(_cef_textfield_t, select_range) - 560usize];
17067    ["Offset of field: _cef_textfield_t::get_cursor_position"]
17068        [::std::mem::offset_of!(_cef_textfield_t, get_cursor_position) - 568usize];
17069    ["Offset of field: _cef_textfield_t::set_text_color"]
17070        [::std::mem::offset_of!(_cef_textfield_t, set_text_color) - 576usize];
17071    ["Offset of field: _cef_textfield_t::get_text_color"]
17072        [::std::mem::offset_of!(_cef_textfield_t, get_text_color) - 584usize];
17073    ["Offset of field: _cef_textfield_t::set_selection_text_color"]
17074        [::std::mem::offset_of!(_cef_textfield_t, set_selection_text_color) - 592usize];
17075    ["Offset of field: _cef_textfield_t::get_selection_text_color"]
17076        [::std::mem::offset_of!(_cef_textfield_t, get_selection_text_color) - 600usize];
17077    ["Offset of field: _cef_textfield_t::set_selection_background_color"]
17078        [::std::mem::offset_of!(_cef_textfield_t, set_selection_background_color) - 608usize];
17079    ["Offset of field: _cef_textfield_t::get_selection_background_color"]
17080        [::std::mem::offset_of!(_cef_textfield_t, get_selection_background_color) - 616usize];
17081    ["Offset of field: _cef_textfield_t::set_font_list"]
17082        [::std::mem::offset_of!(_cef_textfield_t, set_font_list) - 624usize];
17083    ["Offset of field: _cef_textfield_t::apply_text_color"]
17084        [::std::mem::offset_of!(_cef_textfield_t, apply_text_color) - 632usize];
17085    ["Offset of field: _cef_textfield_t::apply_text_style"]
17086        [::std::mem::offset_of!(_cef_textfield_t, apply_text_style) - 640usize];
17087    ["Offset of field: _cef_textfield_t::is_command_enabled"]
17088        [::std::mem::offset_of!(_cef_textfield_t, is_command_enabled) - 648usize];
17089    ["Offset of field: _cef_textfield_t::execute_command"]
17090        [::std::mem::offset_of!(_cef_textfield_t, execute_command) - 656usize];
17091    ["Offset of field: _cef_textfield_t::clear_edit_history"]
17092        [::std::mem::offset_of!(_cef_textfield_t, clear_edit_history) - 664usize];
17093    ["Offset of field: _cef_textfield_t::set_placeholder_text"]
17094        [::std::mem::offset_of!(_cef_textfield_t, set_placeholder_text) - 672usize];
17095    ["Offset of field: _cef_textfield_t::get_placeholder_text"]
17096        [::std::mem::offset_of!(_cef_textfield_t, get_placeholder_text) - 680usize];
17097    ["Offset of field: _cef_textfield_t::set_placeholder_text_color"]
17098        [::std::mem::offset_of!(_cef_textfield_t, set_placeholder_text_color) - 688usize];
17099    ["Offset of field: _cef_textfield_t::set_accessible_name"]
17100        [::std::mem::offset_of!(_cef_textfield_t, set_accessible_name) - 696usize];
17101};
17102#[doc = "\n A Textfield supports editing of text. This control is custom rendered with\n no platform-specific code. Methods must be called on the browser process UI\n thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
17103pub type cef_textfield_t = _cef_textfield_t;
17104unsafe extern "C" {
17105    #[doc = "\n Create a new Textfield.\n"]
17106    pub fn cef_textfield_create(delegate: *mut _cef_textfield_delegate_t) -> *mut cef_textfield_t;
17107}
17108#[doc = "\n Implement this structure to handle window events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
17109#[repr(C)]
17110#[derive(Debug, Copy, Clone)]
17111pub struct _cef_window_delegate_t {
17112    #[doc = "\n Base structure.\n"]
17113    pub base: cef_panel_delegate_t,
17114    #[doc = "\n Called when |window| is created.\n"]
17115    pub on_window_created: ::std::option::Option<
17116        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
17117    >,
17118    #[doc = "\n Called when |window| is closing.\n"]
17119    pub on_window_closing: ::std::option::Option<
17120        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
17121    >,
17122    #[doc = "\n Called when |window| is destroyed. Release all references to |window| and\n do not attempt to execute any functions on |window| after this callback\n returns.\n"]
17123    pub on_window_destroyed: ::std::option::Option<
17124        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
17125    >,
17126    #[doc = "\n Called when |window| is activated or deactivated.\n"]
17127    pub on_window_activation_changed: ::std::option::Option<
17128        unsafe extern "C" fn(
17129            self_: *mut _cef_window_delegate_t,
17130            window: *mut _cef_window_t,
17131            active: ::std::os::raw::c_int,
17132        ),
17133    >,
17134    #[doc = "\n Called when |window| bounds have changed. |new_bounds| will be in DIP\n screen coordinates.\n"]
17135    pub on_window_bounds_changed: ::std::option::Option<
17136        unsafe extern "C" fn(
17137            self_: *mut _cef_window_delegate_t,
17138            window: *mut _cef_window_t,
17139            new_bounds: *const cef_rect_t,
17140        ),
17141    >,
17142    #[doc = "\n Called when |window| is transitioning to or from fullscreen mode. On MacOS\n the transition occurs asynchronously with |is_competed| set to false (0)\n when the transition starts and true (1) after the transition completes. On\n other platforms the transition occurs synchronously with |is_completed|\n set to true (1) after the transition completes. With Alloy style you must\n also implement cef_display_handler_t::OnFullscreenModeChange to handle\n fullscreen transitions initiated by browser content.\n"]
17143    pub on_window_fullscreen_transition: ::std::option::Option<
17144        unsafe extern "C" fn(
17145            self_: *mut _cef_window_delegate_t,
17146            window: *mut _cef_window_t,
17147            is_completed: ::std::os::raw::c_int,
17148        ),
17149    >,
17150    #[doc = "\n Return the parent for |window| or NULL if the |window| does not have a\n parent. Windows with parents will not get a taskbar button. Set |is_menu|\n to true (1) if |window| will be displayed as a menu, in which case it will\n not be clipped to the parent window bounds. Set |can_activate_menu| to\n false (0) if |is_menu| is true (1) and |window| should not be activated\n (given keyboard focus) when displayed.\n"]
17151    pub get_parent_window: ::std::option::Option<
17152        unsafe extern "C" fn(
17153            self_: *mut _cef_window_delegate_t,
17154            window: *mut _cef_window_t,
17155            is_menu: *mut ::std::os::raw::c_int,
17156            can_activate_menu: *mut ::std::os::raw::c_int,
17157        ) -> *mut _cef_window_t,
17158    >,
17159    #[doc = "\n Return true (1) if |window| should be created as a window modal dialog.\n Only called when a Window is returned via get_parent_window() with\n |is_menu| set to false (0). All controls in the parent Window will be\n disabled while |window| is visible. This functionality is not supported by\n all Linux window managers. Alternately, use\n cef_window_t::show_as_browser_modal_dialog() for a browser modal dialog\n that works on all platforms.\n"]
17160    pub is_window_modal_dialog: ::std::option::Option<
17161        unsafe extern "C" fn(
17162            self_: *mut _cef_window_delegate_t,
17163            window: *mut _cef_window_t,
17164        ) -> ::std::os::raw::c_int,
17165    >,
17166    #[doc = "\n Return the initial bounds for |window| in density independent pixel (DIP)\n coordinates. If this function returns an NULL CefRect then\n get_preferred_size() will be called to retrieve the size, and the window\n will be placed on the screen with origin (0,0). This function can be used\n in combination with cef_view_t::get_bounds_in_screen() to restore the\n previous window bounds.\n"]
17167    pub get_initial_bounds: ::std::option::Option<
17168        unsafe extern "C" fn(
17169            self_: *mut _cef_window_delegate_t,
17170            window: *mut _cef_window_t,
17171        ) -> cef_rect_t,
17172    >,
17173    #[doc = "\n Return the initial show state for |window|.\n"]
17174    pub get_initial_show_state: ::std::option::Option<
17175        unsafe extern "C" fn(
17176            self_: *mut _cef_window_delegate_t,
17177            window: *mut _cef_window_t,
17178        ) -> cef_show_state_t,
17179    >,
17180    #[doc = "\n Return true (1) if |window| should be created without a frame or title\n bar. The window will be resizable if can_resize() returns true (1). Use\n cef_window_t::set_draggable_regions() to specify draggable regions.\n"]
17181    pub is_frameless: ::std::option::Option<
17182        unsafe extern "C" fn(
17183            self_: *mut _cef_window_delegate_t,
17184            window: *mut _cef_window_t,
17185        ) -> ::std::os::raw::c_int,
17186    >,
17187    #[doc = "\n Return true (1) if |window| should be created with standard window buttons\n like close, minimize and zoom. This function is only supported on macOS.\n"]
17188    pub with_standard_window_buttons: ::std::option::Option<
17189        unsafe extern "C" fn(
17190            self_: *mut _cef_window_delegate_t,
17191            window: *mut _cef_window_t,
17192        ) -> ::std::os::raw::c_int,
17193    >,
17194    #[doc = "\n Return whether the titlebar height should be overridden, and sets the\n height of the titlebar in |titlebar_height|. On macOS, it can also be used\n to adjust the vertical position of the traffic light buttons in frameless\n windows. The buttons will be positioned halfway down the titlebar at a\n height of |titlebar_height| / 2.\n"]
17195    pub get_titlebar_height: ::std::option::Option<
17196        unsafe extern "C" fn(
17197            self_: *mut _cef_window_delegate_t,
17198            window: *mut _cef_window_t,
17199            titlebar_height: *mut f32,
17200        ) -> ::std::os::raw::c_int,
17201    >,
17202    #[doc = "\n Return whether the view should accept the initial mouse-down event,\n allowing it to respond to click-through behavior. If STATE_ENABLED is\n returned, the view will be sent a mouseDown: message for an initial mouse-\n down event, activating the view with one click, instead of clicking first\n to make the window active and then clicking the view.\n\n This function is only supported on macOS. For more details, refer to the\n documentation of acceptsFirstMouse.\n"]
17203    pub accepts_first_mouse: ::std::option::Option<
17204        unsafe extern "C" fn(
17205            self_: *mut _cef_window_delegate_t,
17206            window: *mut _cef_window_t,
17207        ) -> cef_state_t,
17208    >,
17209    #[doc = "\n Return true (1) if |window| can be resized.\n"]
17210    pub can_resize: ::std::option::Option<
17211        unsafe extern "C" fn(
17212            self_: *mut _cef_window_delegate_t,
17213            window: *mut _cef_window_t,
17214        ) -> ::std::os::raw::c_int,
17215    >,
17216    #[doc = "\n Return true (1) if |window| can be maximized.\n"]
17217    pub can_maximize: ::std::option::Option<
17218        unsafe extern "C" fn(
17219            self_: *mut _cef_window_delegate_t,
17220            window: *mut _cef_window_t,
17221        ) -> ::std::os::raw::c_int,
17222    >,
17223    #[doc = "\n Return true (1) if |window| can be minimized.\n"]
17224    pub can_minimize: ::std::option::Option<
17225        unsafe extern "C" fn(
17226            self_: *mut _cef_window_delegate_t,
17227            window: *mut _cef_window_t,
17228        ) -> ::std::os::raw::c_int,
17229    >,
17230    #[doc = "\n Return true (1) if |window| can be closed. This will be called for user-\n initiated window close actions and when cef_window_t::close() is called.\n"]
17231    pub can_close: ::std::option::Option<
17232        unsafe extern "C" fn(
17233            self_: *mut _cef_window_delegate_t,
17234            window: *mut _cef_window_t,
17235        ) -> ::std::os::raw::c_int,
17236    >,
17237    #[doc = "\n Called when a keyboard accelerator registered with\n cef_window_t::SetAccelerator is triggered. Return true (1) if the\n accelerator was handled or false (0) otherwise.\n"]
17238    pub on_accelerator: ::std::option::Option<
17239        unsafe extern "C" fn(
17240            self_: *mut _cef_window_delegate_t,
17241            window: *mut _cef_window_t,
17242            command_id: ::std::os::raw::c_int,
17243        ) -> ::std::os::raw::c_int,
17244    >,
17245    #[doc = "\n Called after all other controls in the window have had a chance to handle\n the event. |event| contains information about the keyboard event. Return\n true (1) if the keyboard event was handled or false (0) otherwise.\n"]
17246    pub on_key_event: ::std::option::Option<
17247        unsafe extern "C" fn(
17248            self_: *mut _cef_window_delegate_t,
17249            window: *mut _cef_window_t,
17250            event: *const cef_key_event_t,
17251        ) -> ::std::os::raw::c_int,
17252    >,
17253    #[doc = "\n Called after the native/OS or Chrome theme for |window| has changed.\n |chrome_theme| will be true (1) if the notification is for a Chrome theme.\n\n Native/OS theme colors are configured globally and do not need to be\n customized for each Window individually. An example of a native/OS theme\n change that triggers this callback is when the user switches between dark\n and light mode during application lifespan. Native/OS theme changes can be\n disabled by passing the `--force-dark-mode` or `--force-light-mode`\n command-line flag.\n\n Chrome theme colors will be applied and this callback will be triggered\n if/when a BrowserView is added to the Window's component hierarchy. Chrome\n theme colors can be configured on a per-RequestContext basis using\n cef_request_context_t::SetChromeColorScheme or (Chrome style only) by\n visiting chrome://settings/manageProfile. Any theme changes using those\n mechanisms will also trigger this callback. Chrome theme colors will be\n persisted and restored from disk cache.\n\n This callback is not triggered on Window creation so clients that wish to\n customize the initial native/OS theme must call\n cef_window_t::SetThemeColor and cef_window_t::ThemeChanged before showing\n the first Window.\n\n Theme colors will be reset to standard values before this callback is\n called for the first affected Window. Call cef_window_t::SetThemeColor\n from inside this callback to override a standard color or add a custom\n color. cef_view_delegate_t::OnThemeChanged will be called after this\n callback for the complete |window| component hierarchy.\n"]
17254    pub on_theme_colors_changed: ::std::option::Option<
17255        unsafe extern "C" fn(
17256            self_: *mut _cef_window_delegate_t,
17257            window: *mut _cef_window_t,
17258            chrome_theme: ::std::os::raw::c_int,
17259        ),
17260    >,
17261    #[doc = "\n Optionally change the runtime style for this Window. See\n cef_runtime_style_t documentation for details.\n"]
17262    pub get_window_runtime_style: ::std::option::Option<
17263        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t) -> cef_runtime_style_t,
17264    >,
17265    #[doc = "\n Return Linux-specific window properties for correctly handling by window\n managers\n"]
17266    pub get_linux_window_properties: ::std::option::Option<
17267        unsafe extern "C" fn(
17268            self_: *mut _cef_window_delegate_t,
17269            window: *mut _cef_window_t,
17270            properties: *mut _cef_linux_window_properties_t,
17271        ) -> ::std::os::raw::c_int,
17272    >,
17273}
17274#[allow(clippy::unnecessary_operation, clippy::identity_op)]
17275const _: () = {
17276    ["Size of _cef_window_delegate_t"][::std::mem::size_of::<_cef_window_delegate_t>() - 312usize];
17277    ["Alignment of _cef_window_delegate_t"]
17278        [::std::mem::align_of::<_cef_window_delegate_t>() - 8usize];
17279    ["Offset of field: _cef_window_delegate_t::base"]
17280        [::std::mem::offset_of!(_cef_window_delegate_t, base) - 0usize];
17281    ["Offset of field: _cef_window_delegate_t::on_window_created"]
17282        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_created) - 128usize];
17283    ["Offset of field: _cef_window_delegate_t::on_window_closing"]
17284        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_closing) - 136usize];
17285    ["Offset of field: _cef_window_delegate_t::on_window_destroyed"]
17286        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_destroyed) - 144usize];
17287    ["Offset of field: _cef_window_delegate_t::on_window_activation_changed"]
17288        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_activation_changed) - 152usize];
17289    ["Offset of field: _cef_window_delegate_t::on_window_bounds_changed"]
17290        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_bounds_changed) - 160usize];
17291    ["Offset of field: _cef_window_delegate_t::on_window_fullscreen_transition"][::std::mem::offset_of!(
17292        _cef_window_delegate_t,
17293        on_window_fullscreen_transition
17294    ) - 168usize];
17295    ["Offset of field: _cef_window_delegate_t::get_parent_window"]
17296        [::std::mem::offset_of!(_cef_window_delegate_t, get_parent_window) - 176usize];
17297    ["Offset of field: _cef_window_delegate_t::is_window_modal_dialog"]
17298        [::std::mem::offset_of!(_cef_window_delegate_t, is_window_modal_dialog) - 184usize];
17299    ["Offset of field: _cef_window_delegate_t::get_initial_bounds"]
17300        [::std::mem::offset_of!(_cef_window_delegate_t, get_initial_bounds) - 192usize];
17301    ["Offset of field: _cef_window_delegate_t::get_initial_show_state"]
17302        [::std::mem::offset_of!(_cef_window_delegate_t, get_initial_show_state) - 200usize];
17303    ["Offset of field: _cef_window_delegate_t::is_frameless"]
17304        [::std::mem::offset_of!(_cef_window_delegate_t, is_frameless) - 208usize];
17305    ["Offset of field: _cef_window_delegate_t::with_standard_window_buttons"]
17306        [::std::mem::offset_of!(_cef_window_delegate_t, with_standard_window_buttons) - 216usize];
17307    ["Offset of field: _cef_window_delegate_t::get_titlebar_height"]
17308        [::std::mem::offset_of!(_cef_window_delegate_t, get_titlebar_height) - 224usize];
17309    ["Offset of field: _cef_window_delegate_t::accepts_first_mouse"]
17310        [::std::mem::offset_of!(_cef_window_delegate_t, accepts_first_mouse) - 232usize];
17311    ["Offset of field: _cef_window_delegate_t::can_resize"]
17312        [::std::mem::offset_of!(_cef_window_delegate_t, can_resize) - 240usize];
17313    ["Offset of field: _cef_window_delegate_t::can_maximize"]
17314        [::std::mem::offset_of!(_cef_window_delegate_t, can_maximize) - 248usize];
17315    ["Offset of field: _cef_window_delegate_t::can_minimize"]
17316        [::std::mem::offset_of!(_cef_window_delegate_t, can_minimize) - 256usize];
17317    ["Offset of field: _cef_window_delegate_t::can_close"]
17318        [::std::mem::offset_of!(_cef_window_delegate_t, can_close) - 264usize];
17319    ["Offset of field: _cef_window_delegate_t::on_accelerator"]
17320        [::std::mem::offset_of!(_cef_window_delegate_t, on_accelerator) - 272usize];
17321    ["Offset of field: _cef_window_delegate_t::on_key_event"]
17322        [::std::mem::offset_of!(_cef_window_delegate_t, on_key_event) - 280usize];
17323    ["Offset of field: _cef_window_delegate_t::on_theme_colors_changed"]
17324        [::std::mem::offset_of!(_cef_window_delegate_t, on_theme_colors_changed) - 288usize];
17325    ["Offset of field: _cef_window_delegate_t::get_window_runtime_style"]
17326        [::std::mem::offset_of!(_cef_window_delegate_t, get_window_runtime_style) - 296usize];
17327    ["Offset of field: _cef_window_delegate_t::get_linux_window_properties"]
17328        [::std::mem::offset_of!(_cef_window_delegate_t, get_linux_window_properties) - 304usize];
17329};
17330#[doc = "\n Implement this structure to handle window events. The functions of this\n structure will be called on the browser process UI thread unless otherwise\n indicated.\n\n NOTE: This struct is allocated client-side.\n"]
17331pub type cef_window_delegate_t = _cef_window_delegate_t;
17332#[doc = "\n A Window is a top-level Window/widget in the Views hierarchy. By default it\n will have a non-client area with title bar, icon and buttons that supports\n moving and resizing. All size and position values are in density independent\n pixels (DIP) unless otherwise indicated. Methods must be called on the\n browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
17333#[repr(C)]
17334#[derive(Debug, Copy, Clone)]
17335pub struct _cef_window_t {
17336    #[doc = "\n Base structure.\n"]
17337    pub base: cef_panel_t,
17338    #[doc = "\n Show the Window.\n"]
17339    pub show: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17340    #[doc = "\n Show the Window as a browser modal dialog relative to |browser_view|. A\n parent Window must be returned via\n cef_window_delegate_t::get_parent_window() and |browser_view| must belong\n to that parent Window. While this Window is visible, |browser_view| will\n be disabled while other controls in the parent Window remain enabled.\n Navigating or destroying the |browser_view| will close this Window\n automatically. Alternately, use show() and return true (1) from\n cef_window_delegate_t::is_window_modal_dialog() for a window modal dialog\n where all controls in the parent Window are disabled.\n"]
17341    pub show_as_browser_modal_dialog: ::std::option::Option<
17342        unsafe extern "C" fn(self_: *mut _cef_window_t, browser_view: *mut _cef_browser_view_t),
17343    >,
17344    #[doc = "\n Hide the Window.\n"]
17345    pub hide: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17346    #[doc = "\n Sizes the Window to |size| and centers it in the current display.\n"]
17347    pub center_window: ::std::option::Option<
17348        unsafe extern "C" fn(self_: *mut _cef_window_t, size: *const cef_size_t),
17349    >,
17350    #[doc = "\n Close the Window.\n"]
17351    pub close: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17352    #[doc = "\n Returns true (1) if the Window has been closed.\n"]
17353    pub is_closed: ::std::option::Option<
17354        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17355    >,
17356    #[doc = "\n Activate the Window, assuming it already exists and is visible.\n"]
17357    pub activate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17358    #[doc = "\n Deactivate the Window, making the next Window in the Z order the active\n Window.\n"]
17359    pub deactivate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17360    #[doc = "\n Returns whether the Window is the currently active Window.\n"]
17361    pub is_active: ::std::option::Option<
17362        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17363    >,
17364    #[doc = "\n Bring this Window to the top of other Windows in the Windowing system.\n"]
17365    pub bring_to_top: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17366    #[doc = "\n Set the Window to be on top of other Windows in the Windowing system.\n"]
17367    pub set_always_on_top: ::std::option::Option<
17368        unsafe extern "C" fn(self_: *mut _cef_window_t, on_top: ::std::os::raw::c_int),
17369    >,
17370    #[doc = "\n Returns whether the Window has been set to be on top of other Windows in\n the Windowing system.\n"]
17371    pub is_always_on_top: ::std::option::Option<
17372        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17373    >,
17374    #[doc = "\n Maximize the Window.\n"]
17375    pub maximize: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17376    #[doc = "\n Minimize the Window.\n"]
17377    pub minimize: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17378    #[doc = "\n Restore the Window.\n"]
17379    pub restore: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17380    #[doc = "\n Set fullscreen Window state. The\n cef_window_delegate_t::OnWindowFullscreenTransition function will be\n called during the fullscreen transition for notification purposes.\n"]
17381    pub set_fullscreen: ::std::option::Option<
17382        unsafe extern "C" fn(self_: *mut _cef_window_t, fullscreen: ::std::os::raw::c_int),
17383    >,
17384    #[doc = "\n Returns true (1) if the Window is maximized.\n"]
17385    pub is_maximized: ::std::option::Option<
17386        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17387    >,
17388    #[doc = "\n Returns true (1) if the Window is minimized.\n"]
17389    pub is_minimized: ::std::option::Option<
17390        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17391    >,
17392    #[doc = "\n Returns true (1) if the Window is fullscreen.\n"]
17393    pub is_fullscreen: ::std::option::Option<
17394        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
17395    >,
17396    #[doc = "\n Returns the View that currently has focus in this Window, or nullptr if no\n View currently has focus. A Window may have a focused View even if it is\n not currently active. Any focus changes while a Window is not active may\n be applied after that Window next becomes active.\n"]
17397    pub get_focused_view:
17398        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_view_t>,
17399    #[doc = "\n Set the Window title.\n"]
17400    pub set_title: ::std::option::Option<
17401        unsafe extern "C" fn(self_: *mut _cef_window_t, title: *const cef_string_t),
17402    >,
17403    #[doc = "\n Get the Window title.\n"]
17404    pub get_title: ::std::option::Option<
17405        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_string_userfree_t,
17406    >,
17407    #[doc = "\n Set the Window icon. This should be a 16x16 icon suitable for use in the\n Windows's title bar.\n"]
17408    pub set_window_icon: ::std::option::Option<
17409        unsafe extern "C" fn(self_: *mut _cef_window_t, image: *mut _cef_image_t),
17410    >,
17411    #[doc = "\n Get the Window icon.\n"]
17412    pub get_window_icon:
17413        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_image_t>,
17414    #[doc = "\n Set the Window App icon. This should be a larger icon for use in the host\n environment app switching UI. On Windows, this is the ICON_BIG used in\n Alt-Tab list and Windows taskbar. The Window icon will be used by default\n if no Window App icon is specified.\n"]
17415    pub set_window_app_icon: ::std::option::Option<
17416        unsafe extern "C" fn(self_: *mut _cef_window_t, image: *mut _cef_image_t),
17417    >,
17418    #[doc = "\n Get the Window App icon.\n"]
17419    pub get_window_app_icon:
17420        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_image_t>,
17421    #[doc = "\n Add a View that will be overlayed on the Window contents with absolute\n positioning and high z-order. Positioning is controlled by |docking_mode|\n as described below. Setting |can_activate| to true (1) will allow the\n overlay view to receive input focus. The returned cef_overlay_controller_t\n object is used to control the overlay. Overlays are hidden by default.\n\n With CEF_DOCKING_MODE_CUSTOM:\n   1. The overlay is initially hidden, sized to |view|'s preferred size,\n      and positioned in the top-left corner.\n   2. Optionally change the overlay position and/or size by calling\n      CefOverlayController methods.\n   3. Call CefOverlayController::SetVisible(true) to show the overlay.\n   4. The overlay will be automatically re-sized if |view|'s layout\n      changes. Optionally change the overlay position and/or size when\n      OnLayoutChanged is called on the Window's delegate to indicate a\n      change in Window bounds.\n\n With other docking modes:\n   1. The overlay is initially hidden, sized to |view|'s preferred size,\n      and positioned based on |docking_mode|.\n   2. Call CefOverlayController::SetVisible(true) to show the overlay.\n   3. The overlay will be automatically re-sized if |view|'s layout changes\n      and re-positioned as appropriate when the Window resizes.\n\n Overlays created by this function will receive a higher z-order then any\n child Views added previously. It is therefore recommended to call this\n function last after all other child Views have been added so that the\n overlay displays as the top-most child of the Window.\n"]
17422    pub add_overlay_view: ::std::option::Option<
17423        unsafe extern "C" fn(
17424            self_: *mut _cef_window_t,
17425            view: *mut _cef_view_t,
17426            docking_mode: cef_docking_mode_t,
17427            can_activate: ::std::os::raw::c_int,
17428        ) -> *mut _cef_overlay_controller_t,
17429    >,
17430    #[doc = "\n Show a menu with contents |menu_model|. |screen_point| specifies the menu\n position in screen coordinates. |anchor_position| specifies how the menu\n will be anchored relative to |screen_point|.\n"]
17431    pub show_menu: ::std::option::Option<
17432        unsafe extern "C" fn(
17433            self_: *mut _cef_window_t,
17434            menu_model: *mut _cef_menu_model_t,
17435            screen_point: *const cef_point_t,
17436            anchor_position: cef_menu_anchor_position_t,
17437        ),
17438    >,
17439    #[doc = "\n Cancel the menu that is currently showing, if any.\n"]
17440    pub cancel_menu: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17441    #[doc = "\n Returns the Display that most closely intersects the bounds of this\n Window. May return NULL if this Window is not currently displayed.\n"]
17442    pub get_display: ::std::option::Option<
17443        unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_display_t,
17444    >,
17445    #[doc = "\n Returns the bounds (size and position) of this Window's client area.\n Position is in screen coordinates.\n"]
17446    pub get_client_area_bounds_in_screen:
17447        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_rect_t>,
17448    #[doc = "\n Set the regions where mouse events will be intercepted by this Window to\n support drag operations. Call this function with an NULL vector to clear\n the draggable regions. The draggable region bounds should be in window\n coordinates.\n"]
17449    pub set_draggable_regions: ::std::option::Option<
17450        unsafe extern "C" fn(
17451            self_: *mut _cef_window_t,
17452            regionsCount: usize,
17453            regions: *const cef_draggable_region_t,
17454        ),
17455    >,
17456    #[doc = "\n Retrieve the platform window handle for this Window.\n"]
17457    pub get_window_handle: ::std::option::Option<
17458        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_window_handle_t,
17459    >,
17460    #[doc = "\n Simulate a key press. |key_code| is the VKEY_* value from Chromium's\n ui/events/keycodes/keyboard_codes.h header (VK_* values on Windows).\n |event_flags| is some combination of EVENTFLAG_SHIFT_DOWN,\n EVENTFLAG_CONTROL_DOWN and/or EVENTFLAG_ALT_DOWN. This function is exposed\n primarily for testing purposes.\n"]
17461    pub send_key_press: ::std::option::Option<
17462        unsafe extern "C" fn(
17463            self_: *mut _cef_window_t,
17464            key_code: ::std::os::raw::c_int,
17465            event_flags: u32,
17466        ),
17467    >,
17468    #[doc = "\n Simulate a mouse move. The mouse cursor will be moved to the specified\n (screen_x, screen_y) position. This function is exposed primarily for\n testing purposes.\n"]
17469    pub send_mouse_move: ::std::option::Option<
17470        unsafe extern "C" fn(
17471            self_: *mut _cef_window_t,
17472            screen_x: ::std::os::raw::c_int,
17473            screen_y: ::std::os::raw::c_int,
17474        ),
17475    >,
17476    #[doc = "\n Simulate mouse down and/or mouse up events. |button| is the mouse button\n type. If |mouse_down| is true (1) a mouse down event will be sent. If\n |mouse_up| is true (1) a mouse up event will be sent. If both are true (1)\n a mouse down event will be sent followed by a mouse up event (equivalent\n to clicking the mouse button). The events will be sent using the current\n cursor position so make sure to call send_mouse_move() first to position\n the mouse. This function is exposed primarily for testing purposes.\n"]
17477    pub send_mouse_events: ::std::option::Option<
17478        unsafe extern "C" fn(
17479            self_: *mut _cef_window_t,
17480            button: cef_mouse_button_type_t,
17481            mouse_down: ::std::os::raw::c_int,
17482            mouse_up: ::std::os::raw::c_int,
17483        ),
17484    >,
17485    #[doc = "\n Set the keyboard accelerator for the specified |command_id|. |key_code|\n can be any virtual key or character value. Required modifier keys are\n specified by |shift_pressed|, |ctrl_pressed| and/or |alt_pressed|.\n cef_window_delegate_t::OnAccelerator will be called if the keyboard\n combination is triggered while this window has focus.\n\n The |high_priority| value will be considered if a child cef_browser_view_t\n has focus when the keyboard combination is triggered. If |high_priority|\n is true (1) then the key event will not be forwarded to the web content\n (`keydown` event handler) or cef_keyboard_handler_t first. If\n |high_priority| is false (0) then the behavior will depend on the\n cef_browser_view_t::SetPreferAccelerators configuration.\n"]
17486    pub set_accelerator: ::std::option::Option<
17487        unsafe extern "C" fn(
17488            self_: *mut _cef_window_t,
17489            command_id: ::std::os::raw::c_int,
17490            key_code: ::std::os::raw::c_int,
17491            shift_pressed: ::std::os::raw::c_int,
17492            ctrl_pressed: ::std::os::raw::c_int,
17493            alt_pressed: ::std::os::raw::c_int,
17494            high_priority: ::std::os::raw::c_int,
17495        ),
17496    >,
17497    #[doc = "\n Remove the keyboard accelerator for the specified |command_id|.\n"]
17498    pub remove_accelerator: ::std::option::Option<
17499        unsafe extern "C" fn(self_: *mut _cef_window_t, command_id: ::std::os::raw::c_int),
17500    >,
17501    #[doc = "\n Remove all keyboard accelerators.\n"]
17502    pub remove_all_accelerators:
17503        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17504    #[doc = "\n Override a standard theme color or add a custom color associated with\n |color_id|. See cef_color_ids.h for standard ID values. Recommended usage\n is as follows:\n\n 1. Customize the default native/OS theme by calling SetThemeColor before\n    showing the first Window. When done setting colors call\n    CefWindow::ThemeChanged to trigger CefViewDelegate::OnThemeChanged\n    notifications.\n 2. Customize the current native/OS or Chrome theme after it changes by\n    calling SetThemeColor from the CefWindowDelegate::OnThemeColorsChanged\n    callback. CefViewDelegate::OnThemeChanged notifications will then be\n    triggered automatically.\n\n The configured color will be available immediately via\n cef_view_t::GetThemeColor and will be applied to each View in this\n Window's component hierarchy when cef_view_delegate_t::OnThemeChanged is\n called. See OnThemeColorsChanged documentation for additional details.\n\n Clients wishing to add custom colors should use |color_id| values >=\n CEF_ChromeColorsEnd.\n"]
17505    pub set_theme_color: ::std::option::Option<
17506        unsafe extern "C" fn(
17507            self_: *mut _cef_window_t,
17508            color_id: ::std::os::raw::c_int,
17509            color: cef_color_t,
17510        ),
17511    >,
17512    #[doc = "\n Trigger cef_view_delegate_t::OnThemeChanged callbacks for each View in\n this Window's component hierarchy. Unlike a native/OS or Chrome theme\n change this function does not reset theme colors to standard values and\n does not result in a call to cef_window_delegate_t::OnThemeColorsChanged.\n\n Do not call this function from cef_window_delegate_t::OnThemeColorsChanged\n or cef_view_delegate_t::OnThemeChanged.\n"]
17513    pub theme_changed: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
17514    #[doc = "\n Returns the runtime style for this Window (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
17515    pub get_runtime_style: ::std::option::Option<
17516        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_runtime_style_t,
17517    >,
17518}
17519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
17520const _: () = {
17521    ["Size of _cef_window_t"][::std::mem::size_of::<_cef_window_t>() - 888usize];
17522    ["Alignment of _cef_window_t"][::std::mem::align_of::<_cef_window_t>() - 8usize];
17523    ["Offset of field: _cef_window_t::base"][::std::mem::offset_of!(_cef_window_t, base) - 0usize];
17524    ["Offset of field: _cef_window_t::show"]
17525        [::std::mem::offset_of!(_cef_window_t, show) - 552usize];
17526    ["Offset of field: _cef_window_t::show_as_browser_modal_dialog"]
17527        [::std::mem::offset_of!(_cef_window_t, show_as_browser_modal_dialog) - 560usize];
17528    ["Offset of field: _cef_window_t::hide"]
17529        [::std::mem::offset_of!(_cef_window_t, hide) - 568usize];
17530    ["Offset of field: _cef_window_t::center_window"]
17531        [::std::mem::offset_of!(_cef_window_t, center_window) - 576usize];
17532    ["Offset of field: _cef_window_t::close"]
17533        [::std::mem::offset_of!(_cef_window_t, close) - 584usize];
17534    ["Offset of field: _cef_window_t::is_closed"]
17535        [::std::mem::offset_of!(_cef_window_t, is_closed) - 592usize];
17536    ["Offset of field: _cef_window_t::activate"]
17537        [::std::mem::offset_of!(_cef_window_t, activate) - 600usize];
17538    ["Offset of field: _cef_window_t::deactivate"]
17539        [::std::mem::offset_of!(_cef_window_t, deactivate) - 608usize];
17540    ["Offset of field: _cef_window_t::is_active"]
17541        [::std::mem::offset_of!(_cef_window_t, is_active) - 616usize];
17542    ["Offset of field: _cef_window_t::bring_to_top"]
17543        [::std::mem::offset_of!(_cef_window_t, bring_to_top) - 624usize];
17544    ["Offset of field: _cef_window_t::set_always_on_top"]
17545        [::std::mem::offset_of!(_cef_window_t, set_always_on_top) - 632usize];
17546    ["Offset of field: _cef_window_t::is_always_on_top"]
17547        [::std::mem::offset_of!(_cef_window_t, is_always_on_top) - 640usize];
17548    ["Offset of field: _cef_window_t::maximize"]
17549        [::std::mem::offset_of!(_cef_window_t, maximize) - 648usize];
17550    ["Offset of field: _cef_window_t::minimize"]
17551        [::std::mem::offset_of!(_cef_window_t, minimize) - 656usize];
17552    ["Offset of field: _cef_window_t::restore"]
17553        [::std::mem::offset_of!(_cef_window_t, restore) - 664usize];
17554    ["Offset of field: _cef_window_t::set_fullscreen"]
17555        [::std::mem::offset_of!(_cef_window_t, set_fullscreen) - 672usize];
17556    ["Offset of field: _cef_window_t::is_maximized"]
17557        [::std::mem::offset_of!(_cef_window_t, is_maximized) - 680usize];
17558    ["Offset of field: _cef_window_t::is_minimized"]
17559        [::std::mem::offset_of!(_cef_window_t, is_minimized) - 688usize];
17560    ["Offset of field: _cef_window_t::is_fullscreen"]
17561        [::std::mem::offset_of!(_cef_window_t, is_fullscreen) - 696usize];
17562    ["Offset of field: _cef_window_t::get_focused_view"]
17563        [::std::mem::offset_of!(_cef_window_t, get_focused_view) - 704usize];
17564    ["Offset of field: _cef_window_t::set_title"]
17565        [::std::mem::offset_of!(_cef_window_t, set_title) - 712usize];
17566    ["Offset of field: _cef_window_t::get_title"]
17567        [::std::mem::offset_of!(_cef_window_t, get_title) - 720usize];
17568    ["Offset of field: _cef_window_t::set_window_icon"]
17569        [::std::mem::offset_of!(_cef_window_t, set_window_icon) - 728usize];
17570    ["Offset of field: _cef_window_t::get_window_icon"]
17571        [::std::mem::offset_of!(_cef_window_t, get_window_icon) - 736usize];
17572    ["Offset of field: _cef_window_t::set_window_app_icon"]
17573        [::std::mem::offset_of!(_cef_window_t, set_window_app_icon) - 744usize];
17574    ["Offset of field: _cef_window_t::get_window_app_icon"]
17575        [::std::mem::offset_of!(_cef_window_t, get_window_app_icon) - 752usize];
17576    ["Offset of field: _cef_window_t::add_overlay_view"]
17577        [::std::mem::offset_of!(_cef_window_t, add_overlay_view) - 760usize];
17578    ["Offset of field: _cef_window_t::show_menu"]
17579        [::std::mem::offset_of!(_cef_window_t, show_menu) - 768usize];
17580    ["Offset of field: _cef_window_t::cancel_menu"]
17581        [::std::mem::offset_of!(_cef_window_t, cancel_menu) - 776usize];
17582    ["Offset of field: _cef_window_t::get_display"]
17583        [::std::mem::offset_of!(_cef_window_t, get_display) - 784usize];
17584    ["Offset of field: _cef_window_t::get_client_area_bounds_in_screen"]
17585        [::std::mem::offset_of!(_cef_window_t, get_client_area_bounds_in_screen) - 792usize];
17586    ["Offset of field: _cef_window_t::set_draggable_regions"]
17587        [::std::mem::offset_of!(_cef_window_t, set_draggable_regions) - 800usize];
17588    ["Offset of field: _cef_window_t::get_window_handle"]
17589        [::std::mem::offset_of!(_cef_window_t, get_window_handle) - 808usize];
17590    ["Offset of field: _cef_window_t::send_key_press"]
17591        [::std::mem::offset_of!(_cef_window_t, send_key_press) - 816usize];
17592    ["Offset of field: _cef_window_t::send_mouse_move"]
17593        [::std::mem::offset_of!(_cef_window_t, send_mouse_move) - 824usize];
17594    ["Offset of field: _cef_window_t::send_mouse_events"]
17595        [::std::mem::offset_of!(_cef_window_t, send_mouse_events) - 832usize];
17596    ["Offset of field: _cef_window_t::set_accelerator"]
17597        [::std::mem::offset_of!(_cef_window_t, set_accelerator) - 840usize];
17598    ["Offset of field: _cef_window_t::remove_accelerator"]
17599        [::std::mem::offset_of!(_cef_window_t, remove_accelerator) - 848usize];
17600    ["Offset of field: _cef_window_t::remove_all_accelerators"]
17601        [::std::mem::offset_of!(_cef_window_t, remove_all_accelerators) - 856usize];
17602    ["Offset of field: _cef_window_t::set_theme_color"]
17603        [::std::mem::offset_of!(_cef_window_t, set_theme_color) - 864usize];
17604    ["Offset of field: _cef_window_t::theme_changed"]
17605        [::std::mem::offset_of!(_cef_window_t, theme_changed) - 872usize];
17606    ["Offset of field: _cef_window_t::get_runtime_style"]
17607        [::std::mem::offset_of!(_cef_window_t, get_runtime_style) - 880usize];
17608};
17609#[doc = "\n A Window is a top-level Window/widget in the Views hierarchy. By default it\n will have a non-client area with title bar, icon and buttons that supports\n moving and resizing. All size and position values are in density independent\n pixels (DIP) unless otherwise indicated. Methods must be called on the\n browser process UI thread unless otherwise indicated.\n\n NOTE: This struct is allocated DLL-side.\n"]
17610pub type cef_window_t = _cef_window_t;
17611unsafe extern "C" {
17612    #[doc = "\n Create a new Window.\n"]
17613    pub fn cef_window_create_top_level(delegate: *mut _cef_window_delegate_t) -> *mut cef_window_t;
17614}
17615impl cef_color_id_t {
17616    pub const CEF_ColorRefPrimary0: cef_color_id_t = cef_color_id_t::CEF_UiColorsStart;
17617}
17618impl cef_color_id_t {
17619    pub const CEF_ComponentsColorsStart: cef_color_id_t = cef_color_id_t::CEF_UiColorsEnd;
17620}
17621impl cef_color_id_t {
17622    pub const CEF_ChromeColorsStart: cef_color_id_t = cef_color_id_t::CEF_ComponentsColorsEnd;
17623}
17624impl cef_color_id_t {
17625    pub const CEF_ColorAppMenuHighlightSeverityLow: cef_color_id_t =
17626        cef_color_id_t::CEF_ComponentsColorsEnd;
17627}
17628#[repr(u32)]
17629#[non_exhaustive]
17630#[doc = "\n All input, intermediary, and output colors known to CEF/Chromium.\n Clients can optionally extend this enum with additional values.\n Clients define enum values from CEF_ChromeColorsEnd. Values named\n beginning with \"CEF_Color\" represent the actual colors; the rest are\n markers.\n"]
17631#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
17632pub enum cef_color_id_t {
17633    CEF_UiColorsStart = 0,
17634    CEF_ColorRefPrimary10 = 1,
17635    CEF_ColorRefPrimary20 = 2,
17636    CEF_ColorRefPrimary25 = 3,
17637    CEF_ColorRefPrimary30 = 4,
17638    CEF_ColorRefPrimary40 = 5,
17639    CEF_ColorRefPrimary50 = 6,
17640    CEF_ColorRefPrimary60 = 7,
17641    CEF_ColorRefPrimary70 = 8,
17642    CEF_ColorRefPrimary80 = 9,
17643    CEF_ColorRefPrimary90 = 10,
17644    CEF_ColorRefPrimary95 = 11,
17645    CEF_ColorRefPrimary99 = 12,
17646    CEF_ColorRefPrimary100 = 13,
17647    CEF_ColorRefSecondary0 = 14,
17648    CEF_ColorRefSecondary10 = 15,
17649    CEF_ColorRefSecondary12 = 16,
17650    CEF_ColorRefSecondary15 = 17,
17651    CEF_ColorRefSecondary20 = 18,
17652    CEF_ColorRefSecondary25 = 19,
17653    CEF_ColorRefSecondary30 = 20,
17654    CEF_ColorRefSecondary35 = 21,
17655    CEF_ColorRefSecondary40 = 22,
17656    CEF_ColorRefSecondary50 = 23,
17657    CEF_ColorRefSecondary60 = 24,
17658    CEF_ColorRefSecondary70 = 25,
17659    CEF_ColorRefSecondary80 = 26,
17660    CEF_ColorRefSecondary90 = 27,
17661    CEF_ColorRefSecondary95 = 28,
17662    CEF_ColorRefSecondary99 = 29,
17663    CEF_ColorRefSecondary100 = 30,
17664    CEF_ColorRefTertiary0 = 31,
17665    CEF_ColorRefTertiary10 = 32,
17666    CEF_ColorRefTertiary20 = 33,
17667    CEF_ColorRefTertiary30 = 34,
17668    CEF_ColorRefTertiary40 = 35,
17669    CEF_ColorRefTertiary50 = 36,
17670    CEF_ColorRefTertiary60 = 37,
17671    CEF_ColorRefTertiary70 = 38,
17672    CEF_ColorRefTertiary80 = 39,
17673    CEF_ColorRefTertiary90 = 40,
17674    CEF_ColorRefTertiary95 = 41,
17675    CEF_ColorRefTertiary99 = 42,
17676    CEF_ColorRefTertiary100 = 43,
17677    CEF_ColorRefError0 = 44,
17678    CEF_ColorRefError10 = 45,
17679    CEF_ColorRefError20 = 46,
17680    CEF_ColorRefError30 = 47,
17681    CEF_ColorRefError40 = 48,
17682    CEF_ColorRefError50 = 49,
17683    CEF_ColorRefError60 = 50,
17684    CEF_ColorRefError70 = 51,
17685    CEF_ColorRefError80 = 52,
17686    CEF_ColorRefError90 = 53,
17687    CEF_ColorRefError95 = 54,
17688    CEF_ColorRefError99 = 55,
17689    CEF_ColorRefError100 = 56,
17690    CEF_ColorRefNeutral0 = 57,
17691    CEF_ColorRefNeutral4 = 58,
17692    CEF_ColorRefNeutral6 = 59,
17693    CEF_ColorRefNeutral8 = 60,
17694    CEF_ColorRefNeutral10 = 61,
17695    CEF_ColorRefNeutral12 = 62,
17696    CEF_ColorRefNeutral15 = 63,
17697    CEF_ColorRefNeutral17 = 64,
17698    CEF_ColorRefNeutral20 = 65,
17699    CEF_ColorRefNeutral22 = 66,
17700    CEF_ColorRefNeutral24 = 67,
17701    CEF_ColorRefNeutral25 = 68,
17702    CEF_ColorRefNeutral30 = 69,
17703    CEF_ColorRefNeutral40 = 70,
17704    CEF_ColorRefNeutral50 = 71,
17705    CEF_ColorRefNeutral60 = 72,
17706    CEF_ColorRefNeutral70 = 73,
17707    CEF_ColorRefNeutral80 = 74,
17708    CEF_ColorRefNeutral87 = 75,
17709    CEF_ColorRefNeutral90 = 76,
17710    CEF_ColorRefNeutral92 = 77,
17711    CEF_ColorRefNeutral94 = 78,
17712    CEF_ColorRefNeutral95 = 79,
17713    CEF_ColorRefNeutral96 = 80,
17714    CEF_ColorRefNeutral98 = 81,
17715    CEF_ColorRefNeutral99 = 82,
17716    CEF_ColorRefNeutral100 = 83,
17717    CEF_ColorRefNeutralVariant0 = 84,
17718    CEF_ColorRefNeutralVariant10 = 85,
17719    CEF_ColorRefNeutralVariant15 = 86,
17720    CEF_ColorRefNeutralVariant20 = 87,
17721    CEF_ColorRefNeutralVariant30 = 88,
17722    CEF_ColorRefNeutralVariant40 = 89,
17723    CEF_ColorRefNeutralVariant50 = 90,
17724    CEF_ColorRefNeutralVariant60 = 91,
17725    CEF_ColorRefNeutralVariant70 = 92,
17726    CEF_ColorRefNeutralVariant80 = 93,
17727    CEF_ColorRefNeutralVariant90 = 94,
17728    CEF_ColorRefNeutralVariant95 = 95,
17729    CEF_ColorRefNeutralVariant99 = 96,
17730    CEF_ColorRefNeutralVariant100 = 97,
17731    CEF_ColorSysPrimary = 98,
17732    CEF_ColorSysOnPrimary = 99,
17733    CEF_ColorSysPrimaryContainer = 100,
17734    CEF_ColorSysOnPrimaryContainer = 101,
17735    CEF_ColorSysSecondary = 102,
17736    CEF_ColorSysOnSecondary = 103,
17737    CEF_ColorSysSecondaryContainer = 104,
17738    CEF_ColorSysOnSecondaryContainer = 105,
17739    CEF_ColorSysTertiary = 106,
17740    CEF_ColorSysOnTertiary = 107,
17741    CEF_ColorSysTertiaryContainer = 108,
17742    CEF_ColorSysOnTertiaryContainer = 109,
17743    CEF_ColorSysError = 110,
17744    CEF_ColorSysOnError = 111,
17745    CEF_ColorSysErrorContainer = 112,
17746    CEF_ColorSysOnErrorContainer = 113,
17747    CEF_ColorSysOnSurface = 114,
17748    CEF_ColorSysOnSurfaceVariant = 115,
17749    CEF_ColorSysOutline = 116,
17750    CEF_ColorSysSurfaceVariant = 117,
17751    CEF_ColorSysBlack = 118,
17752    CEF_ColorSysWhite = 119,
17753    CEF_ColorSysInversePrimary = 120,
17754    CEF_ColorSysInverseOnSurface = 121,
17755    CEF_ColorSysInverseSurface = 122,
17756    CEF_ColorSysInverseSurfacePrimary = 123,
17757    CEF_ColorSysSurface = 124,
17758    CEF_ColorSysSurface1 = 125,
17759    CEF_ColorSysSurface2 = 126,
17760    CEF_ColorSysSurface3 = 127,
17761    CEF_ColorSysSurface4 = 128,
17762    CEF_ColorSysSurface5 = 129,
17763    CEF_ColorSysSurfaceNumberedForeground = 130,
17764    CEF_ColorSysOnSurfaceSecondary = 131,
17765    CEF_ColorSysOnSurfaceSubtle = 132,
17766    CEF_ColorSysOnSurfacePrimary = 133,
17767    CEF_ColorSysOnSurfacePrimaryInactive = 134,
17768    CEF_ColorSysTonalContainer = 135,
17769    CEF_ColorSysOnTonalContainer = 136,
17770    CEF_ColorSysBaseTonalContainer = 137,
17771    CEF_ColorSysOnBaseTonalContainer = 138,
17772    CEF_ColorSysTonalOutline = 139,
17773    CEF_ColorSysNeutralOutline = 140,
17774    CEF_ColorSysNeutralContainer = 141,
17775    CEF_ColorSysDivider = 142,
17776    CEF_ColorSysBase = 143,
17777    CEF_ColorSysBaseContainer = 144,
17778    CEF_ColorSysBaseContainerElevated = 145,
17779    CEF_ColorSysHeader = 146,
17780    CEF_ColorSysHeaderInactive = 147,
17781    CEF_ColorSysHeaderContainer = 148,
17782    CEF_ColorSysHeaderContainerInactive = 149,
17783    CEF_ColorSysOnHeaderDivider = 150,
17784    CEF_ColorSysOnHeaderDividerInactive = 151,
17785    CEF_ColorSysOnHeaderPrimary = 152,
17786    CEF_ColorSysOnHeaderPrimaryInactive = 153,
17787    CEF_ColorSysStateHoverOnProminent = 154,
17788    CEF_ColorSysStateHoverOnSubtle = 155,
17789    CEF_ColorSysStateRippleNeutralOnProminent = 156,
17790    CEF_ColorSysStateRippleNeutralOnSubtle = 157,
17791    CEF_ColorSysStateRipplePrimary = 158,
17792    CEF_ColorSysStateFocusRing = 159,
17793    CEF_ColorSysStateFocusRingInverse = 160,
17794    CEF_ColorSysStateTextHighlight = 161,
17795    CEF_ColorSysStateOnTextHighlight = 162,
17796    CEF_ColorSysStateFocusHighlight = 163,
17797    CEF_ColorSysStateDisabled = 164,
17798    CEF_ColorSysStateDisabledContainer = 165,
17799    CEF_ColorSysStateHoverDimBlendProtection = 166,
17800    CEF_ColorSysStateHoverBrightBlendProtection = 167,
17801    CEF_ColorSysStateInactiveRing = 168,
17802    CEF_ColorSysStateScrim = 169,
17803    CEF_ColorSysStateOnHeaderHover = 170,
17804    CEF_ColorSysStateHeaderHover = 171,
17805    CEF_ColorSysStateHeaderHoverInactive = 172,
17806    CEF_ColorSysStateHeaderSelect = 173,
17807    CEF_ColorSysShadow = 174,
17808    CEF_ColorSysGradientPrimary = 175,
17809    CEF_ColorSysGradientTertiary = 176,
17810    CEF_ColorSysIlloPrimaryMin = 177,
17811    CEF_ColorSysIlloPrimaryLow = 178,
17812    CEF_ColorSysIlloPrimaryMid = 179,
17813    CEF_ColorSysIlloPrimaryHigh = 180,
17814    CEF_ColorSysIlloPrimaryMax = 181,
17815    CEF_ColorSysIlloSecondaryMin = 182,
17816    CEF_ColorSysIlloSecondaryLow = 183,
17817    CEF_ColorSysIlloSecondaryMid = 184,
17818    CEF_ColorSysIlloSecondaryHigh = 185,
17819    CEF_ColorSysIlloSecondaryMax = 186,
17820    CEF_ColorSysIlloTertiaryMin = 187,
17821    CEF_ColorSysIlloTertiaryLow = 188,
17822    CEF_ColorSysIlloTertiaryMid = 189,
17823    CEF_ColorSysIlloTertiaryHigh = 190,
17824    CEF_ColorSysIlloTertiaryMax = 191,
17825    CEF_ColorSysIlloNeutralMin = 192,
17826    CEF_ColorSysIlloNeutralLow = 193,
17827    CEF_ColorSysIlloNeutralMid = 194,
17828    CEF_ColorSysIlloNeutralHigh = 195,
17829    CEF_ColorSysIlloNeutralMax = 196,
17830    CEF_ColorSysActorUiBorder = 197,
17831    CEF_ColorSysActorUiGradientStart = 198,
17832    CEF_ColorSysActorUiGradientMiddle = 199,
17833    CEF_ColorSysActorUiGradientEnd = 200,
17834    CEF_ColorGlicTabUnderline1 = 201,
17835    CEF_ColorGlicTabUnderline2 = 202,
17836    CEF_ColorGlicTabUnderline3 = 203,
17837    CEF_ColorSysAiIllustrationShapeSurface1 = 204,
17838    CEF_ColorSysAiIllustrationShapeSurface2 = 205,
17839    CEF_ColorSysAiIllustrationShapeSurfaceGradientStart = 206,
17840    CEF_ColorSysAiIllustrationShapeSurfaceGradientEnd = 207,
17841    CEF_ColorSysOmniboxContainer = 208,
17842    CEF_ColorSysStateHover = 209,
17843    CEF_ColorSysStateFocus = 210,
17844    CEF_ColorSysStatePressed = 211,
17845    CEF_ColorAccent = 212,
17846    CEF_ColorAccentWithGuaranteedContrastAtopPrimaryBackground = 213,
17847    CEF_ColorAlertHighSeverity = 214,
17848    CEF_ColorAlertLowSeverity = 215,
17849    CEF_ColorAlertMediumSeverityIcon = 216,
17850    CEF_ColorAlertMediumSeverityText = 217,
17851    CEF_ColorDisabledForeground = 218,
17852    CEF_ColorEndpointBackground = 219,
17853    CEF_ColorEndpointForeground = 220,
17854    CEF_ColorItemHighlight = 221,
17855    CEF_ColorItemSelectionBackground = 222,
17856    CEF_ColorMenuSelectionBackground = 223,
17857    CEF_ColorMidground = 224,
17858    CEF_ColorPrimaryBackground = 225,
17859    CEF_ColorPrimaryForeground = 226,
17860    CEF_ColorSecondaryForeground = 227,
17861    CEF_ColorSubtleAccent = 228,
17862    CEF_ColorSubtleEmphasisBackground = 229,
17863    CEF_ColorTextSelectionBackground = 230,
17864    CEF_ColorTextSelectionForeground = 231,
17865    CEF_ColorAppMenuProfileRowBackground = 232,
17866    CEF_ColorAppMenuProfileRowChipBackground = 233,
17867    CEF_ColorAppMenuProfileRowChipHovered = 234,
17868    CEF_ColorAppMenuRowBackgroundHovered = 235,
17869    CEF_ColorAppMenuUpgradeRowBackground = 236,
17870    CEF_ColorAppMenuUpgradeRowSubstringForeground = 237,
17871    CEF_ColorAvatarIconGuest = 238,
17872    CEF_ColorAvatarIconIncognito = 239,
17873    CEF_ColorBadgeBackground = 240,
17874    CEF_ColorBadgeForeground = 241,
17875    CEF_ColorBadgeInCocoaMenuBackground = 242,
17876    CEF_ColorBadgeInCocoaMenuForeground = 243,
17877    CEF_ColorBubbleBackground = 244,
17878    CEF_ColorBubbleBorder = 245,
17879    CEF_ColorBubbleBorderShadowLarge = 246,
17880    CEF_ColorBubbleBorderShadowSmall = 247,
17881    CEF_ColorBubbleFooterBackground = 248,
17882    CEF_ColorBubbleFooterBorder = 249,
17883    CEF_ColorButtonFeatureAttentionHighlight = 250,
17884    CEF_ColorButtonBackground = 251,
17885    CEF_ColorButtonBackgroundPressed = 252,
17886    CEF_ColorButtonBackgroundProminent = 253,
17887    CEF_ColorButtonBackgroundProminentDisabled = 254,
17888    CEF_ColorButtonBackgroundProminentFocused = 255,
17889    CEF_ColorButtonBackgroundTonal = 256,
17890    CEF_ColorButtonBackgroundTonalDisabled = 257,
17891    CEF_ColorButtonBackgroundTonalFocused = 258,
17892    CEF_ColorButtonBackgroundWithAttention = 259,
17893    CEF_ColorButtonBorder = 260,
17894    CEF_ColorButtonBorderDisabled = 261,
17895    CEF_ColorButtonForeground = 262,
17896    CEF_ColorButtonForegroundDisabled = 263,
17897    CEF_ColorButtonForegroundProminent = 264,
17898    CEF_ColorButtonForegroundTonal = 265,
17899    CEF_ColorButtonHoverBackgroundText = 266,
17900    CEF_ColorMultitaskMenuNudgePulse = 267,
17901    CEF_ColorCheckboxCheck = 268,
17902    CEF_ColorCheckboxCheckDisabled = 269,
17903    CEF_ColorCheckboxContainer = 270,
17904    CEF_ColorCheckboxContainerDisabled = 271,
17905    CEF_ColorCheckboxOutline = 272,
17906    CEF_ColorCheckboxOutlineDisabled = 273,
17907    CEF_ColorCheckboxForegroundChecked = 274,
17908    CEF_ColorCheckboxForegroundUnchecked = 275,
17909    CEF_ColorChipBackgroundHover = 276,
17910    CEF_ColorChipBackgroundSelected = 277,
17911    CEF_ColorChipBorder = 278,
17912    CEF_ColorChipForeground = 279,
17913    CEF_ColorChipForegroundSelected = 280,
17914    CEF_ColorChipIcon = 281,
17915    CEF_ColorChipIconSelected = 282,
17916    CEF_ColorComboboxBackground = 283,
17917    CEF_ColorComboboxBackgroundDisabled = 284,
17918    CEF_ColorComboboxContainerOutline = 285,
17919    CEF_ColorComboboxInkDropHovered = 286,
17920    CEF_ColorComboboxInkDropRipple = 287,
17921    CEF_ColorCssSystemActiveText = 288,
17922    CEF_ColorCssSystemBtnFace = 289,
17923    CEF_ColorCssSystemBtnText = 290,
17924    CEF_ColorCssSystemField = 291,
17925    CEF_ColorCssSystemFieldText = 292,
17926    CEF_ColorCssSystemGrayText = 293,
17927    CEF_ColorCssSystemHighlight = 294,
17928    CEF_ColorCssSystemHighlightText = 295,
17929    CEF_ColorCssSystemHotlight = 296,
17930    CEF_ColorCssSystemLinkText = 297,
17931    CEF_ColorCssSystemMenuHilight = 298,
17932    CEF_ColorCssSystemScrollbar = 299,
17933    CEF_ColorCssSystemVisitedText = 300,
17934    CEF_ColorCssSystemWindow = 301,
17935    CEF_ColorCssSystemWindowText = 302,
17936    CEF_ColorCustomFrameCaptionForeground = 303,
17937    CEF_ColorDebugBoundsOutline = 304,
17938    CEF_ColorDebugContentOutline = 305,
17939    CEF_ColorDialogBackground = 306,
17940    CEF_ColorDialogForeground = 307,
17941    CEF_ColorDropdownBackground = 308,
17942    CEF_ColorDropdownBackgroundSelected = 309,
17943    CEF_ColorDropdownForeground = 310,
17944    CEF_ColorDropdownForegroundSelected = 311,
17945    CEF_ColorFocusableBorderFocused = 312,
17946    CEF_ColorFocusableBorderUnfocused = 313,
17947    CEF_ColorFrameActive = 314,
17948    CEF_ColorFrameActiveUnthemed = 315,
17949    CEF_ColorFrameCaptionButtonUnfocused = 316,
17950    CEF_ColorFrameInactive = 317,
17951    CEF_ColorHelpIconActive = 318,
17952    CEF_ColorHelpIconInactive = 319,
17953    CEF_ColorHistoryClustersSidePanelDivider = 320,
17954    CEF_ColorHistoryClustersSidePanelDialogBackground = 321,
17955    CEF_ColorHistoryClustersSidePanelDialogDivider = 322,
17956    CEF_ColorHistoryClustersSidePanelDialogPrimaryForeground = 323,
17957    CEF_ColorHistoryClustersSidePanelDialogSecondaryForeground = 324,
17958    CEF_ColorHistoryClustersSidePanelCardSecondaryForeground = 325,
17959    CEF_ColorIcon = 326,
17960    CEF_ColorIconDisabled = 327,
17961    CEF_ColorIconHovered = 328,
17962    CEF_ColorIconSecondary = 329,
17963    CEF_ColorInfoBarIcon = 330,
17964    CEF_ColorLabelForeground = 331,
17965    CEF_ColorLabelForegroundDisabled = 332,
17966    CEF_ColorLabelForegroundSecondary = 333,
17967    CEF_ColorLabelSelectionBackground = 334,
17968    CEF_ColorLabelSelectionForeground = 335,
17969    CEF_ColorLinkForeground = 336,
17970    CEF_ColorLinkForegroundDefault = 337,
17971    CEF_ColorLinkForegroundDisabled = 338,
17972    CEF_ColorLinkForegroundOnBubbleFooter = 339,
17973    CEF_ColorLinkForegroundPressed = 340,
17974    CEF_ColorLinkForegroundPressedDefault = 341,
17975    CEF_ColorLinkForegroundPressedOnBubbleFooter = 342,
17976    CEF_ColorListItemFolderIconBackground = 343,
17977    CEF_ColorListItemFolderIconForeground = 344,
17978    CEF_ColorListItemUrlFaviconBackground = 345,
17979    CEF_ColorLiveCaptionBubbleBackgroundDefault = 346,
17980    CEF_ColorLiveCaptionBubbleButtonBackground = 347,
17981    CEF_ColorLiveCaptionBubbleButtonIcon = 348,
17982    CEF_ColorLiveCaptionBubbleButtonIconDisabled = 349,
17983    CEF_ColorLiveCaptionBubbleForegroundDefault = 350,
17984    CEF_ColorLiveCaptionBubbleForegroundSecondary = 351,
17985    CEF_ColorLiveCaptionBubbleCheckbox = 352,
17986    CEF_ColorLiveCaptionBubbleLink = 353,
17987    CEF_ColorLoadingGradientBorder = 354,
17988    CEF_ColorLoadingGradientEnd = 355,
17989    CEF_ColorLoadingGradientMiddle = 356,
17990    CEF_ColorLoadingGradientStart = 357,
17991    CEF_ColorMenuBackground = 358,
17992    CEF_ColorMenuBorder = 359,
17993    CEF_ColorMenuButtonBackground = 360,
17994    CEF_ColorMenuButtonBackgroundSelected = 361,
17995    CEF_ColorMenuDropmarker = 362,
17996    CEF_ColorMenuIcon = 363,
17997    CEF_ColorMenuIconDisabled = 364,
17998    CEF_ColorMenuIconOnEmphasizedBackground = 365,
17999    CEF_ColorMenuItemBackgroundAlertedInitial = 366,
18000    CEF_ColorMenuItemBackgroundAlertedTarget = 367,
18001    CEF_ColorMenuItemBackgroundHighlighted = 368,
18002    CEF_ColorMenuItemBackgroundSelected = 369,
18003    CEF_ColorMenuItemForeground = 370,
18004    CEF_ColorMenuItemForegroundDisabled = 371,
18005    CEF_ColorMenuItemForegroundHighlighted = 372,
18006    CEF_ColorMenuItemForegroundSecondary = 373,
18007    CEF_ColorMenuItemForegroundSelected = 374,
18008    CEF_ColorMenuSeparator = 375,
18009    CEF_ColorNotificationActionsBackground = 376,
18010    CEF_ColorNotificationBackgroundActive = 377,
18011    CEF_ColorNotificationBackgroundInactive = 378,
18012    CEF_ColorNotificationHeaderForeground = 379,
18013    CEF_ColorNotificationIconBackground = 380,
18014    CEF_ColorNotificationIconForeground = 381,
18015    CEF_ColorNotificationImageBackground = 382,
18016    CEF_ColorNotificationInputBackground = 383,
18017    CEF_ColorNotificationInputForeground = 384,
18018    CEF_ColorNotificationInputPlaceholderForeground = 385,
18019    CEF_ColorOverlayScrollbarFill = 386,
18020    CEF_ColorOverlayScrollbarFillHovered = 387,
18021    CEF_ColorOverlayScrollbarStroke = 388,
18022    CEF_ColorOverlayScrollbarStrokeHovered = 389,
18023    CEF_ColorProgressBar = 390,
18024    CEF_ColorProgressBarBackground = 391,
18025    CEF_ColorProgressBarPaused = 392,
18026    CEF_ColorRadioButtonForegroundUnchecked = 393,
18027    CEF_ColorRadioButtonForegroundDisabled = 394,
18028    CEF_ColorRadioButtonForegroundChecked = 395,
18029    CEF_ColorSegmentedButtonBorder = 396,
18030    CEF_ColorSegmentedButtonFocus = 397,
18031    CEF_ColorSegmentedButtonForegroundChecked = 398,
18032    CEF_ColorSegmentedButtonForegroundUnchecked = 399,
18033    CEF_ColorSegmentedButtonHover = 400,
18034    CEF_ColorSegmentedButtonRipple = 401,
18035    CEF_ColorSegmentedButtonChecked = 402,
18036    CEF_ColorSeparator = 403,
18037    CEF_ColorShadowBase = 404,
18038    CEF_ColorShadowValueAmbientShadowElevationFour = 405,
18039    CEF_ColorShadowValueAmbientShadowElevationSixteen = 406,
18040    CEF_ColorShadowValueAmbientShadowElevationThree = 407,
18041    CEF_ColorShadowValueAmbientShadowElevationTwelve = 408,
18042    CEF_ColorShadowValueAmbientShadowElevationTwentyFour = 409,
18043    CEF_ColorShadowValueKeyShadowElevationFour = 410,
18044    CEF_ColorShadowValueKeyShadowElevationSixteen = 411,
18045    CEF_ColorShadowValueKeyShadowElevationThree = 412,
18046    CEF_ColorShadowValueKeyShadowElevationTwelve = 413,
18047    CEF_ColorShadowValueKeyShadowElevationTwentyFour = 414,
18048    CEF_ColorSidePanelComboboxBorder = 415,
18049    CEF_ColorSidePanelComboboxBackground = 416,
18050    CEF_ColorSliderThumb = 417,
18051    CEF_ColorSliderThumbMinimal = 418,
18052    CEF_ColorSliderTrack = 419,
18053    CEF_ColorSliderTrackMinimal = 420,
18054    CEF_ColorSyncInfoBackground = 421,
18055    CEF_ColorSyncInfoBackgroundError = 422,
18056    CEF_ColorSyncInfoBackgroundPaused = 423,
18057    CEF_ColorTabBackgroundHighlighted = 424,
18058    CEF_ColorTabBackgroundHighlightedFocused = 425,
18059    CEF_ColorTabBorderSelected = 426,
18060    CEF_ColorTabContentSeparator = 427,
18061    CEF_ColorTabForegroundDisabled = 428,
18062    CEF_ColorTabForeground = 429,
18063    CEF_ColorTabForegroundSelected = 430,
18064    CEF_ColorTableBackground = 431,
18065    CEF_ColorTableBackgroundAlternate = 432,
18066    CEF_ColorTableBackgroundSelectedFocused = 433,
18067    CEF_ColorTableBackgroundSelectedUnfocused = 434,
18068    CEF_ColorTableForeground = 435,
18069    CEF_ColorTableForegroundSelectedFocused = 436,
18070    CEF_ColorTableForegroundSelectedUnfocused = 437,
18071    CEF_ColorTableGroupingIndicator = 438,
18072    CEF_ColorTableHeaderBackground = 439,
18073    CEF_ColorTableHeaderForeground = 440,
18074    CEF_ColorTableHeaderSeparator = 441,
18075    CEF_ColorTableIconBackground = 442,
18076    CEF_ColorTableRowHighlight = 443,
18077    CEF_ColorSuggestionChipBorder = 444,
18078    CEF_ColorSuggestionChipIcon = 445,
18079    CEF_ColorTextfieldBackground = 446,
18080    CEF_ColorTextfieldBackgroundDisabled = 447,
18081    CEF_ColorTextfieldFilledBackground = 448,
18082    CEF_ColorTextfieldFilledForegroundInvalid = 449,
18083    CEF_ColorTextfieldFilledUnderline = 450,
18084    CEF_ColorTextfieldFilledUnderlineFocused = 451,
18085    CEF_ColorTextfieldForeground = 452,
18086    CEF_ColorTextfieldForegroundDisabled = 453,
18087    CEF_ColorTextfieldForegroundIcon = 454,
18088    CEF_ColorTextfieldForegroundLabel = 455,
18089    CEF_ColorTextfieldForegroundPlaceholderInvalid = 456,
18090    CEF_ColorTextfieldForegroundPlaceholder = 457,
18091    CEF_ColorTextfieldHover = 458,
18092    CEF_ColorTextfieldSelectionBackground = 459,
18093    CEF_ColorTextfieldSelectionForeground = 460,
18094    CEF_ColorTextfieldOutline = 461,
18095    CEF_ColorTextfieldOutlineDisabled = 462,
18096    CEF_ColorTextfieldOutlineInvalid = 463,
18097    CEF_ColorThemeColorPickerCheckmarkBackground = 464,
18098    CEF_ColorThemeColorPickerCheckmarkForeground = 465,
18099    CEF_ColorThemeColorPickerCustomColorIconBackground = 466,
18100    CEF_ColorThemeColorPickerHueSliderDialogBackground = 467,
18101    CEF_ColorThemeColorPickerHueSliderDialogForeground = 468,
18102    CEF_ColorThemeColorPickerHueSliderDialogIcon = 469,
18103    CEF_ColorThemeColorPickerHueSliderHandle = 470,
18104    CEF_ColorThemeColorPickerOptionBackground = 471,
18105    CEF_ColorThrobber = 472,
18106    CEF_ColorThrobberPreconnect = 473,
18107    CEF_ColorToastBackground = 474,
18108    CEF_ColorToastBackgroundProminent = 475,
18109    CEF_ColorToastButton = 476,
18110    CEF_ColorToastForeground = 477,
18111    CEF_ColorToggleButtonHover = 478,
18112    CEF_ColorToggleButtonPressed = 479,
18113    CEF_ColorToggleButtonShadow = 480,
18114    CEF_ColorToggleButtonThumbOff = 481,
18115    CEF_ColorToggleButtonThumbOffDisabled = 482,
18116    CEF_ColorToggleButtonThumbOn = 483,
18117    CEF_ColorToggleButtonThumbOnDisabled = 484,
18118    CEF_ColorToggleButtonThumbOnHover = 485,
18119    CEF_ColorToggleButtonTrackOff = 486,
18120    CEF_ColorToggleButtonTrackOffDisabled = 487,
18121    CEF_ColorToggleButtonTrackOn = 488,
18122    CEF_ColorToggleButtonTrackOnDisabled = 489,
18123    CEF_ColorToolbarSearchFieldBackground = 490,
18124    CEF_ColorToolbarSearchFieldBackgroundHover = 491,
18125    CEF_ColorToolbarSearchFieldBackgroundPressed = 492,
18126    CEF_ColorToolbarSearchFieldForeground = 493,
18127    CEF_ColorToolbarSearchFieldForegroundPlaceholder = 494,
18128    CEF_ColorToolbarSearchFieldIcon = 495,
18129    CEF_ColorTooltipBackground = 496,
18130    CEF_ColorTooltipForeground = 497,
18131    CEF_ColorTreeBackground = 498,
18132    CEF_ColorTreeNodeBackgroundSelectedFocused = 499,
18133    CEF_ColorTreeNodeBackgroundSelectedUnfocused = 500,
18134    CEF_ColorTreeNodeForeground = 501,
18135    CEF_ColorTreeNodeForegroundSelectedFocused = 502,
18136    CEF_ColorTreeNodeForegroundSelectedUnfocused = 503,
18137    CEF_ColorWebNativeControlAccent = 504,
18138    CEF_ColorWebNativeControlAccentDisabled = 505,
18139    CEF_ColorWebNativeControlAccentHovered = 506,
18140    CEF_ColorWebNativeControlAccentPressed = 507,
18141    CEF_ColorWebNativeControlAutoCompleteBackground = 508,
18142    CEF_ColorWebNativeControlBorder = 509,
18143    CEF_ColorWebNativeControlBorderDisabled = 510,
18144    CEF_ColorWebNativeControlBorderHovered = 511,
18145    CEF_ColorWebNativeControlBorderPressed = 512,
18146    CEF_ColorWebNativeControlButtonBorder = 513,
18147    CEF_ColorWebNativeControlButtonBorderDisabled = 514,
18148    CEF_ColorWebNativeControlButtonBorderHovered = 515,
18149    CEF_ColorWebNativeControlButtonBorderPressed = 516,
18150    CEF_ColorWebNativeControlButtonFill = 517,
18151    CEF_ColorWebNativeControlButtonFillDisabled = 518,
18152    CEF_ColorWebNativeControlButtonFillHovered = 519,
18153    CEF_ColorWebNativeControlButtonFillPressed = 520,
18154    CEF_ColorWebNativeControlCheckboxBackground = 521,
18155    CEF_ColorWebNativeControlCheckboxBackgroundDisabled = 522,
18156    CEF_ColorWebNativeControlFill = 523,
18157    CEF_ColorWebNativeControlFillDisabled = 524,
18158    CEF_ColorWebNativeControlFillHovered = 525,
18159    CEF_ColorWebNativeControlFillPressed = 526,
18160    CEF_ColorWebNativeControlLightenLayer = 527,
18161    CEF_ColorWebNativeControlProgressValue = 528,
18162    CEF_ColorWebNativeControlScrollbarArrowBackgroundDisabled = 529,
18163    CEF_ColorWebNativeControlScrollbarArrowBackgroundHovered = 530,
18164    CEF_ColorWebNativeControlScrollbarArrowBackgroundPressed = 531,
18165    CEF_ColorWebNativeControlScrollbarArrowForeground = 532,
18166    CEF_ColorWebNativeControlScrollbarArrowForegroundDisabled = 533,
18167    CEF_ColorWebNativeControlScrollbarArrowForegroundPressed = 534,
18168    CEF_ColorWebNativeControlScrollbarCorner = 535,
18169    CEF_ColorWebNativeControlScrollbarThumb = 536,
18170    CEF_ColorWebNativeControlScrollbarThumbHovered = 537,
18171    CEF_ColorWebNativeControlScrollbarThumbOverlayMinimalMode = 538,
18172    CEF_ColorWebNativeControlScrollbarThumbPressed = 539,
18173    CEF_ColorWebNativeControlScrollbarTrack = 540,
18174    CEF_ColorWebNativeControlSlider = 541,
18175    CEF_ColorWebNativeControlSliderBorder = 542,
18176    CEF_ColorWebNativeControlSliderBorderHovered = 543,
18177    CEF_ColorWebNativeControlSliderBorderPressed = 544,
18178    CEF_ColorWebNativeControlSliderDisabled = 545,
18179    CEF_ColorWebNativeControlSliderHovered = 546,
18180    CEF_ColorWebNativeControlSliderPressed = 547,
18181    CEF_ColorWindowBackground = 548,
18182    CEF_ColorNativeBoxFrameBorder = 549,
18183    CEF_ColorNativeHeaderButtonBorderActive = 550,
18184    CEF_ColorNativeHeaderButtonBorderInactive = 551,
18185    CEF_ColorNativeHeaderSeparatorBorderActive = 552,
18186    CEF_ColorNativeHeaderSeparatorBorderInactive = 553,
18187    CEF_ColorNativeLabelForeground = 554,
18188    CEF_ColorNativeTabForegroundInactiveFrameActive = 555,
18189    CEF_ColorNativeTabForegroundInactiveFrameInactive = 556,
18190    CEF_ColorNativeTextfieldBorderUnfocused = 557,
18191    CEF_ColorNativeToolbarBackground = 558,
18192    CEF_UiColorsEnd = 559,
18193    kFullscreenNotificationOpaqueBackgroundColor = 560,
18194    kFullscreenNotificationTransparentBackgroundColor = 561,
18195    CEF_ColorEyedropperBoundary = 562,
18196    CEF_ColorEyedropperCentralPixelInnerRing = 563,
18197    CEF_ColorEyedropperCentralPixelOuterRing = 564,
18198    CEF_ColorEyedropperGrid = 565,
18199    CEF_ComponentsColorsEnd = 566,
18200    CEF_ColorAppMenuHighlightSeverityHigh = 567,
18201    CEF_ColorAppMenuHighlightSeverityMedium = 568,
18202    CEF_ColorAppMenuHighlightDefault = 569,
18203    CEF_ColorAppMenuHighlightPrimary = 570,
18204    CEF_ColorAppMenuExpandedForegroundDefault = 571,
18205    CEF_ColorAppMenuExpandedForegroundPrimary = 572,
18206    CEF_ColorAppMenuChipInkDropHover = 573,
18207    CEF_ColorAppMenuChipInkDropRipple = 574,
18208    CEF_ColorActorUiHandoffButtonBorder = 575,
18209    CEF_ColorActorUiOverlayBorder = 576,
18210    CEF_ColorActorUiOverlayBorderGlow = 577,
18211    CEF_ColorActorUiScrimStart = 578,
18212    CEF_ColorActorUiScrimMiddle = 579,
18213    CEF_ColorActorUiScrimEnd = 580,
18214    CEF_ColorActorUiMagicCursor = 581,
18215    CEF_ColorActivityIndicatorForeground = 582,
18216    CEF_ColorActivityIndicatorSubtitleForeground = 583,
18217    CEF_ColorAvatarButtonHighlightDefault = 584,
18218    CEF_ColorAvatarButtonHighlightGuest = 585,
18219    CEF_ColorAvatarButtonHighlightSyncError = 586,
18220    CEF_ColorAvatarButtonHighlightSyncPaused = 587,
18221    CEF_ColorAvatarButtonHighlightPasskeysLocked = 588,
18222    CEF_ColorAvatarButtonHighlightSigninPaused = 589,
18223    CEF_ColorAvatarButtonHighlightExplicitText = 590,
18224    CEF_ColorAvatarButtonHighlightIncognito = 591,
18225    CEF_ColorAvatarButtonHighlightManagement = 592,
18226    CEF_ColorAvatarButtonHighlightGuestForeground = 593,
18227    CEF_ColorAvatarButtonHighlightDefaultForeground = 594,
18228    CEF_ColorAvatarButtonHighlightSyncErrorForeground = 595,
18229    CEF_ColorAvatarButtonHighlightIncognitoForeground = 596,
18230    CEF_ColorAvatarButtonHighlightManagementForeground = 597,
18231    CEF_ColorAvatarButtonIncognitoHover = 598,
18232    CEF_ColorAvatarButtonNormalRipple = 599,
18233    CEF_ColorAvatarStroke = 600,
18234    CEF_ColorAvatarFillForContrast = 601,
18235    CEF_ColorBookmarkBarBackground = 602,
18236    CEF_ColorBookmarkBarForeground = 603,
18237    CEF_ColorBookmarkBarForegroundDisabled = 604,
18238    CEF_ColorBookmarkBarSeparator = 605,
18239    CEF_ColorBookmarkBarSeparatorChromeRefresh = 606,
18240    CEF_ColorBookmarkButtonIcon = 607,
18241    CEF_ColorBookmarkDialogTrackPriceIcon = 608,
18242    CEF_ColorBookmarkDialogProductImageBorder = 609,
18243    CEF_ColorBookmarkDragImageBackground = 610,
18244    CEF_ColorBookmarkDragImageCountBackground = 611,
18245    CEF_ColorBookmarkDragImageCountForeground = 612,
18246    CEF_ColorBookmarkDragImageForeground = 613,
18247    CEF_ColorBookmarkDragImageIconBackground = 614,
18248    CEF_ColorBookmarkFavicon = 615,
18249    CEF_ColorBookmarkFolderIcon = 616,
18250    CEF_ColorCaptionButtonBackground = 617,
18251    CEF_ColorCapturedTabContentsBorder = 618,
18252    CEF_ColorCastDialogHelpIcon = 619,
18253    CEF_ColorChromeSigninBubbleBackground = 620,
18254    CEF_ColorChromeSigninBubbleInfoBackground = 621,
18255    CEF_ColorBatchUploadBackground = 622,
18256    CEF_ColorBatchUploadDataBackground = 623,
18257    CEF_ColorBatchUploadDataSeparator = 624,
18258    CEF_ColorBnplIssuerLabelForeground = 625,
18259    CEF_ColorBnplIssuerLabelForegroundDisabled = 626,
18260    CEF_ColorBnplIssuerLinkedIneligibleBackground = 627,
18261    CEF_ColorBnplIssuerLinkedPillBackground = 628,
18262    CEF_ColorBnplIssuerLinkedPillForeground = 629,
18263    CEF_ColorComposeDialogBackground = 630,
18264    CEF_ColorComposeDialogDivider = 631,
18265    CEF_ColorComposeDialogError = 632,
18266    CEF_ColorComposeDialogForegroundSubtle = 633,
18267    CEF_ColorComposeDialogLink = 634,
18268    CEF_ColorComposeDialogLogo = 635,
18269    CEF_ColorComposeDialogResultBackground = 636,
18270    CEF_ColorComposeDialogResultForeground = 637,
18271    CEF_ColorComposeDialogResultForegroundWhileLoading = 638,
18272    CEF_ColorComposeDialogResultIcon = 639,
18273    CEF_ColorComposeDialogResultContainerScrollbarThumb = 640,
18274    CEF_ColorComposeDialogScrollbarThumb = 641,
18275    CEF_ColorComposeDialogTitle = 642,
18276    CEF_ColorComposeDialogTextarea = 643,
18277    CEF_ColorComposeDialogTextareaOutline = 644,
18278    CEF_ColorComposeDialogTextareaPlaceholder = 645,
18279    CEF_ColorComposeDialogTextareaReadonlyBackground = 646,
18280    CEF_ColorComposeDialogTextareaReadonlyForeground = 647,
18281    CEF_ColorComposeDialogTextareaIcon = 648,
18282    CEF_ColorComposeDialogSelectOptionDisabled = 649,
18283    CEF_ColorDesktopMediaPickerDescriptionLabel = 650,
18284    CEF_ColorDesktopMediaTabListBorder = 651,
18285    CEF_ColorDesktopMediaTabListPreviewBackground = 652,
18286    CEF_ColorDesktopToIOSPromoFooterSubtitleLabel = 653,
18287    CEF_ColorDownloadItemIconDangerous = 654,
18288    CEF_ColorDownloadItemTextDangerous = 655,
18289    CEF_ColorDownloadItemIconWarning = 656,
18290    CEF_ColorDownloadItemTextWarning = 657,
18291    CEF_ColorDownloadBubbleInfoBackground = 658,
18292    CEF_ColorDownloadBubbleInfoIcon = 659,
18293    CEF_ColorDownloadBubbleRowHover = 660,
18294    CEF_ColorDownloadBubbleShowAllDownloadsIcon = 661,
18295    CEF_ColorDownloadBubblePrimaryIcon = 662,
18296    CEF_ColorDownloadToolbarButtonActive = 663,
18297    CEF_ColorDownloadToolbarButtonAnimationBackground = 664,
18298    CEF_ColorDownloadToolbarButtonAnimationForeground = 665,
18299    CEF_ColorDownloadToolbarButtonInactive = 666,
18300    CEF_ColorDownloadToolbarButtonRingBackground = 667,
18301    CEF_ColorExtensionDialogBackground = 668,
18302    CEF_ColorExtensionIconBadgeBackgroundDefault = 669,
18303    CEF_ColorExtensionIconDecorationAmbientShadow = 670,
18304    CEF_ColorExtensionIconDecorationBackground = 671,
18305    CEF_ColorExtensionIconDecorationKeyShadow = 672,
18306    CEF_ColorExtensionMenuIcon = 673,
18307    CEF_ColorExtensionMenuIconDisabled = 674,
18308    CEF_ColorExtensionMenuPinButtonIcon = 675,
18309    CEF_ColorExtensionMenuPinButtonIconDisabled = 676,
18310    CEF_ColorExtensionsMenuContainerBackground = 677,
18311    CEF_ColorExtensionsMenuText = 678,
18312    CEF_ColorExtensionsMenuSecondaryText = 679,
18313    CEF_ColorFeatureFirstRunInfoContainerBackground = 680,
18314    CEF_ColorFeatureFirstRunIconColor = 681,
18315    CEF_ColorFeaturePromoBubbleBackground = 682,
18316    CEF_ColorFeaturePromoBubbleButtonBorder = 683,
18317    CEF_ColorFeaturePromoBubbleCloseButtonInkDrop = 684,
18318    CEF_ColorFeaturePromoBubbleDefaultButtonBackground = 685,
18319    CEF_ColorFeaturePromoBubbleDefaultButtonForeground = 686,
18320    CEF_ColorFeaturePromoBubbleForeground = 687,
18321    CEF_ColorFeatureLensPromoBubbleBackground = 688,
18322    CEF_ColorFeatureLensPromoBubbleForeground = 689,
18323    CEF_ColorFindBarBackground = 690,
18324    CEF_ColorFindBarButtonIcon = 691,
18325    CEF_ColorFindBarButtonIconHovered = 692,
18326    CEF_ColorFindBarButtonIconDisabled = 693,
18327    CEF_ColorFindBarForeground = 694,
18328    CEF_ColorFindBarMatchCount = 695,
18329    CEF_ColorFlyingIndicatorBackground = 696,
18330    CEF_ColorFlyingIndicatorForeground = 697,
18331    CEF_ColorFocusHighlightDefault = 698,
18332    CEF_ColorFrameCaptionActive = 699,
18333    CEF_ColorFrameCaptionInactive = 700,
18334    CEF_ColorHistoryEmbeddingsBackground = 701,
18335    CEF_ColorHistoryEmbeddingsDivider = 702,
18336    CEF_ColorHistoryEmbeddingsForeground = 703,
18337    CEF_ColorHistoryEmbeddingsForegroundSubtle = 704,
18338    CEF_ColorHistoryEmbeddingsImageBackground = 705,
18339    CEF_ColorHistoryEmbeddingsImageBackgroundGradientEnd = 706,
18340    CEF_ColorHistoryEmbeddingsImageBackgroundGradientStart = 707,
18341    CEF_ColorInfoBarBackground = 708,
18342    CEF_ColorInfoBarButtonIcon = 709,
18343    CEF_ColorInfoBarButtonIconDisabled = 710,
18344    CEF_ColorInfoBarButtonIconHovered = 711,
18345    CEF_ColorInfoBarContentAreaSeparator = 712,
18346    CEF_ColorInfoBarForeground = 713,
18347    CEF_ColorIntentPickerItemBackgroundHovered = 714,
18348    CEF_ColorIntentPickerItemBackgroundSelected = 715,
18349    CEF_ColorGlicBackground = 716,
18350    CEF_ColorGlicModalBackground = 717,
18351    CEF_ColorGlicModalForeground = 718,
18352    CEF_ColorGlicActiveTabUnderlineGradient1 = 719,
18353    CEF_ColorGlicActiveTabUnderlineGradient2 = 720,
18354    CEF_ColorGlicActiveTabUnderlineGradient3 = 721,
18355    CEF_ColorGlicInactiveTabUnderlineGradient1 = 722,
18356    CEF_ColorGlicInactiveTabUnderlineGradient2 = 723,
18357    CEF_ColorGlicInactiveTabUnderlineGradient3 = 724,
18358    CEF_ColorGlicSelectionOverlayToast = 725,
18359    CEF_ColorHoverButtonBackgroundHovered = 726,
18360    CEF_ColorLensOverlayToastBackground = 727,
18361    CEF_ColorLensOverlayToastButtonBorder = 728,
18362    CEF_ColorLensOverlayToastForeground = 729,
18363    CEF_ColorLocationBarBackground = 730,
18364    CEF_ColorLocationBarBackgroundHovered = 731,
18365    CEF_ColorLocationBarBorder = 732,
18366    CEF_ColorLocationBarBorderOnMismatch = 733,
18367    CEF_ColorLocationBarBorderOpaque = 734,
18368    CEF_ColorLocationBarClearAllButtonIcon = 735,
18369    CEF_ColorLocationBarClearAllButtonIconDisabled = 736,
18370    CEF_ColorMediaRouterIconActive = 737,
18371    CEF_ColorMediaRouterIconWarning = 738,
18372    CEF_ColorMultiContentsViewActiveContentOutline = 739,
18373    CEF_ColorMultiContentsViewInactiveContentOutline = 740,
18374    CEF_ColorMultiContentsViewHighlightContentOutline = 741,
18375    CEF_ColorMultiContentsViewMiniToolbarForeground = 742,
18376    CEF_ColorNewTabButtonForegroundFrameActive = 743,
18377    CEF_ColorNewTabButtonForegroundFrameInactive = 744,
18378    CEF_ColorNewTabButtonBackgroundFrameActive = 745,
18379    CEF_ColorNewTabButtonBackgroundFrameInactive = 746,
18380    CEF_ColorNewTabButtonFocusRing = 747,
18381    CEF_ColorNewTabButtonInkDropFrameActive = 748,
18382    CEF_ColorNewTabButtonInkDropFrameInactive = 749,
18383    CEF_ColorTabStripComboButtonSeparator = 750,
18384    CEF_ColorTabStripControlButtonInkDrop = 751,
18385    CEF_ColorTabStripControlButtonInkDropRipple = 752,
18386    CEF_ColorNewTabButtonCRForegroundFrameActive = 753,
18387    CEF_ColorNewTabButtonCRForegroundFrameInactive = 754,
18388    CEF_ColorNewTabButtonCRBackgroundFrameActive = 755,
18389    CEF_ColorNewTabButtonCRBackgroundFrameInactive = 756,
18390    CEF_ColorNewTabPageActionButtonBackground = 757,
18391    CEF_ColorNewTabPageActionButtonBorder = 758,
18392    CEF_ColorNewTabPageActionButtonBorderHovered = 759,
18393    CEF_ColorNewTabPageActionButtonForeground = 760,
18394    CEF_ColorNewTabPageActiveBackground = 761,
18395    CEF_ColorNewTabPageAddShortcutBackground = 762,
18396    CEF_ColorNewTabPageAddShortcutForeground = 763,
18397    CEF_ColorNewTabPageAttributionForeground = 764,
18398    CEF_ColorNewTabPageBackground = 765,
18399    CEF_ColorNewTabPageBackgroundOverride = 766,
18400    CEF_ColorNewTabPageBorder = 767,
18401    CEF_ColorNewTabPageButtonBackground = 768,
18402    CEF_ColorNewTabPageButtonBackgroundHovered = 769,
18403    CEF_ColorNewTabPageButtonForeground = 770,
18404    CEF_ColorNewTabPageCartModuleDiscountChipBackground = 771,
18405    CEF_ColorNewTabPageCartModuleDiscountChipForeground = 772,
18406    CEF_ColorNewTabPageActionChipTextBody = 773,
18407    CEF_ColorNewTabPageActionChipTextTitle = 774,
18408    CEF_ColorNewTabPageActionChipDeepSearchIcon = 775,
18409    CEF_ColorNewTabPageThreadsRailBackground = 776,
18410    CEF_ColorNewTabPageThreadsRailIconButton = 777,
18411    CEF_ColorNewTabPageChipBackground = 778,
18412    CEF_ColorNewTabPageChipForeground = 779,
18413    CEF_ColorNewTabPageComposeboxSubmitButtonBackground = 780,
18414    CEF_ColorComposeboxBackground = 781,
18415    CEF_ColorComposeboxFileChipSpinner = 782,
18416    CEF_ColorComposeboxFont = 783,
18417    CEF_ColorComposeboxFontLight = 784,
18418    CEF_ColorComposeboxCancelButton = 785,
18419    CEF_ColorComposeboxCancelButtonLight = 786,
18420    CEF_ColorComposeboxErrorScrimBackground = 787,
18421    CEF_ColorComposeboxErrorScrimButtonBackground = 788,
18422    CEF_ColorComposeboxErrorScrimButtonBackgroundHover = 789,
18423    CEF_ColorComposeboxErrorScrimButtonText = 790,
18424    CEF_ColorComposeboxErrorScrimForeground = 791,
18425    CEF_ColorComposeboxHover = 792,
18426    CEF_ColorComposeboxInputIcon = 793,
18427    CEF_ColorComposeboxLensButton = 794,
18428    CEF_ColorComposeboxOutlineHcm = 795,
18429    CEF_ColorComposeboxRecentTabChipOutline = 796,
18430    CEF_ColorComposeboxScrimBackground = 797,
18431    CEF_ColorComposeboxSubmitButtonBackground = 798,
18432    CEF_ColorComposeboxSuggestionActivity = 799,
18433    CEF_ColorComposeboxTabSelectorButtonSelected = 800,
18434    CEF_ColorComposeboxTypeAhead = 801,
18435    CEF_ColorComposeboxTypeAheadChip = 802,
18436    CEF_ColorComposeboxUploadButton = 803,
18437    CEF_ColorComposeboxUploadButtonDisabled = 804,
18438    CEF_ColorComposeboxFileChipBackground = 805,
18439    CEF_ColorComposeboxFileChipFaviconBackground = 806,
18440    CEF_ColorComposeboxFileChipText = 807,
18441    CEF_ColorComposeboxPdfChipIcon = 808,
18442    CEF_ColorComposeboxFileImageOverlay = 809,
18443    CEF_ColorComposeboxFileCarouselDivider = 810,
18444    CEF_ColorComposeboxFileCarouselRemoveButton = 811,
18445    CEF_ColorComposeboxFileCarouselRemoveGradientStart = 812,
18446    CEF_ColorComposeboxFileCarouselRemoveGradientEnd = 813,
18447    CEF_ColorComposeboxFileCarouselUrl = 814,
18448    CEF_ColorComposeboxContextEntrypointTextDisabled = 815,
18449    CEF_ColorComposeboxContextEntrypointHoverBackground = 816,
18450    CEF_ColorComposeboxLink = 817,
18451    CEF_ColorNewTabPageCommonInputPlaceholder = 818,
18452    CEF_ColorNewTabPageControlBackgroundHovered = 819,
18453    CEF_ColorNewTabPageControlBackgroundSelected = 820,
18454    CEF_ColorNewTabPageFirstRunBackground = 821,
18455    CEF_ColorNewTabPageFocusRing = 822,
18456    CEF_ColorNewTabPageHeader = 823,
18457    CEF_ColorNewTabPageHistoryClustersModuleItemBackground = 824,
18458    CEF_ColorNewTabPagePromoBackground = 825,
18459    CEF_ColorNewTabPagePromoImageBackground = 826,
18460    CEF_ColorNewTabPageIconButtonBackground = 827,
18461    CEF_ColorNewTabPageIconButtonBackgroundActive = 828,
18462    CEF_ColorNewTabPageLink = 829,
18463    CEF_ColorNewTabPageLogo = 830,
18464    CEF_ColorNewTabPageLogoUnthemedDark = 831,
18465    CEF_ColorNewTabPageLogoUnthemedLight = 832,
18466    CEF_ColorNewTabPageMenuInnerShadow = 833,
18467    CEF_ColorNewTabPageMenuOuterShadow = 834,
18468    CEF_ColorNewTabPageMicBorderColor = 835,
18469    CEF_ColorNewTabPageMicIconColor = 836,
18470    CEF_ColorNewTabPageModuleControlBorder = 837,
18471    CEF_ColorNewTabPageModuleContextMenuDivider = 838,
18472    CEF_ColorNewTabPageModuleBackground = 839,
18473    CEF_ColorNewTabPageModuleCalendarEventTimeStatusBackground = 840,
18474    CEF_ColorNewTabPageModuleCalendarAttachmentScrollbarThumb = 841,
18475    CEF_ColorNewTabPageModuleCalendarDividerColor = 842,
18476    CEF_ColorNewTabPageModuleIconBackground = 843,
18477    CEF_ColorNewTabPageModuleElementDivider = 844,
18478    CEF_ColorNewTabPageModuleIconContainerBackground = 845,
18479    CEF_ColorNewTabPageModuleItemBackground = 846,
18480    CEF_ColorNewTabPageModuleItemBackgroundHovered = 847,
18481    CEF_ColorNewTabPageModuleScrollButtonBackground = 848,
18482    CEF_ColorNewTabPageModuleScrollButtonBackgroundHovered = 849,
18483    CEF_ColorNewTabPageModuleTabGroupsGrey = 850,
18484    CEF_ColorNewTabPageModuleTabGroupsBlue = 851,
18485    CEF_ColorNewTabPageModuleTabGroupsRed = 852,
18486    CEF_ColorNewTabPageModuleTabGroupsYellow = 853,
18487    CEF_ColorNewTabPageModuleTabGroupsGreen = 854,
18488    CEF_ColorNewTabPageModuleTabGroupsPink = 855,
18489    CEF_ColorNewTabPageModuleTabGroupsPurple = 856,
18490    CEF_ColorNewTabPageModuleTabGroupsCyan = 857,
18491    CEF_ColorNewTabPageModuleTabGroupsOrange = 858,
18492    CEF_ColorNewTabPageModuleTabGroupsDotGrey = 859,
18493    CEF_ColorNewTabPageModuleTabGroupsDotBlue = 860,
18494    CEF_ColorNewTabPageModuleTabGroupsDotRed = 861,
18495    CEF_ColorNewTabPageModuleTabGroupsDotYellow = 862,
18496    CEF_ColorNewTabPageModuleTabGroupsDotGreen = 863,
18497    CEF_ColorNewTabPageModuleTabGroupsDotPink = 864,
18498    CEF_ColorNewTabPageModuleTabGroupsDotPurple = 865,
18499    CEF_ColorNewTabPageModuleTabGroupsDotCyan = 866,
18500    CEF_ColorNewTabPageModuleTabGroupsDotOrange = 867,
18501    CEF_ColorNewTabPageMostVisitedForeground = 868,
18502    CEF_ColorNewTabPageMostVisitedTileBackground = 869,
18503    CEF_ColorNewTabPageMostVisitedTileBackgroundThemed = 870,
18504    CEF_ColorNewTabPageMostVisitedTileBackgroundUnthemed = 871,
18505    CEF_ColorNewTabPageOnThemeForeground = 872,
18506    CEF_ColorNewTabPageOverlayBackground = 873,
18507    CEF_ColorNewTabPageOverlayForeground = 874,
18508    CEF_ColorNewTabPageOverlaySecondaryForeground = 875,
18509    CEF_ColorNewTabPagePrimaryForeground = 876,
18510    CEF_ColorNewTabPageRealboxNextIconHover = 877,
18511    CEF_ColorNewTabPageSearchBoxBackground = 878,
18512    CEF_ColorNewTabPageSearchBoxBackgroundHovered = 879,
18513    CEF_ColorNewTabPageSearchBoxResultsTextDimmedSelected = 880,
18514    CEF_ColorNewTabPageSecondaryForeground = 881,
18515    CEF_ColorNewTabPageSectionBorder = 882,
18516    CEF_ColorNewTabPageTagBackground = 883,
18517    CEF_ColorNewTabPageText = 884,
18518    CEF_ColorNewTabPageTextUnthemed = 885,
18519    CEF_ColorNewTabPageTextLight = 886,
18520    CEF_ColorNewTabPageWallpaperSearchButtonBackground = 887,
18521    CEF_ColorNewTabPageWallpaperSearchButtonBackgroundHovered = 888,
18522    CEF_ColorNewTabPageWallpaperSearchButtonForeground = 889,
18523    CEF_ColorNewTabPageDoodleShareButtonBackground = 890,
18524    CEF_ColorNewTabPageDoodleShareButtonIcon = 891,
18525    CEF_ColorNewTabFooterBackground = 892,
18526    CEF_ColorNewTabFooterText = 893,
18527    CEF_ColorNewTabFooterLogoBackground = 894,
18528    CEF_ColorOmniboxActionIcon = 895,
18529    CEF_ColorOmniboxActionIconHover = 896,
18530    CEF_ColorOmniboxAnswerIconGM3Background = 897,
18531    CEF_ColorOmniboxAnswerIconGM3Foreground = 898,
18532    CEF_ColorOmniboxBubbleOutline = 899,
18533    CEF_ColorOmniboxChipInUseActivityIndicatorBackground = 900,
18534    CEF_ColorOmniboxChipInUseActivityIndicatorForeground = 901,
18535    CEF_ColorOmniboxChipBackground = 902,
18536    CEF_ColorOmniboxChipBlockedActivityIndicatorBackground = 903,
18537    CEF_ColorOmniboxChipBlockedActivityIndicatorForeground = 904,
18538    CEF_ColorOmniboxChipForegroundLowVisibility = 905,
18539    CEF_ColorOmniboxChipForegroundNormalVisibility = 906,
18540    CEF_ColorOmniboxChipInkDropHover = 907,
18541    CEF_ColorOmniboxChipInkDropRipple = 908,
18542    CEF_ColorOmniboxChipOnSystemBlockedActivityIndicatorBackground = 909,
18543    CEF_ColorOmniboxChipOnSystemBlockedActivityIndicatorForeground = 910,
18544    CEF_ColorOmniboxComposeboxChipBackground = 911,
18545    CEF_ColorOmniboxComposeboxDivider = 912,
18546    CEF_ColorOmniboxComposeboxFaviconBackground = 913,
18547    CEF_ColorOmniboxComposeboxFileThumbnailOverlay = 914,
18548    CEF_ColorOmniboxComposeboxFileThumbnailOverlayIcon = 915,
18549    CEF_ColorOmniboxComposeboxPrimaryAction = 916,
18550    CEF_ColorOmniboxComposeboxSubmitButtonBackground = 917,
18551    CEF_ColorOmniboxComposeboxSubmitButtonIcon = 918,
18552    CEF_ColorOmniboxContextEntrypointHoverBackground = 919,
18553    CEF_ColorOmniboxContextEntrypointText = 920,
18554    CEF_ColorOmniboxForegroundDisabled = 921,
18555    CEF_ColorOmniboxIconBackground = 922,
18556    CEF_ColorOmniboxIconBackgroundTonal = 923,
18557    CEF_ColorOmniboxIconForeground = 924,
18558    CEF_ColorOmniboxIconForegroundTonal = 925,
18559    CEF_ColorOmniboxIconHover = 926,
18560    CEF_ColorOmniboxIconPressed = 927,
18561    CEF_ColorOmniboxIntentChipBackground = 928,
18562    CEF_ColorOmniboxIntentChipIcon = 929,
18563    CEF_ColorOmniboxKeywordSelected = 930,
18564    CEF_ColorOmniboxKeywordSeparator = 931,
18565    CEF_ColorOmniboxResultsBackground = 932,
18566    CEF_ColorOmniboxResultsBackgroundHovered = 933,
18567    CEF_ColorOmniboxResultsBackgroundHoverOverlay = 934,
18568    CEF_ColorOmniboxResultsBackgroundSelected = 935,
18569    CEF_ColorOmniboxResultsBackgroundIph = 936,
18570    CEF_ColorOmniboxResultsButtonBorder = 937,
18571    CEF_ColorOmniboxResultsButtonIcon = 938,
18572    CEF_ColorOmniboxResultsButtonIconSelected = 939,
18573    CEF_ColorOmniboxResultsButtonInkDrop = 940,
18574    CEF_ColorOmniboxResultsButtonInkDropRowHovered = 941,
18575    CEF_ColorOmniboxResultsButtonInkDropRowSelected = 942,
18576    CEF_ColorOmniboxResultsButtonInkDropSelected = 943,
18577    CEF_ColorOmniboxResultsButtonInkDropSelectedRowHovered = 944,
18578    CEF_ColorOmniboxResultsButtonInkDropSelectedRowSelected = 945,
18579    CEF_ColorOmniboxResultsChipBackground = 946,
18580    CEF_ColorOmniboxResultsFocusIndicator = 947,
18581    CEF_ColorOmniboxResultsIcon = 948,
18582    CEF_ColorOmniboxResultsIconGM3Background = 949,
18583    CEF_ColorOmniboxResultsIconSelected = 950,
18584    CEF_ColorOmniboxResultsIconHovered = 951,
18585    CEF_ColorOmniboxResultsStarterPackIcon = 952,
18586    CEF_ColorOmniboxResultsTextAnswer = 953,
18587    CEF_ColorOmniboxResultsTextDimmed = 954,
18588    CEF_ColorOmniboxResultsTextDimmedSelected = 955,
18589    CEF_ColorOmniboxResultsTextNegative = 956,
18590    CEF_ColorOmniboxResultsTextNegativeSelected = 957,
18591    CEF_ColorOmniboxResultsTextPositive = 958,
18592    CEF_ColorOmniboxResultsTextPositiveSelected = 959,
18593    CEF_ColorOmniboxResultsTextSecondary = 960,
18594    CEF_ColorOmniboxResultsTextSecondarySelected = 961,
18595    CEF_ColorOmniboxResultsTextSelected = 962,
18596    CEF_ColorOmniboxResultsUrl = 963,
18597    CEF_ColorOmniboxResultsUrlSelected = 964,
18598    CEF_ColorOmniboxSecurityChipDangerous = 965,
18599    CEF_ColorOmniboxSecurityChipDangerousBackground = 966,
18600    CEF_ColorOmniboxSecurityChipDefault = 967,
18601    CEF_ColorOmniboxSecurityChipInkDropHover = 968,
18602    CEF_ColorOmniboxSecurityChipInkDropRipple = 969,
18603    CEF_ColorOmniboxSecurityChipSecure = 970,
18604    CEF_ColorOmniboxSecurityChipText = 971,
18605    CEF_ColorOmniboxSelectionBackground = 972,
18606    CEF_ColorOmniboxSelectionForeground = 973,
18607    CEF_ColorOmniboxText = 974,
18608    CEF_ColorOmniboxTextDimmed = 975,
18609    CEF_ColorPageInfoChosenObjectDeleteButtonIcon = 976,
18610    CEF_ColorPageInfoChosenObjectDeleteButtonIconDisabled = 977,
18611    CEF_ColorPageInfoForeground = 978,
18612    CEF_ColorPageInfoSubtitleForeground = 979,
18613    CEF_ColorPageInfoPermissionBlockedOnSystemLevelDisabled = 980,
18614    CEF_ColorPageInfoPermissionUsedIcon = 981,
18615    CEF_ColorParentAccessViewLocalWebApprovalBackground = 982,
18616    CEF_ColorPaymentsFeedbackTipBackground = 983,
18617    CEF_ColorPaymentsFeedbackTipBorder = 984,
18618    CEF_ColorPaymentsFeedbackTipForeground = 985,
18619    CEF_ColorPaymentsFeedbackTipIcon = 986,
18620    CEF_ColorPaymentsGooglePayLogo = 987,
18621    CEF_ColorPaymentsPromoCodeBackground = 988,
18622    CEF_ColorPaymentsPromoCodeForeground = 989,
18623    CEF_ColorPaymentsPromoCodeForegroundHovered = 990,
18624    CEF_ColorPaymentsPromoCodeForegroundPressed = 991,
18625    CEF_ColorPaymentsPromoCodeInkDrop = 992,
18626    CEF_ColorPaymentsRequestBackArrowButtonIcon = 993,
18627    CEF_ColorPaymentsRequestBackArrowButtonIconDisabled = 994,
18628    CEF_ColorPaymentsRequestRowBackgroundHighlighted = 995,
18629    CEF_ColorPermissionPromptRequestText = 996,
18630    CEF_ColorPerformanceInterventionButtonIconActive = 997,
18631    CEF_ColorPerformanceInterventionButtonIconInactive = 998,
18632    CEF_ColorPipWindowBackToTabButtonBackground = 999,
18633    CEF_ColorPipWindowBackground = 1000,
18634    CEF_ColorPipWindowTopBarBackground = 1001,
18635    CEF_ColorPipWindowForeground = 1002,
18636    CEF_ColorPipWindowForegroundInactive = 1003,
18637    CEF_ColorPipWindowScrimFull = 1004,
18638    CEF_ColorPipWindowScrimTopGradientStart = 1005,
18639    CEF_ColorPipWindowScrimTopGradientEnd = 1006,
18640    CEF_ColorPipWindowScrimBottomGradientStart = 1007,
18641    CEF_ColorPipWindowScrimBottomGradientEnd = 1008,
18642    CEF_ColorPipWindowSkipAdButtonBackground = 1009,
18643    CEF_ColorPipWindowSkipAdButtonBorder = 1010,
18644    CEF_ColorProductSpecificationsButtonBackground = 1011,
18645    CEF_ColorProductSpecificationsCitationBackground = 1012,
18646    CEF_ColorProductSpecificationsCitationPopupBackground = 1013,
18647    CEF_ColorProductSpecificationsCitationPopupText = 1014,
18648    CEF_ColorProductSpecificationsCitationPopupTitle = 1015,
18649    CEF_ColorProductSpecificationsComparisonTableListBackground = 1016,
18650    CEF_ColorProductSpecificationsDetailChipBackground = 1017,
18651    CEF_ColorProductSpecificationsDisclosureBackground = 1018,
18652    CEF_ColorProductSpecificationsDisclosureForeground = 1019,
18653    CEF_ColorProductSpecificationsDisclosureGradientEnd = 1020,
18654    CEF_ColorProductSpecificationsDisclosureGradientStart = 1021,
18655    CEF_ColorProductSpecificationsDisclosureSummaryBackground = 1022,
18656    CEF_ColorProductSpecificationsDivider = 1023,
18657    CEF_ColorProductSpecificationsGradientIcon = 1024,
18658    CEF_ColorProductSpecificationsHorizontalCarouselScrollbarThumb = 1025,
18659    CEF_ColorProductSpecificationsIcon = 1026,
18660    CEF_ColorProductSpecificationsIconButtonBackground = 1027,
18661    CEF_ColorProductSpecificationsIconButtonHoveredBackground = 1028,
18662    CEF_ColorProductSpecificationsLink = 1029,
18663    CEF_ColorProductSpecificationsPageBackground = 1030,
18664    CEF_ColorProductSpecificationsSummaryBackground = 1031,
18665    CEF_ColorProductSpecificationsSummaryBackgroundDragging = 1032,
18666    CEF_ColorProductSpecificationsTonalButtonBackground = 1033,
18667    CEF_ColorProductSpecificationsTonalButtonIcon = 1034,
18668    CEF_ColorProfileMenuBackground = 1035,
18669    CEF_ColorProfileMenuIdentityInfoBackground = 1036,
18670    CEF_ColorProfileMenuIdentityInfoTitle = 1037,
18671    CEF_ColorProfileMenuIdentityInfoSubtitle = 1038,
18672    CEF_ColorProfileMenuPromoButtonsBackground = 1039,
18673    CEF_ColorProfilesReauthDialogBorder = 1040,
18674    CEF_ColorProjectsPanelBackground = 1041,
18675    CEF_ColorProjectsPanelButtonDisabledIcon = 1042,
18676    CEF_ColorProjectsPanelButtonHoverBackground = 1043,
18677    CEF_ColorProjectsPanelButtonIcon = 1044,
18678    CEF_ColorProjectsPanelListsSeparator = 1045,
18679    CEF_ColorProjectsPanelNoTabGroupsText = 1046,
18680    CEF_ColorProjectsPanelTabGroupsDragPlaceholder = 1047,
18681    CEF_ColorProjectsPanelTabGroupsDropIndicator = 1048,
18682    CEF_ColorPwaBackground = 1049,
18683    CEF_ColorPwaMenuButtonIcon = 1050,
18684    CEF_ColorPwaSecurityChipForeground = 1051,
18685    CEF_ColorPwaSecurityChipForegroundDangerous = 1052,
18686    CEF_ColorPwaSecurityChipForegroundSecure = 1053,
18687    CEF_ColorPwaTabBarBottomSeparator = 1054,
18688    CEF_ColorPwaTabBarTopSeparator = 1055,
18689    CEF_ColorPwaTheme = 1056,
18690    CEF_ColorPwaToolbarBackground = 1057,
18691    CEF_ColorPwaToolbarButtonIcon = 1058,
18692    CEF_ColorPwaToolbarButtonIconDisabled = 1059,
18693    CEF_ColorQrCodeBackground = 1060,
18694    CEF_ColorQrCodeBorder = 1061,
18695    CEF_ColorQuickAnswersReportQueryButtonBackground = 1062,
18696    CEF_ColorQuickAnswersReportQueryButtonForeground = 1063,
18697    CEF_ColorReadAnythingBackground = 1064,
18698    CEF_ColorReadAnythingBackgroundBlue = 1065,
18699    CEF_ColorReadAnythingBackgroundDark = 1066,
18700    CEF_ColorReadAnythingBackgroundLight = 1067,
18701    CEF_ColorReadAnythingBackgroundYellow = 1068,
18702    CEF_ColorReadAnythingBackgroundHighContrast = 1069,
18703    CEF_ColorReadAnythingBackgroundLowContrastLight = 1070,
18704    CEF_ColorReadAnythingBackgroundLowContrastDark = 1071,
18705    CEF_ColorReadAnythingCurrentReadAloudHighlight = 1072,
18706    CEF_ColorReadAnythingCurrentReadAloudHighlightBlue = 1073,
18707    CEF_ColorReadAnythingCurrentReadAloudHighlightDark = 1074,
18708    CEF_ColorReadAnythingCurrentReadAloudHighlightLight = 1075,
18709    CEF_ColorReadAnythingCurrentReadAloudHighlightYellow = 1076,
18710    CEF_ColorReadAnythingCurrentReadAloudHighlightHighContrast = 1077,
18711    CEF_ColorReadAnythingCurrentReadAloudHighlightLowContrastLight = 1078,
18712    CEF_ColorReadAnythingCurrentReadAloudHighlightLowContrastDark = 1079,
18713    CEF_ColorReadAnythingFocusRingBackground = 1080,
18714    CEF_ColorReadAnythingFocusRingBackgroundBlue = 1081,
18715    CEF_ColorReadAnythingFocusRingBackgroundDark = 1082,
18716    CEF_ColorReadAnythingFocusRingBackgroundLight = 1083,
18717    CEF_ColorReadAnythingFocusRingBackgroundYellow = 1084,
18718    CEF_ColorReadAnythingFocusRingBackgroundHighContrast = 1085,
18719    CEF_ColorReadAnythingFocusRingBackgroundLowContrastLight = 1086,
18720    CEF_ColorReadAnythingFocusRingBackgroundLowContrastDark = 1087,
18721    CEF_ColorReadAnythingForeground = 1088,
18722    CEF_ColorReadAnythingForegroundBlue = 1089,
18723    CEF_ColorReadAnythingForegroundDark = 1090,
18724    CEF_ColorReadAnythingForegroundLight = 1091,
18725    CEF_ColorReadAnythingForegroundYellow = 1092,
18726    CEF_ColorReadAnythingForegroundHighContrast = 1093,
18727    CEF_ColorReadAnythingForegroundLowContrastLight = 1094,
18728    CEF_ColorReadAnythingForegroundLowContrastDark = 1095,
18729    CEF_ColorReadAnythingLineFocus = 1096,
18730    CEF_ColorReadAnythingLineFocusBlue = 1097,
18731    CEF_ColorReadAnythingLineFocusDark = 1098,
18732    CEF_ColorReadAnythingLineFocusLight = 1099,
18733    CEF_ColorReadAnythingLineFocusYellow = 1100,
18734    CEF_ColorReadAnythingLineFocusHighContrast = 1101,
18735    CEF_ColorReadAnythingLineFocusScrim = 1102,
18736    CEF_ColorReadAnythingLineFocusLowContrastLight = 1103,
18737    CEF_ColorReadAnythingLineFocusLowContrastDark = 1104,
18738    CEF_ColorReadAnythingSeparator = 1105,
18739    CEF_ColorReadAnythingSeparatorBlue = 1106,
18740    CEF_ColorReadAnythingSeparatorDark = 1107,
18741    CEF_ColorReadAnythingSeparatorLight = 1108,
18742    CEF_ColorReadAnythingSeparatorYellow = 1109,
18743    CEF_ColorReadAnythingSeparatorHighContrast = 1110,
18744    CEF_ColorReadAnythingSeparatorLowContrastLight = 1111,
18745    CEF_ColorReadAnythingSeparatorLowContrastDark = 1112,
18746    CEF_ColorReadAnythingDropdownBackground = 1113,
18747    CEF_ColorReadAnythingDropdownBackgroundBlue = 1114,
18748    CEF_ColorReadAnythingDropdownBackgroundDark = 1115,
18749    CEF_ColorReadAnythingDropdownBackgroundLight = 1116,
18750    CEF_ColorReadAnythingDropdownBackgroundYellow = 1117,
18751    CEF_ColorReadAnythingDropdownBackgroundHighContrast = 1118,
18752    CEF_ColorReadAnythingDropdownBackgroundLowContrastLight = 1119,
18753    CEF_ColorReadAnythingDropdownBackgroundLowContrastDark = 1120,
18754    CEF_ColorReadAnythingDropdownSelected = 1121,
18755    CEF_ColorReadAnythingDropdownSelectedBlue = 1122,
18756    CEF_ColorReadAnythingDropdownSelectedDark = 1123,
18757    CEF_ColorReadAnythingDropdownSelectedLight = 1124,
18758    CEF_ColorReadAnythingDropdownSelectedYellow = 1125,
18759    CEF_ColorReadAnythingDropdownSelectedHighContrast = 1126,
18760    CEF_ColorReadAnythingDropdownSelectedLowContrastLight = 1127,
18761    CEF_ColorReadAnythingDropdownSelectedLowContrastDark = 1128,
18762    CEF_ColorReadAnythingTextSelection = 1129,
18763    CEF_ColorReadAnythingTextSelectionBlue = 1130,
18764    CEF_ColorReadAnythingTextSelectionDark = 1131,
18765    CEF_ColorReadAnythingTextSelectionLight = 1132,
18766    CEF_ColorReadAnythingTextSelectionYellow = 1133,
18767    CEF_ColorReadAnythingTextSelectionHighContrast = 1134,
18768    CEF_ColorReadAnythingTextSelectionLowContrastLight = 1135,
18769    CEF_ColorReadAnythingTextSelectionLowContrastDark = 1136,
18770    CEF_ColorReadAnythingLinkDefault = 1137,
18771    CEF_ColorReadAnythingLinkDefaultBlue = 1138,
18772    CEF_ColorReadAnythingLinkDefaultDark = 1139,
18773    CEF_ColorReadAnythingLinkDefaultLight = 1140,
18774    CEF_ColorReadAnythingLinkDefaultYellow = 1141,
18775    CEF_ColorReadAnythingLinkDefaultHighContrast = 1142,
18776    CEF_ColorReadAnythingLinkDefaultLowContrastLight = 1143,
18777    CEF_ColorReadAnythingLinkDefaultLowContrastDark = 1144,
18778    CEF_ColorReadAnythingLinkVisited = 1145,
18779    CEF_ColorReadAnythingLinkVisitedBlue = 1146,
18780    CEF_ColorReadAnythingLinkVisitedDark = 1147,
18781    CEF_ColorReadAnythingLinkVisitedLight = 1148,
18782    CEF_ColorReadAnythingLinkVisitedYellow = 1149,
18783    CEF_ColorReadAnythingLinkVisitedHighContrast = 1150,
18784    CEF_ColorReadAnythingLinkVisitedLowContrastLight = 1151,
18785    CEF_ColorReadAnythingLinkVisitedLowContrastDark = 1152,
18786    CEF_ColorReadAnythingPreviousReadAloudHighlight = 1153,
18787    CEF_ColorReadAnythingPreviousReadAloudHighlightBlue = 1154,
18788    CEF_ColorReadAnythingPreviousReadAloudHighlightDark = 1155,
18789    CEF_ColorReadAnythingPreviousReadAloudHighlightLight = 1156,
18790    CEF_ColorReadAnythingPreviousReadAloudHighlightYellow = 1157,
18791    CEF_ColorReadAnythingPreviousReadAloudHighlightHighContrast = 1158,
18792    CEF_ColorReadAnythingPreviousReadAloudHighlightLowContrastLight = 1159,
18793    CEF_ColorReadAnythingPreviousReadAloudHighlightLowContrastDark = 1160,
18794    CEF_ColorReadAnythingAudioPlayerBackground = 1161,
18795    CEF_ColorReadAnythingAudioPlayerBackgroundBlue = 1162,
18796    CEF_ColorReadAnythingAudioPlayerBackgroundDark = 1163,
18797    CEF_ColorReadAnythingAudioPlayerBackgroundLight = 1164,
18798    CEF_ColorReadAnythingAudioPlayerBackgroundYellow = 1165,
18799    CEF_ColorReadAnythingAudioPlayerBackgroundHighContrast = 1166,
18800    CEF_ColorReadAnythingAudioPlayerBackgroundLowContrastLight = 1167,
18801    CEF_ColorReadAnythingAudioPlayerBackgroundLowContrastDark = 1168,
18802    CEF_ColorReadAnythingAudioPlayerIcon = 1169,
18803    CEF_ColorReadAnythingAudioPlayerIconBlue = 1170,
18804    CEF_ColorReadAnythingAudioPlayerIconDark = 1171,
18805    CEF_ColorReadAnythingAudioPlayerIconLight = 1172,
18806    CEF_ColorReadAnythingAudioPlayerIconYellow = 1173,
18807    CEF_ColorReadAnythingAudioPlayerIconHighContrast = 1174,
18808    CEF_ColorReadAnythingAudioPlayerIconLowContrastLight = 1175,
18809    CEF_ColorReadAnythingAudioPlayerIconLowContrastDark = 1176,
18810    CEF_ColorReadAnythingToolbarIcon = 1177,
18811    CEF_ColorReadAnythingToolbarIconBlue = 1178,
18812    CEF_ColorReadAnythingToolbarIconDark = 1179,
18813    CEF_ColorReadAnythingToolbarIconLight = 1180,
18814    CEF_ColorReadAnythingToolbarIconYellow = 1181,
18815    CEF_ColorReadAnythingToolbarIconHighContrast = 1182,
18816    CEF_ColorReadAnythingToolbarIconLowContrast = 1183,
18817    CEF_ColorReadAnythingToolbarIconLowContrastLight = 1184,
18818    CEF_ColorReadAnythingToolbarIconLowContrastDark = 1185,
18819    CEF_ColorReadAnythingToolbarIconHoverBackground = 1186,
18820    CEF_ColorReadAnythingToolbarIconHoverBackgroundBlue = 1187,
18821    CEF_ColorReadAnythingToolbarIconHoverBackgroundDark = 1188,
18822    CEF_ColorReadAnythingToolbarIconHoverBackgroundLight = 1189,
18823    CEF_ColorReadAnythingToolbarIconHoverBackgroundYellow = 1190,
18824    CEF_ColorReadAnythingToolbarIconHoverBackgroundHighContrast = 1191,
18825    CEF_ColorReadAnythingToolbarIconHoverBackgroundLowContrastLight = 1192,
18826    CEF_ColorReadAnythingToolbarIconHoverBackgroundLowContrastDark = 1193,
18827    CEF_ColorReadAnythingToolbarFocusOutline = 1194,
18828    CEF_ColorReadAnythingToolbarFocusOutlineBlue = 1195,
18829    CEF_ColorReadAnythingToolbarFocusOutlineDark = 1196,
18830    CEF_ColorReadAnythingToolbarFocusOutlineLight = 1197,
18831    CEF_ColorReadAnythingToolbarFocusOutlineYellow = 1198,
18832    CEF_ColorReadAnythingToolbarFocusOutlineHighContrast = 1199,
18833    CEF_ColorReadAnythingToolbarFocusOutlineLowContrastLight = 1200,
18834    CEF_ColorReadAnythingToolbarFocusOutlineLowContrastDark = 1201,
18835    CEF_ColorReadAnythingOnAudioPlayerFocusOutline = 1202,
18836    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineBlue = 1203,
18837    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineDark = 1204,
18838    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineLight = 1205,
18839    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineYellow = 1206,
18840    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineHighContrast = 1207,
18841    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineLowContrastLight = 1208,
18842    CEF_ColorReadAnythingOnAudioPlayerFocusOutlineLowContrastDark = 1209,
18843    CEF_ColorReadAnythingAudioControlsIcon = 1210,
18844    CEF_ColorReadAnythingAudioControlsIconBlue = 1211,
18845    CEF_ColorReadAnythingAudioControlsIconDark = 1212,
18846    CEF_ColorReadAnythingAudioControlsIconLight = 1213,
18847    CEF_ColorReadAnythingAudioControlsIconYellow = 1214,
18848    CEF_ColorReadAnythingAudioControlsIconHighContrast = 1215,
18849    CEF_ColorReadAnythingAudioControlsIconLowContrastLight = 1216,
18850    CEF_ColorReadAnythingAudioControlsIconLowContrastDark = 1217,
18851    CEF_ColorReadAnythingFullPageScrollbarBlue = 1218,
18852    CEF_ColorReadAnythingFullPageScrollbarDark = 1219,
18853    CEF_ColorReadAnythingFullPageScrollbarLight = 1220,
18854    CEF_ColorReadAnythingFullPageScrollbarYellow = 1221,
18855    CEF_ColorReadAnythingFullPageScrollbarHighContrast = 1222,
18856    CEF_ColorReadAnythingFullPageScrollbarLowContrastLight = 1223,
18857    CEF_ColorReadAnythingFullPageScrollbarLowContrastDark = 1224,
18858    CEF_ColorSearchboxAnswerIconBackground = 1225,
18859    CEF_ColorSearchboxAnswerIconForeground = 1226,
18860    CEF_ColorSearchboxBackground = 1227,
18861    CEF_ColorSearchboxBackgroundHovered = 1228,
18862    CEF_ColorSearchboxBorder = 1229,
18863    CEF_ColorSearchboxForeground = 1230,
18864    CEF_ColorSearchboxLensVoiceIconBackground = 1231,
18865    CEF_ColorSearchboxPlaceholder = 1232,
18866    CEF_ColorSearchboxResultsActionChip = 1233,
18867    CEF_ColorSearchboxResultsActionChipIcon = 1234,
18868    CEF_ColorSearchboxResultsActionChipFocusOutline = 1235,
18869    CEF_ColorSearchboxResultsBackground = 1236,
18870    CEF_ColorSearchboxResultsBackgroundHovered = 1237,
18871    CEF_ColorSearchboxResultsButtonHover = 1238,
18872    CEF_ColorSearchboxResultsDimSelected = 1239,
18873    CEF_ColorSearchboxResultsFocusIndicator = 1240,
18874    CEF_ColorSearchboxResultsForeground = 1241,
18875    CEF_ColorSearchboxResultsForegroundDimmed = 1242,
18876    CEF_ColorSearchboxResultsIcon = 1243,
18877    CEF_ColorSearchboxResultsIconFocusedOutline = 1244,
18878    CEF_ColorSearchboxResultsIconSelected = 1245,
18879    CEF_ColorSearchboxResultsUrl = 1246,
18880    CEF_ColorSearchboxResultsUrlSelected = 1247,
18881    CEF_ColorSearchboxSearchIconBackground = 1248,
18882    CEF_ColorSearchboxSelectionBackground = 1249,
18883    CEF_ColorSearchboxSelectionForeground = 1250,
18884    CEF_ColorSearchboxShadow = 1251,
18885    CEF_ColorNewTabPageActionChipBackground = 1252,
18886    CEF_ColorNewTabPageActionChipBackgroundHover = 1253,
18887    CEF_ColorSavedTabGroupForegroundGrey = 1254,
18888    CEF_ColorSavedTabGroupForegroundBlue = 1255,
18889    CEF_ColorSavedTabGroupForegroundRed = 1256,
18890    CEF_ColorSavedTabGroupForegroundYellow = 1257,
18891    CEF_ColorSavedTabGroupForegroundGreen = 1258,
18892    CEF_ColorSavedTabGroupForegroundPink = 1259,
18893    CEF_ColorSavedTabGroupForegroundPurple = 1260,
18894    CEF_ColorSavedTabGroupForegroundCyan = 1261,
18895    CEF_ColorSavedTabGroupForegroundOrange = 1262,
18896    CEF_ColorSavedTabGroupOutlineGrey = 1263,
18897    CEF_ColorSavedTabGroupOutlineBlue = 1264,
18898    CEF_ColorSavedTabGroupOutlineRed = 1265,
18899    CEF_ColorSavedTabGroupOutlineYellow = 1266,
18900    CEF_ColorSavedTabGroupOutlineGreen = 1267,
18901    CEF_ColorSavedTabGroupOutlinePink = 1268,
18902    CEF_ColorSavedTabGroupOutlinePurple = 1269,
18903    CEF_ColorSavedTabGroupOutlineCyan = 1270,
18904    CEF_ColorSavedTabGroupOutlineOrange = 1271,
18905    CEF_ColorScreenshotCapturedImageBackground = 1272,
18906    CEF_ColorScreenshotCapturedImageBorder = 1273,
18907    CEF_ColorShareThisTabAudioToggleBackground = 1274,
18908    CEF_ColorShareThisTabSourceViewBorder = 1275,
18909    CEF_ColorSharingRecentActivityDialogFaviconContainer = 1276,
18910    CEF_ColorSharingRecentActivityDialogActivityContainer = 1277,
18911    CEF_ColorSidePanelBackground = 1278,
18912    CEF_ColorSidePanelBadgeBackground = 1279,
18913    CEF_ColorSidePanelBadgeBackgroundUpdated = 1280,
18914    CEF_ColorSidePanelBadgeForeground = 1281,
18915    CEF_ColorSidePanelBadgeForegroundUpdated = 1282,
18916    CEF_ColorSidePanelBookmarksSelectedFolderBackground = 1283,
18917    CEF_ColorSidePanelBookmarksSelectedFolderForeground = 1284,
18918    CEF_ColorSidePanelBookmarksSelectedFolderIcon = 1285,
18919    CEF_ColorSidePanelBookmarksActiveFolderForeground = 1286,
18920    CEF_ColorSidePanelBookmarksActiveFolderBackground = 1287,
18921    CEF_ColorSidePanelCardBackground = 1288,
18922    CEF_ColorSidePanelCardPrimaryForeground = 1289,
18923    CEF_ColorSidePanelCardSecondaryForeground = 1290,
18924    CEF_ColorSidePanelCommerceGraphAxis = 1291,
18925    CEF_ColorSidePanelCommerceGraphBubbleBackground = 1292,
18926    CEF_ColorSidePanelCommerceGraphLine = 1293,
18927    CEF_ColorSidePanelContentAreaSeparator = 1294,
18928    CEF_ColorSidePanelContentBackground = 1295,
18929    CEF_ColorSidePanelCustomizeChromeClassicChromeTileBorder = 1296,
18930    CEF_ColorSidePanelCustomizeChromeCornerNtpBorder = 1297,
18931    CEF_ColorSidePanelCustomizeChromeCustomOptionBackground = 1298,
18932    CEF_ColorSidePanelCustomizeChromeCustomOptionForeground = 1299,
18933    CEF_ColorSidePanelCustomizeChromeMiniNtpActiveTab = 1300,
18934    CEF_ColorSidePanelCustomizeChromeMiniNtpArrowsAndRefreshButton = 1301,
18935    CEF_ColorSidePanelCustomizeChromeMiniNtpBackground = 1302,
18936    CEF_ColorSidePanelCustomizeChromeMiniNtpBorder = 1303,
18937    CEF_ColorSidePanelCustomizeChromeMiniNtpCaron = 1304,
18938    CEF_ColorSidePanelCustomizeChromeMiniNtpCaronContainer = 1305,
18939    CEF_ColorSidePanelCustomizeChromeMiniNtpChromeLogo = 1306,
18940    CEF_ColorSidePanelCustomizeChromeMiniNtpOmnibox = 1307,
18941    CEF_ColorSidePanelCustomizeChromeMiniNtpTabStripBackground = 1308,
18942    CEF_ColorSidePanelCustomizeChromeThemeBackground = 1309,
18943    CEF_ColorSidePanelCustomizeChromeThemeCheckmarkBackground = 1310,
18944    CEF_ColorSidePanelCustomizeChromeThemeCheckmarkForeground = 1311,
18945    CEF_ColorSidePanelCustomizeChromeThemeSnapshotBackground = 1312,
18946    CEF_ColorSidePanelCustomizeChromeWebStoreBorder = 1313,
18947    CEF_ColorSidePanelDialogBackground = 1314,
18948    CEF_ColorSidePanelDialogDivider = 1315,
18949    CEF_ColorSidePanelDialogPrimaryForeground = 1316,
18950    CEF_ColorSidePanelDialogSecondaryForeground = 1317,
18951    CEF_ColorSidePanelDivider = 1318,
18952    CEF_ColorSidePanelEditFooterBorder = 1319,
18953    CEF_ColorSidePanelComboboxEntryIcon = 1320,
18954    CEF_ColorSidePanelComboboxEntryTitle = 1321,
18955    CEF_ColorSidePanelEntryIcon = 1322,
18956    CEF_ColorSidePanelEntryDropdownIcon = 1323,
18957    CEF_ColorSidePanelEntryTitle = 1324,
18958    CEF_ColorSidePanelFilterChipBorder = 1325,
18959    CEF_ColorSidePanelFilterChipForeground = 1326,
18960    CEF_ColorSidePanelFilterChipForegroundSelected = 1327,
18961    CEF_ColorSidePanelFilterChipIcon = 1328,
18962    CEF_ColorSidePanelFilterChipIconSelected = 1329,
18963    CEF_ColorSidePanelFilterChipBackgroundHover = 1330,
18964    CEF_ColorSidePanelFilterChipBackgroundSelected = 1331,
18965    CEF_ColorSidePanelHeaderButtonIcon = 1332,
18966    CEF_ColorSidePanelHeaderButtonIconDisabled = 1333,
18967    CEF_ColorSidePanelHoverResizeAreaHandle = 1334,
18968    CEF_ColorSidePanelResizeAreaHandle = 1335,
18969    CEF_ColorSidePanelScrollbarThumb = 1336,
18970    CEF_ColorSidePanelTextfieldBorder = 1337,
18971    CEF_ColorSidePanelWallpaperSearchTileBackground = 1338,
18972    CEF_ColorSidePanelWallpaperSearchErrorButtonBackground = 1339,
18973    CEF_ColorSidePanelWallpaperSearchErrorButtonText = 1340,
18974    CEF_ColorSidePanelWallpaperSearchInspirationDescriptors = 1341,
18975    CEF_ColorSplitViewBackground = 1342,
18976    CEF_ColorStarRatingFullIcon = 1343,
18977    CEF_ColorStarRatingEmptyIcon = 1344,
18978    CEF_ColorStatusBubbleBackgroundFrameActive = 1345,
18979    CEF_ColorStatusBubbleBackgroundFrameInactive = 1346,
18980    CEF_ColorStatusBubbleForegroundFrameActive = 1347,
18981    CEF_ColorStatusBubbleForegroundFrameInactive = 1348,
18982    CEF_ColorStatusBubbleShadow = 1349,
18983    CEF_ColorTabAlertAudioPlayingActiveFrameActive = 1350,
18984    CEF_ColorTabAlertAudioPlayingActiveFrameInactive = 1351,
18985    CEF_ColorTabAlertAudioPlayingInactiveFrameActive = 1352,
18986    CEF_ColorTabAlertAudioPlayingInactiveFrameInactive = 1353,
18987    CEF_ColorTabAlertMediaRecordingActiveFrameActive = 1354,
18988    CEF_ColorTabAlertMediaRecordingActiveFrameInactive = 1355,
18989    CEF_ColorTabAlertMediaRecordingInactiveFrameActive = 1356,
18990    CEF_ColorTabAlertMediaRecordingInactiveFrameInactive = 1357,
18991    CEF_ColorTabAlertPipPlayingActiveFrameActive = 1358,
18992    CEF_ColorTabAlertPipPlayingActiveFrameInactive = 1359,
18993    CEF_ColorTabAlertPipPlayingInactiveFrameActive = 1360,
18994    CEF_ColorTabAlertPipPlayingInactiveFrameInactive = 1361,
18995    CEF_ColorHoverCardTabAlertMediaRecordingIcon = 1362,
18996    CEF_ColorHoverCardTabAlertPipPlayingIcon = 1363,
18997    CEF_ColorHoverCardTabAlertAudioPlayingIcon = 1364,
18998    CEF_ColorTabBackgroundActiveFrameActive = 1365,
18999    CEF_ColorDetachedTabBackgroundActiveFrameActive = 1366,
19000    CEF_ColorTabBackgroundActiveFrameInactive = 1367,
19001    CEF_ColorTabBackgroundInactiveFrameActive = 1368,
19002    CEF_ColorTabBackgroundInactiveFrameInactive = 1369,
19003    CEF_ColorTabBackgroundInactiveHoverFrameActive = 1370,
19004    CEF_ColorTabBackgroundInactiveHoverFrameInactive = 1371,
19005    CEF_ColorTabBackgroundSelectedFrameActive = 1372,
19006    CEF_ColorTabBackgroundSelectedFrameInactive = 1373,
19007    CEF_ColorTabBackgroundSelectedHoverFrameActive = 1374,
19008    CEF_ColorTabBackgroundSelectedHoverFrameInactive = 1375,
19009    CEF_ColorTabCloseButtonFocusRingActive = 1376,
19010    CEF_ColorTabCloseButtonFocusRingInactive = 1377,
19011    CEF_ColorTabDiscardRingFrameActive = 1378,
19012    CEF_ColorTabDiscardRingFrameInactive = 1379,
19013    CEF_ColorTabFocusRingActive = 1380,
19014    CEF_ColorTabFocusRingInactive = 1381,
19015    CEF_ColorTabForegroundActiveFrameActive = 1382,
19016    CEF_ColorTabForegroundActiveFrameInactive = 1383,
19017    CEF_ColorTabForegroundInactiveFrameActive = 1384,
19018    CEF_ColorTabForegroundInactiveFrameInactive = 1385,
19019    CEF_ColorTabDividerFrameActive = 1386,
19020    CEF_ColorTabDividerFrameInactive = 1387,
19021    CEF_ColorTabHoverCardBackground = 1388,
19022    CEF_ColorTabHoverCardForeground = 1389,
19023    CEF_ColorTabHoverCardSecondaryText = 1390,
19024    CEF_ColorTabGroupBookmarkBarGrey = 1391,
19025    CEF_ColorTabGroupBookmarkBarBlue = 1392,
19026    CEF_ColorTabGroupBookmarkBarRed = 1393,
19027    CEF_ColorTabGroupBookmarkBarYellow = 1394,
19028    CEF_ColorTabGroupBookmarkBarGreen = 1395,
19029    CEF_ColorTabGroupBookmarkBarPink = 1396,
19030    CEF_ColorTabGroupBookmarkBarPurple = 1397,
19031    CEF_ColorTabGroupBookmarkBarCyan = 1398,
19032    CEF_ColorTabGroupBookmarkBarOrange = 1399,
19033    CEF_ColorTabGroupContextMenuBlue = 1400,
19034    CEF_ColorTabGroupContextMenuCyan = 1401,
19035    CEF_ColorTabGroupContextMenuGreen = 1402,
19036    CEF_ColorTabGroupContextMenuGrey = 1403,
19037    CEF_ColorTabGroupContextMenuOrange = 1404,
19038    CEF_ColorTabGroupContextMenuPink = 1405,
19039    CEF_ColorTabGroupContextMenuPurple = 1406,
19040    CEF_ColorTabGroupContextMenuRed = 1407,
19041    CEF_ColorTabGroupContextMenuYellow = 1408,
19042    CEF_ColorTabGroupDialogGrey = 1409,
19043    CEF_ColorTabGroupDialogBlue = 1410,
19044    CEF_ColorTabGroupDialogRed = 1411,
19045    CEF_ColorTabGroupDialogYellow = 1412,
19046    CEF_ColorTabGroupDialogGreen = 1413,
19047    CEF_ColorTabGroupDialogPink = 1414,
19048    CEF_ColorTabGroupDialogPurple = 1415,
19049    CEF_ColorTabGroupDialogCyan = 1416,
19050    CEF_ColorTabGroupDialogOrange = 1417,
19051    CEF_ColorTabGroupDialogIconEnabled = 1418,
19052    CEF_ColorTabGroupTabStripFrameActiveGrey = 1419,
19053    CEF_ColorTabGroupTabStripFrameActiveBlue = 1420,
19054    CEF_ColorTabGroupTabStripFrameActiveRed = 1421,
19055    CEF_ColorTabGroupTabStripFrameActiveYellow = 1422,
19056    CEF_ColorTabGroupTabStripFrameActiveGreen = 1423,
19057    CEF_ColorTabGroupTabStripFrameActivePink = 1424,
19058    CEF_ColorTabGroupTabStripFrameActivePurple = 1425,
19059    CEF_ColorTabGroupTabStripFrameActiveCyan = 1426,
19060    CEF_ColorTabGroupTabStripFrameActiveOrange = 1427,
19061    CEF_ColorTabGroupTabStripFrameInactiveGrey = 1428,
19062    CEF_ColorTabGroupTabStripFrameInactiveBlue = 1429,
19063    CEF_ColorTabGroupTabStripFrameInactiveRed = 1430,
19064    CEF_ColorTabGroupTabStripFrameInactiveYellow = 1431,
19065    CEF_ColorTabGroupTabStripFrameInactiveGreen = 1432,
19066    CEF_ColorTabGroupTabStripFrameInactivePink = 1433,
19067    CEF_ColorTabGroupTabStripFrameInactivePurple = 1434,
19068    CEF_ColorTabGroupTabStripFrameInactiveCyan = 1435,
19069    CEF_ColorTabGroupTabStripFrameInactiveOrange = 1436,
19070    CEF_ColorTabStrokeFrameActive = 1437,
19071    CEF_ColorTabStrokeFrameInactive = 1438,
19072    CEF_ColorTabstripLoadingProgressBackground = 1439,
19073    CEF_ColorTabstripLoadingProgressForeground = 1440,
19074    CEF_ColorTabstripScrollContainerShadow = 1441,
19075    CEF_ColorTabThrobber = 1442,
19076    CEF_ColorTabThrobberPreconnect = 1443,
19077    CEF_ColorTabSearchButtonBackground = 1444,
19078    CEF_ColorTabSearchButtonIcon = 1445,
19079    CEF_ColorTabSearchButtonIconBackground = 1446,
19080    CEF_ColorTabSearchBackground = 1447,
19081    CEF_ColorTabSearchButtonCRForegroundFrameActive = 1448,
19082    CEF_ColorTabSearchButtonCRForegroundFrameInactive = 1449,
19083    CEF_ColorTabSearchCardBackground = 1450,
19084    CEF_ColorTabSearchDisabled = 1451,
19085    CEF_ColorTabSearchDisabledContainer = 1452,
19086    CEF_ColorTabSearchDivider = 1453,
19087    CEF_ColorTabSearchFooterBackground = 1454,
19088    CEF_ColorTabSearchImageTabContentBottom = 1455,
19089    CEF_ColorTabSearchImageTabContentTop = 1456,
19090    CEF_ColorTabSearchImageTabText = 1457,
19091    CEF_ColorTabSearchImageWindowFrame = 1458,
19092    CEF_ColorTabSearchMediaIcon = 1459,
19093    CEF_ColorTabSearchMediaRecordingIcon = 1460,
19094    CEF_ColorTabSearchMediaGlicActiveIcon = 1461,
19095    CEF_ColorTabSearchPrimaryForeground = 1462,
19096    CEF_ColorTabSearchSecondaryForeground = 1463,
19097    CEF_ColorTabSearchSelected = 1464,
19098    CEF_ColorTabSearchScrollbarThumb = 1465,
19099    CEF_ColorTaskManagerBackground = 1466,
19100    CEF_ColorTaskManagerTableBackground = 1467,
19101    CEF_ColorTaskManagerTableBackgroundAlternate = 1468,
19102    CEF_ColorTaskManagerTableBackgroundSelectedFocused = 1469,
19103    CEF_ColorTaskManagerTableBackgroundSelectedUnfocused = 1470,
19104    CEF_ColorTaskManagerTableHeaderBackground = 1471,
19105    CEF_ColorTaskManagerSearchBarBackground = 1472,
19106    CEF_ColorTaskManagerSearchBarTransparent = 1473,
19107    CEF_ColorTaskManagerSearchBarPlaceholderText = 1474,
19108    CEF_ColorThumbnailTabBackground = 1475,
19109    CEF_ColorThumbnailTabForeground = 1476,
19110    CEF_ColorThumbnailTabStripBackgroundActive = 1477,
19111    CEF_ColorThumbnailTabStripBackgroundInactive = 1478,
19112    CEF_ColorThumbnailTabStripTabGroupFrameActiveGrey = 1479,
19113    CEF_ColorThumbnailTabStripTabGroupFrameActiveBlue = 1480,
19114    CEF_ColorThumbnailTabStripTabGroupFrameActiveRed = 1481,
19115    CEF_ColorThumbnailTabStripTabGroupFrameActiveYellow = 1482,
19116    CEF_ColorThumbnailTabStripTabGroupFrameActiveGreen = 1483,
19117    CEF_ColorThumbnailTabStripTabGroupFrameActivePink = 1484,
19118    CEF_ColorThumbnailTabStripTabGroupFrameActivePurple = 1485,
19119    CEF_ColorThumbnailTabStripTabGroupFrameActiveCyan = 1486,
19120    CEF_ColorThumbnailTabStripTabGroupFrameActiveOrange = 1487,
19121    CEF_ColorThumbnailTabStripTabGroupFrameInactiveGrey = 1488,
19122    CEF_ColorThumbnailTabStripTabGroupFrameInactiveBlue = 1489,
19123    CEF_ColorThumbnailTabStripTabGroupFrameInactiveRed = 1490,
19124    CEF_ColorThumbnailTabStripTabGroupFrameInactiveYellow = 1491,
19125    CEF_ColorThumbnailTabStripTabGroupFrameInactiveGreen = 1492,
19126    CEF_ColorThumbnailTabStripTabGroupFrameInactivePink = 1493,
19127    CEF_ColorThumbnailTabStripTabGroupFrameInactivePurple = 1494,
19128    CEF_ColorThumbnailTabStripTabGroupFrameInactiveCyan = 1495,
19129    CEF_ColorThumbnailTabStripTabGroupFrameInactiveOrange = 1496,
19130    CEF_ColorToolbar = 1497,
19131    CEF_ColorToolbarBackgroundSubtleEmphasis = 1498,
19132    CEF_ColorToolbarBackgroundSubtleEmphasisHovered = 1499,
19133    CEF_ColorToolbarButtonBackgroundHighlightedDefault = 1500,
19134    CEF_ColorToolbarButtonBorder = 1501,
19135    CEF_ColorToolbarButtonIcon = 1502,
19136    CEF_ColorToolbarButtonIconDefault = 1503,
19137    CEF_ColorToolbarButtonIconDisabled = 1504,
19138    CEF_ColorToolbarButtonIconHovered = 1505,
19139    CEF_ColorToolbarButtonIconInactive = 1506,
19140    CEF_ColorToolbarButtonIconPressed = 1507,
19141    CEF_ColorToolbarButtonText = 1508,
19142    CEF_ColorToolbarCloseButtonBackgroundDefault = 1509,
19143    CEF_ColorToolbarContentAreaSeparator = 1510,
19144    CEF_ColorToolbarExtensionSeparatorDisabled = 1511,
19145    CEF_ColorToolbarExtensionSeparatorEnabled = 1512,
19146    CEF_ColorToolbarFeaturePromoHighlight = 1513,
19147    CEF_ColorToolbarGlicButtonBackgroundDefault = 1514,
19148    CEF_ColorToolbarIconContainerBorder = 1515,
19149    CEF_ColorToolbarInkDrop = 1516,
19150    CEF_ColorToolbarInkDropHover = 1517,
19151    CEF_ColorToolbarInkDropRipple = 1518,
19152    CEF_ColorToolbarSeparator = 1519,
19153    CEF_ColorToolbarActionItemEngaged = 1520,
19154    CEF_ColorToolbarSeparatorDefault = 1521,
19155    CEF_ColorToolbarText = 1522,
19156    CEF_ColorToolbarTextDefault = 1523,
19157    CEF_ColorToolbarTextDisabled = 1524,
19158    CEF_ColorToolbarTextDisabledDefault = 1525,
19159    CEF_ColorToolbarTopSeparatorFrameActive = 1526,
19160    CEF_ColorToolbarTopSeparatorFrameInactive = 1527,
19161    CEF_ColorVerticalTabStripShadow = 1528,
19162    CEF_ColorVerticalTabPinnedOutline = 1529,
19163    CEF_ColorWebAuthnHoverButtonForeground = 1530,
19164    CEF_ColorWebAuthnHoverButtonForegroundDisabled = 1531,
19165    CEF_ColorWebAuthnBackArrowButtonIcon = 1532,
19166    CEF_ColorWebAuthnBackArrowButtonIconDisabled = 1533,
19167    CEF_ColorWebAuthnIconColor = 1534,
19168    CEF_ColorWebAuthnIconColorDisabled = 1535,
19169    CEF_ColorWebAuthnPinTextfieldBottomBorder = 1536,
19170    CEF_ColorWebAuthnProgressRingBackground = 1537,
19171    CEF_ColorWebAuthnProgressRingForeground = 1538,
19172    CEF_ColorWebContentsBackground = 1539,
19173    CEF_ColorWebContentsBackgroundLetterboxing = 1540,
19174    CEF_ColorWebUiTabStripBackground = 1541,
19175    CEF_ColorWebUiTabStripFocusOutline = 1542,
19176    CEF_ColorWebUiTabStripIndicatorCapturing = 1543,
19177    CEF_ColorWebUiTabStripIndicatorPip = 1544,
19178    CEF_ColorWebUiTabStripIndicatorRecording = 1545,
19179    CEF_ColorWebUiTabStripScrollbarThumb = 1546,
19180    CEF_ColorWebUiTabStripTabActiveTitleBackground = 1547,
19181    CEF_ColorWebUiTabStripTabActiveTitleContent = 1548,
19182    CEF_ColorWebUiTabStripTabBackground = 1549,
19183    CEF_ColorWebUiTabStripTabBlocked = 1550,
19184    CEF_ColorWebUiTabStripTabLoadingSpinning = 1551,
19185    CEF_ColorWebUiTabStripTabSeparator = 1552,
19186    CEF_ColorWebUiTabStripTabText = 1553,
19187    CEF_ColorWebUiTabStripTabWaitingSpinning = 1554,
19188    CEF_ColorWindowControlButtonBackgroundActive = 1555,
19189    CEF_ColorWindowControlButtonBackgroundInactive = 1556,
19190    CEF_ChromeColorsEnd = 1557,
19191    CEF_UiColorsLast = 65535,
19192}