cef_dll_sys/bindings/
x86_64_unknown_linux_gnu.rs

1/* automatically generated by rust-bindgen 0.71.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_999998: i32 = 999998;
12pub const CEF_API_VERSION_999999: i32 = 999999;
13pub const CEF_API_VERSION_MIN: i32 = 13300;
14pub const CEF_API_VERSION_LAST: i32 = 13500;
15pub const CEF_API_VERSION_EXPERIMENTAL: i32 = 999999;
16pub const CEF_API_VERSION_NEXT: i32 = 999998;
17pub const CEF_API_VERSION: i32 = 999999;
18pub type __uint16_t = ::std::os::raw::c_ushort;
19pub type __uint_least16_t = __uint16_t;
20pub type __time_t = ::std::os::raw::c_long;
21unsafe extern "C" {
22    #[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"]
23    pub fn cef_api_hash(
24        version: ::std::os::raw::c_int,
25        entry: ::std::os::raw::c_int,
26    ) -> *const ::std::os::raw::c_char;
27}
28unsafe extern "C" {
29    #[doc = "\n Returns the CEF API version that was configured by the first call to\n cef_api_hash().\n"]
30    pub fn cef_api_version() -> ::std::os::raw::c_int;
31}
32pub type wchar_t = ::std::os::raw::c_int;
33pub type char16_t = __uint_least16_t;
34#[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"]
35#[repr(C)]
36#[derive(Debug, Copy, Clone)]
37pub struct _cef_string_wide_t {
38    pub str_: *mut wchar_t,
39    pub length: usize,
40    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut wchar_t)>,
41}
42#[allow(clippy::unnecessary_operation, clippy::identity_op)]
43const _: () = {
44    ["Size of _cef_string_wide_t"][::std::mem::size_of::<_cef_string_wide_t>() - 24usize];
45    ["Alignment of _cef_string_wide_t"][::std::mem::align_of::<_cef_string_wide_t>() - 8usize];
46    ["Offset of field: _cef_string_wide_t::str_"]
47        [::std::mem::offset_of!(_cef_string_wide_t, str_) - 0usize];
48    ["Offset of field: _cef_string_wide_t::length"]
49        [::std::mem::offset_of!(_cef_string_wide_t, length) - 8usize];
50    ["Offset of field: _cef_string_wide_t::dtor"]
51        [::std::mem::offset_of!(_cef_string_wide_t, dtor) - 16usize];
52};
53#[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"]
54pub type cef_string_wide_t = _cef_string_wide_t;
55#[repr(C)]
56#[derive(Debug, Copy, Clone)]
57pub struct _cef_string_utf8_t {
58    pub str_: *mut ::std::os::raw::c_char,
59    pub length: usize,
60    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut ::std::os::raw::c_char)>,
61}
62#[allow(clippy::unnecessary_operation, clippy::identity_op)]
63const _: () = {
64    ["Size of _cef_string_utf8_t"][::std::mem::size_of::<_cef_string_utf8_t>() - 24usize];
65    ["Alignment of _cef_string_utf8_t"][::std::mem::align_of::<_cef_string_utf8_t>() - 8usize];
66    ["Offset of field: _cef_string_utf8_t::str_"]
67        [::std::mem::offset_of!(_cef_string_utf8_t, str_) - 0usize];
68    ["Offset of field: _cef_string_utf8_t::length"]
69        [::std::mem::offset_of!(_cef_string_utf8_t, length) - 8usize];
70    ["Offset of field: _cef_string_utf8_t::dtor"]
71        [::std::mem::offset_of!(_cef_string_utf8_t, dtor) - 16usize];
72};
73pub type cef_string_utf8_t = _cef_string_utf8_t;
74#[repr(C)]
75#[derive(Debug, Copy, Clone)]
76pub struct _cef_string_utf16_t {
77    pub str_: *mut char16_t,
78    pub length: usize,
79    pub dtor: ::std::option::Option<unsafe extern "C" fn(str_: *mut char16_t)>,
80}
81#[allow(clippy::unnecessary_operation, clippy::identity_op)]
82const _: () = {
83    ["Size of _cef_string_utf16_t"][::std::mem::size_of::<_cef_string_utf16_t>() - 24usize];
84    ["Alignment of _cef_string_utf16_t"][::std::mem::align_of::<_cef_string_utf16_t>() - 8usize];
85    ["Offset of field: _cef_string_utf16_t::str_"]
86        [::std::mem::offset_of!(_cef_string_utf16_t, str_) - 0usize];
87    ["Offset of field: _cef_string_utf16_t::length"]
88        [::std::mem::offset_of!(_cef_string_utf16_t, length) - 8usize];
89    ["Offset of field: _cef_string_utf16_t::dtor"]
90        [::std::mem::offset_of!(_cef_string_utf16_t, dtor) - 16usize];
91};
92pub type cef_string_utf16_t = _cef_string_utf16_t;
93unsafe extern "C" {
94    #[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"]
95    pub fn cef_string_wide_set(
96        src: *const wchar_t,
97        src_len: usize,
98        output: *mut cef_string_wide_t,
99        copy: ::std::os::raw::c_int,
100    ) -> ::std::os::raw::c_int;
101}
102unsafe extern "C" {
103    pub fn cef_string_utf8_set(
104        src: *const ::std::os::raw::c_char,
105        src_len: usize,
106        output: *mut cef_string_utf8_t,
107        copy: ::std::os::raw::c_int,
108    ) -> ::std::os::raw::c_int;
109}
110unsafe extern "C" {
111    pub fn cef_string_utf16_set(
112        src: *const char16_t,
113        src_len: usize,
114        output: *mut cef_string_utf16_t,
115        copy: ::std::os::raw::c_int,
116    ) -> ::std::os::raw::c_int;
117}
118unsafe extern "C" {
119    #[doc = "\n These functions clear string values. The structure itself is not freed.\n"]
120    pub fn cef_string_wide_clear(str_: *mut cef_string_wide_t);
121}
122unsafe extern "C" {
123    pub fn cef_string_utf8_clear(str_: *mut cef_string_utf8_t);
124}
125unsafe extern "C" {
126    pub fn cef_string_utf16_clear(str_: *mut cef_string_utf16_t);
127}
128unsafe extern "C" {
129    #[doc = "\n These functions compare two string values with the same results as strcmp().\n"]
130    pub fn cef_string_wide_cmp(
131        str1: *const cef_string_wide_t,
132        str2: *const cef_string_wide_t,
133    ) -> ::std::os::raw::c_int;
134}
135unsafe extern "C" {
136    pub fn cef_string_utf8_cmp(
137        str1: *const cef_string_utf8_t,
138        str2: *const cef_string_utf8_t,
139    ) -> ::std::os::raw::c_int;
140}
141unsafe extern "C" {
142    pub fn cef_string_utf16_cmp(
143        str1: *const cef_string_utf16_t,
144        str2: *const cef_string_utf16_t,
145    ) -> ::std::os::raw::c_int;
146}
147unsafe extern "C" {
148    #[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"]
149    pub fn cef_string_wide_to_utf8(
150        src: *const wchar_t,
151        src_len: usize,
152        output: *mut cef_string_utf8_t,
153    ) -> ::std::os::raw::c_int;
154}
155unsafe extern "C" {
156    pub fn cef_string_utf8_to_wide(
157        src: *const ::std::os::raw::c_char,
158        src_len: usize,
159        output: *mut cef_string_wide_t,
160    ) -> ::std::os::raw::c_int;
161}
162unsafe extern "C" {
163    pub fn cef_string_wide_to_utf16(
164        src: *const wchar_t,
165        src_len: usize,
166        output: *mut cef_string_utf16_t,
167    ) -> ::std::os::raw::c_int;
168}
169unsafe extern "C" {
170    pub fn cef_string_utf16_to_wide(
171        src: *const char16_t,
172        src_len: usize,
173        output: *mut cef_string_wide_t,
174    ) -> ::std::os::raw::c_int;
175}
176unsafe extern "C" {
177    pub fn cef_string_utf8_to_utf16(
178        src: *const ::std::os::raw::c_char,
179        src_len: usize,
180        output: *mut cef_string_utf16_t,
181    ) -> ::std::os::raw::c_int;
182}
183unsafe extern "C" {
184    pub fn cef_string_utf16_to_utf8(
185        src: *const char16_t,
186        src_len: usize,
187        output: *mut cef_string_utf8_t,
188    ) -> ::std::os::raw::c_int;
189}
190unsafe extern "C" {
191    #[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"]
192    pub fn cef_string_ascii_to_wide(
193        src: *const ::std::os::raw::c_char,
194        src_len: usize,
195        output: *mut cef_string_wide_t,
196    ) -> ::std::os::raw::c_int;
197}
198unsafe extern "C" {
199    pub fn cef_string_ascii_to_utf16(
200        src: *const ::std::os::raw::c_char,
201        src_len: usize,
202        output: *mut cef_string_utf16_t,
203    ) -> ::std::os::raw::c_int;
204}
205#[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"]
206pub type cef_string_userfree_wide_t = *mut cef_string_wide_t;
207pub type cef_string_userfree_utf8_t = *mut cef_string_utf8_t;
208pub type cef_string_userfree_utf16_t = *mut cef_string_utf16_t;
209unsafe extern "C" {
210    #[doc = "\n These functions allocate a new string structure. They must be freed by\n calling the associated free function.\n"]
211    pub fn cef_string_userfree_wide_alloc() -> cef_string_userfree_wide_t;
212}
213unsafe extern "C" {
214    pub fn cef_string_userfree_utf8_alloc() -> cef_string_userfree_utf8_t;
215}
216unsafe extern "C" {
217    pub fn cef_string_userfree_utf16_alloc() -> cef_string_userfree_utf16_t;
218}
219unsafe extern "C" {
220    #[doc = "\n These functions free the string structure allocated by the associated\n alloc function. Any string contents will first be cleared.\n"]
221    pub fn cef_string_userfree_wide_free(str_: cef_string_userfree_wide_t);
222}
223unsafe extern "C" {
224    pub fn cef_string_userfree_utf8_free(str_: cef_string_userfree_utf8_t);
225}
226unsafe extern "C" {
227    pub fn cef_string_userfree_utf16_free(str_: cef_string_userfree_utf16_t);
228}
229unsafe extern "C" {
230    #[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"]
231    pub fn cef_string_utf16_to_lower(
232        src: *const char16_t,
233        src_len: usize,
234        output: *mut cef_string_utf16_t,
235    ) -> ::std::os::raw::c_int;
236}
237unsafe extern "C" {
238    pub fn cef_string_utf16_to_upper(
239        src: *const char16_t,
240        src_len: usize,
241        output: *mut cef_string_utf16_t,
242    ) -> ::std::os::raw::c_int;
243}
244pub type cef_char_t = char16_t;
245pub type cef_string_userfree_t = cef_string_userfree_utf16_t;
246pub type cef_string_t = cef_string_utf16_t;
247#[repr(C)]
248#[derive(Debug, Copy, Clone)]
249pub struct _cef_string_list_t {
250    _unused: [u8; 0],
251}
252#[doc = "\n CEF string maps are a set of key/value string pairs.\n"]
253pub type cef_string_list_t = *mut _cef_string_list_t;
254unsafe extern "C" {
255    #[doc = "\n Allocate a new string map.\n"]
256    pub fn cef_string_list_alloc() -> cef_string_list_t;
257}
258unsafe extern "C" {
259    #[doc = "\n Return the number of elements in the string list.\n"]
260    pub fn cef_string_list_size(list: cef_string_list_t) -> usize;
261}
262unsafe extern "C" {
263    #[doc = "\n Retrieve the value at the specified zero-based string list index. Returns\n true (1) if the value was successfully retrieved.\n"]
264    pub fn cef_string_list_value(
265        list: cef_string_list_t,
266        index: usize,
267        value: *mut cef_string_t,
268    ) -> ::std::os::raw::c_int;
269}
270unsafe extern "C" {
271    #[doc = "\n Append a new value at the end of the string list.\n"]
272    pub fn cef_string_list_append(list: cef_string_list_t, value: *const cef_string_t);
273}
274unsafe extern "C" {
275    #[doc = "\n Clear the string list.\n"]
276    pub fn cef_string_list_clear(list: cef_string_list_t);
277}
278unsafe extern "C" {
279    #[doc = "\n Free the string list.\n"]
280    pub fn cef_string_list_free(list: cef_string_list_t);
281}
282unsafe extern "C" {
283    #[doc = "\n Creates a copy of an existing string list.\n"]
284    pub fn cef_string_list_copy(list: cef_string_list_t) -> cef_string_list_t;
285}
286#[repr(C)]
287#[derive(Debug, Copy, Clone)]
288pub struct _cef_string_map_t {
289    _unused: [u8; 0],
290}
291#[doc = "\n CEF string maps are a set of key/value string pairs.\n"]
292pub type cef_string_map_t = *mut _cef_string_map_t;
293unsafe extern "C" {
294    #[doc = "\n Allocate a new string map.\n"]
295    pub fn cef_string_map_alloc() -> cef_string_map_t;
296}
297unsafe extern "C" {
298    #[doc = "\n Return the number of elements in the string map.\n"]
299    pub fn cef_string_map_size(map: cef_string_map_t) -> usize;
300}
301unsafe extern "C" {
302    #[doc = "\n Return the value assigned to the specified key.\n"]
303    pub fn cef_string_map_find(
304        map: cef_string_map_t,
305        key: *const cef_string_t,
306        value: *mut cef_string_t,
307    ) -> ::std::os::raw::c_int;
308}
309unsafe extern "C" {
310    #[doc = "\n Return the key at the specified zero-based string map index.\n"]
311    pub fn cef_string_map_key(
312        map: cef_string_map_t,
313        index: usize,
314        key: *mut cef_string_t,
315    ) -> ::std::os::raw::c_int;
316}
317unsafe extern "C" {
318    #[doc = "\n Return the value at the specified zero-based string map index.\n"]
319    pub fn cef_string_map_value(
320        map: cef_string_map_t,
321        index: usize,
322        value: *mut cef_string_t,
323    ) -> ::std::os::raw::c_int;
324}
325unsafe extern "C" {
326    #[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"]
327    pub fn cef_string_map_append(
328        map: cef_string_map_t,
329        key: *const cef_string_t,
330        value: *const cef_string_t,
331    ) -> ::std::os::raw::c_int;
332}
333unsafe extern "C" {
334    #[doc = "\n Clear the string map.\n"]
335    pub fn cef_string_map_clear(map: cef_string_map_t);
336}
337unsafe extern "C" {
338    #[doc = "\n Free the string map.\n"]
339    pub fn cef_string_map_free(map: cef_string_map_t);
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct _cef_string_multimap_t {
344    _unused: [u8; 0],
345}
346#[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"]
347pub type cef_string_multimap_t = *mut _cef_string_multimap_t;
348unsafe extern "C" {
349    #[doc = "\n Allocate a new string multimap.\n"]
350    pub fn cef_string_multimap_alloc() -> cef_string_multimap_t;
351}
352unsafe extern "C" {
353    #[doc = "\n Return the number of elements in the string multimap.\n"]
354    pub fn cef_string_multimap_size(map: cef_string_multimap_t) -> usize;
355}
356unsafe extern "C" {
357    #[doc = "\n Return the number of values with the specified key.\n"]
358    pub fn cef_string_multimap_find_count(
359        map: cef_string_multimap_t,
360        key: *const cef_string_t,
361    ) -> usize;
362}
363unsafe extern "C" {
364    #[doc = "\n Return the value_index-th value with the specified key.\n"]
365    pub fn cef_string_multimap_enumerate(
366        map: cef_string_multimap_t,
367        key: *const cef_string_t,
368        value_index: usize,
369        value: *mut cef_string_t,
370    ) -> ::std::os::raw::c_int;
371}
372unsafe extern "C" {
373    #[doc = "\n Return the key at the specified zero-based string multimap index.\n"]
374    pub fn cef_string_multimap_key(
375        map: cef_string_multimap_t,
376        index: usize,
377        key: *mut cef_string_t,
378    ) -> ::std::os::raw::c_int;
379}
380unsafe extern "C" {
381    #[doc = "\n Return the value at the specified zero-based string multimap index.\n"]
382    pub fn cef_string_multimap_value(
383        map: cef_string_multimap_t,
384        index: usize,
385        value: *mut cef_string_t,
386    ) -> ::std::os::raw::c_int;
387}
388unsafe extern "C" {
389    #[doc = "\n Append a new key/value pair at the end of the string multimap.\n"]
390    pub fn cef_string_multimap_append(
391        map: cef_string_multimap_t,
392        key: *const cef_string_t,
393        value: *const cef_string_t,
394    ) -> ::std::os::raw::c_int;
395}
396unsafe extern "C" {
397    #[doc = "\n Clear the string multimap.\n"]
398    pub fn cef_string_multimap_clear(map: cef_string_multimap_t);
399}
400unsafe extern "C" {
401    #[doc = "\n Free the string multimap.\n"]
402    pub fn cef_string_multimap_free(map: cef_string_multimap_t);
403}
404pub type time_t = __time_t;
405#[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"]
406#[repr(C)]
407#[derive(Debug, Copy, Clone)]
408pub struct _cef_basetime_t {
409    pub val: i64,
410}
411#[allow(clippy::unnecessary_operation, clippy::identity_op)]
412const _: () = {
413    ["Size of _cef_basetime_t"][::std::mem::size_of::<_cef_basetime_t>() - 8usize];
414    ["Alignment of _cef_basetime_t"][::std::mem::align_of::<_cef_basetime_t>() - 8usize];
415    ["Offset of field: _cef_basetime_t::val"]
416        [::std::mem::offset_of!(_cef_basetime_t, val) - 0usize];
417};
418#[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"]
419pub type cef_basetime_t = _cef_basetime_t;
420#[doc = "\n Time information. Values should always be in UTC.\n"]
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct _cef_time_t {
424    #[doc = "\n Four or five digit year \"2007\" (1601 to 30827 on Windows, 1970 to 2038 on\n 32-bit POSIX)\n"]
425    pub year: ::std::os::raw::c_int,
426    #[doc = "\n 1-based month (values 1 = January, etc.)\n"]
427    pub month: ::std::os::raw::c_int,
428    #[doc = "\n 0-based day of week (0 = Sunday, etc.)\n"]
429    pub day_of_week: ::std::os::raw::c_int,
430    #[doc = "\n 1-based day of month (1-31)\n"]
431    pub day_of_month: ::std::os::raw::c_int,
432    #[doc = "\n Hour within the current day (0-23)\n"]
433    pub hour: ::std::os::raw::c_int,
434    #[doc = "\n Minute within the current hour (0-59)\n"]
435    pub minute: ::std::os::raw::c_int,
436    #[doc = "\n Second within the current minute (0-59 plus leap seconds which may take\n it up to 60).\n"]
437    pub second: ::std::os::raw::c_int,
438    #[doc = "\n Milliseconds within the current second (0-999)\n"]
439    pub millisecond: ::std::os::raw::c_int,
440}
441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
442const _: () = {
443    ["Size of _cef_time_t"][::std::mem::size_of::<_cef_time_t>() - 32usize];
444    ["Alignment of _cef_time_t"][::std::mem::align_of::<_cef_time_t>() - 4usize];
445    ["Offset of field: _cef_time_t::year"][::std::mem::offset_of!(_cef_time_t, year) - 0usize];
446    ["Offset of field: _cef_time_t::month"][::std::mem::offset_of!(_cef_time_t, month) - 4usize];
447    ["Offset of field: _cef_time_t::day_of_week"]
448        [::std::mem::offset_of!(_cef_time_t, day_of_week) - 8usize];
449    ["Offset of field: _cef_time_t::day_of_month"]
450        [::std::mem::offset_of!(_cef_time_t, day_of_month) - 12usize];
451    ["Offset of field: _cef_time_t::hour"][::std::mem::offset_of!(_cef_time_t, hour) - 16usize];
452    ["Offset of field: _cef_time_t::minute"][::std::mem::offset_of!(_cef_time_t, minute) - 20usize];
453    ["Offset of field: _cef_time_t::second"][::std::mem::offset_of!(_cef_time_t, second) - 24usize];
454    ["Offset of field: _cef_time_t::millisecond"]
455        [::std::mem::offset_of!(_cef_time_t, millisecond) - 28usize];
456};
457#[doc = "\n Time information. Values should always be in UTC.\n"]
458pub type cef_time_t = _cef_time_t;
459unsafe extern "C" {
460    #[doc = "\n Converts cef_time_t to/from time_t. Returns true (1) on success and false\n (0) on failure.\n"]
461    pub fn cef_time_to_timet(
462        cef_time: *const cef_time_t,
463        time: *mut time_t,
464    ) -> ::std::os::raw::c_int;
465}
466unsafe extern "C" {
467    pub fn cef_time_from_timet(time: time_t, cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
468}
469unsafe extern "C" {
470    #[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"]
471    pub fn cef_time_to_doublet(
472        cef_time: *const cef_time_t,
473        time: *mut f64,
474    ) -> ::std::os::raw::c_int;
475}
476unsafe extern "C" {
477    pub fn cef_time_from_doublet(time: f64, cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
478}
479unsafe extern "C" {
480    #[doc = "\n Retrieve the current system time. Returns true (1) on success and false (0)\n on failure.\n"]
481    pub fn cef_time_now(cef_time: *mut cef_time_t) -> ::std::os::raw::c_int;
482}
483unsafe extern "C" {
484    #[doc = "\n Retrieve the current system time.\n"]
485    pub fn cef_basetime_now() -> cef_basetime_t;
486}
487unsafe extern "C" {
488    #[doc = "\n Retrieve the delta in milliseconds between two time values. Returns true (1)\n on success and false (0) on failure."]
489    pub fn cef_time_delta(
490        cef_time1: *const cef_time_t,
491        cef_time2: *const cef_time_t,
492        delta: *mut ::std::os::raw::c_longlong,
493    ) -> ::std::os::raw::c_int;
494}
495unsafe extern "C" {
496    #[doc = "\n Converts cef_time_t to cef_basetime_t. Returns true (1) on success and\n false (0) on failure.\n"]
497    pub fn cef_time_to_basetime(
498        from: *const cef_time_t,
499        to: *mut cef_basetime_t,
500    ) -> ::std::os::raw::c_int;
501}
502unsafe extern "C" {
503    #[doc = "\n Converts cef_basetime_t to cef_time_t. Returns true (1) on success and\n false (0) on failure.\n"]
504    pub fn cef_time_from_basetime(
505        from: cef_basetime_t,
506        to: *mut cef_time_t,
507    ) -> ::std::os::raw::c_int;
508}
509#[repr(u32)]
510#[non_exhaustive]
511#[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"]
512#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
513pub enum cef_content_setting_types_t {
514    #[doc = " 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."]
515    CEF_CONTENT_SETTING_TYPE_COOKIES = 0,
516    #[doc = " 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."]
517    CEF_CONTENT_SETTING_TYPE_IMAGES = 1,
518    #[doc = " 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."]
519    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT = 2,
520    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
521    CEF_CONTENT_SETTING_TYPE_POPUPS = 3,
522    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
523    CEF_CONTENT_SETTING_TYPE_GEOLOCATION = 4,
524    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
525    CEF_CONTENT_SETTING_TYPE_NOTIFICATIONS = 5,
526    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
527    CEF_CONTENT_SETTING_TYPE_AUTO_SELECT_CERTIFICATE = 6,
528    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
529    CEF_CONTENT_SETTING_TYPE_MIXEDSCRIPT = 7,
530    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
531    CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_MIC = 8,
532    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
533    CEF_CONTENT_SETTING_TYPE_MEDIASTREAM_CAMERA = 9,
534    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
535    CEF_CONTENT_SETTING_TYPE_PROTOCOL_HANDLERS = 10,
536    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
537    CEF_CONTENT_SETTING_TYPE_DEPRECATED_PPAPI_BROKER = 11,
538    #[doc = " This setting governs both popups and unwanted redirects like tab-unders\n and framebusting."]
539    CEF_CONTENT_SETTING_TYPE_AUTOMATIC_DOWNLOADS = 12,
540    #[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."]
541    CEF_CONTENT_SETTING_TYPE_MIDI_SYSEX = 13,
542    #[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."]
543    CEF_CONTENT_SETTING_TYPE_SSL_CERT_DECISIONS = 14,
544    #[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."]
545    CEF_CONTENT_SETTING_TYPE_PROTECTED_MEDIA_IDENTIFIER = 15,
546    #[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."]
547    CEF_CONTENT_SETTING_TYPE_APP_BANNER = 16,
548    #[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."]
549    CEF_CONTENT_SETTING_TYPE_SITE_ENGAGEMENT = 17,
550    #[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."]
551    CEF_CONTENT_SETTING_TYPE_DURABLE_STORAGE = 18,
552    #[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."]
553    CEF_CONTENT_SETTING_TYPE_USB_CHOOSER_DATA = 19,
554    #[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."]
555    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_GUARD = 20,
556    #[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."]
557    CEF_CONTENT_SETTING_TYPE_BACKGROUND_SYNC = 21,
558    #[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."]
559    CEF_CONTENT_SETTING_TYPE_AUTOPLAY = 22,
560    #[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."]
561    CEF_CONTENT_SETTING_TYPE_IMPORTANT_SITE_INFO = 23,
562    #[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."]
563    CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOBLOCKER_DATA = 24,
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_ADS = 25,
566    #[doc = " Website setting which stores metadata for the subresource filter to aid in\n decisions for whether or not to show the UI."]
567    CEF_CONTENT_SETTING_TYPE_ADS_DATA = 26,
568    #[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."]
569    CEF_CONTENT_SETTING_TYPE_MIDI = 27,
570    #[doc = " This content setting type is for caching password protection service's\n verdicts of each origin."]
571    CEF_CONTENT_SETTING_TYPE_PASSWORD_PROTECTION = 28,
572    #[doc = " Website setting which stores engagement data for media related to a\n specific origin."]
573    CEF_CONTENT_SETTING_TYPE_MEDIA_ENGAGEMENT = 29,
574    #[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."]
575    CEF_CONTENT_SETTING_TYPE_SOUND = 30,
576    #[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."]
577    CEF_CONTENT_SETTING_TYPE_CLIENT_HINTS = 31,
578    #[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."]
579    CEF_CONTENT_SETTING_TYPE_SENSORS = 32,
580    #[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."]
581    CEF_CONTENT_SETTING_TYPE_DEPRECATED_ACCESSIBILITY_EVENTS = 33,
582    #[doc = " Used to store whether to allow a website to install a payment handler."]
583    CEF_CONTENT_SETTING_TYPE_PAYMENT_HANDLER = 34,
584    #[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."]
585    CEF_CONTENT_SETTING_TYPE_USB_GUARD = 35,
586    #[doc = " Nothing is stored in this setting at present. Please refer to\n BackgroundFetchPermissionContext for details on how this permission\n is ascertained."]
587    CEF_CONTENT_SETTING_TYPE_BACKGROUND_FETCH = 36,
588    #[doc = " Website setting which stores the amount of times the user has dismissed\n intent picker UI without explicitly choosing an option."]
589    CEF_CONTENT_SETTING_TYPE_INTENT_PICKER_DISPLAY = 37,
590    #[doc = " Used to store whether to allow a website to detect user active/idle state."]
591    CEF_CONTENT_SETTING_TYPE_IDLE_DETECTION = 38,
592    #[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."]
593    CEF_CONTENT_SETTING_TYPE_SERIAL_GUARD = 39,
594    #[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."]
595    CEF_CONTENT_SETTING_TYPE_SERIAL_CHOOSER_DATA = 40,
596    #[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."]
597    CEF_CONTENT_SETTING_TYPE_PERIODIC_BACKGROUND_SYNC = 41,
598    #[doc = " Content setting which stores whether to allow sites to ask for permission\n to do Bluetooth scanning."]
599    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_SCANNING = 42,
600    #[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."]
601    CEF_CONTENT_SETTING_TYPE_HID_GUARD = 43,
602    #[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."]
603    CEF_CONTENT_SETTING_TYPE_HID_CHOOSER_DATA = 44,
604    #[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."]
605    CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SCREEN = 45,
606    #[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."]
607    CEF_CONTENT_SETTING_TYPE_WAKE_LOCK_SYSTEM = 46,
608    #[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."]
609    CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_ACCESS = 47,
610    #[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."]
611    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_WRITE_GUARD = 48,
612    #[doc = " Used to store whether to allow a website to exchange data with NFC\n devices."]
613    CEF_CONTENT_SETTING_TYPE_NFC = 49,
614    #[doc = " Website setting to store permissions granted to access particular\n Bluetooth devices."]
615    CEF_CONTENT_SETTING_TYPE_BLUETOOTH_CHOOSER_DATA = 50,
616    #[doc = " Full access to the system clipboard (sanitized read without user gesture,\n and unsanitized read and write with user gesture)."]
617    CEF_CONTENT_SETTING_TYPE_CLIPBOARD_READ_WRITE = 51,
618    #[doc = " This is special-cased in the permissions layer to always allow, and as\n such doesn't have associated prefs data."]
619    CEF_CONTENT_SETTING_TYPE_CLIPBOARD_SANITIZED_WRITE = 52,
620    #[doc = " This content setting type is for caching safe browsing real time url\n check's verdicts of each origin."]
621    CEF_CONTENT_SETTING_TYPE_SAFE_BROWSING_URL_CHECK_DATA = 53,
622    #[doc = " Used to store whether a site is allowed to request AR or VR sessions with\n the WebXr Device API."]
623    CEF_CONTENT_SETTING_TYPE_VR = 54,
624    #[doc = " Used to store whether a site is allowed to request AR or VR sessions with\n the WebXr Device API."]
625    CEF_CONTENT_SETTING_TYPE_AR = 55,
626    #[doc = " Content setting which stores whether to allow site to open and read files\n and directories selected through the File System Access API."]
627    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_READ_GUARD = 56,
628    #[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."]
629    CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS = 57,
630    #[doc = " Content setting which stores whether to allow a site to control camera\n movements. It does not give access to camera."]
631    CEF_CONTENT_SETTING_TYPE_CAMERA_PAN_TILT_ZOOM = 58,
632    #[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"]
633    CEF_CONTENT_SETTING_TYPE_WINDOW_MANAGEMENT = 59,
634    #[doc = " Stores whether to allow insecure websites to make private network\n requests.\n See also: https://wicg.github.io/cors-rfc1918\n Set through enterprise policies only."]
635    CEF_CONTENT_SETTING_TYPE_INSECURE_PRIVATE_NETWORK = 60,
636    #[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."]
637    CEF_CONTENT_SETTING_TYPE_LOCAL_FONTS = 61,
638    #[doc = " Stores per-origin state for permission auto-revocation (for all permission\n types)."]
639    CEF_CONTENT_SETTING_TYPE_PERMISSION_AUTOREVOCATION_DATA = 62,
640    #[doc = " Stores per-origin state of the most recently selected directory for the\n use by the File System Access API."]
641    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_LAST_PICKED_DIRECTORY = 63,
642    #[doc = " Controls access to the getDisplayMedia API."]
643    CEF_CONTENT_SETTING_TYPE_DISPLAY_CAPTURE = 64,
644    #[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."]
645    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_CHOOSER_DATA = 65,
646    #[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."]
647    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_SHARING = 66,
648    #[doc = " Whether to use the v8 optimized JIT for running JavaScript on the page."]
649    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_JIT = 67,
650    #[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."]
651    CEF_CONTENT_SETTING_TYPE_HTTP_ALLOWED = 68,
652    #[doc = " Stores metadata related to form fill, such as e.g. whether user data was\n autofilled on a specific website."]
653    CEF_CONTENT_SETTING_TYPE_FORMFILL_METADATA = 69,
654    #[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."]
655    CEF_CONTENT_SETTING_TYPE_DEPRECATED_FEDERATED_IDENTITY_ACTIVE_SESSION = 70,
656    #[doc = " Setting to indicate whether Chrome should automatically apply darkening to\n web content."]
657    CEF_CONTENT_SETTING_TYPE_AUTO_DARK_WEB_CONTENT = 71,
658    #[doc = " Setting to indicate whether Chrome should request the desktop view of a\n site instead of the mobile one."]
659    CEF_CONTENT_SETTING_TYPE_REQUEST_DESKTOP_SITE = 72,
660    #[doc = " Setting to indicate whether browser should allow signing into a website\n via the browser FedCM API."]
661    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_API = 73,
662    #[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."]
663    CEF_CONTENT_SETTING_TYPE_NOTIFICATION_INTERACTIONS = 74,
664    #[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."]
665    CEF_CONTENT_SETTING_TYPE_REDUCED_ACCEPT_LANGUAGE = 75,
666    #[doc = " Website setting which is used for NotificationPermissionReviewService to\n store origin blocklist from review notification permissions feature."]
667    CEF_CONTENT_SETTING_TYPE_NOTIFICATION_PERMISSION_REVIEW = 76,
668    #[doc = " Website setting to store permissions granted to access particular devices\n in private network."]
669    CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_GUARD = 77,
670    #[doc = " Website setting to store permissions granted to access particular devices\n in private network."]
671    CEF_CONTENT_SETTING_TYPE_PRIVATE_NETWORK_CHOOSER_DATA = 78,
672    #[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."]
673    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_SIGNIN_STATUS = 79,
674    #[doc = " Website setting which is used for UnusedSitePermissionsService to\n store revoked permissions of unused sites from unused site permissions\n feature."]
675    CEF_CONTENT_SETTING_TYPE_REVOKED_UNUSED_SITE_PERMISSIONS = 80,
676    #[doc = " Similar to STORAGE_ACCESS, but applicable at the page-level rather than\n being specific to a frame."]
677    CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_STORAGE_ACCESS = 81,
678    #[doc = " Setting to indicate whether user has opted in to allowing auto re-authn\n via the FedCM API."]
679    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION = 82,
680    #[doc = " Website setting which stores whether the user has explicitly registered\n a website as an identity-provider."]
681    CEF_CONTENT_SETTING_TYPE_FEDERATED_IDENTITY_IDENTITY_PROVIDER_REGISTRATION = 83,
682    #[doc = " Content setting which is used to indicate whether anti-abuse functionality\n should be enabled."]
683    CEF_CONTENT_SETTING_TYPE_ANTI_ABUSE = 84,
684    #[doc = " Content setting used to indicate whether third-party storage partitioning\n should be enabled."]
685    CEF_CONTENT_SETTING_TYPE_THIRD_PARTY_STORAGE_PARTITIONING = 85,
686    #[doc = " Used to indicate whether HTTPS-First Mode is enabled on the hostname."]
687    CEF_CONTENT_SETTING_TYPE_HTTPS_ENFORCED = 86,
688    #[doc = " Setting for enabling the `getAllScreensMedia` API. Spec link:\n https://github.com/screen-share/capture-all-screens"]
689    CEF_CONTENT_SETTING_TYPE_ALL_SCREEN_CAPTURE = 87,
690    #[doc = " Stores per origin metadata for cookie controls."]
691    CEF_CONTENT_SETTING_TYPE_COOKIE_CONTROLS_METADATA = 88,
692    #[doc = " Content Setting for temporary 3PC accesses granted by user behavior\n heuristics."]
693    CEF_CONTENT_SETTING_TYPE_TPCD_HEURISTICS_GRANTS = 89,
694    #[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."]
695    CEF_CONTENT_SETTING_TYPE_TPCD_METADATA_GRANTS = 90,
696    #[doc = " Content Setting for 3PC accesses granted via 3PC deprecation trial."]
697    CEF_CONTENT_SETTING_TYPE_TPCD_TRIAL = 91,
698    #[doc = " Content Setting for 3PC accesses granted via top-level 3PC deprecation\n trial. Similar to TPCD_TRIAL, but applicable at the page-level for the\n lifetime of the page that served the token, rather than being specific to\n a requesting-origin/top-level-site combination and persistent."]
699    CEF_CONTENT_SETTING_TYPE_TOP_LEVEL_TPCD_TRIAL = 92,
700    #[doc = " Content Setting for a first-party origin trial that allows websites to\n enable third-party cookie deprecation.\n ALLOW (default): no effect (e.g. third-party cookies allowed, if not\n                  blocked otherwise).\n BLOCK: third-party cookies blocked, but 3PCD mitigations enabled."]
701    CEF_CONTENT_SETTING_TOP_LEVEL_TPCD_ORIGIN_TRIAL = 93,
702    #[doc = " Content setting used to indicate whether entering picture-in-picture\n automatically should be enabled."]
703    CEF_CONTENT_SETTING_TYPE_AUTO_PICTURE_IN_PICTURE = 94,
704    #[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."]
705    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_EXTENDED_PERMISSION = 95,
706    #[doc = " Whether the FSA Persistent Permissions restore prompt is eligible to be\n shown to the user, for a given origin."]
707    CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_RESTORE_PERMISSION = 96,
708    #[doc = " Whether an application capturing another tab, may scroll and zoom\n the captured tab."]
709    CEF_CONTENT_SETTING_TYPE_CAPTURED_SURFACE_CONTROL = 97,
710    #[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."]
711    CEF_CONTENT_SETTING_TYPE_SMART_CARD_GUARD = 98,
712    #[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."]
713    CEF_CONTENT_SETTING_TYPE_SMART_CARD_DATA = 99,
714    #[doc = " Content settings for access to printers for the Web Printing API."]
715    CEF_CONTENT_SETTING_TYPE_WEB_PRINTING = 100,
716    #[doc = " Content setting used to indicate whether entering HTML Fullscreen\n automatically (i.e. without transient activation) should be enabled."]
717    CEF_CONTENT_SETTING_TYPE_AUTOMATIC_FULLSCREEN = 101,
718    #[doc = " Content settings used to indicate that a web app is allowed to prompt the\n user for the installation of sub apps."]
719    CEF_CONTENT_SETTING_TYPE_SUB_APP_INSTALLATION_PROMPTS = 102,
720    #[doc = " Whether an application can enumerate audio output device."]
721    CEF_CONTENT_SETTING_TYPE_SPEAKER_SELECTION = 103,
722    #[doc = " Content settings for access to the Direct Sockets API."]
723    CEF_CONTENT_SETTING_TYPE_DIRECT_SOCKETS = 104,
724    #[doc = " Keyboard Lock API allows a site to capture keyboard inputs that would\n otherwise be handled by the OS or the browser."]
725    CEF_CONTENT_SETTING_TYPE_KEYBOARD_LOCK = 105,
726    #[doc = " Pointer Lock API allows a site to hide the cursor and have exclusive\n access to mouse inputs."]
727    CEF_CONTENT_SETTING_TYPE_POINTER_LOCK = 106,
728    #[doc = " Website setting which is used for UnusedSitePermissionsService to store\n auto-revoked notification permissions from abusive sites."]
729    CEF_CONTENT_SETTING_TYPE_REVOKED_ABUSIVE_NOTIFICATION_PERMISSIONS = 107,
730    #[doc = " Content setting that controls tracking protection status per site.\n BLOCK: Protections enabled. This is the default state.\n ALLOW: Protections disabled."]
731    CEF_CONTENT_SETTING_TYPE_TRACKING_PROTECTION = 108,
732    #[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."]
733    CEF_CONTENT_SETTING_TYPE_DISPLAY_MEDIA_SYSTEM_AUDIO = 109,
734    #[doc = " Whether to use the higher-tier v8 optimizers for running JavaScript on the\n page."]
735    CEF_CONTENT_SETTING_TYPE_JAVASCRIPT_OPTIMIZER = 110,
736    #[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."]
737    CEF_CONTENT_SETTING_TYPE_STORAGE_ACCESS_HEADER_ORIGIN_TRIAL = 111,
738    #[doc = " Whether or not sites can request Hand Tracking data within WebXR Sessions."]
739    CEF_CONTENT_SETTING_TYPE_HAND_TRACKING = 112,
740    #[doc = " Website setting to indicate whether user has opted in to allow web apps to\n install other web apps."]
741    CEF_CONTENT_SETTING_TYPE_WEB_APP_INSTALLATION = 113,
742    #[doc = " Content settings for private network access in the context of the\n Direct Sockets API."]
743    CEF_CONTENT_SETTING_TYPE_DIRECT_SOCKETS_PRIVATE_NETWORK_ACCESS = 114,
744    #[doc = " Content settings for legacy cookie scope.\n Checks whether cookies scope is handled according to origin-bound cookies\n or legacy behavior."]
745    CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_SCOPE = 115,
746    #[doc = " Website setting to indicate whether the user has allowlisted suspicious\n notifications for the origin."]
747    CEF_CONTENT_SETTING_TYPE_ARE_SUSPICIOUS_NOTIFICATIONS_ALLOWLISTED_BY_USER = 116,
748    #[doc = " Content settings for access to the Controlled Frame API."]
749    CEF_CONTENT_SETTING_TYPE_CONTROLLED_FRAME = 117,
750    #[doc = " Website setting which is used for UnusedSitePermissionsService to\n store revoked notification permissions of disruptive sites."]
751    CEF_CONTENT_SETTING_TYPE_REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS = 118,
752    CEF_CONTENT_SETTING_TYPE_NUM_VALUES = 119,
753}
754#[repr(u32)]
755#[non_exhaustive]
756#[doc = "\n Supported content setting values. Should be kept in sync with Chromium's\n ContentSetting type.\n"]
757#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
758pub enum cef_content_setting_values_t {
759    CEF_CONTENT_SETTING_VALUE_DEFAULT = 0,
760    CEF_CONTENT_SETTING_VALUE_ALLOW = 1,
761    CEF_CONTENT_SETTING_VALUE_BLOCK = 2,
762    CEF_CONTENT_SETTING_VALUE_ASK = 3,
763    CEF_CONTENT_SETTING_VALUE_SESSION_ONLY = 4,
764    CEF_CONTENT_SETTING_VALUE_DETECT_IMPORTANT_CONTENT = 5,
765    CEF_CONTENT_SETTING_VALUE_NUM_VALUES = 6,
766}
767#[doc = "\n Structure representing a point.\n"]
768#[repr(C)]
769#[derive(Debug, Copy, Clone)]
770pub struct _cef_point_t {
771    pub x: ::std::os::raw::c_int,
772    pub y: ::std::os::raw::c_int,
773}
774#[allow(clippy::unnecessary_operation, clippy::identity_op)]
775const _: () = {
776    ["Size of _cef_point_t"][::std::mem::size_of::<_cef_point_t>() - 8usize];
777    ["Alignment of _cef_point_t"][::std::mem::align_of::<_cef_point_t>() - 4usize];
778    ["Offset of field: _cef_point_t::x"][::std::mem::offset_of!(_cef_point_t, x) - 0usize];
779    ["Offset of field: _cef_point_t::y"][::std::mem::offset_of!(_cef_point_t, y) - 4usize];
780};
781#[doc = "\n Structure representing a point.\n"]
782pub type cef_point_t = _cef_point_t;
783#[doc = "\n Structure representing a rectangle.\n"]
784#[repr(C)]
785#[derive(Debug, Copy, Clone)]
786pub struct _cef_rect_t {
787    pub x: ::std::os::raw::c_int,
788    pub y: ::std::os::raw::c_int,
789    pub width: ::std::os::raw::c_int,
790    pub height: ::std::os::raw::c_int,
791}
792#[allow(clippy::unnecessary_operation, clippy::identity_op)]
793const _: () = {
794    ["Size of _cef_rect_t"][::std::mem::size_of::<_cef_rect_t>() - 16usize];
795    ["Alignment of _cef_rect_t"][::std::mem::align_of::<_cef_rect_t>() - 4usize];
796    ["Offset of field: _cef_rect_t::x"][::std::mem::offset_of!(_cef_rect_t, x) - 0usize];
797    ["Offset of field: _cef_rect_t::y"][::std::mem::offset_of!(_cef_rect_t, y) - 4usize];
798    ["Offset of field: _cef_rect_t::width"][::std::mem::offset_of!(_cef_rect_t, width) - 8usize];
799    ["Offset of field: _cef_rect_t::height"][::std::mem::offset_of!(_cef_rect_t, height) - 12usize];
800};
801#[doc = "\n Structure representing a rectangle.\n"]
802pub type cef_rect_t = _cef_rect_t;
803#[doc = "\n Structure representing a size.\n"]
804#[repr(C)]
805#[derive(Debug, Copy, Clone)]
806pub struct _cef_size_t {
807    pub width: ::std::os::raw::c_int,
808    pub height: ::std::os::raw::c_int,
809}
810#[allow(clippy::unnecessary_operation, clippy::identity_op)]
811const _: () = {
812    ["Size of _cef_size_t"][::std::mem::size_of::<_cef_size_t>() - 8usize];
813    ["Alignment of _cef_size_t"][::std::mem::align_of::<_cef_size_t>() - 4usize];
814    ["Offset of field: _cef_size_t::width"][::std::mem::offset_of!(_cef_size_t, width) - 0usize];
815    ["Offset of field: _cef_size_t::height"][::std::mem::offset_of!(_cef_size_t, height) - 4usize];
816};
817#[doc = "\n Structure representing a size.\n"]
818pub type cef_size_t = _cef_size_t;
819#[doc = "\n Structure representing insets.\n"]
820#[repr(C)]
821#[derive(Debug, Copy, Clone)]
822pub struct _cef_insets_t {
823    pub top: ::std::os::raw::c_int,
824    pub left: ::std::os::raw::c_int,
825    pub bottom: ::std::os::raw::c_int,
826    pub right: ::std::os::raw::c_int,
827}
828#[allow(clippy::unnecessary_operation, clippy::identity_op)]
829const _: () = {
830    ["Size of _cef_insets_t"][::std::mem::size_of::<_cef_insets_t>() - 16usize];
831    ["Alignment of _cef_insets_t"][::std::mem::align_of::<_cef_insets_t>() - 4usize];
832    ["Offset of field: _cef_insets_t::top"][::std::mem::offset_of!(_cef_insets_t, top) - 0usize];
833    ["Offset of field: _cef_insets_t::left"][::std::mem::offset_of!(_cef_insets_t, left) - 4usize];
834    ["Offset of field: _cef_insets_t::bottom"]
835        [::std::mem::offset_of!(_cef_insets_t, bottom) - 8usize];
836    ["Offset of field: _cef_insets_t::right"]
837        [::std::mem::offset_of!(_cef_insets_t, right) - 12usize];
838};
839#[doc = "\n Structure representing insets.\n"]
840pub type cef_insets_t = _cef_insets_t;
841#[repr(u32)]
842#[non_exhaustive]
843#[doc = "\n Describes how to interpret the components of a pixel.\n"]
844#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
845pub enum cef_color_type_t {
846    #[doc = "\n RGBA with 8 bits per pixel (32bits total).\n"]
847    CEF_COLOR_TYPE_RGBA_8888 = 0,
848    #[doc = "\n BGRA with 8 bits per pixel (32bits total).\n"]
849    CEF_COLOR_TYPE_BGRA_8888 = 1,
850    #[doc = "\n BGRA with 8 bits per pixel (32bits total).\n"]
851    CEF_COLOR_TYPE_NUM_VALUES = 2,
852}
853#[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"]
854#[repr(C)]
855#[derive(Debug, Copy, Clone)]
856pub struct _cef_accelerated_paint_info_common_t {
857    #[doc = "\n Size of this structure.\n"]
858    pub size: usize,
859    #[doc = "\n Timestamp of the frame in microseconds since capture start.\n"]
860    pub timestamp: u64,
861    #[doc = "\n The full dimensions of the video frame.\n"]
862    pub coded_size: cef_size_t,
863    #[doc = "\n The visible area of the video frame.\n"]
864    pub visible_rect: cef_rect_t,
865    #[doc = "\n The region of the video frame that capturer would like to populate.\n"]
866    pub content_rect: cef_rect_t,
867    #[doc = "\n Full size of the source frame.\n"]
868    pub source_size: cef_size_t,
869    #[doc = "\n Updated area of frame, can be considered as the `dirty` area.\n"]
870    pub capture_update_rect: cef_rect_t,
871    #[doc = "\n May reflects where the frame's contents originate from if region\n capture is used internally.\n"]
872    pub region_capture_rect: cef_rect_t,
873    #[doc = "\n The increamental counter of the frame.\n"]
874    pub capture_counter: u64,
875    #[doc = "\n Optional flag of capture_update_rect\n"]
876    pub has_capture_update_rect: u8,
877    #[doc = "\n Optional flag of region_capture_rect\n"]
878    pub has_region_capture_rect: u8,
879    #[doc = "\n Optional flag of source_size\n"]
880    pub has_source_size: u8,
881    #[doc = "\n Optional flag of capture_counter\n"]
882    pub has_capture_counter: u8,
883}
884#[allow(clippy::unnecessary_operation, clippy::identity_op)]
885const _: () = {
886    ["Size of _cef_accelerated_paint_info_common_t"]
887        [::std::mem::size_of::<_cef_accelerated_paint_info_common_t>() - 112usize];
888    ["Alignment of _cef_accelerated_paint_info_common_t"]
889        [::std::mem::align_of::<_cef_accelerated_paint_info_common_t>() - 8usize];
890    ["Offset of field: _cef_accelerated_paint_info_common_t::size"]
891        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, size) - 0usize];
892    ["Offset of field: _cef_accelerated_paint_info_common_t::timestamp"]
893        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, timestamp) - 8usize];
894    ["Offset of field: _cef_accelerated_paint_info_common_t::coded_size"]
895        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, coded_size) - 16usize];
896    ["Offset of field: _cef_accelerated_paint_info_common_t::visible_rect"]
897        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, visible_rect) - 24usize];
898    ["Offset of field: _cef_accelerated_paint_info_common_t::content_rect"]
899        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, content_rect) - 40usize];
900    ["Offset of field: _cef_accelerated_paint_info_common_t::source_size"]
901        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, source_size) - 56usize];
902    ["Offset of field: _cef_accelerated_paint_info_common_t::capture_update_rect"][::std::mem::offset_of!(
903        _cef_accelerated_paint_info_common_t,
904        capture_update_rect
905    ) - 64usize];
906    ["Offset of field: _cef_accelerated_paint_info_common_t::region_capture_rect"][::std::mem::offset_of!(
907        _cef_accelerated_paint_info_common_t,
908        region_capture_rect
909    ) - 80usize];
910    ["Offset of field: _cef_accelerated_paint_info_common_t::capture_counter"]
911        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, capture_counter) - 96usize];
912    ["Offset of field: _cef_accelerated_paint_info_common_t::has_capture_update_rect"][::std::mem::offset_of!(
913        _cef_accelerated_paint_info_common_t,
914        has_capture_update_rect
915    )
916        - 104usize];
917    ["Offset of field: _cef_accelerated_paint_info_common_t::has_region_capture_rect"][::std::mem::offset_of!(
918        _cef_accelerated_paint_info_common_t,
919        has_region_capture_rect
920    )
921        - 105usize];
922    ["Offset of field: _cef_accelerated_paint_info_common_t::has_source_size"]
923        [::std::mem::offset_of!(_cef_accelerated_paint_info_common_t, has_source_size) - 106usize];
924    ["Offset of field: _cef_accelerated_paint_info_common_t::has_capture_counter"][::std::mem::offset_of!(
925        _cef_accelerated_paint_info_common_t,
926        has_capture_counter
927    ) - 107usize];
928};
929#[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"]
930pub type cef_accelerated_paint_info_common_t = _cef_accelerated_paint_info_common_t;
931#[repr(u32)]
932#[non_exhaustive]
933#[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://bitbucket.org/chromiumembedded/cef/wiki/Architecture.md#markdown-header-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"]
934#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
935pub enum cef_runtime_style_t {
936    #[doc = "\n Use the default style. See above documentation for exceptions.\n"]
937    CEF_RUNTIME_STYLE_DEFAULT = 0,
938    #[doc = "\n Use Chrome style.\n"]
939    CEF_RUNTIME_STYLE_CHROME = 1,
940    #[doc = "\n Use Alloy style.\n"]
941    CEF_RUNTIME_STYLE_ALLOY = 2,
942}
943#[repr(C)]
944#[derive(Copy, Clone)]
945pub struct _XEvent {
946    _unused: [u8; 0],
947}
948pub type XEvent = _XEvent;
949#[repr(C)]
950#[derive(Debug, Copy, Clone)]
951pub struct _XDisplay {
952    _unused: [u8; 0],
953}
954pub type XDisplay = _XDisplay;
955pub type cef_cursor_handle_t = ::std::os::raw::c_ulong;
956pub type cef_event_handle_t = *mut XEvent;
957pub type cef_window_handle_t = ::std::os::raw::c_ulong;
958unsafe extern "C" {
959    pub fn cef_get_xdisplay() -> *mut XDisplay;
960}
961#[doc = "\n Structure representing CefExecuteProcess arguments.\n"]
962#[repr(C)]
963#[derive(Debug, Copy, Clone)]
964pub struct _cef_main_args_t {
965    pub argc: ::std::os::raw::c_int,
966    pub argv: *mut *mut ::std::os::raw::c_char,
967}
968#[allow(clippy::unnecessary_operation, clippy::identity_op)]
969const _: () = {
970    ["Size of _cef_main_args_t"][::std::mem::size_of::<_cef_main_args_t>() - 16usize];
971    ["Alignment of _cef_main_args_t"][::std::mem::align_of::<_cef_main_args_t>() - 8usize];
972    ["Offset of field: _cef_main_args_t::argc"]
973        [::std::mem::offset_of!(_cef_main_args_t, argc) - 0usize];
974    ["Offset of field: _cef_main_args_t::argv"]
975        [::std::mem::offset_of!(_cef_main_args_t, argv) - 8usize];
976};
977#[doc = "\n Structure representing CefExecuteProcess arguments.\n"]
978pub type cef_main_args_t = _cef_main_args_t;
979#[doc = "\n Class representing window information.\n"]
980#[repr(C)]
981#[derive(Debug, Copy, Clone)]
982pub struct _cef_window_info_t {
983    #[doc = "\n Size of this structure.\n"]
984    pub size: usize,
985    #[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"]
986    pub window_name: cef_string_t,
987    #[doc = "\n Initial window bounds.\n"]
988    pub bounds: cef_rect_t,
989    #[doc = "\n Pointer for the parent window.\n"]
990    pub parent_window: cef_window_handle_t,
991    #[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"]
992    pub windowless_rendering_enabled: ::std::os::raw::c_int,
993    #[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"]
994    pub shared_texture_enabled: ::std::os::raw::c_int,
995    #[doc = "\n Set to true (1) to enable the ability to issue BeginFrame requests from\n the client application by calling CefBrowserHost::SendExternalBeginFrame.\n"]
996    pub external_begin_frame_enabled: ::std::os::raw::c_int,
997    #[doc = "\n Pointer for the new browser window. Only used with windowed rendering.\n"]
998    pub window: cef_window_handle_t,
999    #[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"]
1000    pub runtime_style: cef_runtime_style_t,
1001}
1002#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1003const _: () = {
1004    ["Size of _cef_window_info_t"][::std::mem::size_of::<_cef_window_info_t>() - 88usize];
1005    ["Alignment of _cef_window_info_t"][::std::mem::align_of::<_cef_window_info_t>() - 8usize];
1006    ["Offset of field: _cef_window_info_t::size"]
1007        [::std::mem::offset_of!(_cef_window_info_t, size) - 0usize];
1008    ["Offset of field: _cef_window_info_t::window_name"]
1009        [::std::mem::offset_of!(_cef_window_info_t, window_name) - 8usize];
1010    ["Offset of field: _cef_window_info_t::bounds"]
1011        [::std::mem::offset_of!(_cef_window_info_t, bounds) - 32usize];
1012    ["Offset of field: _cef_window_info_t::parent_window"]
1013        [::std::mem::offset_of!(_cef_window_info_t, parent_window) - 48usize];
1014    ["Offset of field: _cef_window_info_t::windowless_rendering_enabled"]
1015        [::std::mem::offset_of!(_cef_window_info_t, windowless_rendering_enabled) - 56usize];
1016    ["Offset of field: _cef_window_info_t::shared_texture_enabled"]
1017        [::std::mem::offset_of!(_cef_window_info_t, shared_texture_enabled) - 60usize];
1018    ["Offset of field: _cef_window_info_t::external_begin_frame_enabled"]
1019        [::std::mem::offset_of!(_cef_window_info_t, external_begin_frame_enabled) - 64usize];
1020    ["Offset of field: _cef_window_info_t::window"]
1021        [::std::mem::offset_of!(_cef_window_info_t, window) - 72usize];
1022    ["Offset of field: _cef_window_info_t::runtime_style"]
1023        [::std::mem::offset_of!(_cef_window_info_t, runtime_style) - 80usize];
1024};
1025#[doc = "\n Class representing window information.\n"]
1026pub type cef_window_info_t = _cef_window_info_t;
1027#[doc = "\n Structure containing the plane information of the shared texture.\n Sync with native_pixmap_handle.h\n"]
1028#[repr(C)]
1029#[derive(Debug, Copy, Clone)]
1030pub struct _cef_accelerated_paint_native_pixmap_plane_info_t {
1031    #[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"]
1032    pub stride: u32,
1033    pub offset: u64,
1034    pub size: u64,
1035    #[doc = "\n File descriptor for the underlying memory object (usually dmabuf).\n"]
1036    pub fd: ::std::os::raw::c_int,
1037}
1038#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1039const _: () = {
1040    ["Size of _cef_accelerated_paint_native_pixmap_plane_info_t"]
1041        [::std::mem::size_of::<_cef_accelerated_paint_native_pixmap_plane_info_t>() - 32usize];
1042    ["Alignment of _cef_accelerated_paint_native_pixmap_plane_info_t"]
1043        [::std::mem::align_of::<_cef_accelerated_paint_native_pixmap_plane_info_t>() - 8usize];
1044    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::stride"][::std::mem::offset_of!(
1045        _cef_accelerated_paint_native_pixmap_plane_info_t,
1046        stride
1047    ) - 0usize];
1048    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::offset"][::std::mem::offset_of!(
1049        _cef_accelerated_paint_native_pixmap_plane_info_t,
1050        offset
1051    ) - 8usize];
1052    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::size"]
1053        [::std::mem::offset_of!(_cef_accelerated_paint_native_pixmap_plane_info_t, size) - 16usize];
1054    ["Offset of field: _cef_accelerated_paint_native_pixmap_plane_info_t::fd"]
1055        [::std::mem::offset_of!(_cef_accelerated_paint_native_pixmap_plane_info_t, fd) - 24usize];
1056};
1057#[doc = "\n Structure containing the plane information of the shared texture.\n Sync with native_pixmap_handle.h\n"]
1058pub type cef_accelerated_paint_native_pixmap_plane_t =
1059    _cef_accelerated_paint_native_pixmap_plane_info_t;
1060#[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"]
1061#[repr(C)]
1062#[derive(Debug, Copy, Clone)]
1063pub struct _cef_accelerated_paint_info_t {
1064    #[doc = "\n Size of this structure.\n"]
1065    pub size: usize,
1066    #[doc = "\n Planes of the shared texture, usually file descriptors of dmabufs.\n"]
1067    pub planes: [cef_accelerated_paint_native_pixmap_plane_t; 4usize],
1068    #[doc = "\n Plane count.\n"]
1069    pub plane_count: ::std::os::raw::c_int,
1070    #[doc = "\n Modifier could be used with EGL driver.\n"]
1071    pub modifier: u64,
1072    #[doc = "\n The pixel format of the texture.\n"]
1073    pub format: cef_color_type_t,
1074    #[doc = "\n The extra common info.\n"]
1075    pub extra: cef_accelerated_paint_info_common_t,
1076}
1077#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1078const _: () = {
1079    ["Size of _cef_accelerated_paint_info_t"]
1080        [::std::mem::size_of::<_cef_accelerated_paint_info_t>() - 272usize];
1081    ["Alignment of _cef_accelerated_paint_info_t"]
1082        [::std::mem::align_of::<_cef_accelerated_paint_info_t>() - 8usize];
1083    ["Offset of field: _cef_accelerated_paint_info_t::size"]
1084        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, size) - 0usize];
1085    ["Offset of field: _cef_accelerated_paint_info_t::planes"]
1086        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, planes) - 8usize];
1087    ["Offset of field: _cef_accelerated_paint_info_t::plane_count"]
1088        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, plane_count) - 136usize];
1089    ["Offset of field: _cef_accelerated_paint_info_t::modifier"]
1090        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, modifier) - 144usize];
1091    ["Offset of field: _cef_accelerated_paint_info_t::format"]
1092        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, format) - 152usize];
1093    ["Offset of field: _cef_accelerated_paint_info_t::extra"]
1094        [::std::mem::offset_of!(_cef_accelerated_paint_info_t, extra) - 160usize];
1095};
1096#[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"]
1097pub type cef_accelerated_paint_info_t = _cef_accelerated_paint_info_t;
1098pub type cef_color_t = u32;
1099impl cef_log_severity_t {
1100    pub const LOGSEVERITY_DEBUG: cef_log_severity_t = cef_log_severity_t::LOGSEVERITY_VERBOSE;
1101}
1102#[repr(u32)]
1103#[non_exhaustive]
1104#[doc = "\n Log severity levels.\n"]
1105#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1106pub enum cef_log_severity_t {
1107    #[doc = "\n Default logging (currently INFO logging).\n"]
1108    LOGSEVERITY_DEFAULT = 0,
1109    #[doc = "\n Verbose logging.\n"]
1110    LOGSEVERITY_VERBOSE = 1,
1111    #[doc = "\n INFO logging.\n"]
1112    LOGSEVERITY_INFO = 2,
1113    #[doc = "\n WARNING logging.\n"]
1114    LOGSEVERITY_WARNING = 3,
1115    #[doc = "\n ERROR logging.\n"]
1116    LOGSEVERITY_ERROR = 4,
1117    #[doc = "\n FATAL logging.\n"]
1118    LOGSEVERITY_FATAL = 5,
1119    #[doc = "\n Disable logging to file for all messages, and to stderr for messages with\n severity less than FATAL.\n"]
1120    LOGSEVERITY_DISABLE = 99,
1121}
1122#[repr(u32)]
1123#[non_exhaustive]
1124#[doc = "\n Log items prepended to each log line.\n"]
1125#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1126pub enum cef_log_items_t {
1127    #[doc = "\n Prepend the default list of items.\n"]
1128    LOG_ITEMS_DEFAULT = 0,
1129    #[doc = "\n Prepend no items.\n"]
1130    LOG_ITEMS_NONE = 1,
1131    #[doc = "\n Prepend the process ID.\n"]
1132    LOG_ITEMS_FLAG_PROCESS_ID = 2,
1133    #[doc = "\n Prepend the thread ID.\n"]
1134    LOG_ITEMS_FLAG_THREAD_ID = 4,
1135    #[doc = "\n Prepend the timestamp.\n"]
1136    LOG_ITEMS_FLAG_TIME_STAMP = 8,
1137    #[doc = "\n Prepend the tickcount.\n"]
1138    LOG_ITEMS_FLAG_TICK_COUNT = 16,
1139}
1140#[repr(u32)]
1141#[non_exhaustive]
1142#[doc = "\n Represents the state of a setting.\n"]
1143#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1144pub enum cef_state_t {
1145    #[doc = "\n Use the default state for the setting.\n"]
1146    STATE_DEFAULT = 0,
1147    #[doc = "\n Enable or allow the setting.\n"]
1148    STATE_ENABLED = 1,
1149    #[doc = "\n Disable or disallow the setting.\n"]
1150    STATE_DISABLED = 2,
1151}
1152#[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"]
1153#[repr(C)]
1154#[derive(Debug, Copy, Clone)]
1155pub struct _cef_settings_t {
1156    #[doc = "\n Size of this structure.\n"]
1157    pub size: usize,
1158    #[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"]
1159    pub no_sandbox: ::std::os::raw::c_int,
1160    #[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"]
1161    pub browser_subprocess_path: cef_string_t,
1162    #[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"]
1163    pub framework_dir_path: cef_string_t,
1164    #[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"]
1165    pub main_bundle_path: cef_string_t,
1166    #[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"]
1167    pub multi_threaded_message_loop: ::std::os::raw::c_int,
1168    #[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"]
1169    pub external_message_pump: ::std::os::raw::c_int,
1170    #[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"]
1171    pub windowless_rendering_enabled: ::std::os::raw::c_int,
1172    #[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"]
1173    pub command_line_args_disabled: ::std::os::raw::c_int,
1174    #[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"]
1175    pub cache_path: cef_string_t,
1176    #[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"]
1177    pub root_cache_path: cef_string_t,
1178    #[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"]
1179    pub persist_session_cookies: ::std::os::raw::c_int,
1180    #[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"]
1181    pub user_agent: cef_string_t,
1182    #[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"]
1183    pub user_agent_product: cef_string_t,
1184    #[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"]
1185    pub locale: cef_string_t,
1186    #[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"]
1187    pub log_file: cef_string_t,
1188    #[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"]
1189    pub log_severity: cef_log_severity_t,
1190    #[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"]
1191    pub log_items: cef_log_items_t,
1192    #[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"]
1193    pub javascript_flags: cef_string_t,
1194    #[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"]
1195    pub resources_dir_path: cef_string_t,
1196    #[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"]
1197    pub locales_dir_path: cef_string_t,
1198    #[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"]
1199    pub remote_debugging_port: ::std::os::raw::c_int,
1200    #[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"]
1201    pub uncaught_exception_stack_size: ::std::os::raw::c_int,
1202    #[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"]
1203    pub background_color: cef_color_t,
1204    #[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"]
1205    pub accept_language_list: cef_string_t,
1206    #[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"]
1207    pub cookieable_schemes_list: cef_string_t,
1208    pub cookieable_schemes_exclude_defaults: ::std::os::raw::c_int,
1209    #[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"]
1210    pub chrome_policy_id: cef_string_t,
1211    #[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"]
1212    pub chrome_app_icon_id: ::std::os::raw::c_int,
1213    #[doc = "\n Specify whether signal handlers must be disabled on POSIX systems.\n"]
1214    pub disable_signal_handlers: ::std::os::raw::c_int,
1215}
1216#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1217const _: () = {
1218    ["Size of _cef_settings_t"][::std::mem::size_of::<_cef_settings_t>() - 440usize];
1219    ["Alignment of _cef_settings_t"][::std::mem::align_of::<_cef_settings_t>() - 8usize];
1220    ["Offset of field: _cef_settings_t::size"]
1221        [::std::mem::offset_of!(_cef_settings_t, size) - 0usize];
1222    ["Offset of field: _cef_settings_t::no_sandbox"]
1223        [::std::mem::offset_of!(_cef_settings_t, no_sandbox) - 8usize];
1224    ["Offset of field: _cef_settings_t::browser_subprocess_path"]
1225        [::std::mem::offset_of!(_cef_settings_t, browser_subprocess_path) - 16usize];
1226    ["Offset of field: _cef_settings_t::framework_dir_path"]
1227        [::std::mem::offset_of!(_cef_settings_t, framework_dir_path) - 40usize];
1228    ["Offset of field: _cef_settings_t::main_bundle_path"]
1229        [::std::mem::offset_of!(_cef_settings_t, main_bundle_path) - 64usize];
1230    ["Offset of field: _cef_settings_t::multi_threaded_message_loop"]
1231        [::std::mem::offset_of!(_cef_settings_t, multi_threaded_message_loop) - 88usize];
1232    ["Offset of field: _cef_settings_t::external_message_pump"]
1233        [::std::mem::offset_of!(_cef_settings_t, external_message_pump) - 92usize];
1234    ["Offset of field: _cef_settings_t::windowless_rendering_enabled"]
1235        [::std::mem::offset_of!(_cef_settings_t, windowless_rendering_enabled) - 96usize];
1236    ["Offset of field: _cef_settings_t::command_line_args_disabled"]
1237        [::std::mem::offset_of!(_cef_settings_t, command_line_args_disabled) - 100usize];
1238    ["Offset of field: _cef_settings_t::cache_path"]
1239        [::std::mem::offset_of!(_cef_settings_t, cache_path) - 104usize];
1240    ["Offset of field: _cef_settings_t::root_cache_path"]
1241        [::std::mem::offset_of!(_cef_settings_t, root_cache_path) - 128usize];
1242    ["Offset of field: _cef_settings_t::persist_session_cookies"]
1243        [::std::mem::offset_of!(_cef_settings_t, persist_session_cookies) - 152usize];
1244    ["Offset of field: _cef_settings_t::user_agent"]
1245        [::std::mem::offset_of!(_cef_settings_t, user_agent) - 160usize];
1246    ["Offset of field: _cef_settings_t::user_agent_product"]
1247        [::std::mem::offset_of!(_cef_settings_t, user_agent_product) - 184usize];
1248    ["Offset of field: _cef_settings_t::locale"]
1249        [::std::mem::offset_of!(_cef_settings_t, locale) - 208usize];
1250    ["Offset of field: _cef_settings_t::log_file"]
1251        [::std::mem::offset_of!(_cef_settings_t, log_file) - 232usize];
1252    ["Offset of field: _cef_settings_t::log_severity"]
1253        [::std::mem::offset_of!(_cef_settings_t, log_severity) - 256usize];
1254    ["Offset of field: _cef_settings_t::log_items"]
1255        [::std::mem::offset_of!(_cef_settings_t, log_items) - 260usize];
1256    ["Offset of field: _cef_settings_t::javascript_flags"]
1257        [::std::mem::offset_of!(_cef_settings_t, javascript_flags) - 264usize];
1258    ["Offset of field: _cef_settings_t::resources_dir_path"]
1259        [::std::mem::offset_of!(_cef_settings_t, resources_dir_path) - 288usize];
1260    ["Offset of field: _cef_settings_t::locales_dir_path"]
1261        [::std::mem::offset_of!(_cef_settings_t, locales_dir_path) - 312usize];
1262    ["Offset of field: _cef_settings_t::remote_debugging_port"]
1263        [::std::mem::offset_of!(_cef_settings_t, remote_debugging_port) - 336usize];
1264    ["Offset of field: _cef_settings_t::uncaught_exception_stack_size"]
1265        [::std::mem::offset_of!(_cef_settings_t, uncaught_exception_stack_size) - 340usize];
1266    ["Offset of field: _cef_settings_t::background_color"]
1267        [::std::mem::offset_of!(_cef_settings_t, background_color) - 344usize];
1268    ["Offset of field: _cef_settings_t::accept_language_list"]
1269        [::std::mem::offset_of!(_cef_settings_t, accept_language_list) - 352usize];
1270    ["Offset of field: _cef_settings_t::cookieable_schemes_list"]
1271        [::std::mem::offset_of!(_cef_settings_t, cookieable_schemes_list) - 376usize];
1272    ["Offset of field: _cef_settings_t::cookieable_schemes_exclude_defaults"]
1273        [::std::mem::offset_of!(_cef_settings_t, cookieable_schemes_exclude_defaults) - 400usize];
1274    ["Offset of field: _cef_settings_t::chrome_policy_id"]
1275        [::std::mem::offset_of!(_cef_settings_t, chrome_policy_id) - 408usize];
1276    ["Offset of field: _cef_settings_t::chrome_app_icon_id"]
1277        [::std::mem::offset_of!(_cef_settings_t, chrome_app_icon_id) - 432usize];
1278    ["Offset of field: _cef_settings_t::disable_signal_handlers"]
1279        [::std::mem::offset_of!(_cef_settings_t, disable_signal_handlers) - 436usize];
1280};
1281#[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"]
1282pub type cef_settings_t = _cef_settings_t;
1283#[doc = "\n Request context initialization settings. Specify NULL or 0 to get the\n recommended default values.\n"]
1284#[repr(C)]
1285#[derive(Debug, Copy, Clone)]
1286pub struct _cef_request_context_settings_t {
1287    #[doc = "\n Size of this structure.\n"]
1288    pub size: usize,
1289    #[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"]
1290    pub cache_path: cef_string_t,
1291    #[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"]
1292    pub persist_session_cookies: ::std::os::raw::c_int,
1293    #[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"]
1294    pub accept_language_list: cef_string_t,
1295    #[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"]
1296    pub cookieable_schemes_list: cef_string_t,
1297    pub cookieable_schemes_exclude_defaults: ::std::os::raw::c_int,
1298}
1299#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1300const _: () = {
1301    ["Size of _cef_request_context_settings_t"]
1302        [::std::mem::size_of::<_cef_request_context_settings_t>() - 96usize];
1303    ["Alignment of _cef_request_context_settings_t"]
1304        [::std::mem::align_of::<_cef_request_context_settings_t>() - 8usize];
1305    ["Offset of field: _cef_request_context_settings_t::size"]
1306        [::std::mem::offset_of!(_cef_request_context_settings_t, size) - 0usize];
1307    ["Offset of field: _cef_request_context_settings_t::cache_path"]
1308        [::std::mem::offset_of!(_cef_request_context_settings_t, cache_path) - 8usize];
1309    ["Offset of field: _cef_request_context_settings_t::persist_session_cookies"][::std::mem::offset_of!(
1310        _cef_request_context_settings_t,
1311        persist_session_cookies
1312    ) - 32usize];
1313    ["Offset of field: _cef_request_context_settings_t::accept_language_list"]
1314        [::std::mem::offset_of!(_cef_request_context_settings_t, accept_language_list) - 40usize];
1315    ["Offset of field: _cef_request_context_settings_t::cookieable_schemes_list"][::std::mem::offset_of!(
1316        _cef_request_context_settings_t,
1317        cookieable_schemes_list
1318    ) - 64usize];
1319    ["Offset of field: _cef_request_context_settings_t::cookieable_schemes_exclude_defaults"][::std::mem::offset_of!(
1320        _cef_request_context_settings_t,
1321        cookieable_schemes_exclude_defaults
1322    )
1323        - 88usize];
1324};
1325#[doc = "\n Request context initialization settings. Specify NULL or 0 to get the\n recommended default values.\n"]
1326pub type cef_request_context_settings_t = _cef_request_context_settings_t;
1327#[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"]
1328#[repr(C)]
1329#[derive(Debug, Copy, Clone)]
1330pub struct _cef_browser_settings_t {
1331    #[doc = "\n Size of this structure.\n"]
1332    pub size: usize,
1333    #[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 maximum value is 60 (default 30). This value can also\n be changed dynamically via CefBrowserHost::SetWindowlessFrameRate.\n"]
1334    pub windowless_frame_rate: ::std::os::raw::c_int,
1335    #[doc = "\n Font settings.\n"]
1336    pub standard_font_family: cef_string_t,
1337    pub fixed_font_family: cef_string_t,
1338    pub serif_font_family: cef_string_t,
1339    pub sans_serif_font_family: cef_string_t,
1340    pub cursive_font_family: cef_string_t,
1341    pub fantasy_font_family: cef_string_t,
1342    pub default_font_size: ::std::os::raw::c_int,
1343    pub default_fixed_font_size: ::std::os::raw::c_int,
1344    pub minimum_font_size: ::std::os::raw::c_int,
1345    pub minimum_logical_font_size: ::std::os::raw::c_int,
1346    #[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"]
1347    pub default_encoding: cef_string_t,
1348    #[doc = "\n Controls the loading of fonts from remote sources. Also configurable using\n the \"disable-remote-fonts\" command-line switch.\n"]
1349    pub remote_fonts: cef_state_t,
1350    #[doc = "\n Controls whether JavaScript can be executed. Also configurable using the\n \"disable-javascript\" command-line switch.\n"]
1351    pub javascript: cef_state_t,
1352    #[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"]
1353    pub javascript_close_windows: cef_state_t,
1354    #[doc = "\n Controls whether JavaScript can access the clipboard. Also configurable\n using the \"disable-javascript-access-clipboard\" command-line switch.\n"]
1355    pub javascript_access_clipboard: cef_state_t,
1356    #[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"]
1357    pub javascript_dom_paste: cef_state_t,
1358    #[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"]
1359    pub image_loading: cef_state_t,
1360    #[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"]
1361    pub image_shrink_standalone_to_fit: cef_state_t,
1362    #[doc = "\n Controls whether text areas can be resized. Also configurable using the\n \"disable-text-area-resize\" command-line switch.\n"]
1363    pub text_area_resize: cef_state_t,
1364    #[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"]
1365    pub tab_to_links: cef_state_t,
1366    #[doc = "\n Controls whether local storage can be used. Also configurable using the\n \"disable-local-storage\" command-line switch.\n"]
1367    pub local_storage: cef_state_t,
1368    #[doc = "\n Controls whether databases can be used. Also configurable using the\n \"disable-databases\" command-line switch.\n"]
1369    pub databases: cef_state_t,
1370    #[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"]
1371    pub webgl: cef_state_t,
1372    #[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"]
1373    pub background_color: cef_color_t,
1374    #[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"]
1375    pub chrome_status_bubble: cef_state_t,
1376    #[doc = "\n Controls whether the Chrome zoom bubble will be shown when zooming. Only\n supported with Chrome style.\n"]
1377    pub chrome_zoom_bubble: cef_state_t,
1378}
1379#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1380const _: () = {
1381    ["Size of _cef_browser_settings_t"]
1382        [::std::mem::size_of::<_cef_browser_settings_t>() - 264usize];
1383    ["Alignment of _cef_browser_settings_t"]
1384        [::std::mem::align_of::<_cef_browser_settings_t>() - 8usize];
1385    ["Offset of field: _cef_browser_settings_t::size"]
1386        [::std::mem::offset_of!(_cef_browser_settings_t, size) - 0usize];
1387    ["Offset of field: _cef_browser_settings_t::windowless_frame_rate"]
1388        [::std::mem::offset_of!(_cef_browser_settings_t, windowless_frame_rate) - 8usize];
1389    ["Offset of field: _cef_browser_settings_t::standard_font_family"]
1390        [::std::mem::offset_of!(_cef_browser_settings_t, standard_font_family) - 16usize];
1391    ["Offset of field: _cef_browser_settings_t::fixed_font_family"]
1392        [::std::mem::offset_of!(_cef_browser_settings_t, fixed_font_family) - 40usize];
1393    ["Offset of field: _cef_browser_settings_t::serif_font_family"]
1394        [::std::mem::offset_of!(_cef_browser_settings_t, serif_font_family) - 64usize];
1395    ["Offset of field: _cef_browser_settings_t::sans_serif_font_family"]
1396        [::std::mem::offset_of!(_cef_browser_settings_t, sans_serif_font_family) - 88usize];
1397    ["Offset of field: _cef_browser_settings_t::cursive_font_family"]
1398        [::std::mem::offset_of!(_cef_browser_settings_t, cursive_font_family) - 112usize];
1399    ["Offset of field: _cef_browser_settings_t::fantasy_font_family"]
1400        [::std::mem::offset_of!(_cef_browser_settings_t, fantasy_font_family) - 136usize];
1401    ["Offset of field: _cef_browser_settings_t::default_font_size"]
1402        [::std::mem::offset_of!(_cef_browser_settings_t, default_font_size) - 160usize];
1403    ["Offset of field: _cef_browser_settings_t::default_fixed_font_size"]
1404        [::std::mem::offset_of!(_cef_browser_settings_t, default_fixed_font_size) - 164usize];
1405    ["Offset of field: _cef_browser_settings_t::minimum_font_size"]
1406        [::std::mem::offset_of!(_cef_browser_settings_t, minimum_font_size) - 168usize];
1407    ["Offset of field: _cef_browser_settings_t::minimum_logical_font_size"]
1408        [::std::mem::offset_of!(_cef_browser_settings_t, minimum_logical_font_size) - 172usize];
1409    ["Offset of field: _cef_browser_settings_t::default_encoding"]
1410        [::std::mem::offset_of!(_cef_browser_settings_t, default_encoding) - 176usize];
1411    ["Offset of field: _cef_browser_settings_t::remote_fonts"]
1412        [::std::mem::offset_of!(_cef_browser_settings_t, remote_fonts) - 200usize];
1413    ["Offset of field: _cef_browser_settings_t::javascript"]
1414        [::std::mem::offset_of!(_cef_browser_settings_t, javascript) - 204usize];
1415    ["Offset of field: _cef_browser_settings_t::javascript_close_windows"]
1416        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_close_windows) - 208usize];
1417    ["Offset of field: _cef_browser_settings_t::javascript_access_clipboard"]
1418        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_access_clipboard) - 212usize];
1419    ["Offset of field: _cef_browser_settings_t::javascript_dom_paste"]
1420        [::std::mem::offset_of!(_cef_browser_settings_t, javascript_dom_paste) - 216usize];
1421    ["Offset of field: _cef_browser_settings_t::image_loading"]
1422        [::std::mem::offset_of!(_cef_browser_settings_t, image_loading) - 220usize];
1423    ["Offset of field: _cef_browser_settings_t::image_shrink_standalone_to_fit"][::std::mem::offset_of!(
1424        _cef_browser_settings_t,
1425        image_shrink_standalone_to_fit
1426    ) - 224usize];
1427    ["Offset of field: _cef_browser_settings_t::text_area_resize"]
1428        [::std::mem::offset_of!(_cef_browser_settings_t, text_area_resize) - 228usize];
1429    ["Offset of field: _cef_browser_settings_t::tab_to_links"]
1430        [::std::mem::offset_of!(_cef_browser_settings_t, tab_to_links) - 232usize];
1431    ["Offset of field: _cef_browser_settings_t::local_storage"]
1432        [::std::mem::offset_of!(_cef_browser_settings_t, local_storage) - 236usize];
1433    ["Offset of field: _cef_browser_settings_t::databases"]
1434        [::std::mem::offset_of!(_cef_browser_settings_t, databases) - 240usize];
1435    ["Offset of field: _cef_browser_settings_t::webgl"]
1436        [::std::mem::offset_of!(_cef_browser_settings_t, webgl) - 244usize];
1437    ["Offset of field: _cef_browser_settings_t::background_color"]
1438        [::std::mem::offset_of!(_cef_browser_settings_t, background_color) - 248usize];
1439    ["Offset of field: _cef_browser_settings_t::chrome_status_bubble"]
1440        [::std::mem::offset_of!(_cef_browser_settings_t, chrome_status_bubble) - 252usize];
1441    ["Offset of field: _cef_browser_settings_t::chrome_zoom_bubble"]
1442        [::std::mem::offset_of!(_cef_browser_settings_t, chrome_zoom_bubble) - 256usize];
1443};
1444#[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"]
1445pub type cef_browser_settings_t = _cef_browser_settings_t;
1446#[repr(u32)]
1447#[non_exhaustive]
1448#[doc = "\n Return value types.\n"]
1449#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1450pub enum cef_return_value_t {
1451    #[doc = "\n Cancel immediately.\n"]
1452    RV_CANCEL = 0,
1453    #[doc = "\n Continue immediately.\n"]
1454    RV_CONTINUE = 1,
1455    #[doc = "\n Continue asynchronously (usually via a callback).\n"]
1456    RV_CONTINUE_ASYNC = 2,
1457}
1458#[doc = "\n URL component parts.\n"]
1459#[repr(C)]
1460#[derive(Debug, Copy, Clone)]
1461pub struct _cef_urlparts_t {
1462    #[doc = "\n Size of this structure.\n"]
1463    pub size: usize,
1464    #[doc = "\n The complete URL specification.\n"]
1465    pub spec: cef_string_t,
1466    #[doc = "\n Scheme component not including the colon (e.g., \"http\").\n"]
1467    pub scheme: cef_string_t,
1468    #[doc = "\n User name component.\n"]
1469    pub username: cef_string_t,
1470    #[doc = "\n Password component.\n"]
1471    pub password: cef_string_t,
1472    #[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"]
1473    pub host: cef_string_t,
1474    #[doc = "\n Port number component.\n"]
1475    pub port: cef_string_t,
1476    #[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"]
1477    pub origin: cef_string_t,
1478    #[doc = "\n Path component including the first slash following the host.\n"]
1479    pub path: cef_string_t,
1480    #[doc = "\n Query string component (i.e., everything following the '?').\n"]
1481    pub query: cef_string_t,
1482    #[doc = "\n Fragment (hash) identifier component (i.e., the string following the '#').\n"]
1483    pub fragment: cef_string_t,
1484}
1485#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1486const _: () = {
1487    ["Size of _cef_urlparts_t"][::std::mem::size_of::<_cef_urlparts_t>() - 248usize];
1488    ["Alignment of _cef_urlparts_t"][::std::mem::align_of::<_cef_urlparts_t>() - 8usize];
1489    ["Offset of field: _cef_urlparts_t::size"]
1490        [::std::mem::offset_of!(_cef_urlparts_t, size) - 0usize];
1491    ["Offset of field: _cef_urlparts_t::spec"]
1492        [::std::mem::offset_of!(_cef_urlparts_t, spec) - 8usize];
1493    ["Offset of field: _cef_urlparts_t::scheme"]
1494        [::std::mem::offset_of!(_cef_urlparts_t, scheme) - 32usize];
1495    ["Offset of field: _cef_urlparts_t::username"]
1496        [::std::mem::offset_of!(_cef_urlparts_t, username) - 56usize];
1497    ["Offset of field: _cef_urlparts_t::password"]
1498        [::std::mem::offset_of!(_cef_urlparts_t, password) - 80usize];
1499    ["Offset of field: _cef_urlparts_t::host"]
1500        [::std::mem::offset_of!(_cef_urlparts_t, host) - 104usize];
1501    ["Offset of field: _cef_urlparts_t::port"]
1502        [::std::mem::offset_of!(_cef_urlparts_t, port) - 128usize];
1503    ["Offset of field: _cef_urlparts_t::origin"]
1504        [::std::mem::offset_of!(_cef_urlparts_t, origin) - 152usize];
1505    ["Offset of field: _cef_urlparts_t::path"]
1506        [::std::mem::offset_of!(_cef_urlparts_t, path) - 176usize];
1507    ["Offset of field: _cef_urlparts_t::query"]
1508        [::std::mem::offset_of!(_cef_urlparts_t, query) - 200usize];
1509    ["Offset of field: _cef_urlparts_t::fragment"]
1510        [::std::mem::offset_of!(_cef_urlparts_t, fragment) - 224usize];
1511};
1512#[doc = "\n URL component parts.\n"]
1513pub type cef_urlparts_t = _cef_urlparts_t;
1514#[repr(i32)]
1515#[non_exhaustive]
1516#[doc = "\n Cookie priority values.\n"]
1517#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1518pub enum cef_cookie_priority_t {
1519    CEF_COOKIE_PRIORITY_LOW = -1,
1520    CEF_COOKIE_PRIORITY_MEDIUM = 0,
1521    CEF_COOKIE_PRIORITY_HIGH = 1,
1522}
1523#[repr(u32)]
1524#[non_exhaustive]
1525#[doc = "\n Cookie same site values.\n"]
1526#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1527pub enum cef_cookie_same_site_t {
1528    CEF_COOKIE_SAME_SITE_UNSPECIFIED = 0,
1529    CEF_COOKIE_SAME_SITE_NO_RESTRICTION = 1,
1530    CEF_COOKIE_SAME_SITE_LAX_MODE = 2,
1531    CEF_COOKIE_SAME_SITE_STRICT_MODE = 3,
1532    CEF_COOKIE_SAME_SITE_NUM_VALUES = 4,
1533}
1534#[doc = "\n Cookie information.\n"]
1535#[repr(C)]
1536#[derive(Debug, Copy, Clone)]
1537pub struct _cef_cookie_t {
1538    #[doc = "\n Size of this structure.\n"]
1539    pub size: usize,
1540    #[doc = "\n The cookie name.\n"]
1541    pub name: cef_string_t,
1542    #[doc = "\n The cookie value.\n"]
1543    pub value: cef_string_t,
1544    #[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"]
1545    pub domain: cef_string_t,
1546    #[doc = "\n If |path| is non-empty only URLs at or below the path will get the cookie\n value.\n"]
1547    pub path: cef_string_t,
1548    #[doc = "\n If |secure| is true the cookie will only be sent for HTTPS requests.\n"]
1549    pub secure: ::std::os::raw::c_int,
1550    #[doc = "\n If |httponly| is true the cookie will only be sent for HTTP requests.\n"]
1551    pub httponly: ::std::os::raw::c_int,
1552    #[doc = "\n The cookie creation date. This is automatically populated by the system on\n cookie creation.\n"]
1553    pub creation: cef_basetime_t,
1554    #[doc = "\n The cookie last access date. This is automatically populated by the system\n on access.\n"]
1555    pub last_access: cef_basetime_t,
1556    #[doc = "\n The cookie expiration date is only valid if |has_expires| is true.\n"]
1557    pub has_expires: ::std::os::raw::c_int,
1558    pub expires: cef_basetime_t,
1559    #[doc = "\n Same site.\n"]
1560    pub same_site: cef_cookie_same_site_t,
1561    #[doc = "\n Priority.\n"]
1562    pub priority: cef_cookie_priority_t,
1563}
1564#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1565const _: () = {
1566    ["Size of _cef_cookie_t"][::std::mem::size_of::<_cef_cookie_t>() - 152usize];
1567    ["Alignment of _cef_cookie_t"][::std::mem::align_of::<_cef_cookie_t>() - 8usize];
1568    ["Offset of field: _cef_cookie_t::size"][::std::mem::offset_of!(_cef_cookie_t, size) - 0usize];
1569    ["Offset of field: _cef_cookie_t::name"][::std::mem::offset_of!(_cef_cookie_t, name) - 8usize];
1570    ["Offset of field: _cef_cookie_t::value"]
1571        [::std::mem::offset_of!(_cef_cookie_t, value) - 32usize];
1572    ["Offset of field: _cef_cookie_t::domain"]
1573        [::std::mem::offset_of!(_cef_cookie_t, domain) - 56usize];
1574    ["Offset of field: _cef_cookie_t::path"][::std::mem::offset_of!(_cef_cookie_t, path) - 80usize];
1575    ["Offset of field: _cef_cookie_t::secure"]
1576        [::std::mem::offset_of!(_cef_cookie_t, secure) - 104usize];
1577    ["Offset of field: _cef_cookie_t::httponly"]
1578        [::std::mem::offset_of!(_cef_cookie_t, httponly) - 108usize];
1579    ["Offset of field: _cef_cookie_t::creation"]
1580        [::std::mem::offset_of!(_cef_cookie_t, creation) - 112usize];
1581    ["Offset of field: _cef_cookie_t::last_access"]
1582        [::std::mem::offset_of!(_cef_cookie_t, last_access) - 120usize];
1583    ["Offset of field: _cef_cookie_t::has_expires"]
1584        [::std::mem::offset_of!(_cef_cookie_t, has_expires) - 128usize];
1585    ["Offset of field: _cef_cookie_t::expires"]
1586        [::std::mem::offset_of!(_cef_cookie_t, expires) - 136usize];
1587    ["Offset of field: _cef_cookie_t::same_site"]
1588        [::std::mem::offset_of!(_cef_cookie_t, same_site) - 144usize];
1589    ["Offset of field: _cef_cookie_t::priority"]
1590        [::std::mem::offset_of!(_cef_cookie_t, priority) - 148usize];
1591};
1592#[doc = "\n Cookie information.\n"]
1593pub type cef_cookie_t = _cef_cookie_t;
1594#[repr(u32)]
1595#[non_exhaustive]
1596#[doc = "\n Process termination status values.\n"]
1597#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1598pub enum cef_termination_status_t {
1599    #[doc = "\n Non-zero exit status.\n"]
1600    TS_ABNORMAL_TERMINATION = 0,
1601    #[doc = "\n SIGKILL or task manager kill.\n"]
1602    TS_PROCESS_WAS_KILLED = 1,
1603    #[doc = "\n Segmentation fault.\n"]
1604    TS_PROCESS_CRASHED = 2,
1605    #[doc = "\n Out of memory. Some platforms may use TS_PROCESS_CRASHED instead.\n"]
1606    TS_PROCESS_OOM = 3,
1607    #[doc = "\n Child process never launched.\n"]
1608    TS_LAUNCH_FAILED = 4,
1609    #[doc = "\n On Windows, the OS terminated the process due to code integrity failure.\n"]
1610    TS_INTEGRITY_FAILURE = 5,
1611    #[doc = "\n On Windows, the OS terminated the process due to code integrity failure.\n"]
1612    TS_NUM_VALUES = 6,
1613}
1614#[repr(u32)]
1615#[non_exhaustive]
1616#[doc = "\n Path key values.\n"]
1617#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1618pub enum cef_path_key_t {
1619    #[doc = "\n Current directory.\n"]
1620    PK_DIR_CURRENT = 0,
1621    #[doc = "\n Directory containing PK_FILE_EXE.\n"]
1622    PK_DIR_EXE = 1,
1623    #[doc = "\n Directory containing PK_FILE_MODULE.\n"]
1624    PK_DIR_MODULE = 2,
1625    #[doc = "\n Temporary directory.\n"]
1626    PK_DIR_TEMP = 3,
1627    #[doc = "\n Path and filename of the current executable.\n"]
1628    PK_FILE_EXE = 4,
1629    #[doc = "\n Path and filename of the module containing the CEF code (usually the\n libcef module).\n"]
1630    PK_FILE_MODULE = 5,
1631    #[doc = "\n \"Local Settings\\Application Data\" directory under the user profile\n directory on Windows.\n"]
1632    PK_LOCAL_APP_DATA = 6,
1633    #[doc = "\n \"Application Data\" directory under the user profile directory on Windows\n and \"~/Library/Application Support\" directory on MacOS.\n"]
1634    PK_USER_DATA = 7,
1635    #[doc = "\n Directory containing application resources. Can be configured via\n CefSettings.resources_dir_path.\n"]
1636    PK_DIR_RESOURCES = 8,
1637    #[doc = "\n Directory containing application resources. Can be configured via\n CefSettings.resources_dir_path.\n"]
1638    PK_NUM_VALUES = 9,
1639}
1640#[repr(u32)]
1641#[non_exhaustive]
1642#[doc = "\n Storage types.\n"]
1643#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1644pub enum cef_storage_type_t {
1645    ST_LOCALSTORAGE = 0,
1646    ST_SESSIONSTORAGE = 1,
1647}
1648#[repr(i32)]
1649#[non_exhaustive]
1650#[doc = "\n Supported error code values. For the complete list of error values see\n \"include/base/internal/cef_net_error_list.h\".\n"]
1651#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1652pub enum cef_errorcode_t {
1653    ERR_NONE = 0,
1654    ERR_IO_PENDING = -1,
1655    ERR_FAILED = -2,
1656    ERR_ABORTED = -3,
1657    ERR_INVALID_ARGUMENT = -4,
1658    ERR_INVALID_HANDLE = -5,
1659    ERR_FILE_NOT_FOUND = -6,
1660    ERR_TIMED_OUT = -7,
1661    ERR_FILE_TOO_BIG = -8,
1662    ERR_UNEXPECTED = -9,
1663    ERR_ACCESS_DENIED = -10,
1664    ERR_NOT_IMPLEMENTED = -11,
1665    ERR_INSUFFICIENT_RESOURCES = -12,
1666    ERR_OUT_OF_MEMORY = -13,
1667    ERR_UPLOAD_FILE_CHANGED = -14,
1668    ERR_SOCKET_NOT_CONNECTED = -15,
1669    ERR_FILE_EXISTS = -16,
1670    ERR_FILE_PATH_TOO_LONG = -17,
1671    ERR_FILE_NO_SPACE = -18,
1672    ERR_FILE_VIRUS_INFECTED = -19,
1673    ERR_BLOCKED_BY_CLIENT = -20,
1674    ERR_NETWORK_CHANGED = -21,
1675    ERR_BLOCKED_BY_ADMINISTRATOR = -22,
1676    ERR_SOCKET_IS_CONNECTED = -23,
1677    ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED = -25,
1678    ERR_CONTEXT_SHUT_DOWN = -26,
1679    ERR_BLOCKED_BY_RESPONSE = -27,
1680    ERR_CLEARTEXT_NOT_PERMITTED = -29,
1681    ERR_BLOCKED_BY_CSP = -30,
1682    ERR_H2_OR_QUIC_REQUIRED = -31,
1683    ERR_BLOCKED_BY_ORB = -32,
1684    ERR_NETWORK_ACCESS_REVOKED = -33,
1685    ERR_BLOCKED_BY_FINGERPRINTING_PROTECTION = -34,
1686    ERR_CONNECTION_CLOSED = -100,
1687    ERR_CONNECTION_RESET = -101,
1688    ERR_CONNECTION_REFUSED = -102,
1689    ERR_CONNECTION_ABORTED = -103,
1690    ERR_CONNECTION_FAILED = -104,
1691    ERR_NAME_NOT_RESOLVED = -105,
1692    ERR_INTERNET_DISCONNECTED = -106,
1693    ERR_SSL_PROTOCOL_ERROR = -107,
1694    ERR_ADDRESS_INVALID = -108,
1695    ERR_ADDRESS_UNREACHABLE = -109,
1696    ERR_SSL_CLIENT_AUTH_CERT_NEEDED = -110,
1697    ERR_TUNNEL_CONNECTION_FAILED = -111,
1698    ERR_NO_SSL_VERSIONS_ENABLED = -112,
1699    ERR_SSL_VERSION_OR_CIPHER_MISMATCH = -113,
1700    ERR_SSL_RENEGOTIATION_REQUESTED = -114,
1701    ERR_PROXY_AUTH_UNSUPPORTED = -115,
1702    ERR_BAD_SSL_CLIENT_AUTH_CERT = -117,
1703    ERR_CONNECTION_TIMED_OUT = -118,
1704    ERR_HOST_RESOLVER_QUEUE_TOO_LARGE = -119,
1705    ERR_SOCKS_CONNECTION_FAILED = -120,
1706    ERR_SOCKS_CONNECTION_HOST_UNREACHABLE = -121,
1707    ERR_ALPN_NEGOTIATION_FAILED = -122,
1708    ERR_SSL_NO_RENEGOTIATION = -123,
1709    ERR_WINSOCK_UNEXPECTED_WRITTEN_BYTES = -124,
1710    ERR_SSL_DECOMPRESSION_FAILURE_ALERT = -125,
1711    ERR_SSL_BAD_RECORD_MAC_ALERT = -126,
1712    ERR_PROXY_AUTH_REQUESTED = -127,
1713    ERR_PROXY_CONNECTION_FAILED = -130,
1714    ERR_MANDATORY_PROXY_CONFIGURATION_FAILED = -131,
1715    ERR_PRECONNECT_MAX_SOCKET_LIMIT = -133,
1716    ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED = -134,
1717    ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY = -135,
1718    ERR_PROXY_CERTIFICATE_INVALID = -136,
1719    ERR_NAME_RESOLUTION_FAILED = -137,
1720    ERR_NETWORK_ACCESS_DENIED = -138,
1721    ERR_TEMPORARILY_THROTTLED = -139,
1722    ERR_HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT = -140,
1723    ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED = -141,
1724    ERR_MSG_TOO_BIG = -142,
1725    ERR_WS_PROTOCOL_ERROR = -145,
1726    ERR_ADDRESS_IN_USE = -147,
1727    ERR_SSL_HANDSHAKE_NOT_COMPLETED = -148,
1728    ERR_SSL_BAD_PEER_PUBLIC_KEY = -149,
1729    ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN = -150,
1730    ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED = -151,
1731    ERR_SSL_DECRYPT_ERROR_ALERT = -153,
1732    ERR_WS_THROTTLE_QUEUE_TOO_LARGE = -154,
1733    ERR_SSL_SERVER_CERT_CHANGED = -156,
1734    ERR_SSL_UNRECOGNIZED_NAME_ALERT = -159,
1735    ERR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR = -160,
1736    ERR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR = -161,
1737    ERR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE = -162,
1738    ERR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE = -163,
1739    ERR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT = -164,
1740    ERR_ICANN_NAME_COLLISION = -166,
1741    ERR_SSL_SERVER_CERT_BAD_FORMAT = -167,
1742    ERR_CT_STH_PARSING_FAILED = -168,
1743    ERR_CT_STH_INCOMPLETE = -169,
1744    ERR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH = -170,
1745    ERR_CT_CONSISTENCY_PROOF_PARSING_FAILED = -171,
1746    ERR_SSL_OBSOLETE_CIPHER = -172,
1747    ERR_WS_UPGRADE = -173,
1748    ERR_READ_IF_READY_NOT_IMPLEMENTED = -174,
1749    ERR_NO_BUFFER_SPACE = -176,
1750    ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS = -177,
1751    ERR_EARLY_DATA_REJECTED = -178,
1752    ERR_WRONG_VERSION_ON_EARLY_DATA = -179,
1753    ERR_TLS13_DOWNGRADE_DETECTED = -180,
1754    ERR_SSL_KEY_USAGE_INCOMPATIBLE = -181,
1755    ERR_INVALID_ECH_CONFIG_LIST = -182,
1756    ERR_ECH_NOT_NEGOTIATED = -183,
1757    ERR_ECH_FALLBACK_CERTIFICATE_INVALID = -184,
1758    ERR_CERT_COMMON_NAME_INVALID = -200,
1759    ERR_CERT_DATE_INVALID = -201,
1760    ERR_CERT_AUTHORITY_INVALID = -202,
1761    ERR_CERT_CONTAINS_ERRORS = -203,
1762    ERR_CERT_NO_REVOCATION_MECHANISM = -204,
1763    ERR_CERT_UNABLE_TO_CHECK_REVOCATION = -205,
1764    ERR_CERT_REVOKED = -206,
1765    ERR_CERT_INVALID = -207,
1766    ERR_CERT_WEAK_SIGNATURE_ALGORITHM = -208,
1767    ERR_CERT_NON_UNIQUE_NAME = -210,
1768    ERR_CERT_WEAK_KEY = -211,
1769    ERR_CERT_NAME_CONSTRAINT_VIOLATION = -212,
1770    ERR_CERT_VALIDITY_TOO_LONG = -213,
1771    ERR_CERTIFICATE_TRANSPARENCY_REQUIRED = -214,
1772    ERR_CERT_SYMANTEC_LEGACY = -215,
1773    ERR_CERT_KNOWN_INTERCEPTION_BLOCKED = -217,
1774    ERR_CERT_SELF_SIGNED_LOCAL_NETWORK = -219,
1775    ERR_CERT_END = -220,
1776    ERR_INVALID_URL = -300,
1777    ERR_DISALLOWED_URL_SCHEME = -301,
1778    ERR_UNKNOWN_URL_SCHEME = -302,
1779    ERR_INVALID_REDIRECT = -303,
1780    ERR_TOO_MANY_REDIRECTS = -310,
1781    ERR_UNSAFE_REDIRECT = -311,
1782    ERR_UNSAFE_PORT = -312,
1783    ERR_INVALID_RESPONSE = -320,
1784    ERR_INVALID_CHUNKED_ENCODING = -321,
1785    ERR_METHOD_NOT_SUPPORTED = -322,
1786    ERR_UNEXPECTED_PROXY_AUTH = -323,
1787    ERR_EMPTY_RESPONSE = -324,
1788    ERR_RESPONSE_HEADERS_TOO_BIG = -325,
1789    ERR_PAC_SCRIPT_FAILED = -327,
1790    ERR_REQUEST_RANGE_NOT_SATISFIABLE = -328,
1791    ERR_MALFORMED_IDENTITY = -329,
1792    ERR_CONTENT_DECODING_FAILED = -330,
1793    ERR_NETWORK_IO_SUSPENDED = -331,
1794    ERR_SYN_REPLY_NOT_RECEIVED = -332,
1795    ERR_ENCODING_CONVERSION_FAILED = -333,
1796    ERR_UNRECOGNIZED_FTP_DIRECTORY_LISTING_FORMAT = -334,
1797    ERR_NO_SUPPORTED_PROXIES = -336,
1798    ERR_HTTP2_PROTOCOL_ERROR = -337,
1799    ERR_INVALID_AUTH_CREDENTIALS = -338,
1800    ERR_UNSUPPORTED_AUTH_SCHEME = -339,
1801    ERR_ENCODING_DETECTION_FAILED = -340,
1802    ERR_MISSING_AUTH_CREDENTIALS = -341,
1803    ERR_UNEXPECTED_SECURITY_LIBRARY_STATUS = -342,
1804    ERR_MISCONFIGURED_AUTH_ENVIRONMENT = -343,
1805    ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS = -344,
1806    ERR_RESPONSE_BODY_TOO_BIG_TO_DRAIN = -345,
1807    ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH = -346,
1808    ERR_INCOMPLETE_HTTP2_HEADERS = -347,
1809    ERR_PAC_NOT_IN_DHCP = -348,
1810    ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION = -349,
1811    ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION = -350,
1812    ERR_HTTP2_SERVER_REFUSED_STREAM = -351,
1813    ERR_HTTP2_PING_FAILED = -352,
1814    ERR_CONTENT_LENGTH_MISMATCH = -354,
1815    ERR_INCOMPLETE_CHUNKED_ENCODING = -355,
1816    ERR_QUIC_PROTOCOL_ERROR = -356,
1817    ERR_RESPONSE_HEADERS_TRUNCATED = -357,
1818    ERR_QUIC_HANDSHAKE_FAILED = -358,
1819    ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY = -360,
1820    ERR_HTTP2_FLOW_CONTROL_ERROR = -361,
1821    ERR_HTTP2_FRAME_SIZE_ERROR = -362,
1822    ERR_HTTP2_COMPRESSION_ERROR = -363,
1823    ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION = -364,
1824    ERR_HTTP_1_1_REQUIRED = -365,
1825    ERR_PROXY_HTTP_1_1_REQUIRED = -366,
1826    ERR_PAC_SCRIPT_TERMINATED = -367,
1827    ERR_PROXY_REQUIRED = -368,
1828    ERR_INVALID_HTTP_RESPONSE = -370,
1829    ERR_CONTENT_DECODING_INIT_FAILED = -371,
1830    ERR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED = -372,
1831    ERR_TOO_MANY_RETRIES = -375,
1832    ERR_HTTP2_STREAM_CLOSED = -376,
1833    ERR_HTTP_RESPONSE_CODE_FAILURE = -379,
1834    ERR_QUIC_CERT_ROOT_NOT_KNOWN = -380,
1835    ERR_QUIC_GOAWAY_REQUEST_CAN_BE_RETRIED = -381,
1836    ERR_TOO_MANY_ACCEPT_CH_RESTARTS = -382,
1837    ERR_INCONSISTENT_IP_ADDRESS_SPACE = -383,
1838    ERR_CACHED_IP_ADDRESS_SPACE_BLOCKED_BY_PRIVATE_NETWORK_ACCESS_POLICY = -384,
1839    ERR_BLOCKED_BY_PRIVATE_NETWORK_ACCESS_CHECKS = -385,
1840    ERR_ZSTD_WINDOW_SIZE_TOO_BIG = -386,
1841    ERR_DICTIONARY_LOAD_FAILED = -387,
1842    ERR_UNEXPECTED_CONTENT_DICTIONARY_HEADER = -388,
1843    ERR_CACHE_MISS = -400,
1844    ERR_CACHE_READ_FAILURE = -401,
1845    ERR_CACHE_WRITE_FAILURE = -402,
1846    ERR_CACHE_OPERATION_NOT_SUPPORTED = -403,
1847    ERR_CACHE_OPEN_FAILURE = -404,
1848    ERR_CACHE_CREATE_FAILURE = -405,
1849    ERR_CACHE_RACE = -406,
1850    ERR_CACHE_CHECKSUM_READ_FAILURE = -407,
1851    ERR_CACHE_CHECKSUM_MISMATCH = -408,
1852    ERR_CACHE_LOCK_TIMEOUT = -409,
1853    ERR_CACHE_AUTH_FAILURE_AFTER_READ = -410,
1854    ERR_CACHE_ENTRY_NOT_SUITABLE = -411,
1855    ERR_CACHE_DOOM_FAILURE = -412,
1856    ERR_CACHE_OPEN_OR_CREATE_FAILURE = -413,
1857    ERR_INSECURE_RESPONSE = -501,
1858    ERR_NO_PRIVATE_KEY_FOR_CERT = -502,
1859    ERR_ADD_USER_CERT_FAILED = -503,
1860    ERR_INVALID_SIGNED_EXCHANGE = -504,
1861    ERR_INVALID_WEB_BUNDLE = -505,
1862    ERR_TRUST_TOKEN_OPERATION_FAILED = -506,
1863    ERR_TRUST_TOKEN_OPERATION_SUCCESS_WITHOUT_SENDING_REQUEST = -507,
1864    ERR_PKCS12_IMPORT_BAD_PASSWORD = -701,
1865    ERR_PKCS12_IMPORT_FAILED = -702,
1866    ERR_IMPORT_CA_CERT_NOT_CA = -703,
1867    ERR_IMPORT_CERT_ALREADY_EXISTS = -704,
1868    ERR_IMPORT_CA_CERT_FAILED = -705,
1869    ERR_IMPORT_SERVER_CERT_FAILED = -706,
1870    ERR_PKCS12_IMPORT_INVALID_MAC = -707,
1871    ERR_PKCS12_IMPORT_INVALID_FILE = -708,
1872    ERR_PKCS12_IMPORT_UNSUPPORTED = -709,
1873    ERR_KEY_GENERATION_FAILED = -710,
1874    ERR_PRIVATE_KEY_EXPORT_FAILED = -712,
1875    ERR_SELF_SIGNED_CERT_GENERATION_FAILED = -713,
1876    ERR_CERT_DATABASE_CHANGED = -714,
1877    ERR_CERT_VERIFIER_CHANGED = -716,
1878    ERR_DNS_MALFORMED_RESPONSE = -800,
1879    ERR_DNS_SERVER_REQUIRES_TCP = -801,
1880    ERR_DNS_SERVER_FAILED = -802,
1881    ERR_DNS_TIMED_OUT = -803,
1882    ERR_DNS_CACHE_MISS = -804,
1883    ERR_DNS_SEARCH_EMPTY = -805,
1884    ERR_DNS_SORT_ERROR = -806,
1885    ERR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED = -808,
1886    ERR_DNS_NAME_HTTPS_ONLY = -809,
1887    ERR_DNS_REQUEST_CANCELLED = -810,
1888    ERR_DNS_NO_MATCHING_SUPPORTED_ALPN = -811,
1889    ERR_DNS_SECURE_PROBE_RECORD_INVALID = -814,
1890}
1891#[repr(u32)]
1892#[non_exhaustive]
1893#[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"]
1894#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1895pub enum cef_cert_status_t {
1896    CERT_STATUS_NONE = 0,
1897    CERT_STATUS_COMMON_NAME_INVALID = 1,
1898    CERT_STATUS_DATE_INVALID = 2,
1899    CERT_STATUS_AUTHORITY_INVALID = 4,
1900    CERT_STATUS_NO_REVOCATION_MECHANISM = 16,
1901    CERT_STATUS_UNABLE_TO_CHECK_REVOCATION = 32,
1902    CERT_STATUS_REVOKED = 64,
1903    CERT_STATUS_INVALID = 128,
1904    CERT_STATUS_WEAK_SIGNATURE_ALGORITHM = 256,
1905    CERT_STATUS_NON_UNIQUE_NAME = 1024,
1906    CERT_STATUS_WEAK_KEY = 2048,
1907    CERT_STATUS_PINNED_KEY_MISSING = 8192,
1908    CERT_STATUS_NAME_CONSTRAINT_VIOLATION = 16384,
1909    CERT_STATUS_VALIDITY_TOO_LONG = 32768,
1910    CERT_STATUS_IS_EV = 65536,
1911    CERT_STATUS_REV_CHECKING_ENABLED = 131072,
1912    CERT_STATUS_SHA1_SIGNATURE_PRESENT = 524288,
1913    CERT_STATUS_CT_COMPLIANCE_FAILED = 1048576,
1914}
1915impl cef_resultcode_t {
1916    pub const CEF_RESULT_CODE_SANDBOX_FATAL_INTEGRITY: cef_resultcode_t =
1917        cef_resultcode_t::CEF_RESULT_CODE_SANDBOX_FATAL_FIRST;
1918}
1919#[repr(u32)]
1920#[non_exhaustive]
1921#[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"]
1922#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1923pub enum cef_resultcode_t {
1924    CEF_RESULT_CODE_NORMAL_EXIT = 0,
1925    #[doc = " Process was killed by user or system."]
1926    CEF_RESULT_CODE_KILLED = 1,
1927    #[doc = " Process hung."]
1928    CEF_RESULT_CODE_HUNG = 2,
1929    #[doc = " A bad message caused the process termination."]
1930    CEF_RESULT_CODE_KILLED_BAD_MESSAGE = 3,
1931    #[doc = " The GPU process exited because initialization failed."]
1932    CEF_RESULT_CODE_GPU_DEAD_ON_ARRIVAL = 4,
1933    #[doc = " The GPU process exited because initialization failed."]
1934    CEF_RESULT_CODE_CHROME_FIRST = 5,
1935    #[doc = " A critical chrome file is missing."]
1936    CEF_RESULT_CODE_MISSING_DATA = 7,
1937    #[doc = " Command line parameter is not supported."]
1938    CEF_RESULT_CODE_UNSUPPORTED_PARAM = 13,
1939    #[doc = " The profile was in use on another host."]
1940    CEF_RESULT_CODE_PROFILE_IN_USE = 21,
1941    #[doc = " Failed to pack an extension via the command line."]
1942    CEF_RESULT_CODE_PACK_EXTENSION_ERROR = 22,
1943    #[doc = " The browser process exited early by passing the command line to another\n running browser."]
1944    CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED = 24,
1945    #[doc = " A browser process was sandboxed. This should never happen."]
1946    CEF_RESULT_CODE_INVALID_SANDBOX_STATE = 31,
1947    #[doc = " Cloud policy enrollment failed or was given up by user."]
1948    CEF_RESULT_CODE_CLOUD_POLICY_ENROLLMENT_FAILED = 32,
1949    #[doc = " The GPU process was terminated due to context lost."]
1950    CEF_RESULT_CODE_GPU_EXIT_ON_CONTEXT_LOST = 34,
1951    #[doc = " An early startup command was executed and the browser must exit."]
1952    CEF_RESULT_CODE_NORMAL_EXIT_PACK_EXTENSION_SUCCESS = 36,
1953    #[doc = " The browser process exited because system resources are exhausted. The\n system state can't be recovered and will be unstable."]
1954    CEF_RESULT_CODE_SYSTEM_RESOURCE_EXHAUSTED = 37,
1955    #[doc = " The browser process exited because system resources are exhausted. The\n system state can't be recovered and will be unstable."]
1956    CEF_RESULT_CODE_CHROME_LAST = 38,
1957    #[doc = " The browser process exited because system resources are exhausted. The\n system state can't be recovered and will be unstable."]
1958    CEF_RESULT_CODE_SANDBOX_FATAL_FIRST = 7006,
1959    #[doc = " Windows sandbox could not lower the token."]
1960    CEF_RESULT_CODE_SANDBOX_FATAL_DROPTOKEN = 7007,
1961    #[doc = " Windows sandbox failed to flush registry handles."]
1962    CEF_RESULT_CODE_SANDBOX_FATAL_FLUSHANDLES = 7008,
1963    #[doc = " Windows sandbox failed to forbid HCKU caching."]
1964    CEF_RESULT_CODE_SANDBOX_FATAL_CACHEDISABLE = 7009,
1965    #[doc = " Windows sandbox failed to close pending handles."]
1966    CEF_RESULT_CODE_SANDBOX_FATAL_CLOSEHANDLES = 7010,
1967    #[doc = " Windows sandbox could not set the mitigation policy."]
1968    CEF_RESULT_CODE_SANDBOX_FATAL_MITIGATION = 7011,
1969    #[doc = " Windows sandbox exceeded the job memory limit."]
1970    CEF_RESULT_CODE_SANDBOX_FATAL_MEMORY_EXCEEDED = 7012,
1971    #[doc = " Windows sandbox failed to warmup."]
1972    CEF_RESULT_CODE_SANDBOX_FATAL_WARMUP = 7013,
1973    #[doc = " Windows sandbox failed to warmup."]
1974    CEF_RESULT_CODE_SANDBOX_FATAL_BROKER_SHUTDOWN_HUNG = 7014,
1975    #[doc = " Windows sandbox failed to warmup."]
1976    CEF_RESULT_CODE_SANDBOX_FATAL_LAST = 7015,
1977    #[doc = " Windows sandbox failed to warmup."]
1978    CEF_RESULT_CODE_NUM_VALUES = 7016,
1979}
1980#[repr(u32)]
1981#[non_exhaustive]
1982#[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"]
1983#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1984pub enum cef_window_open_disposition_t {
1985    CEF_WOD_UNKNOWN = 0,
1986    #[doc = "\n Current tab. This is the default in most cases.\n"]
1987    CEF_WOD_CURRENT_TAB = 1,
1988    #[doc = "\n Indicates that only one tab with the url should exist in the same window.\n"]
1989    CEF_WOD_SINGLETON_TAB = 2,
1990    #[doc = "\n Shift key + Middle mouse button or meta/ctrl key while clicking.\n"]
1991    CEF_WOD_NEW_FOREGROUND_TAB = 3,
1992    #[doc = "\n Middle mouse button or meta/ctrl key while clicking.\n"]
1993    CEF_WOD_NEW_BACKGROUND_TAB = 4,
1994    #[doc = "\n New popup window.\n"]
1995    CEF_WOD_NEW_POPUP = 5,
1996    #[doc = "\n Shift key while clicking.\n"]
1997    CEF_WOD_NEW_WINDOW = 6,
1998    #[doc = "\n Alt key while clicking.\n"]
1999    CEF_WOD_SAVE_TO_DISK = 7,
2000    #[doc = "\n New off-the-record (incognito) window.\n"]
2001    CEF_WOD_OFF_THE_RECORD = 8,
2002    #[doc = "\n Special case error condition from the renderer.\n"]
2003    CEF_WOD_IGNORE_ACTION = 9,
2004    #[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"]
2005    CEF_WOD_SWITCH_TO_TAB = 10,
2006    #[doc = "\n Creates a new document picture-in-picture window showing a child WebView.\n"]
2007    CEF_WOD_NEW_PICTURE_IN_PICTURE = 11,
2008    #[doc = "\n Creates a new document picture-in-picture window showing a child WebView.\n"]
2009    CEF_WOD_NUM_VALUES = 12,
2010}
2011impl cef_drag_operations_mask_t {
2012    pub const DRAG_OPERATION_NONE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(0);
2013}
2014impl cef_drag_operations_mask_t {
2015    pub const DRAG_OPERATION_COPY: cef_drag_operations_mask_t = cef_drag_operations_mask_t(1);
2016}
2017impl cef_drag_operations_mask_t {
2018    pub const DRAG_OPERATION_LINK: cef_drag_operations_mask_t = cef_drag_operations_mask_t(2);
2019}
2020impl cef_drag_operations_mask_t {
2021    pub const DRAG_OPERATION_GENERIC: cef_drag_operations_mask_t = cef_drag_operations_mask_t(4);
2022}
2023impl cef_drag_operations_mask_t {
2024    pub const DRAG_OPERATION_PRIVATE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(8);
2025}
2026impl cef_drag_operations_mask_t {
2027    pub const DRAG_OPERATION_MOVE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(16);
2028}
2029impl cef_drag_operations_mask_t {
2030    pub const DRAG_OPERATION_DELETE: cef_drag_operations_mask_t = cef_drag_operations_mask_t(32);
2031}
2032impl cef_drag_operations_mask_t {
2033    pub const DRAG_OPERATION_EVERY: cef_drag_operations_mask_t =
2034        cef_drag_operations_mask_t(4294967295);
2035}
2036impl ::std::ops::BitOr<cef_drag_operations_mask_t> for cef_drag_operations_mask_t {
2037    type Output = Self;
2038    #[inline]
2039    fn bitor(self, other: Self) -> Self {
2040        cef_drag_operations_mask_t(self.0 | other.0)
2041    }
2042}
2043impl ::std::ops::BitOrAssign for cef_drag_operations_mask_t {
2044    #[inline]
2045    fn bitor_assign(&mut self, rhs: cef_drag_operations_mask_t) {
2046        self.0 |= rhs.0;
2047    }
2048}
2049impl ::std::ops::BitAnd<cef_drag_operations_mask_t> for cef_drag_operations_mask_t {
2050    type Output = Self;
2051    #[inline]
2052    fn bitand(self, other: Self) -> Self {
2053        cef_drag_operations_mask_t(self.0 & other.0)
2054    }
2055}
2056impl ::std::ops::BitAndAssign for cef_drag_operations_mask_t {
2057    #[inline]
2058    fn bitand_assign(&mut self, rhs: cef_drag_operations_mask_t) {
2059        self.0 &= rhs.0;
2060    }
2061}
2062#[repr(transparent)]
2063#[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"]
2064#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2065pub struct cef_drag_operations_mask_t(pub ::std::os::raw::c_uint);
2066#[repr(u32)]
2067#[non_exhaustive]
2068#[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"]
2069#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2070pub enum cef_text_input_mode_t {
2071    CEF_TEXT_INPUT_MODE_DEFAULT = 0,
2072    CEF_TEXT_INPUT_MODE_NONE = 1,
2073    CEF_TEXT_INPUT_MODE_TEXT = 2,
2074    CEF_TEXT_INPUT_MODE_TEL = 3,
2075    CEF_TEXT_INPUT_MODE_URL = 4,
2076    CEF_TEXT_INPUT_MODE_EMAIL = 5,
2077    CEF_TEXT_INPUT_MODE_NUMERIC = 6,
2078    CEF_TEXT_INPUT_MODE_DECIMAL = 7,
2079    CEF_TEXT_INPUT_MODE_SEARCH = 8,
2080    CEF_TEXT_INPUT_MODE_NUM_VALUES = 9,
2081}
2082#[repr(u32)]
2083#[non_exhaustive]
2084#[doc = "\n V8 property attribute values.\n"]
2085#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2086pub enum cef_v8_propertyattribute_t {
2087    #[doc = "\n Writeable, Enumerable, Configurable\n"]
2088    V8_PROPERTY_ATTRIBUTE_NONE = 0,
2089    #[doc = "\n Not writeable\n"]
2090    V8_PROPERTY_ATTRIBUTE_READONLY = 1,
2091    #[doc = "\n Not enumerable\n"]
2092    V8_PROPERTY_ATTRIBUTE_DONTENUM = 2,
2093    #[doc = "\n Not configurable\n"]
2094    V8_PROPERTY_ATTRIBUTE_DONTDELETE = 4,
2095}
2096#[repr(u32)]
2097#[non_exhaustive]
2098#[doc = "\n Post data elements may represent either bytes or files.\n"]
2099#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2100pub enum cef_postdataelement_type_t {
2101    PDE_TYPE_EMPTY = 0,
2102    PDE_TYPE_BYTES = 1,
2103    PDE_TYPE_FILE = 2,
2104    PDF_TYPE_NUM_VALUES = 3,
2105}
2106#[repr(u32)]
2107#[non_exhaustive]
2108#[doc = "\n Resource type for a request. These constants match their equivalents in\n Chromium's ResourceType and should not be renumbered.\n"]
2109#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2110pub enum cef_resource_type_t {
2111    #[doc = "\n Top level page.\n"]
2112    RT_MAIN_FRAME = 0,
2113    #[doc = "\n Frame or iframe.\n"]
2114    RT_SUB_FRAME = 1,
2115    #[doc = "\n CSS stylesheet.\n"]
2116    RT_STYLESHEET = 2,
2117    #[doc = "\n External script.\n"]
2118    RT_SCRIPT = 3,
2119    #[doc = "\n Image (jpg/gif/png/etc).\n"]
2120    RT_IMAGE = 4,
2121    #[doc = "\n Font.\n"]
2122    RT_FONT_RESOURCE = 5,
2123    #[doc = "\n Some other subresource. This is the default type if the actual type is\n unknown.\n"]
2124    RT_SUB_RESOURCE = 6,
2125    #[doc = "\n Object (or embed) tag for a plugin, or a resource that a plugin requested.\n"]
2126    RT_OBJECT = 7,
2127    #[doc = "\n Media resource.\n"]
2128    RT_MEDIA = 8,
2129    #[doc = "\n Main resource of a dedicated worker.\n"]
2130    RT_WORKER = 9,
2131    #[doc = "\n Main resource of a shared worker.\n"]
2132    RT_SHARED_WORKER = 10,
2133    #[doc = "\n Explicitly requested prefetch.\n"]
2134    RT_PREFETCH = 11,
2135    #[doc = "\n Favicon.\n"]
2136    RT_FAVICON = 12,
2137    #[doc = "\n XMLHttpRequest.\n"]
2138    RT_XHR = 13,
2139    #[doc = "\n A request for a \"<ping>\".\n"]
2140    RT_PING = 14,
2141    #[doc = "\n Main resource of a service worker.\n"]
2142    RT_SERVICE_WORKER = 15,
2143    #[doc = "\n A report of Content Security Policy violations.\n"]
2144    RT_CSP_REPORT = 16,
2145    #[doc = "\n A resource that a plugin requested.\n"]
2146    RT_PLUGIN_RESOURCE = 17,
2147    #[doc = "\n A main-frame service worker navigation preload request.\n"]
2148    RT_NAVIGATION_PRELOAD_MAIN_FRAME = 19,
2149    #[doc = "\n A sub-frame service worker navigation preload request.\n"]
2150    RT_NAVIGATION_PRELOAD_SUB_FRAME = 20,
2151    #[doc = "\n A sub-frame service worker navigation preload request.\n"]
2152    RT_NUM_VALUES = 21,
2153}
2154#[repr(u32)]
2155#[non_exhaustive]
2156#[doc = "\n Transition type for a request. Made up of one source value and 0 or more\n qualifiers.\n"]
2157#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2158pub enum cef_transition_type_t {
2159    #[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"]
2160    TT_LINK = 0,
2161    #[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"]
2162    TT_EXPLICIT = 1,
2163    #[doc = "\n User got to this page through a suggestion in the UI (for example, via the\n destinations page). Chrome style only.\n"]
2164    TT_AUTO_BOOKMARK = 2,
2165    #[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"]
2166    TT_AUTO_SUBFRAME = 3,
2167    #[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"]
2168    TT_MANUAL_SUBFRAME = 4,
2169    #[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"]
2170    TT_GENERATED = 5,
2171    #[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"]
2172    TT_AUTO_TOPLEVEL = 6,
2173    #[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"]
2174    TT_FORM_SUBMIT = 7,
2175    #[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"]
2176    TT_RELOAD = 8,
2177    #[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"]
2178    TT_KEYWORD = 9,
2179    #[doc = "\n Corresponds to a visit generated for a keyword. See description of\n TT_KEYWORD for more details. Chrome style only.\n"]
2180    TT_KEYWORD_GENERATED = 10,
2181    #[doc = "\n Corresponds to a visit generated for a keyword. See description of\n TT_KEYWORD for more details. Chrome style only.\n"]
2182    TT_NUM_VALUES = 11,
2183    #[doc = "\n General mask defining the bits used for the source values.\n"]
2184    TT_SOURCE_MASK = 255,
2185    #[doc = "\n Attempted to visit a URL but was blocked.\n"]
2186    TT_BLOCKED_FLAG = 8388608,
2187    #[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"]
2188    TT_FORWARD_BACK_FLAG = 16777216,
2189    #[doc = "\n Loaded a URL directly via CreateBrowser, LoadURL or LoadRequest.\n"]
2190    TT_DIRECT_LOAD_FLAG = 33554432,
2191    #[doc = "\n User is navigating to the home page. Chrome style only.\n"]
2192    TT_HOME_PAGE_FLAG = 67108864,
2193    #[doc = "\n The transition originated from an external application; the exact\n definition of this is embedder dependent. Chrome style only.\n"]
2194    TT_FROM_API_FLAG = 134217728,
2195    #[doc = "\n The beginning of a navigation chain.\n"]
2196    TT_CHAIN_START_FLAG = 268435456,
2197    #[doc = "\n The last transition in a redirect chain.\n"]
2198    TT_CHAIN_END_FLAG = 536870912,
2199    #[doc = "\n Redirects caused by JavaScript or a meta refresh tag on the page.\n"]
2200    TT_CLIENT_REDIRECT_FLAG = 1073741824,
2201    #[doc = "\n Redirects sent from the server by HTTP headers.\n"]
2202    TT_SERVER_REDIRECT_FLAG = 2147483648,
2203    #[doc = "\n Used to test whether a transition involves a redirect.\n"]
2204    TT_IS_REDIRECT_MASK = 3221225472,
2205    #[doc = "\n General mask defining the bits used for the qualifiers.\n"]
2206    TT_QUALIFIER_MASK = 4294967040,
2207}
2208#[repr(u32)]
2209#[non_exhaustive]
2210#[doc = "\n Flags used to customize the behavior of CefURLRequest.\n"]
2211#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2212pub enum cef_urlrequest_flags_t {
2213    #[doc = "\n Default behavior.\n"]
2214    UR_FLAG_NONE = 0,
2215    #[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"]
2216    UR_FLAG_SKIP_CACHE = 1,
2217    #[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"]
2218    UR_FLAG_ONLY_FROM_CACHE = 2,
2219    #[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"]
2220    UR_FLAG_DISABLE_CACHE = 4,
2221    #[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"]
2222    UR_FLAG_ALLOW_STORED_CREDENTIALS = 8,
2223    #[doc = "\n If set upload progress events will be generated when a request has a body.\n"]
2224    UR_FLAG_REPORT_UPLOAD_PROGRESS = 16,
2225    #[doc = "\n If set the CefURLRequestClient::OnDownloadData method will not be called.\n"]
2226    UR_FLAG_NO_DOWNLOAD_DATA = 32,
2227    #[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"]
2228    UR_FLAG_NO_RETRY_ON_5XX = 64,
2229    #[doc = "\n If set 3XX responses will cause the fetch to halt immediately rather than\n continue through the redirect.\n"]
2230    UR_FLAG_STOP_ON_REDIRECT = 128,
2231}
2232#[repr(u32)]
2233#[non_exhaustive]
2234#[doc = "\n Flags that represent CefURLRequest status.\n"]
2235#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2236pub enum cef_urlrequest_status_t {
2237    #[doc = "\n Unknown status.\n"]
2238    UR_UNKNOWN = 0,
2239    #[doc = "\n Request succeeded.\n"]
2240    UR_SUCCESS = 1,
2241    #[doc = "\n An IO request is pending, and the caller will be informed when it is\n completed.\n"]
2242    UR_IO_PENDING = 2,
2243    #[doc = "\n Request was canceled programatically.\n"]
2244    UR_CANCELED = 3,
2245    #[doc = "\n Request failed for some reason.\n"]
2246    UR_FAILED = 4,
2247    #[doc = "\n Request failed for some reason.\n"]
2248    UR_NUM_VALUES = 5,
2249}
2250#[doc = " Structure representing a draggable region.\n"]
2251#[repr(C)]
2252#[derive(Debug, Copy, Clone)]
2253pub struct _cef_draggable_region_t {
2254    #[doc = "\n Bounds of the region.\n"]
2255    pub bounds: cef_rect_t,
2256    #[doc = "\n True (1) this this region is draggable and false (0) otherwise.\n"]
2257    pub draggable: ::std::os::raw::c_int,
2258}
2259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2260const _: () = {
2261    ["Size of _cef_draggable_region_t"][::std::mem::size_of::<_cef_draggable_region_t>() - 20usize];
2262    ["Alignment of _cef_draggable_region_t"]
2263        [::std::mem::align_of::<_cef_draggable_region_t>() - 4usize];
2264    ["Offset of field: _cef_draggable_region_t::bounds"]
2265        [::std::mem::offset_of!(_cef_draggable_region_t, bounds) - 0usize];
2266    ["Offset of field: _cef_draggable_region_t::draggable"]
2267        [::std::mem::offset_of!(_cef_draggable_region_t, draggable) - 16usize];
2268};
2269#[doc = " Structure representing a draggable region.\n"]
2270pub type cef_draggable_region_t = _cef_draggable_region_t;
2271#[repr(u32)]
2272#[non_exhaustive]
2273#[doc = "\n Existing process IDs.\n"]
2274#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2275pub enum cef_process_id_t {
2276    #[doc = "\n Browser process.\n"]
2277    PID_BROWSER = 0,
2278    #[doc = "\n Renderer process.\n"]
2279    PID_RENDERER = 1,
2280}
2281#[repr(u32)]
2282#[non_exhaustive]
2283#[doc = "\n Existing thread IDs.\n"]
2284#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2285pub enum cef_thread_id_t {
2286    #[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"]
2287    TID_UI = 0,
2288    #[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"]
2289    TID_FILE_BACKGROUND = 1,
2290    #[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"]
2291    TID_FILE_USER_VISIBLE = 2,
2292    #[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"]
2293    TID_FILE_USER_BLOCKING = 3,
2294    #[doc = "\n Used to launch and terminate browser processes.\n"]
2295    TID_PROCESS_LAUNCHER = 4,
2296    #[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"]
2297    TID_IO = 5,
2298    #[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"]
2299    TID_RENDERER = 6,
2300    #[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"]
2301    TID_NUM_VALUES = 7,
2302}
2303#[repr(u32)]
2304#[non_exhaustive]
2305#[doc = "\n Thread priority values listed in increasing order of importance.\n"]
2306#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2307pub enum cef_thread_priority_t {
2308    #[doc = "\n Suitable for threads that shouldn't disrupt high priority work.\n"]
2309    TP_BACKGROUND = 0,
2310    #[doc = "\n Default priority level.\n"]
2311    TP_NORMAL = 1,
2312    #[doc = "\n Suitable for threads which generate data for the display (at ~60Hz).\n"]
2313    TP_DISPLAY = 2,
2314    #[doc = "\n Suitable for low-latency, glitch-resistant audio.\n"]
2315    TP_REALTIME_AUDIO = 3,
2316    #[doc = "\n Suitable for low-latency, glitch-resistant audio.\n"]
2317    TP_NUM_VALUES = 4,
2318}
2319#[repr(u32)]
2320#[non_exhaustive]
2321#[doc = "\n Message loop types. Indicates the set of asynchronous events that a message\n loop can process.\n"]
2322#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2323pub enum cef_message_loop_type_t {
2324    #[doc = "\n Supports tasks and timers.\n"]
2325    ML_TYPE_DEFAULT = 0,
2326    #[doc = "\n Supports tasks, timers and native UI events (e.g. Windows messages).\n"]
2327    ML_TYPE_UI = 1,
2328    #[doc = "\n Supports tasks, timers and asynchronous IO events.\n"]
2329    ML_TYPE_IO = 2,
2330    #[doc = "\n Supports tasks, timers and asynchronous IO events.\n"]
2331    ML_NUM_VALUES = 3,
2332}
2333#[repr(u32)]
2334#[non_exhaustive]
2335#[doc = "\n Windows COM initialization mode. Specifies how COM will be initialized for a\n new thread.\n"]
2336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2337pub enum cef_com_init_mode_t {
2338    #[doc = "\n No COM initialization.\n"]
2339    COM_INIT_MODE_NONE = 0,
2340    #[doc = "\n Initialize COM using single-threaded apartments.\n"]
2341    COM_INIT_MODE_STA = 1,
2342    #[doc = "\n Initialize COM using multi-threaded apartments.\n"]
2343    COM_INIT_MODE_MTA = 2,
2344}
2345#[repr(u32)]
2346#[non_exhaustive]
2347#[doc = "\n Supported value types.\n"]
2348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2349pub enum cef_value_type_t {
2350    VTYPE_INVALID = 0,
2351    VTYPE_NULL = 1,
2352    VTYPE_BOOL = 2,
2353    VTYPE_INT = 3,
2354    VTYPE_DOUBLE = 4,
2355    VTYPE_STRING = 5,
2356    VTYPE_BINARY = 6,
2357    VTYPE_DICTIONARY = 7,
2358    VTYPE_LIST = 8,
2359    VTYPE_NUM_VALUES = 9,
2360}
2361#[repr(u32)]
2362#[non_exhaustive]
2363#[doc = "\n Supported JavaScript dialog types.\n"]
2364#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2365pub enum cef_jsdialog_type_t {
2366    JSDIALOGTYPE_ALERT = 0,
2367    JSDIALOGTYPE_CONFIRM = 1,
2368    JSDIALOGTYPE_PROMPT = 2,
2369    JSDIALOGTYPE_NUM_VALUES = 3,
2370}
2371#[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"]
2372#[repr(C)]
2373#[derive(Debug, Copy, Clone)]
2374pub struct _cef_screen_info_t {
2375    #[doc = "\n Size of this structure.\n"]
2376    pub size: usize,
2377    #[doc = "\n Device scale factor. Specifies the ratio between physical and logical\n pixels.\n"]
2378    pub device_scale_factor: f32,
2379    #[doc = "\n The screen depth in bits per pixel.\n"]
2380    pub depth: ::std::os::raw::c_int,
2381    #[doc = "\n The bits per color component. This assumes that the colors are balanced\n equally.\n"]
2382    pub depth_per_component: ::std::os::raw::c_int,
2383    #[doc = "\n This can be true for black and white printers.\n"]
2384    pub is_monochrome: ::std::os::raw::c_int,
2385    #[doc = " The |rect| and |available_rect| properties are used to determine the\n available surface for rendering popup views.\n"]
2386    pub rect: cef_rect_t,
2387    #[doc = " The |rect| and |available_rect| properties are used to determine the\n available surface for rendering popup views.\n"]
2388    pub available_rect: cef_rect_t,
2389}
2390#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2391const _: () = {
2392    ["Size of _cef_screen_info_t"][::std::mem::size_of::<_cef_screen_info_t>() - 56usize];
2393    ["Alignment of _cef_screen_info_t"][::std::mem::align_of::<_cef_screen_info_t>() - 8usize];
2394    ["Offset of field: _cef_screen_info_t::size"]
2395        [::std::mem::offset_of!(_cef_screen_info_t, size) - 0usize];
2396    ["Offset of field: _cef_screen_info_t::device_scale_factor"]
2397        [::std::mem::offset_of!(_cef_screen_info_t, device_scale_factor) - 8usize];
2398    ["Offset of field: _cef_screen_info_t::depth"]
2399        [::std::mem::offset_of!(_cef_screen_info_t, depth) - 12usize];
2400    ["Offset of field: _cef_screen_info_t::depth_per_component"]
2401        [::std::mem::offset_of!(_cef_screen_info_t, depth_per_component) - 16usize];
2402    ["Offset of field: _cef_screen_info_t::is_monochrome"]
2403        [::std::mem::offset_of!(_cef_screen_info_t, is_monochrome) - 20usize];
2404    ["Offset of field: _cef_screen_info_t::rect"]
2405        [::std::mem::offset_of!(_cef_screen_info_t, rect) - 24usize];
2406    ["Offset of field: _cef_screen_info_t::available_rect"]
2407        [::std::mem::offset_of!(_cef_screen_info_t, available_rect) - 40usize];
2408};
2409#[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"]
2410pub type cef_screen_info_t = _cef_screen_info_t;
2411#[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"]
2412#[repr(C)]
2413#[derive(Debug, Copy, Clone)]
2414pub struct _cef_linux_window_properties_t {
2415    #[doc = "\n Size of this structure.\n"]
2416    pub size: usize,
2417    #[doc = "\n Main window's Wayland's app_id\n"]
2418    pub wayland_app_id: cef_string_t,
2419    #[doc = "\n Main window's WM_CLASS_CLASS in X11\n"]
2420    pub wm_class_class: cef_string_t,
2421    #[doc = "\n Main window's WM_CLASS_NAME in X11\n"]
2422    pub wm_class_name: cef_string_t,
2423    #[doc = "\n Main window's WM_WINDOW_ROLE in X11\n"]
2424    pub wm_role_name: cef_string_t,
2425}
2426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2427const _: () = {
2428    ["Size of _cef_linux_window_properties_t"]
2429        [::std::mem::size_of::<_cef_linux_window_properties_t>() - 104usize];
2430    ["Alignment of _cef_linux_window_properties_t"]
2431        [::std::mem::align_of::<_cef_linux_window_properties_t>() - 8usize];
2432    ["Offset of field: _cef_linux_window_properties_t::size"]
2433        [::std::mem::offset_of!(_cef_linux_window_properties_t, size) - 0usize];
2434    ["Offset of field: _cef_linux_window_properties_t::wayland_app_id"]
2435        [::std::mem::offset_of!(_cef_linux_window_properties_t, wayland_app_id) - 8usize];
2436    ["Offset of field: _cef_linux_window_properties_t::wm_class_class"]
2437        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_class_class) - 32usize];
2438    ["Offset of field: _cef_linux_window_properties_t::wm_class_name"]
2439        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_class_name) - 56usize];
2440    ["Offset of field: _cef_linux_window_properties_t::wm_role_name"]
2441        [::std::mem::offset_of!(_cef_linux_window_properties_t, wm_role_name) - 80usize];
2442};
2443#[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"]
2444pub type cef_linux_window_properties_t = _cef_linux_window_properties_t;
2445impl cef_menu_id_t {
2446    pub const MENU_ID_SPELLCHECK_SUGGESTION_LAST: cef_menu_id_t =
2447        cef_menu_id_t::MENU_ID_SPELLCHECK_SUGGESTION_4;
2448}
2449#[repr(u32)]
2450#[non_exhaustive]
2451#[doc = "\n Supported menu IDs. Non-English translations can be provided for the\n IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString().\n"]
2452#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2453pub enum cef_menu_id_t {
2454    MENU_ID_BACK = 100,
2455    MENU_ID_FORWARD = 101,
2456    MENU_ID_RELOAD = 102,
2457    MENU_ID_RELOAD_NOCACHE = 103,
2458    MENU_ID_STOPLOAD = 104,
2459    MENU_ID_UNDO = 110,
2460    MENU_ID_REDO = 111,
2461    MENU_ID_CUT = 112,
2462    MENU_ID_COPY = 113,
2463    MENU_ID_PASTE = 114,
2464    MENU_ID_PASTE_MATCH_STYLE = 115,
2465    MENU_ID_DELETE = 116,
2466    MENU_ID_SELECT_ALL = 117,
2467    MENU_ID_FIND = 130,
2468    MENU_ID_PRINT = 131,
2469    MENU_ID_VIEW_SOURCE = 132,
2470    MENU_ID_SPELLCHECK_SUGGESTION_0 = 200,
2471    MENU_ID_SPELLCHECK_SUGGESTION_1 = 201,
2472    MENU_ID_SPELLCHECK_SUGGESTION_2 = 202,
2473    MENU_ID_SPELLCHECK_SUGGESTION_3 = 203,
2474    MENU_ID_SPELLCHECK_SUGGESTION_4 = 204,
2475    MENU_ID_NO_SPELLING_SUGGESTIONS = 205,
2476    MENU_ID_ADD_TO_DICTIONARY = 206,
2477    MENU_ID_CUSTOM_FIRST = 220,
2478    MENU_ID_CUSTOM_LAST = 250,
2479    MENU_ID_USER_FIRST = 26500,
2480    MENU_ID_USER_LAST = 28500,
2481}
2482#[repr(u32)]
2483#[non_exhaustive]
2484#[doc = "\n Mouse button types.\n"]
2485#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2486pub enum cef_mouse_button_type_t {
2487    MBT_LEFT = 0,
2488    MBT_MIDDLE = 1,
2489    MBT_RIGHT = 2,
2490}
2491#[doc = "\n Structure representing mouse event information.\n"]
2492#[repr(C)]
2493#[derive(Debug, Copy, Clone)]
2494pub struct _cef_mouse_event_t {
2495    #[doc = "\n X coordinate relative to the left side of the view.\n"]
2496    pub x: ::std::os::raw::c_int,
2497    #[doc = "\n Y coordinate relative to the top side of the view.\n"]
2498    pub y: ::std::os::raw::c_int,
2499    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
2500    pub modifiers: u32,
2501}
2502#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2503const _: () = {
2504    ["Size of _cef_mouse_event_t"][::std::mem::size_of::<_cef_mouse_event_t>() - 12usize];
2505    ["Alignment of _cef_mouse_event_t"][::std::mem::align_of::<_cef_mouse_event_t>() - 4usize];
2506    ["Offset of field: _cef_mouse_event_t::x"]
2507        [::std::mem::offset_of!(_cef_mouse_event_t, x) - 0usize];
2508    ["Offset of field: _cef_mouse_event_t::y"]
2509        [::std::mem::offset_of!(_cef_mouse_event_t, y) - 4usize];
2510    ["Offset of field: _cef_mouse_event_t::modifiers"]
2511        [::std::mem::offset_of!(_cef_mouse_event_t, modifiers) - 8usize];
2512};
2513#[doc = "\n Structure representing mouse event information.\n"]
2514pub type cef_mouse_event_t = _cef_mouse_event_t;
2515#[repr(u32)]
2516#[non_exhaustive]
2517#[doc = "\n Touch points states types.\n"]
2518#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2519pub enum cef_touch_event_type_t {
2520    CEF_TET_RELEASED = 0,
2521    CEF_TET_PRESSED = 1,
2522    CEF_TET_MOVED = 2,
2523    CEF_TET_CANCELLED = 3,
2524}
2525#[repr(u32)]
2526#[non_exhaustive]
2527#[doc = "\n The device type that caused the event.\n"]
2528#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2529pub enum cef_pointer_type_t {
2530    CEF_POINTER_TYPE_TOUCH = 0,
2531    CEF_POINTER_TYPE_MOUSE = 1,
2532    CEF_POINTER_TYPE_PEN = 2,
2533    CEF_POINTER_TYPE_ERASER = 3,
2534    CEF_POINTER_TYPE_UNKNOWN = 4,
2535}
2536#[doc = "\n Structure representing touch event information.\n"]
2537#[repr(C)]
2538#[derive(Debug, Copy, Clone)]
2539pub struct _cef_touch_event_t {
2540    #[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"]
2541    pub id: ::std::os::raw::c_int,
2542    #[doc = "\n X coordinate relative to the left side of the view.\n"]
2543    pub x: f32,
2544    #[doc = "\n Y coordinate relative to the top side of the view.\n"]
2545    pub y: f32,
2546    #[doc = "\n X radius in pixels. Set to 0 if not applicable.\n"]
2547    pub radius_x: f32,
2548    #[doc = "\n Y radius in pixels. Set to 0 if not applicable.\n"]
2549    pub radius_y: f32,
2550    #[doc = "\n Rotation angle in radians. Set to 0 if not applicable.\n"]
2551    pub rotation_angle: f32,
2552    #[doc = "\n The normalized pressure of the pointer input in the range of [0,1].\n Set to 0 if not applicable.\n"]
2553    pub pressure: f32,
2554    #[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"]
2555    pub type_: cef_touch_event_type_t,
2556    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
2557    pub modifiers: u32,
2558    #[doc = "\n The device type that caused the event.\n"]
2559    pub pointer_type: cef_pointer_type_t,
2560}
2561#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2562const _: () = {
2563    ["Size of _cef_touch_event_t"][::std::mem::size_of::<_cef_touch_event_t>() - 40usize];
2564    ["Alignment of _cef_touch_event_t"][::std::mem::align_of::<_cef_touch_event_t>() - 4usize];
2565    ["Offset of field: _cef_touch_event_t::id"]
2566        [::std::mem::offset_of!(_cef_touch_event_t, id) - 0usize];
2567    ["Offset of field: _cef_touch_event_t::x"]
2568        [::std::mem::offset_of!(_cef_touch_event_t, x) - 4usize];
2569    ["Offset of field: _cef_touch_event_t::y"]
2570        [::std::mem::offset_of!(_cef_touch_event_t, y) - 8usize];
2571    ["Offset of field: _cef_touch_event_t::radius_x"]
2572        [::std::mem::offset_of!(_cef_touch_event_t, radius_x) - 12usize];
2573    ["Offset of field: _cef_touch_event_t::radius_y"]
2574        [::std::mem::offset_of!(_cef_touch_event_t, radius_y) - 16usize];
2575    ["Offset of field: _cef_touch_event_t::rotation_angle"]
2576        [::std::mem::offset_of!(_cef_touch_event_t, rotation_angle) - 20usize];
2577    ["Offset of field: _cef_touch_event_t::pressure"]
2578        [::std::mem::offset_of!(_cef_touch_event_t, pressure) - 24usize];
2579    ["Offset of field: _cef_touch_event_t::type_"]
2580        [::std::mem::offset_of!(_cef_touch_event_t, type_) - 28usize];
2581    ["Offset of field: _cef_touch_event_t::modifiers"]
2582        [::std::mem::offset_of!(_cef_touch_event_t, modifiers) - 32usize];
2583    ["Offset of field: _cef_touch_event_t::pointer_type"]
2584        [::std::mem::offset_of!(_cef_touch_event_t, pointer_type) - 36usize];
2585};
2586#[doc = "\n Structure representing touch event information.\n"]
2587pub type cef_touch_event_t = _cef_touch_event_t;
2588#[repr(u32)]
2589#[non_exhaustive]
2590#[doc = "\n Paint element types.\n"]
2591#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2592pub enum cef_paint_element_type_t {
2593    PET_VIEW = 0,
2594    PET_POPUP = 1,
2595}
2596#[repr(u32)]
2597#[non_exhaustive]
2598#[doc = "\n Supported event bit flags.\n"]
2599#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2600pub enum cef_event_flags_t {
2601    EVENTFLAG_NONE = 0,
2602    EVENTFLAG_CAPS_LOCK_ON = 1,
2603    EVENTFLAG_SHIFT_DOWN = 2,
2604    EVENTFLAG_CONTROL_DOWN = 4,
2605    EVENTFLAG_ALT_DOWN = 8,
2606    EVENTFLAG_LEFT_MOUSE_BUTTON = 16,
2607    EVENTFLAG_MIDDLE_MOUSE_BUTTON = 32,
2608    EVENTFLAG_RIGHT_MOUSE_BUTTON = 64,
2609    #[doc = " Mac OS-X command key."]
2610    EVENTFLAG_COMMAND_DOWN = 128,
2611    #[doc = " Mac OS-X command key."]
2612    EVENTFLAG_NUM_LOCK_ON = 256,
2613    #[doc = " Mac OS-X command key."]
2614    EVENTFLAG_IS_KEY_PAD = 512,
2615    #[doc = " Mac OS-X command key."]
2616    EVENTFLAG_IS_LEFT = 1024,
2617    #[doc = " Mac OS-X command key."]
2618    EVENTFLAG_IS_RIGHT = 2048,
2619    #[doc = " Mac OS-X command key."]
2620    EVENTFLAG_ALTGR_DOWN = 4096,
2621    #[doc = " Mac OS-X command key."]
2622    EVENTFLAG_IS_REPEAT = 8192,
2623    #[doc = " Mac OS-X command key."]
2624    EVENTFLAG_PRECISION_SCROLLING_DELTA = 16384,
2625    #[doc = " Mac OS-X command key."]
2626    EVENTFLAG_SCROLL_BY_PAGE = 32768,
2627}
2628#[repr(u32)]
2629#[non_exhaustive]
2630#[doc = "\n Supported menu item types.\n"]
2631#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2632pub enum cef_menu_item_type_t {
2633    MENUITEMTYPE_NONE = 0,
2634    MENUITEMTYPE_COMMAND = 1,
2635    MENUITEMTYPE_CHECK = 2,
2636    MENUITEMTYPE_RADIO = 3,
2637    MENUITEMTYPE_SEPARATOR = 4,
2638    MENUITEMTYPE_SUBMENU = 5,
2639}
2640#[repr(u32)]
2641#[non_exhaustive]
2642#[doc = "\n Supported context menu type flags.\n"]
2643#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2644pub enum cef_context_menu_type_flags_t {
2645    #[doc = "\n No node is selected.\n"]
2646    CM_TYPEFLAG_NONE = 0,
2647    #[doc = "\n The top page is selected.\n"]
2648    CM_TYPEFLAG_PAGE = 1,
2649    #[doc = "\n A subframe page is selected.\n"]
2650    CM_TYPEFLAG_FRAME = 2,
2651    #[doc = "\n A link is selected.\n"]
2652    CM_TYPEFLAG_LINK = 4,
2653    #[doc = "\n A media node is selected.\n"]
2654    CM_TYPEFLAG_MEDIA = 8,
2655    #[doc = "\n There is a textual or mixed selection that is selected.\n"]
2656    CM_TYPEFLAG_SELECTION = 16,
2657    #[doc = "\n An editable element is selected.\n"]
2658    CM_TYPEFLAG_EDITABLE = 32,
2659}
2660#[repr(u32)]
2661#[non_exhaustive]
2662#[doc = "\n Supported context menu media types. These constants match their equivalents\n in Chromium's ContextMenuDataMediaType and should not be renumbered.\n"]
2663#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2664pub enum cef_context_menu_media_type_t {
2665    #[doc = "\n No special node is in context.\n"]
2666    CM_MEDIATYPE_NONE = 0,
2667    #[doc = "\n An image node is selected.\n"]
2668    CM_MEDIATYPE_IMAGE = 1,
2669    #[doc = "\n A video node is selected.\n"]
2670    CM_MEDIATYPE_VIDEO = 2,
2671    #[doc = "\n An audio node is selected.\n"]
2672    CM_MEDIATYPE_AUDIO = 3,
2673    #[doc = "\n An canvas node is selected.\n"]
2674    CM_MEDIATYPE_CANVAS = 4,
2675    #[doc = "\n A file node is selected.\n"]
2676    CM_MEDIATYPE_FILE = 5,
2677    #[doc = "\n A plugin node is selected.\n"]
2678    CM_MEDIATYPE_PLUGIN = 6,
2679    #[doc = "\n A plugin node is selected.\n"]
2680    CM_MEDIATYPE_NUM_VALUES = 7,
2681}
2682#[repr(u32)]
2683#[non_exhaustive]
2684#[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"]
2685#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2686pub enum cef_context_menu_media_state_flags_t {
2687    CM_MEDIAFLAG_NONE = 0,
2688    CM_MEDIAFLAG_IN_ERROR = 1,
2689    CM_MEDIAFLAG_PAUSED = 2,
2690    CM_MEDIAFLAG_MUTED = 4,
2691    CM_MEDIAFLAG_LOOP = 8,
2692    CM_MEDIAFLAG_CAN_SAVE = 16,
2693    CM_MEDIAFLAG_HAS_AUDIO = 32,
2694    CM_MEDIAFLAG_CAN_TOGGLE_CONTROLS = 64,
2695    CM_MEDIAFLAG_CONTROLS = 128,
2696    CM_MEDIAFLAG_CAN_PRINT = 256,
2697    CM_MEDIAFLAG_CAN_ROTATE = 512,
2698    CM_MEDIAFLAG_CAN_PICTURE_IN_PICTURE = 1024,
2699    CM_MEDIAFLAG_PICTURE_IN_PICTURE = 2048,
2700    CM_MEDIAFLAG_CAN_LOOP = 4096,
2701}
2702#[repr(u32)]
2703#[non_exhaustive]
2704#[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"]
2705#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2706pub enum cef_context_menu_edit_state_flags_t {
2707    CM_EDITFLAG_NONE = 0,
2708    CM_EDITFLAG_CAN_UNDO = 1,
2709    CM_EDITFLAG_CAN_REDO = 2,
2710    CM_EDITFLAG_CAN_CUT = 4,
2711    CM_EDITFLAG_CAN_COPY = 8,
2712    CM_EDITFLAG_CAN_PASTE = 16,
2713    CM_EDITFLAG_CAN_DELETE = 32,
2714    CM_EDITFLAG_CAN_SELECT_ALL = 64,
2715    CM_EDITFLAG_CAN_TRANSLATE = 128,
2716    CM_EDITFLAG_CAN_EDIT_RICHLY = 256,
2717}
2718#[repr(u32)]
2719#[non_exhaustive]
2720#[doc = "\n Supported quick menu state bit flags.\n"]
2721#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2722pub enum cef_quick_menu_edit_state_flags_t {
2723    QM_EDITFLAG_NONE = 0,
2724    QM_EDITFLAG_CAN_ELLIPSIS = 1,
2725    QM_EDITFLAG_CAN_CUT = 2,
2726    QM_EDITFLAG_CAN_COPY = 4,
2727    QM_EDITFLAG_CAN_PASTE = 8,
2728}
2729#[repr(u32)]
2730#[non_exhaustive]
2731#[doc = "\n Key event types.\n"]
2732#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2733pub enum cef_key_event_type_t {
2734    #[doc = "\n Notification that a key transitioned from \"up\" to \"down\".\n"]
2735    KEYEVENT_RAWKEYDOWN = 0,
2736    #[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"]
2737    KEYEVENT_KEYDOWN = 1,
2738    #[doc = "\n Notification that a key was released.\n"]
2739    KEYEVENT_KEYUP = 2,
2740    #[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"]
2741    KEYEVENT_CHAR = 3,
2742}
2743#[doc = "\n Structure representing keyboard event information.\n"]
2744#[repr(C)]
2745#[derive(Debug, Copy, Clone)]
2746pub struct _cef_key_event_t {
2747    #[doc = "\n Size of this structure.\n"]
2748    pub size: usize,
2749    #[doc = "\n The type of keyboard event.\n"]
2750    pub type_: cef_key_event_type_t,
2751    #[doc = "\n Bit flags describing any pressed modifier keys. See\n cef_event_flags_t for values.\n"]
2752    pub modifiers: u32,
2753    #[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"]
2754    pub windows_key_code: ::std::os::raw::c_int,
2755    #[doc = "\n The actual key code genenerated by the platform.\n"]
2756    pub native_key_code: ::std::os::raw::c_int,
2757    #[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"]
2758    pub is_system_key: ::std::os::raw::c_int,
2759    #[doc = "\n The character generated by the keystroke.\n"]
2760    pub character: char16_t,
2761    #[doc = "\n Same as |character| but unmodified by any concurrently-held modifiers\n (except shift). This is useful for working out shortcut keys.\n"]
2762    pub unmodified_character: char16_t,
2763    #[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"]
2764    pub focus_on_editable_field: ::std::os::raw::c_int,
2765}
2766#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2767const _: () = {
2768    ["Size of _cef_key_event_t"][::std::mem::size_of::<_cef_key_event_t>() - 40usize];
2769    ["Alignment of _cef_key_event_t"][::std::mem::align_of::<_cef_key_event_t>() - 8usize];
2770    ["Offset of field: _cef_key_event_t::size"]
2771        [::std::mem::offset_of!(_cef_key_event_t, size) - 0usize];
2772    ["Offset of field: _cef_key_event_t::type_"]
2773        [::std::mem::offset_of!(_cef_key_event_t, type_) - 8usize];
2774    ["Offset of field: _cef_key_event_t::modifiers"]
2775        [::std::mem::offset_of!(_cef_key_event_t, modifiers) - 12usize];
2776    ["Offset of field: _cef_key_event_t::windows_key_code"]
2777        [::std::mem::offset_of!(_cef_key_event_t, windows_key_code) - 16usize];
2778    ["Offset of field: _cef_key_event_t::native_key_code"]
2779        [::std::mem::offset_of!(_cef_key_event_t, native_key_code) - 20usize];
2780    ["Offset of field: _cef_key_event_t::is_system_key"]
2781        [::std::mem::offset_of!(_cef_key_event_t, is_system_key) - 24usize];
2782    ["Offset of field: _cef_key_event_t::character"]
2783        [::std::mem::offset_of!(_cef_key_event_t, character) - 28usize];
2784    ["Offset of field: _cef_key_event_t::unmodified_character"]
2785        [::std::mem::offset_of!(_cef_key_event_t, unmodified_character) - 30usize];
2786    ["Offset of field: _cef_key_event_t::focus_on_editable_field"]
2787        [::std::mem::offset_of!(_cef_key_event_t, focus_on_editable_field) - 32usize];
2788};
2789#[doc = "\n Structure representing keyboard event information.\n"]
2790pub type cef_key_event_t = _cef_key_event_t;
2791#[repr(u32)]
2792#[non_exhaustive]
2793#[doc = "\n Focus sources.\n"]
2794#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2795pub enum cef_focus_source_t {
2796    #[doc = "\n The source is explicit navigation via the API (LoadURL(), etc).\n"]
2797    FOCUS_SOURCE_NAVIGATION = 0,
2798    #[doc = "\n The source is a system-generated focus event.\n"]
2799    FOCUS_SOURCE_SYSTEM = 1,
2800    #[doc = "\n The source is a system-generated focus event.\n"]
2801    FOCUS_SOURCE_NUM_VALUES = 2,
2802}
2803#[repr(u32)]
2804#[non_exhaustive]
2805#[doc = "\n Navigation types.\n"]
2806#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2807pub enum cef_navigation_type_t {
2808    NAVIGATION_LINK_CLICKED = 0,
2809    NAVIGATION_FORM_SUBMITTED = 1,
2810    NAVIGATION_BACK_FORWARD = 2,
2811    NAVIGATION_RELOAD = 3,
2812    NAVIGATION_FORM_RESUBMITTED = 4,
2813    NAVIGATION_OTHER = 5,
2814    NAVIGATION_NUM_VALUES = 6,
2815}
2816#[repr(u32)]
2817#[non_exhaustive]
2818#[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"]
2819#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2820pub enum cef_xml_encoding_type_t {
2821    XML_ENCODING_NONE = 0,
2822    XML_ENCODING_UTF8 = 1,
2823    XML_ENCODING_UTF16LE = 2,
2824    XML_ENCODING_UTF16BE = 3,
2825    XML_ENCODING_ASCII = 4,
2826    XML_ENCODING_NUM_VALUES = 5,
2827}
2828#[repr(u32)]
2829#[non_exhaustive]
2830#[doc = "\n XML node types.\n"]
2831#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2832pub enum cef_xml_node_type_t {
2833    XML_NODE_UNSUPPORTED = 0,
2834    XML_NODE_PROCESSING_INSTRUCTION = 1,
2835    XML_NODE_DOCUMENT_TYPE = 2,
2836    XML_NODE_ELEMENT_START = 3,
2837    XML_NODE_ELEMENT_END = 4,
2838    XML_NODE_ATTRIBUTE = 5,
2839    XML_NODE_TEXT = 6,
2840    XML_NODE_CDATA = 7,
2841    XML_NODE_ENTITY_REFERENCE = 8,
2842    XML_NODE_WHITESPACE = 9,
2843    XML_NODE_COMMENT = 10,
2844    XML_NODE_NUM_VALUES = 11,
2845}
2846#[doc = "\n Popup window features.\n"]
2847#[repr(C)]
2848#[derive(Debug, Copy, Clone)]
2849pub struct _cef_popup_features_t {
2850    #[doc = "\n Size of this structure.\n"]
2851    pub size: usize,
2852    pub x: ::std::os::raw::c_int,
2853    pub xSet: ::std::os::raw::c_int,
2854    pub y: ::std::os::raw::c_int,
2855    pub ySet: ::std::os::raw::c_int,
2856    pub width: ::std::os::raw::c_int,
2857    pub widthSet: ::std::os::raw::c_int,
2858    pub height: ::std::os::raw::c_int,
2859    pub heightSet: ::std::os::raw::c_int,
2860    #[doc = "\n True (1) if browser interface elements should be hidden.\n"]
2861    pub isPopup: ::std::os::raw::c_int,
2862}
2863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2864const _: () = {
2865    ["Size of _cef_popup_features_t"][::std::mem::size_of::<_cef_popup_features_t>() - 48usize];
2866    ["Alignment of _cef_popup_features_t"]
2867        [::std::mem::align_of::<_cef_popup_features_t>() - 8usize];
2868    ["Offset of field: _cef_popup_features_t::size"]
2869        [::std::mem::offset_of!(_cef_popup_features_t, size) - 0usize];
2870    ["Offset of field: _cef_popup_features_t::x"]
2871        [::std::mem::offset_of!(_cef_popup_features_t, x) - 8usize];
2872    ["Offset of field: _cef_popup_features_t::xSet"]
2873        [::std::mem::offset_of!(_cef_popup_features_t, xSet) - 12usize];
2874    ["Offset of field: _cef_popup_features_t::y"]
2875        [::std::mem::offset_of!(_cef_popup_features_t, y) - 16usize];
2876    ["Offset of field: _cef_popup_features_t::ySet"]
2877        [::std::mem::offset_of!(_cef_popup_features_t, ySet) - 20usize];
2878    ["Offset of field: _cef_popup_features_t::width"]
2879        [::std::mem::offset_of!(_cef_popup_features_t, width) - 24usize];
2880    ["Offset of field: _cef_popup_features_t::widthSet"]
2881        [::std::mem::offset_of!(_cef_popup_features_t, widthSet) - 28usize];
2882    ["Offset of field: _cef_popup_features_t::height"]
2883        [::std::mem::offset_of!(_cef_popup_features_t, height) - 32usize];
2884    ["Offset of field: _cef_popup_features_t::heightSet"]
2885        [::std::mem::offset_of!(_cef_popup_features_t, heightSet) - 36usize];
2886    ["Offset of field: _cef_popup_features_t::isPopup"]
2887        [::std::mem::offset_of!(_cef_popup_features_t, isPopup) - 40usize];
2888};
2889#[doc = "\n Popup window features.\n"]
2890pub type cef_popup_features_t = _cef_popup_features_t;
2891#[repr(u32)]
2892#[non_exhaustive]
2893#[doc = "\n DOM document types.\n"]
2894#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2895pub enum cef_dom_document_type_t {
2896    DOM_DOCUMENT_TYPE_UNKNOWN = 0,
2897    DOM_DOCUMENT_TYPE_HTML = 1,
2898    DOM_DOCUMENT_TYPE_XHTML = 2,
2899    DOM_DOCUMENT_TYPE_PLUGIN = 3,
2900    DOM_DOCUMENT_TYPE_NUM_VALUES = 4,
2901}
2902#[repr(u32)]
2903#[non_exhaustive]
2904#[doc = "\n DOM event category flags.\n"]
2905#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2906pub enum cef_dom_event_category_t {
2907    DOM_EVENT_CATEGORY_UNKNOWN = 0,
2908    DOM_EVENT_CATEGORY_UI = 1,
2909    DOM_EVENT_CATEGORY_MOUSE = 2,
2910    DOM_EVENT_CATEGORY_MUTATION = 4,
2911    DOM_EVENT_CATEGORY_KEYBOARD = 8,
2912    DOM_EVENT_CATEGORY_TEXT = 16,
2913    DOM_EVENT_CATEGORY_COMPOSITION = 32,
2914    DOM_EVENT_CATEGORY_DRAG = 64,
2915    DOM_EVENT_CATEGORY_CLIPBOARD = 128,
2916    DOM_EVENT_CATEGORY_MESSAGE = 256,
2917    DOM_EVENT_CATEGORY_WHEEL = 512,
2918    DOM_EVENT_CATEGORY_BEFORE_TEXT_INSERTED = 1024,
2919    DOM_EVENT_CATEGORY_OVERFLOW = 2048,
2920    DOM_EVENT_CATEGORY_PAGE_TRANSITION = 4096,
2921    DOM_EVENT_CATEGORY_POPSTATE = 8192,
2922    DOM_EVENT_CATEGORY_PROGRESS = 16384,
2923    DOM_EVENT_CATEGORY_XMLHTTPREQUEST_PROGRESS = 32768,
2924}
2925#[repr(u32)]
2926#[non_exhaustive]
2927#[doc = "\n DOM event processing phases.\n"]
2928#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2929pub enum cef_dom_event_phase_t {
2930    DOM_EVENT_PHASE_UNKNOWN = 0,
2931    DOM_EVENT_PHASE_CAPTURING = 1,
2932    DOM_EVENT_PHASE_AT_TARGET = 2,
2933    DOM_EVENT_PHASE_BUBBLING = 3,
2934    DOM_EVENT_PHASE_NUM_VALUES = 4,
2935}
2936#[repr(u32)]
2937#[non_exhaustive]
2938#[doc = "\n DOM node types.\n"]
2939#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2940pub enum cef_dom_node_type_t {
2941    DOM_NODE_TYPE_UNSUPPORTED = 0,
2942    DOM_NODE_TYPE_ELEMENT = 1,
2943    DOM_NODE_TYPE_ATTRIBUTE = 2,
2944    DOM_NODE_TYPE_TEXT = 3,
2945    DOM_NODE_TYPE_CDATA_SECTION = 4,
2946    DOM_NODE_TYPE_PROCESSING_INSTRUCTIONS = 5,
2947    DOM_NODE_TYPE_COMMENT = 6,
2948    DOM_NODE_TYPE_DOCUMENT = 7,
2949    DOM_NODE_TYPE_DOCUMENT_TYPE = 8,
2950    DOM_NODE_TYPE_DOCUMENT_FRAGMENT = 9,
2951    DOM_NODE_TYPE_NUM_VALUES = 10,
2952}
2953#[repr(u32)]
2954#[non_exhaustive]
2955#[doc = "\n DOM form control types. Should be kept in sync with Chromium's\n blink::mojom::FormControlType type.\n"]
2956#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2957pub enum cef_dom_form_control_type_t {
2958    DOM_FORM_CONTROL_TYPE_UNSUPPORTED = 0,
2959    DOM_FORM_CONTROL_TYPE_BUTTON_BUTTON = 1,
2960    DOM_FORM_CONTROL_TYPE_BUTTON_SUBMIT = 2,
2961    DOM_FORM_CONTROL_TYPE_BUTTON_RESET = 3,
2962    DOM_FORM_CONTROL_TYPE_BUTTON_POPOVER = 4,
2963    DOM_FORM_CONTROL_TYPE_FIELDSET = 5,
2964    DOM_FORM_CONTROL_TYPE_INPUT_BUTTON = 6,
2965    DOM_FORM_CONTROL_TYPE_INPUT_CHECKBOX = 7,
2966    DOM_FORM_CONTROL_TYPE_INPUT_COLOR = 8,
2967    DOM_FORM_CONTROL_TYPE_INPUT_DATE = 9,
2968    DOM_FORM_CONTROL_TYPE_INPUT_DATETIME_LOCAL = 10,
2969    DOM_FORM_CONTROL_TYPE_INPUT_EMAIL = 11,
2970    DOM_FORM_CONTROL_TYPE_INPUT_FILE = 12,
2971    DOM_FORM_CONTROL_TYPE_INPUT_HIDDEN = 13,
2972    DOM_FORM_CONTROL_TYPE_INPUT_IMAGE = 14,
2973    DOM_FORM_CONTROL_TYPE_INPUT_MONTH = 15,
2974    DOM_FORM_CONTROL_TYPE_INPUT_NUMBER = 16,
2975    DOM_FORM_CONTROL_TYPE_INPUT_PASSWORD = 17,
2976    DOM_FORM_CONTROL_TYPE_INPUT_RADIO = 18,
2977    DOM_FORM_CONTROL_TYPE_INPUT_RANGE = 19,
2978    DOM_FORM_CONTROL_TYPE_INPUT_RESET = 20,
2979    DOM_FORM_CONTROL_TYPE_INPUT_SEARCH = 21,
2980    DOM_FORM_CONTROL_TYPE_INPUT_SUBMIT = 22,
2981    DOM_FORM_CONTROL_TYPE_INPUT_TELEPHONE = 23,
2982    DOM_FORM_CONTROL_TYPE_INPUT_TEXT = 24,
2983    DOM_FORM_CONTROL_TYPE_INPUT_TIME = 25,
2984    DOM_FORM_CONTROL_TYPE_INPUT_URL = 26,
2985    DOM_FORM_CONTROL_TYPE_INPUT_WEEK = 27,
2986    DOM_FORM_CONTROL_TYPE_OUTPUT = 28,
2987    DOM_FORM_CONTROL_TYPE_SELECT_ONE = 29,
2988    DOM_FORM_CONTROL_TYPE_SELECT_MULTIPLE = 30,
2989    DOM_FORM_CONTROL_TYPE_TEXT_AREA = 31,
2990    DOM_FORM_CONTROL_TYPE_NUM_VALUES = 32,
2991}
2992#[repr(u32)]
2993#[non_exhaustive]
2994#[doc = "\n Supported file dialog modes.\n"]
2995#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2996pub enum cef_file_dialog_mode_t {
2997    #[doc = "\n Requires that the file exists before allowing the user to pick it.\n"]
2998    FILE_DIALOG_OPEN = 0,
2999    #[doc = "\n Like Open, but allows picking multiple files to open.\n"]
3000    FILE_DIALOG_OPEN_MULTIPLE = 1,
3001    #[doc = "\n Like Open, but selects a folder to open.\n"]
3002    FILE_DIALOG_OPEN_FOLDER = 2,
3003    #[doc = "\n Allows picking a nonexistent file, and prompts to overwrite if the file\n already exists.\n"]
3004    FILE_DIALOG_SAVE = 3,
3005    #[doc = "\n Allows picking a nonexistent file, and prompts to overwrite if the file\n already exists.\n"]
3006    FILE_DIALOG_NUM_VALUES = 4,
3007}
3008#[repr(u32)]
3009#[non_exhaustive]
3010#[doc = "\n Print job color mode values.\n"]
3011#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3012pub enum cef_color_model_t {
3013    COLOR_MODEL_UNKNOWN = 0,
3014    COLOR_MODEL_GRAY = 1,
3015    COLOR_MODEL_COLOR = 2,
3016    COLOR_MODEL_CMYK = 3,
3017    COLOR_MODEL_CMY = 4,
3018    COLOR_MODEL_KCMY = 5,
3019    COLOR_MODEL_CMY_K = 6,
3020    COLOR_MODEL_BLACK = 7,
3021    COLOR_MODEL_GRAYSCALE = 8,
3022    COLOR_MODEL_RGB = 9,
3023    COLOR_MODEL_RGB16 = 10,
3024    COLOR_MODEL_RGBA = 11,
3025    COLOR_MODEL_COLORMODE_COLOR = 12,
3026    COLOR_MODEL_COLORMODE_MONOCHROME = 13,
3027    COLOR_MODEL_HP_COLOR_COLOR = 14,
3028    COLOR_MODEL_HP_COLOR_BLACK = 15,
3029    COLOR_MODEL_PRINTOUTMODE_NORMAL = 16,
3030    COLOR_MODEL_PRINTOUTMODE_NORMAL_GRAY = 17,
3031    COLOR_MODEL_PROCESSCOLORMODEL_CMYK = 18,
3032    COLOR_MODEL_PROCESSCOLORMODEL_GREYSCALE = 19,
3033    COLOR_MODEL_PROCESSCOLORMODEL_RGB = 20,
3034    COLOR_MODEL_NUM_VALUES = 21,
3035}
3036#[repr(i32)]
3037#[non_exhaustive]
3038#[doc = "\n Print job duplex mode values.\n"]
3039#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3040pub enum cef_duplex_mode_t {
3041    DUPLEX_MODE_UNKNOWN = -1,
3042    DUPLEX_MODE_SIMPLEX = 0,
3043    DUPLEX_MODE_LONG_EDGE = 1,
3044    DUPLEX_MODE_SHORT_EDGE = 2,
3045    DUPLEX_MODE_NUM_VALUES = 3,
3046}
3047#[repr(u32)]
3048#[non_exhaustive]
3049#[doc = "\n Cursor type values.\n"]
3050#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3051pub enum cef_cursor_type_t {
3052    CT_POINTER = 0,
3053    CT_CROSS = 1,
3054    CT_HAND = 2,
3055    CT_IBEAM = 3,
3056    CT_WAIT = 4,
3057    CT_HELP = 5,
3058    CT_EASTRESIZE = 6,
3059    CT_NORTHRESIZE = 7,
3060    CT_NORTHEASTRESIZE = 8,
3061    CT_NORTHWESTRESIZE = 9,
3062    CT_SOUTHRESIZE = 10,
3063    CT_SOUTHEASTRESIZE = 11,
3064    CT_SOUTHWESTRESIZE = 12,
3065    CT_WESTRESIZE = 13,
3066    CT_NORTHSOUTHRESIZE = 14,
3067    CT_EASTWESTRESIZE = 15,
3068    CT_NORTHEASTSOUTHWESTRESIZE = 16,
3069    CT_NORTHWESTSOUTHEASTRESIZE = 17,
3070    CT_COLUMNRESIZE = 18,
3071    CT_ROWRESIZE = 19,
3072    CT_MIDDLEPANNING = 20,
3073    CT_EASTPANNING = 21,
3074    CT_NORTHPANNING = 22,
3075    CT_NORTHEASTPANNING = 23,
3076    CT_NORTHWESTPANNING = 24,
3077    CT_SOUTHPANNING = 25,
3078    CT_SOUTHEASTPANNING = 26,
3079    CT_SOUTHWESTPANNING = 27,
3080    CT_WESTPANNING = 28,
3081    CT_MOVE = 29,
3082    CT_VERTICALTEXT = 30,
3083    CT_CELL = 31,
3084    CT_CONTEXTMENU = 32,
3085    CT_ALIAS = 33,
3086    CT_PROGRESS = 34,
3087    CT_NODROP = 35,
3088    CT_COPY = 36,
3089    CT_NONE = 37,
3090    CT_NOTALLOWED = 38,
3091    CT_ZOOMIN = 39,
3092    CT_ZOOMOUT = 40,
3093    CT_GRAB = 41,
3094    CT_GRABBING = 42,
3095    CT_MIDDLE_PANNING_VERTICAL = 43,
3096    CT_MIDDLE_PANNING_HORIZONTAL = 44,
3097    CT_CUSTOM = 45,
3098    CT_DND_NONE = 46,
3099    CT_DND_MOVE = 47,
3100    CT_DND_COPY = 48,
3101    CT_DND_LINK = 49,
3102    CT_NUM_VALUES = 50,
3103}
3104#[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"]
3105#[repr(C)]
3106#[derive(Debug, Copy, Clone)]
3107pub struct _cef_cursor_info_t {
3108    pub hotspot: cef_point_t,
3109    pub image_scale_factor: f32,
3110    pub buffer: *mut ::std::os::raw::c_void,
3111    pub size: cef_size_t,
3112}
3113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3114const _: () = {
3115    ["Size of _cef_cursor_info_t"][::std::mem::size_of::<_cef_cursor_info_t>() - 32usize];
3116    ["Alignment of _cef_cursor_info_t"][::std::mem::align_of::<_cef_cursor_info_t>() - 8usize];
3117    ["Offset of field: _cef_cursor_info_t::hotspot"]
3118        [::std::mem::offset_of!(_cef_cursor_info_t, hotspot) - 0usize];
3119    ["Offset of field: _cef_cursor_info_t::image_scale_factor"]
3120        [::std::mem::offset_of!(_cef_cursor_info_t, image_scale_factor) - 8usize];
3121    ["Offset of field: _cef_cursor_info_t::buffer"]
3122        [::std::mem::offset_of!(_cef_cursor_info_t, buffer) - 16usize];
3123    ["Offset of field: _cef_cursor_info_t::size"]
3124        [::std::mem::offset_of!(_cef_cursor_info_t, size) - 24usize];
3125};
3126#[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"]
3127pub type cef_cursor_info_t = _cef_cursor_info_t;
3128#[repr(u32)]
3129#[non_exhaustive]
3130#[doc = "\n URI unescape rules passed to CefURIDecode().\n"]
3131#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3132pub enum cef_uri_unescape_rule_t {
3133    #[doc = "\n Don't unescape anything at all.\n"]
3134    UU_NONE = 0,
3135    #[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"]
3136    UU_NORMAL = 1,
3137    #[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"]
3138    UU_SPACES = 2,
3139    #[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"]
3140    UU_PATH_SEPARATORS = 4,
3141    #[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"]
3142    UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS = 8,
3143    #[doc = "\n URL queries use \"+\" for space. This flag controls that replacement.\n"]
3144    UU_REPLACE_PLUS_WITH_SPACE = 16,
3145}
3146#[repr(u32)]
3147#[non_exhaustive]
3148#[doc = "\n Options that can be passed to CefParseJSON.\n"]
3149#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3150pub enum cef_json_parser_options_t {
3151    #[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"]
3152    JSON_PARSER_RFC = 0,
3153    #[doc = "\n Allows commas to exist after the last element in structures.\n"]
3154    JSON_PARSER_ALLOW_TRAILING_COMMAS = 1,
3155}
3156#[repr(u32)]
3157#[non_exhaustive]
3158#[doc = "\n Options that can be passed to CefWriteJSON.\n"]
3159#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3160pub enum cef_json_writer_options_t {
3161    #[doc = "\n Default behavior.\n"]
3162    JSON_WRITER_DEFAULT = 0,
3163    #[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"]
3164    JSON_WRITER_OMIT_BINARY_VALUES = 1,
3165    #[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"]
3166    JSON_WRITER_OMIT_DOUBLE_TYPE_PRESERVATION = 2,
3167    #[doc = "\n Return a slightly nicer formatted json string (pads with whitespace to\n help with readability).\n"]
3168    JSON_WRITER_PRETTY_PRINT = 4,
3169}
3170#[repr(u32)]
3171#[non_exhaustive]
3172#[doc = "\n Margin type for PDF printing.\n"]
3173#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3174pub enum cef_pdf_print_margin_type_t {
3175    #[doc = "\n Default margins of 1cm (~0.4 inches).\n"]
3176    PDF_PRINT_MARGIN_DEFAULT = 0,
3177    #[doc = "\n No margins.\n"]
3178    PDF_PRINT_MARGIN_NONE = 1,
3179    #[doc = "\n Custom margins using the |margin_*| values from cef_pdf_print_settings_t.\n"]
3180    PDF_PRINT_MARGIN_CUSTOM = 2,
3181}
3182#[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"]
3183#[repr(C)]
3184#[derive(Debug, Copy, Clone)]
3185pub struct _cef_pdf_print_settings_t {
3186    #[doc = "\n Size of this structure.\n"]
3187    pub size: usize,
3188    #[doc = "\n Set to true (1) for landscape mode or false (0) for portrait mode.\n"]
3189    pub landscape: ::std::os::raw::c_int,
3190    #[doc = "\n Set to true (1) to print background graphics.\n"]
3191    pub print_background: ::std::os::raw::c_int,
3192    #[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"]
3193    pub scale: f64,
3194    #[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"]
3195    pub paper_width: f64,
3196    pub paper_height: f64,
3197    #[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"]
3198    pub prefer_css_page_size: ::std::os::raw::c_int,
3199    #[doc = "\n Margin type.\n"]
3200    pub margin_type: cef_pdf_print_margin_type_t,
3201    #[doc = "\n Margins in inches. Only used if |margin_type| is set to\n PDF_PRINT_MARGIN_CUSTOM.\n"]
3202    pub margin_top: f64,
3203    pub margin_right: f64,
3204    pub margin_bottom: f64,
3205    pub margin_left: f64,
3206    #[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"]
3207    pub page_ranges: cef_string_t,
3208    #[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"]
3209    pub display_header_footer: ::std::os::raw::c_int,
3210    #[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"]
3211    pub header_template: cef_string_t,
3212    #[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"]
3213    pub footer_template: cef_string_t,
3214    #[doc = "\n Set to true (1) to generate tagged (accessible) PDF.\n"]
3215    pub generate_tagged_pdf: ::std::os::raw::c_int,
3216    #[doc = "\n Set to true (1) to generate a document outline.\n"]
3217    pub generate_document_outline: ::std::os::raw::c_int,
3218}
3219#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3220const _: () = {
3221    ["Size of _cef_pdf_print_settings_t"]
3222        [::std::mem::size_of::<_cef_pdf_print_settings_t>() - 168usize];
3223    ["Alignment of _cef_pdf_print_settings_t"]
3224        [::std::mem::align_of::<_cef_pdf_print_settings_t>() - 8usize];
3225    ["Offset of field: _cef_pdf_print_settings_t::size"]
3226        [::std::mem::offset_of!(_cef_pdf_print_settings_t, size) - 0usize];
3227    ["Offset of field: _cef_pdf_print_settings_t::landscape"]
3228        [::std::mem::offset_of!(_cef_pdf_print_settings_t, landscape) - 8usize];
3229    ["Offset of field: _cef_pdf_print_settings_t::print_background"]
3230        [::std::mem::offset_of!(_cef_pdf_print_settings_t, print_background) - 12usize];
3231    ["Offset of field: _cef_pdf_print_settings_t::scale"]
3232        [::std::mem::offset_of!(_cef_pdf_print_settings_t, scale) - 16usize];
3233    ["Offset of field: _cef_pdf_print_settings_t::paper_width"]
3234        [::std::mem::offset_of!(_cef_pdf_print_settings_t, paper_width) - 24usize];
3235    ["Offset of field: _cef_pdf_print_settings_t::paper_height"]
3236        [::std::mem::offset_of!(_cef_pdf_print_settings_t, paper_height) - 32usize];
3237    ["Offset of field: _cef_pdf_print_settings_t::prefer_css_page_size"]
3238        [::std::mem::offset_of!(_cef_pdf_print_settings_t, prefer_css_page_size) - 40usize];
3239    ["Offset of field: _cef_pdf_print_settings_t::margin_type"]
3240        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_type) - 44usize];
3241    ["Offset of field: _cef_pdf_print_settings_t::margin_top"]
3242        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_top) - 48usize];
3243    ["Offset of field: _cef_pdf_print_settings_t::margin_right"]
3244        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_right) - 56usize];
3245    ["Offset of field: _cef_pdf_print_settings_t::margin_bottom"]
3246        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_bottom) - 64usize];
3247    ["Offset of field: _cef_pdf_print_settings_t::margin_left"]
3248        [::std::mem::offset_of!(_cef_pdf_print_settings_t, margin_left) - 72usize];
3249    ["Offset of field: _cef_pdf_print_settings_t::page_ranges"]
3250        [::std::mem::offset_of!(_cef_pdf_print_settings_t, page_ranges) - 80usize];
3251    ["Offset of field: _cef_pdf_print_settings_t::display_header_footer"]
3252        [::std::mem::offset_of!(_cef_pdf_print_settings_t, display_header_footer) - 104usize];
3253    ["Offset of field: _cef_pdf_print_settings_t::header_template"]
3254        [::std::mem::offset_of!(_cef_pdf_print_settings_t, header_template) - 112usize];
3255    ["Offset of field: _cef_pdf_print_settings_t::footer_template"]
3256        [::std::mem::offset_of!(_cef_pdf_print_settings_t, footer_template) - 136usize];
3257    ["Offset of field: _cef_pdf_print_settings_t::generate_tagged_pdf"]
3258        [::std::mem::offset_of!(_cef_pdf_print_settings_t, generate_tagged_pdf) - 160usize];
3259    ["Offset of field: _cef_pdf_print_settings_t::generate_document_outline"]
3260        [::std::mem::offset_of!(_cef_pdf_print_settings_t, generate_document_outline) - 164usize];
3261};
3262#[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"]
3263pub type cef_pdf_print_settings_t = _cef_pdf_print_settings_t;
3264#[repr(u32)]
3265#[non_exhaustive]
3266#[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"]
3267#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3268pub enum cef_scale_factor_t {
3269    SCALE_FACTOR_NONE = 0,
3270    SCALE_FACTOR_100P = 1,
3271    SCALE_FACTOR_125P = 2,
3272    SCALE_FACTOR_133P = 3,
3273    SCALE_FACTOR_140P = 4,
3274    SCALE_FACTOR_150P = 5,
3275    SCALE_FACTOR_180P = 6,
3276    SCALE_FACTOR_200P = 7,
3277    SCALE_FACTOR_250P = 8,
3278    SCALE_FACTOR_300P = 9,
3279    SCALE_FACTOR_NUM_VALUES = 10,
3280}
3281impl cef_referrer_policy_t {
3282    pub const REFERRER_POLICY_DEFAULT: cef_referrer_policy_t =
3283        cef_referrer_policy_t::REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
3284}
3285#[repr(u32)]
3286#[non_exhaustive]
3287#[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"]
3288#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3289pub enum cef_referrer_policy_t {
3290    #[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"]
3291    REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 0,
3292    #[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"]
3293    REFERRER_POLICY_REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN = 1,
3294    #[doc = "\n Strip the referrer down to an origin when the origin of the referrer is\n different from the destination's origin.\n"]
3295    REFERRER_POLICY_ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN = 2,
3296    #[doc = "\n Never change the referrer.\n"]
3297    REFERRER_POLICY_NEVER_CLEAR_REFERRER = 3,
3298    #[doc = "\n Strip the referrer down to the origin regardless of the redirect location.\n"]
3299    REFERRER_POLICY_ORIGIN = 4,
3300    #[doc = "\n Clear the referrer when the request's referrer is cross-origin with the\n request's destination.\n"]
3301    REFERRER_POLICY_CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN = 5,
3302    #[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"]
3303    REFERRER_POLICY_ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE = 6,
3304    #[doc = "\n Always clear the referrer regardless of the request destination.\n"]
3305    REFERRER_POLICY_NO_REFERRER = 7,
3306    #[doc = " Always the last value in this enumeration."]
3307    REFERRER_POLICY_NUM_VALUES = 8,
3308}
3309#[repr(u32)]
3310#[non_exhaustive]
3311#[doc = "\n Return values for CefResponseFilter::Filter().\n"]
3312#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3313pub enum cef_response_filter_status_t {
3314    #[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"]
3315    RESPONSE_FILTER_NEED_MORE_DATA = 0,
3316    #[doc = "\n Some or all of the pre-filter data was read successfully and all available\n filtered output has been written.\n"]
3317    RESPONSE_FILTER_DONE = 1,
3318    #[doc = "\n An error occurred during filtering.\n"]
3319    RESPONSE_FILTER_ERROR = 2,
3320}
3321#[repr(u32)]
3322#[non_exhaustive]
3323#[doc = "\n Describes how to interpret the alpha component of a pixel.\n"]
3324#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3325pub enum cef_alpha_type_t {
3326    #[doc = "\n No transparency. The alpha component is ignored.\n"]
3327    CEF_ALPHA_TYPE_OPAQUE = 0,
3328    #[doc = "\n Transparency with pre-multiplied alpha component.\n"]
3329    CEF_ALPHA_TYPE_PREMULTIPLIED = 1,
3330    #[doc = "\n Transparency with post-multiplied alpha component.\n"]
3331    CEF_ALPHA_TYPE_POSTMULTIPLIED = 2,
3332}
3333#[repr(u32)]
3334#[non_exhaustive]
3335#[doc = "\n Text style types. Should be kepy in sync with gfx::TextStyle.\n"]
3336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3337pub enum cef_text_style_t {
3338    CEF_TEXT_STYLE_BOLD = 0,
3339    CEF_TEXT_STYLE_ITALIC = 1,
3340    CEF_TEXT_STYLE_STRIKE = 2,
3341    CEF_TEXT_STYLE_DIAGONAL_STRIKE = 3,
3342    CEF_TEXT_STYLE_UNDERLINE = 4,
3343    CEF_TEXT_STYLE_NUM_VALUES = 5,
3344}
3345#[repr(u32)]
3346#[non_exhaustive]
3347#[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"]
3348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3349pub enum cef_axis_alignment_t {
3350    #[doc = " Child views will be left/top-aligned."]
3351    CEF_AXIS_ALIGNMENT_START = 0,
3352    #[doc = " Child views will be center-aligned."]
3353    CEF_AXIS_ALIGNMENT_CENTER = 1,
3354    #[doc = " Child views will be right/bottom-aligned."]
3355    CEF_AXIS_ALIGNMENT_END = 2,
3356    #[doc = " Child views will be stretched to fit."]
3357    CEF_AXIS_ALIGNMENT_STRETCH = 3,
3358    #[doc = " Child views will be stretched to fit."]
3359    CEF_AXIS_ALIGNMENT_NUM_VALUES = 4,
3360}
3361#[doc = "\n Settings used when initializing a CefBoxLayout.\n"]
3362#[repr(C)]
3363#[derive(Debug, Copy, Clone)]
3364pub struct _cef_box_layout_settings_t {
3365    #[doc = "\n Size of this structure.\n"]
3366    pub size: usize,
3367    #[doc = "\n If true (1) the layout will be horizontal, otherwise the layout will be\n vertical.\n"]
3368    pub horizontal: ::std::os::raw::c_int,
3369    #[doc = "\n Adds additional horizontal space between the child view area and the host\n view border.\n"]
3370    pub inside_border_horizontal_spacing: ::std::os::raw::c_int,
3371    #[doc = "\n Adds additional vertical space between the child view area and the host\n view border.\n"]
3372    pub inside_border_vertical_spacing: ::std::os::raw::c_int,
3373    #[doc = "\n Adds additional space around the child view area.\n"]
3374    pub inside_border_insets: cef_insets_t,
3375    #[doc = "\n Adds additional space between child views.\n"]
3376    pub between_child_spacing: ::std::os::raw::c_int,
3377    #[doc = "\n Specifies where along the main axis the child views should be laid out.\n"]
3378    pub main_axis_alignment: cef_axis_alignment_t,
3379    #[doc = "\n Specifies where along the cross axis the child views should be laid out.\n"]
3380    pub cross_axis_alignment: cef_axis_alignment_t,
3381    #[doc = "\n Minimum cross axis size.\n"]
3382    pub minimum_cross_axis_size: ::std::os::raw::c_int,
3383    #[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"]
3384    pub default_flex: ::std::os::raw::c_int,
3385}
3386#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3387const _: () = {
3388    ["Size of _cef_box_layout_settings_t"]
3389        [::std::mem::size_of::<_cef_box_layout_settings_t>() - 56usize];
3390    ["Alignment of _cef_box_layout_settings_t"]
3391        [::std::mem::align_of::<_cef_box_layout_settings_t>() - 8usize];
3392    ["Offset of field: _cef_box_layout_settings_t::size"]
3393        [::std::mem::offset_of!(_cef_box_layout_settings_t, size) - 0usize];
3394    ["Offset of field: _cef_box_layout_settings_t::horizontal"]
3395        [::std::mem::offset_of!(_cef_box_layout_settings_t, horizontal) - 8usize];
3396    ["Offset of field: _cef_box_layout_settings_t::inside_border_horizontal_spacing"][::std::mem::offset_of!(
3397        _cef_box_layout_settings_t,
3398        inside_border_horizontal_spacing
3399    ) - 12usize];
3400    ["Offset of field: _cef_box_layout_settings_t::inside_border_vertical_spacing"][::std::mem::offset_of!(
3401        _cef_box_layout_settings_t,
3402        inside_border_vertical_spacing
3403    ) - 16usize];
3404    ["Offset of field: _cef_box_layout_settings_t::inside_border_insets"]
3405        [::std::mem::offset_of!(_cef_box_layout_settings_t, inside_border_insets) - 20usize];
3406    ["Offset of field: _cef_box_layout_settings_t::between_child_spacing"]
3407        [::std::mem::offset_of!(_cef_box_layout_settings_t, between_child_spacing) - 36usize];
3408    ["Offset of field: _cef_box_layout_settings_t::main_axis_alignment"]
3409        [::std::mem::offset_of!(_cef_box_layout_settings_t, main_axis_alignment) - 40usize];
3410    ["Offset of field: _cef_box_layout_settings_t::cross_axis_alignment"]
3411        [::std::mem::offset_of!(_cef_box_layout_settings_t, cross_axis_alignment) - 44usize];
3412    ["Offset of field: _cef_box_layout_settings_t::minimum_cross_axis_size"]
3413        [::std::mem::offset_of!(_cef_box_layout_settings_t, minimum_cross_axis_size) - 48usize];
3414    ["Offset of field: _cef_box_layout_settings_t::default_flex"]
3415        [::std::mem::offset_of!(_cef_box_layout_settings_t, default_flex) - 52usize];
3416};
3417#[doc = "\n Settings used when initializing a CefBoxLayout.\n"]
3418pub type cef_box_layout_settings_t = _cef_box_layout_settings_t;
3419#[repr(u32)]
3420#[non_exhaustive]
3421#[doc = "\n Specifies the button display state.\n"]
3422#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3423pub enum cef_button_state_t {
3424    CEF_BUTTON_STATE_NORMAL = 0,
3425    CEF_BUTTON_STATE_HOVERED = 1,
3426    CEF_BUTTON_STATE_PRESSED = 2,
3427    CEF_BUTTON_STATE_DISABLED = 3,
3428    CEF_BUTTON_STATE_NUM_VALUES = 4,
3429}
3430#[repr(u32)]
3431#[non_exhaustive]
3432#[doc = "\n Specifies the horizontal text alignment mode.\n"]
3433#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3434pub enum cef_horizontal_alignment_t {
3435    #[doc = "\n Align the text's left edge with that of its display area.\n"]
3436    CEF_HORIZONTAL_ALIGNMENT_LEFT = 0,
3437    #[doc = "\n Align the text's center with that of its display area.\n"]
3438    CEF_HORIZONTAL_ALIGNMENT_CENTER = 1,
3439    #[doc = "\n Align the text's right edge with that of its display area.\n"]
3440    CEF_HORIZONTAL_ALIGNMENT_RIGHT = 2,
3441}
3442#[repr(u32)]
3443#[non_exhaustive]
3444#[doc = "\n Specifies how a menu will be anchored for non-RTL languages. The opposite\n position will be used for RTL languages.\n"]
3445#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3446pub enum cef_menu_anchor_position_t {
3447    CEF_MENU_ANCHOR_TOPLEFT = 0,
3448    CEF_MENU_ANCHOR_TOPRIGHT = 1,
3449    CEF_MENU_ANCHOR_BOTTOMCENTER = 2,
3450    CEF_MENU_ANCHOR_NUM_VALUES = 3,
3451}
3452#[repr(u32)]
3453#[non_exhaustive]
3454#[doc = "\n Supported color types for menu items.\n"]
3455#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3456pub enum cef_menu_color_type_t {
3457    CEF_MENU_COLOR_TEXT = 0,
3458    CEF_MENU_COLOR_TEXT_HOVERED = 1,
3459    CEF_MENU_COLOR_TEXT_ACCELERATOR = 2,
3460    CEF_MENU_COLOR_TEXT_ACCELERATOR_HOVERED = 3,
3461    CEF_MENU_COLOR_BACKGROUND = 4,
3462    CEF_MENU_COLOR_BACKGROUND_HOVERED = 5,
3463    CEF_MENU_COLOR_NUM_VALUES = 6,
3464}
3465#[repr(u32)]
3466#[non_exhaustive]
3467#[doc = " Supported SSL version values. See net/ssl/ssl_connection_status_flags.h\n for more information."]
3468#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3469pub enum cef_ssl_version_t {
3470    #[doc = " Unknown SSL version."]
3471    SSL_CONNECTION_VERSION_UNKNOWN = 0,
3472    #[doc = " Unknown SSL version."]
3473    SSL_CONNECTION_VERSION_SSL2 = 1,
3474    #[doc = " Unknown SSL version."]
3475    SSL_CONNECTION_VERSION_SSL3 = 2,
3476    #[doc = " Unknown SSL version."]
3477    SSL_CONNECTION_VERSION_TLS1 = 3,
3478    #[doc = " Unknown SSL version."]
3479    SSL_CONNECTION_VERSION_TLS1_1 = 4,
3480    #[doc = " Unknown SSL version."]
3481    SSL_CONNECTION_VERSION_TLS1_2 = 5,
3482    #[doc = " Unknown SSL version."]
3483    SSL_CONNECTION_VERSION_TLS1_3 = 6,
3484    #[doc = " Unknown SSL version."]
3485    SSL_CONNECTION_VERSION_QUIC = 7,
3486    #[doc = " Unknown SSL version."]
3487    SSL_CONNECTION_VERSION_NUM_VALUES = 8,
3488}
3489#[repr(u32)]
3490#[non_exhaustive]
3491#[doc = " Supported SSL content status flags. See content/public/common/ssl_status.h\n for more information."]
3492#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3493pub enum cef_ssl_content_status_t {
3494    SSL_CONTENT_NORMAL_CONTENT = 0,
3495    SSL_CONTENT_DISPLAYED_INSECURE_CONTENT = 1,
3496    SSL_CONTENT_RAN_INSECURE_CONTENT = 2,
3497}
3498#[repr(u32)]
3499#[non_exhaustive]
3500#[doc = " Configuration options for registering a custom scheme.\n These values are used when calling AddCustomScheme."]
3501#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3502pub enum cef_scheme_options_t {
3503    CEF_SCHEME_OPTION_NONE = 0,
3504    #[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"]
3505    CEF_SCHEME_OPTION_STANDARD = 1,
3506    #[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"]
3507    CEF_SCHEME_OPTION_LOCAL = 2,
3508    #[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"]
3509    CEF_SCHEME_OPTION_DISPLAY_ISOLATED = 4,
3510    #[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"]
3511    CEF_SCHEME_OPTION_SECURE = 8,
3512    #[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"]
3513    CEF_SCHEME_OPTION_CORS_ENABLED = 16,
3514    #[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"]
3515    CEF_SCHEME_OPTION_CSP_BYPASSING = 32,
3516    #[doc = "\n If CEF_SCHEME_OPTION_FETCH_ENABLED is set the scheme can perform Fetch API\n requests.\n"]
3517    CEF_SCHEME_OPTION_FETCH_ENABLED = 64,
3518}
3519#[doc = "\n Structure representing a range.\n"]
3520#[repr(C)]
3521#[derive(Debug, Copy, Clone)]
3522pub struct _cef_range_t {
3523    pub from: u32,
3524    pub to: u32,
3525}
3526#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3527const _: () = {
3528    ["Size of _cef_range_t"][::std::mem::size_of::<_cef_range_t>() - 8usize];
3529    ["Alignment of _cef_range_t"][::std::mem::align_of::<_cef_range_t>() - 4usize];
3530    ["Offset of field: _cef_range_t::from"][::std::mem::offset_of!(_cef_range_t, from) - 0usize];
3531    ["Offset of field: _cef_range_t::to"][::std::mem::offset_of!(_cef_range_t, to) - 4usize];
3532};
3533#[doc = "\n Structure representing a range.\n"]
3534pub type cef_range_t = _cef_range_t;
3535#[repr(u32)]
3536#[non_exhaustive]
3537#[doc = "\n Composition underline style.\n"]
3538#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3539pub enum cef_composition_underline_style_t {
3540    CEF_CUS_SOLID = 0,
3541    CEF_CUS_DOT = 1,
3542    CEF_CUS_DASH = 2,
3543    CEF_CUS_NONE = 3,
3544    CEF_CUS_NUM_VALUES = 4,
3545}
3546#[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"]
3547#[repr(C)]
3548#[derive(Debug, Copy, Clone)]
3549pub struct _cef_composition_underline_t {
3550    #[doc = "\n Size of this structure.\n"]
3551    pub size: usize,
3552    #[doc = "\n Underline character range.\n"]
3553    pub range: cef_range_t,
3554    #[doc = "\n Text color.\n"]
3555    pub color: cef_color_t,
3556    #[doc = "\n Background color.\n"]
3557    pub background_color: cef_color_t,
3558    #[doc = "\n Set to true (1) for thick underline.\n"]
3559    pub thick: ::std::os::raw::c_int,
3560    #[doc = "\n Style.\n"]
3561    pub style: cef_composition_underline_style_t,
3562}
3563#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3564const _: () = {
3565    ["Size of _cef_composition_underline_t"]
3566        [::std::mem::size_of::<_cef_composition_underline_t>() - 32usize];
3567    ["Alignment of _cef_composition_underline_t"]
3568        [::std::mem::align_of::<_cef_composition_underline_t>() - 8usize];
3569    ["Offset of field: _cef_composition_underline_t::size"]
3570        [::std::mem::offset_of!(_cef_composition_underline_t, size) - 0usize];
3571    ["Offset of field: _cef_composition_underline_t::range"]
3572        [::std::mem::offset_of!(_cef_composition_underline_t, range) - 8usize];
3573    ["Offset of field: _cef_composition_underline_t::color"]
3574        [::std::mem::offset_of!(_cef_composition_underline_t, color) - 16usize];
3575    ["Offset of field: _cef_composition_underline_t::background_color"]
3576        [::std::mem::offset_of!(_cef_composition_underline_t, background_color) - 20usize];
3577    ["Offset of field: _cef_composition_underline_t::thick"]
3578        [::std::mem::offset_of!(_cef_composition_underline_t, thick) - 24usize];
3579    ["Offset of field: _cef_composition_underline_t::style"]
3580        [::std::mem::offset_of!(_cef_composition_underline_t, style) - 28usize];
3581};
3582#[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"]
3583pub type cef_composition_underline_t = _cef_composition_underline_t;
3584#[repr(u32)]
3585#[non_exhaustive]
3586#[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"]
3587#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3588pub enum cef_channel_layout_t {
3589    CEF_CHANNEL_LAYOUT_NONE = 0,
3590    CEF_CHANNEL_LAYOUT_UNSUPPORTED = 1,
3591    #[doc = " Front C"]
3592    CEF_CHANNEL_LAYOUT_MONO = 2,
3593    #[doc = " Front L, Front R"]
3594    CEF_CHANNEL_LAYOUT_STEREO = 3,
3595    #[doc = " Front L, Front R, Back C"]
3596    CEF_CHANNEL_LAYOUT_2_1 = 4,
3597    #[doc = " Front L, Front R, Front C"]
3598    CEF_CHANNEL_LAYOUT_SURROUND = 5,
3599    #[doc = " Front L, Front R, Front C, Back C"]
3600    CEF_CHANNEL_LAYOUT_4_0 = 6,
3601    #[doc = " Front L, Front R, Side L, Side R"]
3602    CEF_CHANNEL_LAYOUT_2_2 = 7,
3603    #[doc = " Front L, Front R, Back L, Back R"]
3604    CEF_CHANNEL_LAYOUT_QUAD = 8,
3605    #[doc = " Front L, Front R, Front C, Side L, Side R"]
3606    CEF_CHANNEL_LAYOUT_5_0 = 9,
3607    #[doc = " Front L, Front R, Front C, LFE, Side L, Side R"]
3608    CEF_CHANNEL_LAYOUT_5_1 = 10,
3609    #[doc = " Front L, Front R, Front C, Back L, Back R"]
3610    CEF_CHANNEL_LAYOUT_5_0_BACK = 11,
3611    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R"]
3612    CEF_CHANNEL_LAYOUT_5_1_BACK = 12,
3613    #[doc = " Front L, Front R, Front C, Back L, Back R, Side L, Side R"]
3614    CEF_CHANNEL_LAYOUT_7_0 = 13,
3615    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Side L, Side R"]
3616    CEF_CHANNEL_LAYOUT_7_1 = 14,
3617    #[doc = " Front L, Front R, Front C, LFE, Front LofC, Front RofC, Side L, Side R"]
3618    CEF_CHANNEL_LAYOUT_7_1_WIDE = 15,
3619    #[doc = " Front L, Front R"]
3620    CEF_CHANNEL_LAYOUT_STEREO_DOWNMIX = 16,
3621    #[doc = " Front L, Front R, LFE"]
3622    CEF_CHANNEL_LAYOUT_2POINT1 = 17,
3623    #[doc = " Front L, Front R, Front C, LFE"]
3624    CEF_CHANNEL_LAYOUT_3_1 = 18,
3625    #[doc = " Front L, Front R, Front C, LFE, Back C"]
3626    CEF_CHANNEL_LAYOUT_4_1 = 19,
3627    #[doc = " Front L, Front R, Front C, Back C, Side L, Side R"]
3628    CEF_CHANNEL_LAYOUT_6_0 = 20,
3629    #[doc = " Front L, Front R, Front LofC, Front RofC, Side L, Side R"]
3630    CEF_CHANNEL_LAYOUT_6_0_FRONT = 21,
3631    #[doc = " Front L, Front R, Front C, Back L, Back R, Back C"]
3632    CEF_CHANNEL_LAYOUT_HEXAGONAL = 22,
3633    #[doc = " Front L, Front R, Front C, LFE, Back C, Side L, Side R"]
3634    CEF_CHANNEL_LAYOUT_6_1 = 23,
3635    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Back C"]
3636    CEF_CHANNEL_LAYOUT_6_1_BACK = 24,
3637    #[doc = " Front L, Front R, LFE, Front LofC, Front RofC, Side L, Side R"]
3638    CEF_CHANNEL_LAYOUT_6_1_FRONT = 25,
3639    #[doc = " Front L, Front R, Front C, Front LofC, Front RofC, Side L, Side R"]
3640    CEF_CHANNEL_LAYOUT_7_0_FRONT = 26,
3641    #[doc = " Front L, Front R, Front C, LFE, Back L, Back R, Front LofC, Front RofC"]
3642    CEF_CHANNEL_LAYOUT_7_1_WIDE_BACK = 27,
3643    #[doc = " Front L, Front R, Front C, Back L, Back R, Back C, Side L, Side R"]
3644    CEF_CHANNEL_LAYOUT_OCTAGONAL = 28,
3645    #[doc = " Channels are not explicitly mapped to speakers."]
3646    CEF_CHANNEL_LAYOUT_DISCRETE = 29,
3647    #[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."]
3648    CEF_CHANNEL_LAYOUT_STEREO_AND_KEYBOARD_MIC = 30,
3649    #[doc = " Front L, Front R, LFE, Side L, Side R"]
3650    CEF_CHANNEL_LAYOUT_4_1_QUAD_SIDE = 31,
3651    #[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)."]
3652    CEF_CHANNEL_LAYOUT_BITSTREAM = 32,
3653    #[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"]
3654    CEF_CHANNEL_LAYOUT_5_1_4_DOWNMIX = 33,
3655    #[doc = " Front C, LFE"]
3656    CEF_CHANNEL_LAYOUT_1_1 = 34,
3657    #[doc = " Front L, Front R, LFE, Back C"]
3658    CEF_CHANNEL_LAYOUT_3_1_BACK = 35,
3659    #[doc = " Front L, Front R, LFE, Back C"]
3660    CEF_CHANNEL_NUM_VALUES = 36,
3661}
3662#[doc = "\n Structure representing the audio parameters for setting up the audio\n handler.\n"]
3663#[repr(C)]
3664#[derive(Debug, Copy, Clone)]
3665pub struct _cef_audio_parameters_t {
3666    #[doc = "\n Size of this structure.\n"]
3667    pub size: usize,
3668    #[doc = "\n Layout of the audio channels\n"]
3669    pub channel_layout: cef_channel_layout_t,
3670    #[doc = "\n Sample rate"]
3671    pub sample_rate: ::std::os::raw::c_int,
3672    #[doc = "\n Number of frames per buffer\n"]
3673    pub frames_per_buffer: ::std::os::raw::c_int,
3674}
3675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3676const _: () = {
3677    ["Size of _cef_audio_parameters_t"][::std::mem::size_of::<_cef_audio_parameters_t>() - 24usize];
3678    ["Alignment of _cef_audio_parameters_t"]
3679        [::std::mem::align_of::<_cef_audio_parameters_t>() - 8usize];
3680    ["Offset of field: _cef_audio_parameters_t::size"]
3681        [::std::mem::offset_of!(_cef_audio_parameters_t, size) - 0usize];
3682    ["Offset of field: _cef_audio_parameters_t::channel_layout"]
3683        [::std::mem::offset_of!(_cef_audio_parameters_t, channel_layout) - 8usize];
3684    ["Offset of field: _cef_audio_parameters_t::sample_rate"]
3685        [::std::mem::offset_of!(_cef_audio_parameters_t, sample_rate) - 12usize];
3686    ["Offset of field: _cef_audio_parameters_t::frames_per_buffer"]
3687        [::std::mem::offset_of!(_cef_audio_parameters_t, frames_per_buffer) - 16usize];
3688};
3689#[doc = "\n Structure representing the audio parameters for setting up the audio\n handler.\n"]
3690pub type cef_audio_parameters_t = _cef_audio_parameters_t;
3691#[repr(u32)]
3692#[non_exhaustive]
3693#[doc = "\n Result codes for CefMediaRouter::CreateRoute. Should be kept in sync with\n Chromium's media_router::mojom::RouteRequestResultCode type.\n"]
3694#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3695pub enum cef_media_route_create_result_t {
3696    CEF_MRCR_UNKNOWN_ERROR = 0,
3697    CEF_MRCR_OK = 1,
3698    CEF_MRCR_TIMED_OUT = 2,
3699    CEF_MRCR_ROUTE_NOT_FOUND = 3,
3700    CEF_MRCR_SINK_NOT_FOUND = 4,
3701    CEF_MRCR_INVALID_ORIGIN = 5,
3702    CEF_MRCR_OFF_THE_RECORD_MISMATCH_DEPRECATED = 6,
3703    CEF_MRCR_NO_SUPPORTED_PROVIDER = 7,
3704    CEF_MRCR_CANCELLED = 8,
3705    CEF_MRCR_ROUTE_ALREADY_EXISTS = 9,
3706    CEF_MRCR_DESKTOP_PICKER_FAILED = 10,
3707    CEF_MRCR_ROUTE_ALREADY_TERMINATED = 11,
3708    CEF_MRCR_REDUNDANT_REQUEST = 12,
3709    CEF_MRCR_USER_NOT_ALLOWED = 13,
3710    CEF_MRCR_NOTIFICATION_DISABLED = 14,
3711    CEF_MRCR_NUM_VALUES = 15,
3712}
3713#[repr(i32)]
3714#[non_exhaustive]
3715#[doc = "\n Connection state for a MediaRoute object. Should be kept in sync with\n Chromium's blink::mojom::PresentationConnectionState type.\n"]
3716#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3717pub enum cef_media_route_connection_state_t {
3718    CEF_MRCS_UNKNOWN = -1,
3719    CEF_MRCS_CONNECTING = 0,
3720    CEF_MRCS_CONNECTED = 1,
3721    CEF_MRCS_CLOSED = 2,
3722    CEF_MRCS_TERMINATED = 3,
3723    CEF_MRCS_NUM_VALUES = 4,
3724}
3725#[repr(u32)]
3726#[non_exhaustive]
3727#[doc = "\n Icon types for a MediaSink object. Should be kept in sync with Chromium's\n media_router::SinkIconType type.\n"]
3728#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3729pub enum cef_media_sink_icon_type_t {
3730    CEF_MSIT_CAST = 0,
3731    CEF_MSIT_CAST_AUDIO_GROUP = 1,
3732    CEF_MSIT_CAST_AUDIO = 2,
3733    CEF_MSIT_MEETING = 3,
3734    CEF_MSIT_HANGOUT = 4,
3735    CEF_MSIT_EDUCATION = 5,
3736    CEF_MSIT_WIRED_DISPLAY = 6,
3737    CEF_MSIT_GENERIC = 7,
3738    CEF_MSIT_NUM_VALUES = 8,
3739}
3740#[doc = "\n Device information for a MediaSink object.\n"]
3741#[repr(C)]
3742#[derive(Debug, Copy, Clone)]
3743pub struct _cef_media_sink_device_info_t {
3744    #[doc = "\n Size of this structure.\n"]
3745    pub size: usize,
3746    pub ip_address: cef_string_t,
3747    pub port: ::std::os::raw::c_int,
3748    pub model_name: cef_string_t,
3749}
3750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3751const _: () = {
3752    ["Size of _cef_media_sink_device_info_t"]
3753        [::std::mem::size_of::<_cef_media_sink_device_info_t>() - 64usize];
3754    ["Alignment of _cef_media_sink_device_info_t"]
3755        [::std::mem::align_of::<_cef_media_sink_device_info_t>() - 8usize];
3756    ["Offset of field: _cef_media_sink_device_info_t::size"]
3757        [::std::mem::offset_of!(_cef_media_sink_device_info_t, size) - 0usize];
3758    ["Offset of field: _cef_media_sink_device_info_t::ip_address"]
3759        [::std::mem::offset_of!(_cef_media_sink_device_info_t, ip_address) - 8usize];
3760    ["Offset of field: _cef_media_sink_device_info_t::port"]
3761        [::std::mem::offset_of!(_cef_media_sink_device_info_t, port) - 32usize];
3762    ["Offset of field: _cef_media_sink_device_info_t::model_name"]
3763        [::std::mem::offset_of!(_cef_media_sink_device_info_t, model_name) - 40usize];
3764};
3765#[doc = "\n Device information for a MediaSink object.\n"]
3766pub type cef_media_sink_device_info_t = _cef_media_sink_device_info_t;
3767#[repr(u32)]
3768#[non_exhaustive]
3769#[doc = "\n Represents commands available to TextField. Should be kept in sync with\n Chromium's views::TextField::MenuCommands type.\n"]
3770#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3771pub enum cef_text_field_commands_t {
3772    CEF_TFC_UNKNOWN = 0,
3773    CEF_TFC_CUT = 1,
3774    CEF_TFC_COPY = 2,
3775    CEF_TFC_PASTE = 3,
3776    CEF_TFC_SELECT_ALL = 4,
3777    CEF_TFC_SELECT_WORD = 5,
3778    CEF_TFC_UNDO = 6,
3779    CEF_TFC_DELETE = 7,
3780    CEF_TFC_NUM_VALUES = 8,
3781}
3782#[repr(u32)]
3783#[non_exhaustive]
3784#[doc = "\n Chrome toolbar types.\n"]
3785#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3786pub enum cef_chrome_toolbar_type_t {
3787    CEF_CTT_UNKNOWN = 0,
3788    CEF_CTT_NONE = 1,
3789    CEF_CTT_NORMAL = 2,
3790    CEF_CTT_LOCATION = 3,
3791    CEF_CTT_NUM_VALUES = 4,
3792}
3793#[repr(u32)]
3794#[non_exhaustive]
3795#[doc = "\n Chrome page action icon types. Should be kept in sync with Chromium's\n PageActionIconType type.\n"]
3796#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3797pub enum cef_chrome_page_action_icon_type_t {
3798    CEF_CPAIT_BOOKMARK_STAR = 0,
3799    CEF_CPAIT_CLICK_TO_CALL = 1,
3800    CEF_CPAIT_COOKIE_CONTROLS = 2,
3801    CEF_CPAIT_FILE_SYSTEM_ACCESS = 3,
3802    CEF_CPAIT_FIND = 4,
3803    CEF_CPAIT_MEMORY_SAVER = 5,
3804    CEF_CPAIT_INTENT_PICKER = 6,
3805    CEF_CPAIT_LOCAL_CARD_MIGRATION = 7,
3806    CEF_CPAIT_MANAGE_PASSWORDS = 8,
3807    CEF_CPAIT_PAYMENTS_OFFER_NOTIFICATION = 9,
3808    CEF_CPAIT_PRICE_TRACKING = 10,
3809    CEF_CPAIT_PWA_INSTALL = 11,
3810    CEF_CPAIT_QR_CODE_GENERATOR_DEPRECATED = 12,
3811    CEF_CPAIT_READER_MODE_DEPRECATED = 13,
3812    CEF_CPAIT_SAVE_AUTOFILL_ADDRESS = 14,
3813    CEF_CPAIT_SAVE_CARD = 15,
3814    CEF_CPAIT_SEND_TAB_TO_SELF_DEPRECATED = 16,
3815    CEF_CPAIT_SHARING_HUB = 17,
3816    CEF_CPAIT_SIDE_SEARCH_DEPRECATED = 18,
3817    CEF_CPAIT_SMS_REMOTE_FETCHER = 19,
3818    CEF_CPAIT_TRANSLATE = 20,
3819    CEF_CPAIT_VIRTUAL_CARD_ENROLL = 21,
3820    CEF_CPAIT_VIRTUAL_CARD_INFORMATION = 22,
3821    CEF_CPAIT_ZOOM = 23,
3822    CEF_CPAIT_SAVE_IBAN = 24,
3823    CEF_CPAIT_MANDATORY_REAUTH = 25,
3824    CEF_CPAIT_PRICE_INSIGHTS = 26,
3825    CEF_CPAIT_READ_ANYTHING_DEPRECATED = 27,
3826    CEF_CPAIT_PRODUCT_SPECIFICATIONS = 28,
3827    CEF_CPAIT_LENS_OVERLAY = 29,
3828    CEF_CPAIT_DISCOUNTS = 30,
3829    CEF_CPAIT_OPTIMIZATION_GUIDE = 31,
3830    CEF_CPAIT_COLLABORATION_MESSAGING = 32,
3831    CEF_CPAIT_CHANGE_PASSWORD = 33,
3832    CEF_CPAIT_NUM_VALUES = 34,
3833}
3834#[repr(u32)]
3835#[non_exhaustive]
3836#[doc = "\n Chrome toolbar button types. Should be kept in sync with CEF's internal\n ToolbarButtonType type.\n"]
3837#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3838pub enum cef_chrome_toolbar_button_type_t {
3839    CEF_CTBT_CAST = 0,
3840    CEF_CTBT_DOWNLOAD = 1,
3841    CEF_CTBT_SEND_TAB_TO_SELF = 2,
3842    CEF_CTBT_SIDE_PANEL = 3,
3843    CEF_CTBT_NUM_VALUES = 4,
3844}
3845#[repr(u32)]
3846#[non_exhaustive]
3847#[doc = "\n Docking modes supported by CefWindow::AddOverlay.\n"]
3848#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3849pub enum cef_docking_mode_t {
3850    CEF_DOCKING_MODE_TOP_LEFT = 0,
3851    CEF_DOCKING_MODE_TOP_RIGHT = 1,
3852    CEF_DOCKING_MODE_BOTTOM_LEFT = 2,
3853    CEF_DOCKING_MODE_BOTTOM_RIGHT = 3,
3854    CEF_DOCKING_MODE_CUSTOM = 4,
3855    CEF_DOCKING_MODE_NUM_VALUES = 5,
3856}
3857#[repr(u32)]
3858#[non_exhaustive]
3859#[doc = "\n Show states supported by CefWindowDelegate::GetInitialShowState.\n"]
3860#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3861pub enum cef_show_state_t {
3862    CEF_SHOW_STATE_NORMAL = 0,
3863    CEF_SHOW_STATE_MINIMIZED = 1,
3864    CEF_SHOW_STATE_MAXIMIZED = 2,
3865    CEF_SHOW_STATE_FULLSCREEN = 3,
3866    CEF_SHOW_STATE_HIDDEN = 4,
3867    CEF_SHOW_STATE_NUM_VALUES = 5,
3868}
3869#[repr(u32)]
3870#[non_exhaustive]
3871#[doc = "\n Values indicating what state of the touch handle is set.\n"]
3872#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3873pub enum cef_touch_handle_state_flags_t {
3874    CEF_THS_FLAG_NONE = 0,
3875    CEF_THS_FLAG_ENABLED = 1,
3876    CEF_THS_FLAG_ORIENTATION = 2,
3877    CEF_THS_FLAG_ORIGIN = 4,
3878    CEF_THS_FLAG_ALPHA = 8,
3879}
3880#[repr(C)]
3881#[derive(Debug, Copy, Clone)]
3882pub struct _cef_touch_handle_state_t {
3883    #[doc = "\n Size of this structure.\n"]
3884    pub size: usize,
3885    #[doc = "\n Touch handle id. Increments for each new touch handle.\n"]
3886    pub touch_handle_id: ::std::os::raw::c_int,
3887    #[doc = "\n Combination of cef_touch_handle_state_flags_t values indicating what state\n is set.\n"]
3888    pub flags: u32,
3889    #[doc = "\n Enabled state. Only set if |flags| contains CEF_THS_FLAG_ENABLED.\n"]
3890    pub enabled: ::std::os::raw::c_int,
3891    #[doc = "\n Orientation state. Only set if |flags| contains CEF_THS_FLAG_ORIENTATION.\n"]
3892    pub orientation: cef_horizontal_alignment_t,
3893    pub mirror_vertical: ::std::os::raw::c_int,
3894    pub mirror_horizontal: ::std::os::raw::c_int,
3895    #[doc = "\n Origin state. Only set if |flags| contains CEF_THS_FLAG_ORIGIN.\n"]
3896    pub origin: cef_point_t,
3897    #[doc = "\n Alpha state. Only set if |flags| contains CEF_THS_FLAG_ALPHA.\n"]
3898    pub alpha: f32,
3899}
3900#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3901const _: () = {
3902    ["Size of _cef_touch_handle_state_t"]
3903        [::std::mem::size_of::<_cef_touch_handle_state_t>() - 48usize];
3904    ["Alignment of _cef_touch_handle_state_t"]
3905        [::std::mem::align_of::<_cef_touch_handle_state_t>() - 8usize];
3906    ["Offset of field: _cef_touch_handle_state_t::size"]
3907        [::std::mem::offset_of!(_cef_touch_handle_state_t, size) - 0usize];
3908    ["Offset of field: _cef_touch_handle_state_t::touch_handle_id"]
3909        [::std::mem::offset_of!(_cef_touch_handle_state_t, touch_handle_id) - 8usize];
3910    ["Offset of field: _cef_touch_handle_state_t::flags"]
3911        [::std::mem::offset_of!(_cef_touch_handle_state_t, flags) - 12usize];
3912    ["Offset of field: _cef_touch_handle_state_t::enabled"]
3913        [::std::mem::offset_of!(_cef_touch_handle_state_t, enabled) - 16usize];
3914    ["Offset of field: _cef_touch_handle_state_t::orientation"]
3915        [::std::mem::offset_of!(_cef_touch_handle_state_t, orientation) - 20usize];
3916    ["Offset of field: _cef_touch_handle_state_t::mirror_vertical"]
3917        [::std::mem::offset_of!(_cef_touch_handle_state_t, mirror_vertical) - 24usize];
3918    ["Offset of field: _cef_touch_handle_state_t::mirror_horizontal"]
3919        [::std::mem::offset_of!(_cef_touch_handle_state_t, mirror_horizontal) - 28usize];
3920    ["Offset of field: _cef_touch_handle_state_t::origin"]
3921        [::std::mem::offset_of!(_cef_touch_handle_state_t, origin) - 32usize];
3922    ["Offset of field: _cef_touch_handle_state_t::alpha"]
3923        [::std::mem::offset_of!(_cef_touch_handle_state_t, alpha) - 40usize];
3924};
3925pub type cef_touch_handle_state_t = _cef_touch_handle_state_t;
3926#[repr(u32)]
3927#[non_exhaustive]
3928#[doc = "\n Media access permissions used by OnRequestMediaAccessPermission.\n"]
3929#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3930pub enum cef_media_access_permission_types_t {
3931    #[doc = "\n No permission.\n"]
3932    CEF_MEDIA_PERMISSION_NONE = 0,
3933    #[doc = "\n Device audio capture permission.\n"]
3934    CEF_MEDIA_PERMISSION_DEVICE_AUDIO_CAPTURE = 1,
3935    #[doc = "\n Device video capture permission.\n"]
3936    CEF_MEDIA_PERMISSION_DEVICE_VIDEO_CAPTURE = 2,
3937    #[doc = "\n Desktop audio capture permission.\n"]
3938    CEF_MEDIA_PERMISSION_DESKTOP_AUDIO_CAPTURE = 4,
3939    #[doc = "\n Desktop video capture permission.\n"]
3940    CEF_MEDIA_PERMISSION_DESKTOP_VIDEO_CAPTURE = 8,
3941}
3942#[repr(u32)]
3943#[non_exhaustive]
3944#[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"]
3945#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3946pub enum cef_permission_request_types_t {
3947    CEF_PERMISSION_TYPE_NONE = 0,
3948    CEF_PERMISSION_TYPE_AR_SESSION = 1,
3949    CEF_PERMISSION_TYPE_CAMERA_PAN_TILT_ZOOM = 2,
3950    CEF_PERMISSION_TYPE_CAMERA_STREAM = 4,
3951    CEF_PERMISSION_TYPE_CAPTURED_SURFACE_CONTROL = 8,
3952    CEF_PERMISSION_TYPE_CLIPBOARD = 16,
3953    CEF_PERMISSION_TYPE_TOP_LEVEL_STORAGE_ACCESS = 32,
3954    CEF_PERMISSION_TYPE_DISK_QUOTA = 64,
3955    CEF_PERMISSION_TYPE_LOCAL_FONTS = 128,
3956    CEF_PERMISSION_TYPE_GEOLOCATION = 256,
3957    CEF_PERMISSION_TYPE_HAND_TRACKING = 512,
3958    CEF_PERMISSION_TYPE_IDENTITY_PROVIDER = 1024,
3959    CEF_PERMISSION_TYPE_IDLE_DETECTION = 2048,
3960    CEF_PERMISSION_TYPE_MIC_STREAM = 4096,
3961    CEF_PERMISSION_TYPE_MIDI_SYSEX = 8192,
3962    CEF_PERMISSION_TYPE_MULTIPLE_DOWNLOADS = 16384,
3963    CEF_PERMISSION_TYPE_NOTIFICATIONS = 32768,
3964    CEF_PERMISSION_TYPE_KEYBOARD_LOCK = 65536,
3965    CEF_PERMISSION_TYPE_POINTER_LOCK = 131072,
3966    CEF_PERMISSION_TYPE_PROTECTED_MEDIA_IDENTIFIER = 262144,
3967    CEF_PERMISSION_TYPE_REGISTER_PROTOCOL_HANDLER = 524288,
3968    CEF_PERMISSION_TYPE_STORAGE_ACCESS = 1048576,
3969    CEF_PERMISSION_TYPE_VR_SESSION = 2097152,
3970    CEF_PERMISSION_TYPE_WEB_APP_INSTALLATION = 4194304,
3971    CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT = 8388608,
3972    CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS = 16777216,
3973}
3974#[repr(u32)]
3975#[non_exhaustive]
3976#[doc = "\n Permission request results.\n"]
3977#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3978pub enum cef_permission_request_result_t {
3979    #[doc = "\n Accept the permission request as an explicit user action.\n"]
3980    CEF_PERMISSION_RESULT_ACCEPT = 0,
3981    #[doc = "\n Deny the permission request as an explicit user action.\n"]
3982    CEF_PERMISSION_RESULT_DENY = 1,
3983    #[doc = "\n Dismiss the permission request as an explicit user action.\n"]
3984    CEF_PERMISSION_RESULT_DISMISS = 2,
3985    #[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"]
3986    CEF_PERMISSION_RESULT_IGNORE = 3,
3987    #[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"]
3988    CEF_PERMISSION_RESULT_NUM_VALUES = 4,
3989}
3990#[repr(u32)]
3991#[non_exhaustive]
3992#[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"]
3993#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3994pub enum cef_test_cert_type_t {
3995    #[doc = " Valid certificate using the IP (127.0.0.1). Loads the \"ok_cert.pem\" file."]
3996    CEF_TEST_CERT_OK_IP = 0,
3997    #[doc = " Valid certificate using the domain (\"localhost\"). Loads the\n \"localhost_cert.pem\" file."]
3998    CEF_TEST_CERT_OK_DOMAIN = 1,
3999    #[doc = " Expired certificate. Loads the \"expired_cert.pem\" file."]
4000    CEF_TEST_CERT_EXPIRED = 2,
4001    #[doc = " Expired certificate. Loads the \"expired_cert.pem\" file."]
4002    CEF_TEST_CERT_NUM_VALUES = 3,
4003}
4004#[repr(u32)]
4005#[non_exhaustive]
4006#[doc = "\n Preferences type passed to\n CefBrowserProcessHandler::OnRegisterCustomPreferences.\n"]
4007#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4008pub enum cef_preferences_type_t {
4009    #[doc = " Global preferences registered a single time at application startup."]
4010    CEF_PREFERENCES_TYPE_GLOBAL = 0,
4011    #[doc = " Request context preferences registered each time a new CefRequestContext\n is created."]
4012    CEF_PREFERENCES_TYPE_REQUEST_CONTEXT = 1,
4013    #[doc = " Request context preferences registered each time a new CefRequestContext\n is created."]
4014    CEF_PREFERENCES_TYPE_NUM_VALUES = 2,
4015}
4016#[repr(u32)]
4017#[non_exhaustive]
4018#[doc = "\n Download interrupt reasons. Should be kept in sync with\n Chromium's download::DownloadInterruptReason type.\n"]
4019#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4020pub enum cef_download_interrupt_reason_t {
4021    CEF_DOWNLOAD_INTERRUPT_REASON_NONE = 0,
4022    #[doc = " Generic file operation failure."]
4023    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED = 1,
4024    #[doc = " The file cannot be accessed due to security restrictions."]
4025    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED = 2,
4026    #[doc = " There is not enough room on the drive."]
4027    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE = 3,
4028    #[doc = " The directory or file name is too long."]
4029    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG = 5,
4030    #[doc = " The file is too large for the file system to handle."]
4031    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE = 6,
4032    #[doc = " The file contains a virus."]
4033    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED = 7,
4034    #[doc = " The file was in use. Too many files are opened at once. We have run out of\n memory."]
4035    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR = 10,
4036    #[doc = " The file was blocked due to local policy."]
4037    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED = 11,
4038    #[doc = " An attempt to check the safety of the download failed due to unexpected\n reasons. See http://crbug.com/153212."]
4039    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED = 12,
4040    #[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)."]
4041    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT = 13,
4042    #[doc = " The partial file didn't match the expected hash."]
4043    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH = 14,
4044    #[doc = " The source and the target of the download were the same."]
4045    CEF_DOWNLOAD_INTERRUPT_REASON_FILE_SAME_AS_SOURCE = 15,
4046    #[doc = " Generic network failure."]
4047    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED = 20,
4048    #[doc = " The network operation timed out."]
4049    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT = 21,
4050    #[doc = " The network connection has been lost."]
4051    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED = 22,
4052    #[doc = " The server has gone down."]
4053    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN = 23,
4054    #[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."]
4055    CEF_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST = 24,
4056    #[doc = " The server indicates that the operation has failed (generic)."]
4057    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED = 30,
4058    #[doc = " The server does not support range requests.\n Internal use only:  must restart from the beginning."]
4059    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE = 31,
4060    #[doc = " The server does not have the requested data."]
4061    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT = 33,
4062    #[doc = " Server didn't authorize access to resource."]
4063    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED = 34,
4064    #[doc = " Server certificate problem."]
4065    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CERT_PROBLEM = 35,
4066    #[doc = " Server access forbidden."]
4067    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN = 36,
4068    #[doc = " Unexpected server response. This might indicate that the responding server\n may not be the intended server."]
4069    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_UNREACHABLE = 37,
4070    #[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."]
4071    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH = 38,
4072    #[doc = " An unexpected cross-origin redirect happened."]
4073    CEF_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT = 39,
4074    #[doc = " The user canceled the download."]
4075    CEF_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED = 40,
4076    #[doc = " The user shut down the browser.\n Internal use only:  resume pending downloads if possible."]
4077    CEF_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN = 41,
4078    #[doc = " The browser crashed.\n Internal use only:  resume pending downloads if possible."]
4079    CEF_DOWNLOAD_INTERRUPT_REASON_CRASH = 50,
4080}
4081#[repr(u32)]
4082#[non_exhaustive]
4083#[doc = "\n Specifies the gesture commands.\n"]
4084#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4085pub enum cef_gesture_command_t {
4086    CEF_GESTURE_COMMAND_BACK = 0,
4087    CEF_GESTURE_COMMAND_FORWARD = 1,
4088}
4089#[repr(u32)]
4090#[non_exhaustive]
4091#[doc = "\n Specifies the zoom commands supported by CefBrowserHost::Zoom.\n"]
4092#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4093pub enum cef_zoom_command_t {
4094    CEF_ZOOM_COMMAND_OUT = 0,
4095    CEF_ZOOM_COMMAND_RESET = 1,
4096    CEF_ZOOM_COMMAND_IN = 2,
4097}
4098#[repr(u32)]
4099#[non_exhaustive]
4100#[doc = "\n Specifies the color variants supported by\n CefRequestContext::SetChromeThemeColor.\n"]
4101#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4102pub enum cef_color_variant_t {
4103    CEF_COLOR_VARIANT_SYSTEM = 0,
4104    CEF_COLOR_VARIANT_LIGHT = 1,
4105    CEF_COLOR_VARIANT_DARK = 2,
4106    CEF_COLOR_VARIANT_TONAL_SPOT = 3,
4107    CEF_COLOR_VARIANT_NEUTRAL = 4,
4108    CEF_COLOR_VARIANT_VIBRANT = 5,
4109    CEF_COLOR_VARIANT_EXPRESSIVE = 6,
4110    CEF_COLOR_VARIANT_NUM_VALUES = 7,
4111}
4112#[repr(u32)]
4113#[non_exhaustive]
4114#[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"]
4115#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4116pub enum cef_task_type_t {
4117    CEF_TASK_TYPE_UNKNOWN = 0,
4118    #[doc = " The main browser process."]
4119    CEF_TASK_TYPE_BROWSER = 1,
4120    #[doc = " A graphics process."]
4121    CEF_TASK_TYPE_GPU = 2,
4122    #[doc = " A Linux zygote process."]
4123    CEF_TASK_TYPE_ZYGOTE = 3,
4124    #[doc = " A browser utility process."]
4125    CEF_TASK_TYPE_UTILITY = 4,
4126    #[doc = " A normal WebContents renderer process."]
4127    CEF_TASK_TYPE_RENDERER = 5,
4128    #[doc = " An extension or app process."]
4129    CEF_TASK_TYPE_EXTENSION = 6,
4130    #[doc = " A browser plugin guest process."]
4131    CEF_TASK_TYPE_GUEST = 7,
4132    #[doc = " A plugin process."]
4133    CEF_TASK_TYPE_PLUGIN = 8,
4134    #[doc = " A sandbox helper process"]
4135    CEF_TASK_TYPE_SANDBOX_HELPER = 9,
4136    #[doc = " A dedicated worker running on the renderer process."]
4137    CEF_TASK_TYPE_DEDICATED_WORKER = 10,
4138    #[doc = " A shared worker running on the renderer process."]
4139    CEF_TASK_TYPE_SHARED_WORKER = 11,
4140    #[doc = " A service worker running on the renderer process."]
4141    CEF_TASK_TYPE_SERVICE_WORKER = 12,
4142    #[doc = " A service worker running on the renderer process."]
4143    CEF_TASK_TYPE_NUM_VALUES = 13,
4144}
4145#[doc = "\n Structure representing task information provided by CefTaskManager.\n"]
4146#[repr(C)]
4147#[derive(Debug, Copy, Clone)]
4148pub struct _cef_task_info_t {
4149    #[doc = "\n Size of this structure.\n"]
4150    pub size: usize,
4151    #[doc = " The task ID."]
4152    pub id: i64,
4153    #[doc = " The task type."]
4154    pub type_: cef_task_type_t,
4155    #[doc = " Set to true (1) if the task is killable."]
4156    pub is_killable: ::std::os::raw::c_int,
4157    #[doc = " The task title."]
4158    pub title: cef_string_t,
4159    #[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%."]
4160    pub cpu_usage: f64,
4161    #[doc = " The number of processors available on the system."]
4162    pub number_of_processors: ::std::os::raw::c_int,
4163    #[doc = " The memory footprint of the task in bytes. A value of -1 means no valid\n value is currently available."]
4164    pub memory: i64,
4165    #[doc = " The GPU memory usage of the task in bytes. A value of -1 means no valid\n value is currently available."]
4166    pub gpu_memory: i64,
4167    #[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)."]
4168    pub is_gpu_memory_inflated: ::std::os::raw::c_int,
4169}
4170#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4171const _: () = {
4172    ["Size of _cef_task_info_t"][::std::mem::size_of::<_cef_task_info_t>() - 88usize];
4173    ["Alignment of _cef_task_info_t"][::std::mem::align_of::<_cef_task_info_t>() - 8usize];
4174    ["Offset of field: _cef_task_info_t::size"]
4175        [::std::mem::offset_of!(_cef_task_info_t, size) - 0usize];
4176    ["Offset of field: _cef_task_info_t::id"]
4177        [::std::mem::offset_of!(_cef_task_info_t, id) - 8usize];
4178    ["Offset of field: _cef_task_info_t::type_"]
4179        [::std::mem::offset_of!(_cef_task_info_t, type_) - 16usize];
4180    ["Offset of field: _cef_task_info_t::is_killable"]
4181        [::std::mem::offset_of!(_cef_task_info_t, is_killable) - 20usize];
4182    ["Offset of field: _cef_task_info_t::title"]
4183        [::std::mem::offset_of!(_cef_task_info_t, title) - 24usize];
4184    ["Offset of field: _cef_task_info_t::cpu_usage"]
4185        [::std::mem::offset_of!(_cef_task_info_t, cpu_usage) - 48usize];
4186    ["Offset of field: _cef_task_info_t::number_of_processors"]
4187        [::std::mem::offset_of!(_cef_task_info_t, number_of_processors) - 56usize];
4188    ["Offset of field: _cef_task_info_t::memory"]
4189        [::std::mem::offset_of!(_cef_task_info_t, memory) - 64usize];
4190    ["Offset of field: _cef_task_info_t::gpu_memory"]
4191        [::std::mem::offset_of!(_cef_task_info_t, gpu_memory) - 72usize];
4192    ["Offset of field: _cef_task_info_t::is_gpu_memory_inflated"]
4193        [::std::mem::offset_of!(_cef_task_info_t, is_gpu_memory_inflated) - 80usize];
4194};
4195#[doc = "\n Structure representing task information provided by CefTaskManager.\n"]
4196pub type cef_task_info_t = _cef_task_info_t;
4197#[doc = "\n All ref-counted framework structures must include this structure first.\n"]
4198#[repr(C)]
4199#[derive(Debug, Copy, Clone)]
4200pub struct _cef_base_ref_counted_t {
4201    #[doc = "\n Size of the data structure.\n"]
4202    pub size: usize,
4203    #[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"]
4204    pub add_ref: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t)>,
4205    #[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"]
4206    pub release: ::std::option::Option<
4207        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4208    >,
4209    #[doc = "\n Returns true (1) if the current reference count is 1.\n"]
4210    pub has_one_ref: ::std::option::Option<
4211        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4212    >,
4213    #[doc = "\n Returns true (1) if the current reference count is at least 1.\n"]
4214    pub has_at_least_one_ref: ::std::option::Option<
4215        unsafe extern "C" fn(self_: *mut _cef_base_ref_counted_t) -> ::std::os::raw::c_int,
4216    >,
4217}
4218#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4219const _: () = {
4220    ["Size of _cef_base_ref_counted_t"][::std::mem::size_of::<_cef_base_ref_counted_t>() - 40usize];
4221    ["Alignment of _cef_base_ref_counted_t"]
4222        [::std::mem::align_of::<_cef_base_ref_counted_t>() - 8usize];
4223    ["Offset of field: _cef_base_ref_counted_t::size"]
4224        [::std::mem::offset_of!(_cef_base_ref_counted_t, size) - 0usize];
4225    ["Offset of field: _cef_base_ref_counted_t::add_ref"]
4226        [::std::mem::offset_of!(_cef_base_ref_counted_t, add_ref) - 8usize];
4227    ["Offset of field: _cef_base_ref_counted_t::release"]
4228        [::std::mem::offset_of!(_cef_base_ref_counted_t, release) - 16usize];
4229    ["Offset of field: _cef_base_ref_counted_t::has_one_ref"]
4230        [::std::mem::offset_of!(_cef_base_ref_counted_t, has_one_ref) - 24usize];
4231    ["Offset of field: _cef_base_ref_counted_t::has_at_least_one_ref"]
4232        [::std::mem::offset_of!(_cef_base_ref_counted_t, has_at_least_one_ref) - 32usize];
4233};
4234#[doc = "\n All ref-counted framework structures must include this structure first.\n"]
4235pub type cef_base_ref_counted_t = _cef_base_ref_counted_t;
4236#[doc = "\n All scoped framework structures must include this structure first.\n"]
4237#[repr(C)]
4238#[derive(Debug, Copy, Clone)]
4239pub struct _cef_base_scoped_t {
4240    #[doc = "\n Size of the data structure.\n"]
4241    pub size: usize,
4242    #[doc = "\n Called to delete this object. May be NULL if the object is not owned.\n"]
4243    pub del: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_base_scoped_t)>,
4244}
4245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4246const _: () = {
4247    ["Size of _cef_base_scoped_t"][::std::mem::size_of::<_cef_base_scoped_t>() - 16usize];
4248    ["Alignment of _cef_base_scoped_t"][::std::mem::align_of::<_cef_base_scoped_t>() - 8usize];
4249    ["Offset of field: _cef_base_scoped_t::size"]
4250        [::std::mem::offset_of!(_cef_base_scoped_t, size) - 0usize];
4251    ["Offset of field: _cef_base_scoped_t::del"]
4252        [::std::mem::offset_of!(_cef_base_scoped_t, del) - 8usize];
4253};
4254#[doc = "\n All scoped framework structures must include this structure first.\n"]
4255pub type cef_base_scoped_t = _cef_base_scoped_t;
4256#[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"]
4257#[repr(C)]
4258#[derive(Debug, Copy, Clone)]
4259pub struct _cef_dev_tools_message_observer_t {
4260    #[doc = "\n Base structure.\n"]
4261    pub base: cef_base_ref_counted_t,
4262    #[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"]
4263    pub on_dev_tools_message: ::std::option::Option<
4264        unsafe extern "C" fn(
4265            self_: *mut _cef_dev_tools_message_observer_t,
4266            browser: *mut _cef_browser_t,
4267            message: *const ::std::os::raw::c_void,
4268            message_size: usize,
4269        ) -> ::std::os::raw::c_int,
4270    >,
4271    #[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"]
4272    pub on_dev_tools_method_result: ::std::option::Option<
4273        unsafe extern "C" fn(
4274            self_: *mut _cef_dev_tools_message_observer_t,
4275            browser: *mut _cef_browser_t,
4276            message_id: ::std::os::raw::c_int,
4277            success: ::std::os::raw::c_int,
4278            result: *const ::std::os::raw::c_void,
4279            result_size: usize,
4280        ),
4281    >,
4282    #[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"]
4283    pub on_dev_tools_event: ::std::option::Option<
4284        unsafe extern "C" fn(
4285            self_: *mut _cef_dev_tools_message_observer_t,
4286            browser: *mut _cef_browser_t,
4287            method: *const cef_string_t,
4288            params: *const ::std::os::raw::c_void,
4289            params_size: usize,
4290        ),
4291    >,
4292    #[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"]
4293    pub on_dev_tools_agent_attached: ::std::option::Option<
4294        unsafe extern "C" fn(
4295            self_: *mut _cef_dev_tools_message_observer_t,
4296            browser: *mut _cef_browser_t,
4297        ),
4298    >,
4299    #[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"]
4300    pub on_dev_tools_agent_detached: ::std::option::Option<
4301        unsafe extern "C" fn(
4302            self_: *mut _cef_dev_tools_message_observer_t,
4303            browser: *mut _cef_browser_t,
4304        ),
4305    >,
4306}
4307#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4308const _: () = {
4309    ["Size of _cef_dev_tools_message_observer_t"]
4310        [::std::mem::size_of::<_cef_dev_tools_message_observer_t>() - 80usize];
4311    ["Alignment of _cef_dev_tools_message_observer_t"]
4312        [::std::mem::align_of::<_cef_dev_tools_message_observer_t>() - 8usize];
4313    ["Offset of field: _cef_dev_tools_message_observer_t::base"]
4314        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, base) - 0usize];
4315    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_message"]
4316        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, on_dev_tools_message) - 40usize];
4317    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_method_result"][::std::mem::offset_of!(
4318        _cef_dev_tools_message_observer_t,
4319        on_dev_tools_method_result
4320    ) - 48usize];
4321    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_event"]
4322        [::std::mem::offset_of!(_cef_dev_tools_message_observer_t, on_dev_tools_event) - 56usize];
4323    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_agent_attached"][::std::mem::offset_of!(
4324        _cef_dev_tools_message_observer_t,
4325        on_dev_tools_agent_attached
4326    )
4327        - 64usize];
4328    ["Offset of field: _cef_dev_tools_message_observer_t::on_dev_tools_agent_detached"][::std::mem::offset_of!(
4329        _cef_dev_tools_message_observer_t,
4330        on_dev_tools_agent_detached
4331    )
4332        - 72usize];
4333};
4334#[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"]
4335pub type cef_dev_tools_message_observer_t = _cef_dev_tools_message_observer_t;
4336#[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"]
4337#[repr(C)]
4338#[derive(Debug, Copy, Clone)]
4339pub struct _cef_value_t {
4340    #[doc = "\n Base structure.\n"]
4341    pub base: cef_base_ref_counted_t,
4342    #[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"]
4343    pub is_valid: ::std::option::Option<
4344        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4345    >,
4346    #[doc = "\n Returns true (1) if the underlying data is owned by another object.\n"]
4347    pub is_owned: ::std::option::Option<
4348        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4349    >,
4350    #[doc = "\n Returns true (1) if the underlying data is read-only. Some APIs may expose\n read-only objects.\n"]
4351    pub is_read_only: ::std::option::Option<
4352        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4353    >,
4354    #[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"]
4355    pub is_same: ::std::option::Option<
4356        unsafe extern "C" fn(
4357            self_: *mut _cef_value_t,
4358            that: *mut _cef_value_t,
4359        ) -> ::std::os::raw::c_int,
4360    >,
4361    #[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"]
4362    pub is_equal: ::std::option::Option<
4363        unsafe extern "C" fn(
4364            self_: *mut _cef_value_t,
4365            that: *mut _cef_value_t,
4366        ) -> ::std::os::raw::c_int,
4367    >,
4368    #[doc = "\n Returns a copy of this object. The underlying data will also be copied.\n"]
4369    pub copy:
4370        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_value_t>,
4371    #[doc = "\n Returns the underlying value type.\n"]
4372    pub get_type:
4373        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> cef_value_type_t>,
4374    #[doc = "\n Returns the underlying value as type bool.\n"]
4375    pub get_bool: ::std::option::Option<
4376        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4377    >,
4378    #[doc = "\n Returns the underlying value as type int.\n"]
4379    pub get_int: ::std::option::Option<
4380        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4381    >,
4382    #[doc = "\n Returns the underlying value as type double.\n"]
4383    pub get_double: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_value_t) -> f64>,
4384    #[doc = "\n Returns the underlying value as type string.\n"]
4385    pub get_string: ::std::option::Option<
4386        unsafe extern "C" fn(self_: *mut _cef_value_t) -> cef_string_userfree_t,
4387    >,
4388    #[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"]
4389    pub get_binary: ::std::option::Option<
4390        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_binary_value_t,
4391    >,
4392    #[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"]
4393    pub get_dictionary: ::std::option::Option<
4394        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_dictionary_value_t,
4395    >,
4396    #[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"]
4397    pub get_list: ::std::option::Option<
4398        unsafe extern "C" fn(self_: *mut _cef_value_t) -> *mut _cef_list_value_t,
4399    >,
4400    #[doc = "\n Sets the underlying value as type null. Returns true (1) if the value was\n set successfully.\n"]
4401    pub set_null: ::std::option::Option<
4402        unsafe extern "C" fn(self_: *mut _cef_value_t) -> ::std::os::raw::c_int,
4403    >,
4404    #[doc = "\n Sets the underlying value as type bool. Returns true (1) if the value was\n set successfully.\n"]
4405    pub set_bool: ::std::option::Option<
4406        unsafe extern "C" fn(
4407            self_: *mut _cef_value_t,
4408            value: ::std::os::raw::c_int,
4409        ) -> ::std::os::raw::c_int,
4410    >,
4411    #[doc = "\n Sets the underlying value as type int. Returns true (1) if the value was\n set successfully.\n"]
4412    pub set_int: ::std::option::Option<
4413        unsafe extern "C" fn(
4414            self_: *mut _cef_value_t,
4415            value: ::std::os::raw::c_int,
4416        ) -> ::std::os::raw::c_int,
4417    >,
4418    #[doc = "\n Sets the underlying value as type double. Returns true (1) if the value\n was set successfully.\n"]
4419    pub set_double: ::std::option::Option<
4420        unsafe extern "C" fn(self_: *mut _cef_value_t, value: f64) -> ::std::os::raw::c_int,
4421    >,
4422    #[doc = "\n Sets the underlying value as type string. Returns true (1) if the value\n was set successfully.\n"]
4423    pub set_string: ::std::option::Option<
4424        unsafe extern "C" fn(
4425            self_: *mut _cef_value_t,
4426            value: *const cef_string_t,
4427        ) -> ::std::os::raw::c_int,
4428    >,
4429    #[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"]
4430    pub set_binary: ::std::option::Option<
4431        unsafe extern "C" fn(
4432            self_: *mut _cef_value_t,
4433            value: *mut _cef_binary_value_t,
4434        ) -> ::std::os::raw::c_int,
4435    >,
4436    #[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"]
4437    pub set_dictionary: ::std::option::Option<
4438        unsafe extern "C" fn(
4439            self_: *mut _cef_value_t,
4440            value: *mut _cef_dictionary_value_t,
4441        ) -> ::std::os::raw::c_int,
4442    >,
4443    #[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"]
4444    pub set_list: ::std::option::Option<
4445        unsafe extern "C" fn(
4446            self_: *mut _cef_value_t,
4447            value: *mut _cef_list_value_t,
4448        ) -> ::std::os::raw::c_int,
4449    >,
4450}
4451#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4452const _: () = {
4453    ["Size of _cef_value_t"][::std::mem::size_of::<_cef_value_t>() - 216usize];
4454    ["Alignment of _cef_value_t"][::std::mem::align_of::<_cef_value_t>() - 8usize];
4455    ["Offset of field: _cef_value_t::base"][::std::mem::offset_of!(_cef_value_t, base) - 0usize];
4456    ["Offset of field: _cef_value_t::is_valid"]
4457        [::std::mem::offset_of!(_cef_value_t, is_valid) - 40usize];
4458    ["Offset of field: _cef_value_t::is_owned"]
4459        [::std::mem::offset_of!(_cef_value_t, is_owned) - 48usize];
4460    ["Offset of field: _cef_value_t::is_read_only"]
4461        [::std::mem::offset_of!(_cef_value_t, is_read_only) - 56usize];
4462    ["Offset of field: _cef_value_t::is_same"]
4463        [::std::mem::offset_of!(_cef_value_t, is_same) - 64usize];
4464    ["Offset of field: _cef_value_t::is_equal"]
4465        [::std::mem::offset_of!(_cef_value_t, is_equal) - 72usize];
4466    ["Offset of field: _cef_value_t::copy"][::std::mem::offset_of!(_cef_value_t, copy) - 80usize];
4467    ["Offset of field: _cef_value_t::get_type"]
4468        [::std::mem::offset_of!(_cef_value_t, get_type) - 88usize];
4469    ["Offset of field: _cef_value_t::get_bool"]
4470        [::std::mem::offset_of!(_cef_value_t, get_bool) - 96usize];
4471    ["Offset of field: _cef_value_t::get_int"]
4472        [::std::mem::offset_of!(_cef_value_t, get_int) - 104usize];
4473    ["Offset of field: _cef_value_t::get_double"]
4474        [::std::mem::offset_of!(_cef_value_t, get_double) - 112usize];
4475    ["Offset of field: _cef_value_t::get_string"]
4476        [::std::mem::offset_of!(_cef_value_t, get_string) - 120usize];
4477    ["Offset of field: _cef_value_t::get_binary"]
4478        [::std::mem::offset_of!(_cef_value_t, get_binary) - 128usize];
4479    ["Offset of field: _cef_value_t::get_dictionary"]
4480        [::std::mem::offset_of!(_cef_value_t, get_dictionary) - 136usize];
4481    ["Offset of field: _cef_value_t::get_list"]
4482        [::std::mem::offset_of!(_cef_value_t, get_list) - 144usize];
4483    ["Offset of field: _cef_value_t::set_null"]
4484        [::std::mem::offset_of!(_cef_value_t, set_null) - 152usize];
4485    ["Offset of field: _cef_value_t::set_bool"]
4486        [::std::mem::offset_of!(_cef_value_t, set_bool) - 160usize];
4487    ["Offset of field: _cef_value_t::set_int"]
4488        [::std::mem::offset_of!(_cef_value_t, set_int) - 168usize];
4489    ["Offset of field: _cef_value_t::set_double"]
4490        [::std::mem::offset_of!(_cef_value_t, set_double) - 176usize];
4491    ["Offset of field: _cef_value_t::set_string"]
4492        [::std::mem::offset_of!(_cef_value_t, set_string) - 184usize];
4493    ["Offset of field: _cef_value_t::set_binary"]
4494        [::std::mem::offset_of!(_cef_value_t, set_binary) - 192usize];
4495    ["Offset of field: _cef_value_t::set_dictionary"]
4496        [::std::mem::offset_of!(_cef_value_t, set_dictionary) - 200usize];
4497    ["Offset of field: _cef_value_t::set_list"]
4498        [::std::mem::offset_of!(_cef_value_t, set_list) - 208usize];
4499};
4500#[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"]
4501pub type cef_value_t = _cef_value_t;
4502unsafe extern "C" {
4503    #[doc = "\n Creates a new object.\n"]
4504    pub fn cef_value_create() -> *mut cef_value_t;
4505}
4506#[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"]
4507#[repr(C)]
4508#[derive(Debug, Copy, Clone)]
4509pub struct _cef_binary_value_t {
4510    #[doc = "\n Base structure.\n"]
4511    pub base: cef_base_ref_counted_t,
4512    #[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"]
4513    pub is_valid: ::std::option::Option<
4514        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> ::std::os::raw::c_int,
4515    >,
4516    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
4517    pub is_owned: ::std::option::Option<
4518        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> ::std::os::raw::c_int,
4519    >,
4520    #[doc = "\n Returns true (1) if this object and |that| object have the same underlying\n data.\n"]
4521    pub is_same: ::std::option::Option<
4522        unsafe extern "C" fn(
4523            self_: *mut _cef_binary_value_t,
4524            that: *mut _cef_binary_value_t,
4525        ) -> ::std::os::raw::c_int,
4526    >,
4527    #[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"]
4528    pub is_equal: ::std::option::Option<
4529        unsafe extern "C" fn(
4530            self_: *mut _cef_binary_value_t,
4531            that: *mut _cef_binary_value_t,
4532        ) -> ::std::os::raw::c_int,
4533    >,
4534    #[doc = "\n Returns a copy of this object. The data in this object will also be\n copied.\n"]
4535    pub copy: ::std::option::Option<
4536        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> *mut _cef_binary_value_t,
4537    >,
4538    #[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"]
4539    pub get_raw_data: ::std::option::Option<
4540        unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> *const ::std::os::raw::c_void,
4541    >,
4542    #[doc = "\n Returns the data size.\n"]
4543    pub get_size:
4544        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_binary_value_t) -> usize>,
4545    #[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"]
4546    pub get_data: ::std::option::Option<
4547        unsafe extern "C" fn(
4548            self_: *mut _cef_binary_value_t,
4549            buffer: *mut ::std::os::raw::c_void,
4550            buffer_size: usize,
4551            data_offset: usize,
4552        ) -> usize,
4553    >,
4554}
4555#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4556const _: () = {
4557    ["Size of _cef_binary_value_t"][::std::mem::size_of::<_cef_binary_value_t>() - 104usize];
4558    ["Alignment of _cef_binary_value_t"][::std::mem::align_of::<_cef_binary_value_t>() - 8usize];
4559    ["Offset of field: _cef_binary_value_t::base"]
4560        [::std::mem::offset_of!(_cef_binary_value_t, base) - 0usize];
4561    ["Offset of field: _cef_binary_value_t::is_valid"]
4562        [::std::mem::offset_of!(_cef_binary_value_t, is_valid) - 40usize];
4563    ["Offset of field: _cef_binary_value_t::is_owned"]
4564        [::std::mem::offset_of!(_cef_binary_value_t, is_owned) - 48usize];
4565    ["Offset of field: _cef_binary_value_t::is_same"]
4566        [::std::mem::offset_of!(_cef_binary_value_t, is_same) - 56usize];
4567    ["Offset of field: _cef_binary_value_t::is_equal"]
4568        [::std::mem::offset_of!(_cef_binary_value_t, is_equal) - 64usize];
4569    ["Offset of field: _cef_binary_value_t::copy"]
4570        [::std::mem::offset_of!(_cef_binary_value_t, copy) - 72usize];
4571    ["Offset of field: _cef_binary_value_t::get_raw_data"]
4572        [::std::mem::offset_of!(_cef_binary_value_t, get_raw_data) - 80usize];
4573    ["Offset of field: _cef_binary_value_t::get_size"]
4574        [::std::mem::offset_of!(_cef_binary_value_t, get_size) - 88usize];
4575    ["Offset of field: _cef_binary_value_t::get_data"]
4576        [::std::mem::offset_of!(_cef_binary_value_t, get_data) - 96usize];
4577};
4578#[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"]
4579pub type cef_binary_value_t = _cef_binary_value_t;
4580unsafe extern "C" {
4581    #[doc = "\n Creates a new object that is not owned by any other object. The specified\n |data| will be copied.\n"]
4582    pub fn cef_binary_value_create(
4583        data: *const ::std::os::raw::c_void,
4584        data_size: usize,
4585    ) -> *mut cef_binary_value_t;
4586}
4587#[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"]
4588#[repr(C)]
4589#[derive(Debug, Copy, Clone)]
4590pub struct _cef_dictionary_value_t {
4591    #[doc = "\n Base structure.\n"]
4592    pub base: cef_base_ref_counted_t,
4593    #[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"]
4594    pub is_valid: ::std::option::Option<
4595        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4596    >,
4597    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
4598    pub is_owned: ::std::option::Option<
4599        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4600    >,
4601    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
4602    pub is_read_only: ::std::option::Option<
4603        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4604    >,
4605    #[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"]
4606    pub is_same: ::std::option::Option<
4607        unsafe extern "C" fn(
4608            self_: *mut _cef_dictionary_value_t,
4609            that: *mut _cef_dictionary_value_t,
4610        ) -> ::std::os::raw::c_int,
4611    >,
4612    #[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"]
4613    pub is_equal: ::std::option::Option<
4614        unsafe extern "C" fn(
4615            self_: *mut _cef_dictionary_value_t,
4616            that: *mut _cef_dictionary_value_t,
4617        ) -> ::std::os::raw::c_int,
4618    >,
4619    #[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"]
4620    pub copy: ::std::option::Option<
4621        unsafe extern "C" fn(
4622            self_: *mut _cef_dictionary_value_t,
4623            exclude_empty_children: ::std::os::raw::c_int,
4624        ) -> *mut _cef_dictionary_value_t,
4625    >,
4626    #[doc = "\n Returns the number of values.\n"]
4627    pub get_size:
4628        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> usize>,
4629    #[doc = "\n Removes all values. Returns true (1) on success.\n"]
4630    pub clear: ::std::option::Option<
4631        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t) -> ::std::os::raw::c_int,
4632    >,
4633    #[doc = "\n Returns true (1) if the current dictionary has a value for the given key.\n"]
4634    pub has_key: ::std::option::Option<
4635        unsafe extern "C" fn(
4636            self_: *mut _cef_dictionary_value_t,
4637            key: *const cef_string_t,
4638        ) -> ::std::os::raw::c_int,
4639    >,
4640    #[doc = "\n Reads all keys for this dictionary into the specified vector.\n"]
4641    pub get_keys: ::std::option::Option<
4642        unsafe extern "C" fn(
4643            self_: *mut _cef_dictionary_value_t,
4644            keys: cef_string_list_t,
4645        ) -> ::std::os::raw::c_int,
4646    >,
4647    #[doc = "\n Removes the value at the specified key. Returns true (1) is the value was\n removed successfully.\n"]
4648    pub remove: ::std::option::Option<
4649        unsafe extern "C" fn(
4650            self_: *mut _cef_dictionary_value_t,
4651            key: *const cef_string_t,
4652        ) -> ::std::os::raw::c_int,
4653    >,
4654    #[doc = "\n Returns the value type for the specified key.\n"]
4655    pub get_type: ::std::option::Option<
4656        unsafe extern "C" fn(
4657            self_: *mut _cef_dictionary_value_t,
4658            key: *const cef_string_t,
4659        ) -> cef_value_type_t,
4660    >,
4661    #[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"]
4662    pub get_value: ::std::option::Option<
4663        unsafe extern "C" fn(
4664            self_: *mut _cef_dictionary_value_t,
4665            key: *const cef_string_t,
4666        ) -> *mut _cef_value_t,
4667    >,
4668    #[doc = "\n Returns the value at the specified key as type bool.\n"]
4669    pub get_bool: ::std::option::Option<
4670        unsafe extern "C" fn(
4671            self_: *mut _cef_dictionary_value_t,
4672            key: *const cef_string_t,
4673        ) -> ::std::os::raw::c_int,
4674    >,
4675    #[doc = "\n Returns the value at the specified key as type int.\n"]
4676    pub get_int: ::std::option::Option<
4677        unsafe extern "C" fn(
4678            self_: *mut _cef_dictionary_value_t,
4679            key: *const cef_string_t,
4680        ) -> ::std::os::raw::c_int,
4681    >,
4682    #[doc = "\n Returns the value at the specified key as type double.\n"]
4683    pub get_double: ::std::option::Option<
4684        unsafe extern "C" fn(self_: *mut _cef_dictionary_value_t, key: *const cef_string_t) -> f64,
4685    >,
4686    #[doc = "\n Returns the value at the specified key as type string.\n"]
4687    pub get_string: ::std::option::Option<
4688        unsafe extern "C" fn(
4689            self_: *mut _cef_dictionary_value_t,
4690            key: *const cef_string_t,
4691        ) -> cef_string_userfree_t,
4692    >,
4693    #[doc = "\n Returns the value at the specified key as type binary. The returned value\n will reference existing data.\n"]
4694    pub get_binary: ::std::option::Option<
4695        unsafe extern "C" fn(
4696            self_: *mut _cef_dictionary_value_t,
4697            key: *const cef_string_t,
4698        ) -> *mut _cef_binary_value_t,
4699    >,
4700    #[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"]
4701    pub get_dictionary: ::std::option::Option<
4702        unsafe extern "C" fn(
4703            self_: *mut _cef_dictionary_value_t,
4704            key: *const cef_string_t,
4705        ) -> *mut _cef_dictionary_value_t,
4706    >,
4707    #[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"]
4708    pub get_list: ::std::option::Option<
4709        unsafe extern "C" fn(
4710            self_: *mut _cef_dictionary_value_t,
4711            key: *const cef_string_t,
4712        ) -> *mut _cef_list_value_t,
4713    >,
4714    #[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"]
4715    pub set_value: ::std::option::Option<
4716        unsafe extern "C" fn(
4717            self_: *mut _cef_dictionary_value_t,
4718            key: *const cef_string_t,
4719            value: *mut _cef_value_t,
4720        ) -> ::std::os::raw::c_int,
4721    >,
4722    #[doc = "\n Sets the value at the specified key as type null. Returns true (1) if the\n value was set successfully.\n"]
4723    pub set_null: ::std::option::Option<
4724        unsafe extern "C" fn(
4725            self_: *mut _cef_dictionary_value_t,
4726            key: *const cef_string_t,
4727        ) -> ::std::os::raw::c_int,
4728    >,
4729    #[doc = "\n Sets the value at the specified key as type bool. Returns true (1) if the\n value was set successfully.\n"]
4730    pub set_bool: ::std::option::Option<
4731        unsafe extern "C" fn(
4732            self_: *mut _cef_dictionary_value_t,
4733            key: *const cef_string_t,
4734            value: ::std::os::raw::c_int,
4735        ) -> ::std::os::raw::c_int,
4736    >,
4737    #[doc = "\n Sets the value at the specified key as type int. Returns true (1) if the\n value was set successfully.\n"]
4738    pub set_int: ::std::option::Option<
4739        unsafe extern "C" fn(
4740            self_: *mut _cef_dictionary_value_t,
4741            key: *const cef_string_t,
4742            value: ::std::os::raw::c_int,
4743        ) -> ::std::os::raw::c_int,
4744    >,
4745    #[doc = "\n Sets the value at the specified key as type double. Returns true (1) if\n the value was set successfully.\n"]
4746    pub set_double: ::std::option::Option<
4747        unsafe extern "C" fn(
4748            self_: *mut _cef_dictionary_value_t,
4749            key: *const cef_string_t,
4750            value: f64,
4751        ) -> ::std::os::raw::c_int,
4752    >,
4753    #[doc = "\n Sets the value at the specified key as type string. Returns true (1) if\n the value was set successfully.\n"]
4754    pub set_string: ::std::option::Option<
4755        unsafe extern "C" fn(
4756            self_: *mut _cef_dictionary_value_t,
4757            key: *const cef_string_t,
4758            value: *const cef_string_t,
4759        ) -> ::std::os::raw::c_int,
4760    >,
4761    #[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"]
4762    pub set_binary: ::std::option::Option<
4763        unsafe extern "C" fn(
4764            self_: *mut _cef_dictionary_value_t,
4765            key: *const cef_string_t,
4766            value: *mut _cef_binary_value_t,
4767        ) -> ::std::os::raw::c_int,
4768    >,
4769    #[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"]
4770    pub set_dictionary: ::std::option::Option<
4771        unsafe extern "C" fn(
4772            self_: *mut _cef_dictionary_value_t,
4773            key: *const cef_string_t,
4774            value: *mut _cef_dictionary_value_t,
4775        ) -> ::std::os::raw::c_int,
4776    >,
4777    #[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"]
4778    pub set_list: ::std::option::Option<
4779        unsafe extern "C" fn(
4780            self_: *mut _cef_dictionary_value_t,
4781            key: *const cef_string_t,
4782            value: *mut _cef_list_value_t,
4783        ) -> ::std::os::raw::c_int,
4784    >,
4785}
4786#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4787const _: () = {
4788    ["Size of _cef_dictionary_value_t"]
4789        [::std::mem::size_of::<_cef_dictionary_value_t>() - 272usize];
4790    ["Alignment of _cef_dictionary_value_t"]
4791        [::std::mem::align_of::<_cef_dictionary_value_t>() - 8usize];
4792    ["Offset of field: _cef_dictionary_value_t::base"]
4793        [::std::mem::offset_of!(_cef_dictionary_value_t, base) - 0usize];
4794    ["Offset of field: _cef_dictionary_value_t::is_valid"]
4795        [::std::mem::offset_of!(_cef_dictionary_value_t, is_valid) - 40usize];
4796    ["Offset of field: _cef_dictionary_value_t::is_owned"]
4797        [::std::mem::offset_of!(_cef_dictionary_value_t, is_owned) - 48usize];
4798    ["Offset of field: _cef_dictionary_value_t::is_read_only"]
4799        [::std::mem::offset_of!(_cef_dictionary_value_t, is_read_only) - 56usize];
4800    ["Offset of field: _cef_dictionary_value_t::is_same"]
4801        [::std::mem::offset_of!(_cef_dictionary_value_t, is_same) - 64usize];
4802    ["Offset of field: _cef_dictionary_value_t::is_equal"]
4803        [::std::mem::offset_of!(_cef_dictionary_value_t, is_equal) - 72usize];
4804    ["Offset of field: _cef_dictionary_value_t::copy"]
4805        [::std::mem::offset_of!(_cef_dictionary_value_t, copy) - 80usize];
4806    ["Offset of field: _cef_dictionary_value_t::get_size"]
4807        [::std::mem::offset_of!(_cef_dictionary_value_t, get_size) - 88usize];
4808    ["Offset of field: _cef_dictionary_value_t::clear"]
4809        [::std::mem::offset_of!(_cef_dictionary_value_t, clear) - 96usize];
4810    ["Offset of field: _cef_dictionary_value_t::has_key"]
4811        [::std::mem::offset_of!(_cef_dictionary_value_t, has_key) - 104usize];
4812    ["Offset of field: _cef_dictionary_value_t::get_keys"]
4813        [::std::mem::offset_of!(_cef_dictionary_value_t, get_keys) - 112usize];
4814    ["Offset of field: _cef_dictionary_value_t::remove"]
4815        [::std::mem::offset_of!(_cef_dictionary_value_t, remove) - 120usize];
4816    ["Offset of field: _cef_dictionary_value_t::get_type"]
4817        [::std::mem::offset_of!(_cef_dictionary_value_t, get_type) - 128usize];
4818    ["Offset of field: _cef_dictionary_value_t::get_value"]
4819        [::std::mem::offset_of!(_cef_dictionary_value_t, get_value) - 136usize];
4820    ["Offset of field: _cef_dictionary_value_t::get_bool"]
4821        [::std::mem::offset_of!(_cef_dictionary_value_t, get_bool) - 144usize];
4822    ["Offset of field: _cef_dictionary_value_t::get_int"]
4823        [::std::mem::offset_of!(_cef_dictionary_value_t, get_int) - 152usize];
4824    ["Offset of field: _cef_dictionary_value_t::get_double"]
4825        [::std::mem::offset_of!(_cef_dictionary_value_t, get_double) - 160usize];
4826    ["Offset of field: _cef_dictionary_value_t::get_string"]
4827        [::std::mem::offset_of!(_cef_dictionary_value_t, get_string) - 168usize];
4828    ["Offset of field: _cef_dictionary_value_t::get_binary"]
4829        [::std::mem::offset_of!(_cef_dictionary_value_t, get_binary) - 176usize];
4830    ["Offset of field: _cef_dictionary_value_t::get_dictionary"]
4831        [::std::mem::offset_of!(_cef_dictionary_value_t, get_dictionary) - 184usize];
4832    ["Offset of field: _cef_dictionary_value_t::get_list"]
4833        [::std::mem::offset_of!(_cef_dictionary_value_t, get_list) - 192usize];
4834    ["Offset of field: _cef_dictionary_value_t::set_value"]
4835        [::std::mem::offset_of!(_cef_dictionary_value_t, set_value) - 200usize];
4836    ["Offset of field: _cef_dictionary_value_t::set_null"]
4837        [::std::mem::offset_of!(_cef_dictionary_value_t, set_null) - 208usize];
4838    ["Offset of field: _cef_dictionary_value_t::set_bool"]
4839        [::std::mem::offset_of!(_cef_dictionary_value_t, set_bool) - 216usize];
4840    ["Offset of field: _cef_dictionary_value_t::set_int"]
4841        [::std::mem::offset_of!(_cef_dictionary_value_t, set_int) - 224usize];
4842    ["Offset of field: _cef_dictionary_value_t::set_double"]
4843        [::std::mem::offset_of!(_cef_dictionary_value_t, set_double) - 232usize];
4844    ["Offset of field: _cef_dictionary_value_t::set_string"]
4845        [::std::mem::offset_of!(_cef_dictionary_value_t, set_string) - 240usize];
4846    ["Offset of field: _cef_dictionary_value_t::set_binary"]
4847        [::std::mem::offset_of!(_cef_dictionary_value_t, set_binary) - 248usize];
4848    ["Offset of field: _cef_dictionary_value_t::set_dictionary"]
4849        [::std::mem::offset_of!(_cef_dictionary_value_t, set_dictionary) - 256usize];
4850    ["Offset of field: _cef_dictionary_value_t::set_list"]
4851        [::std::mem::offset_of!(_cef_dictionary_value_t, set_list) - 264usize];
4852};
4853#[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"]
4854pub type cef_dictionary_value_t = _cef_dictionary_value_t;
4855unsafe extern "C" {
4856    #[doc = "\n Creates a new object that is not owned by any other object.\n"]
4857    pub fn cef_dictionary_value_create() -> *mut cef_dictionary_value_t;
4858}
4859#[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"]
4860#[repr(C)]
4861#[derive(Debug, Copy, Clone)]
4862pub struct _cef_list_value_t {
4863    #[doc = "\n Base structure.\n"]
4864    pub base: cef_base_ref_counted_t,
4865    #[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"]
4866    pub is_valid: ::std::option::Option<
4867        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
4868    >,
4869    #[doc = "\n Returns true (1) if this object is currently owned by another object.\n"]
4870    pub is_owned: ::std::option::Option<
4871        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
4872    >,
4873    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
4874    pub is_read_only: ::std::option::Option<
4875        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
4876    >,
4877    #[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"]
4878    pub is_same: ::std::option::Option<
4879        unsafe extern "C" fn(
4880            self_: *mut _cef_list_value_t,
4881            that: *mut _cef_list_value_t,
4882        ) -> ::std::os::raw::c_int,
4883    >,
4884    #[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"]
4885    pub is_equal: ::std::option::Option<
4886        unsafe extern "C" fn(
4887            self_: *mut _cef_list_value_t,
4888            that: *mut _cef_list_value_t,
4889        ) -> ::std::os::raw::c_int,
4890    >,
4891    #[doc = "\n Returns a writable copy of this object.\n"]
4892    pub copy: ::std::option::Option<
4893        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> *mut _cef_list_value_t,
4894    >,
4895    #[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"]
4896    pub set_size: ::std::option::Option<
4897        unsafe extern "C" fn(self_: *mut _cef_list_value_t, size: usize) -> ::std::os::raw::c_int,
4898    >,
4899    #[doc = "\n Returns the number of values.\n"]
4900    pub get_size:
4901        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> usize>,
4902    #[doc = "\n Removes all values. Returns true (1) on success.\n"]
4903    pub clear: ::std::option::Option<
4904        unsafe extern "C" fn(self_: *mut _cef_list_value_t) -> ::std::os::raw::c_int,
4905    >,
4906    #[doc = "\n Removes the value at the specified index.\n"]
4907    pub remove: ::std::option::Option<
4908        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
4909    >,
4910    #[doc = "\n Returns the value type at the specified index.\n"]
4911    pub get_type: ::std::option::Option<
4912        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> cef_value_type_t,
4913    >,
4914    #[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"]
4915    pub get_value: ::std::option::Option<
4916        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> *mut _cef_value_t,
4917    >,
4918    #[doc = "\n Returns the value at the specified index as type bool.\n"]
4919    pub get_bool: ::std::option::Option<
4920        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
4921    >,
4922    #[doc = "\n Returns the value at the specified index as type int.\n"]
4923    pub get_int: ::std::option::Option<
4924        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
4925    >,
4926    #[doc = "\n Returns the value at the specified index as type double.\n"]
4927    pub get_double: ::std::option::Option<
4928        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> f64,
4929    >,
4930    #[doc = "\n Returns the value at the specified index as type string.\n"]
4931    pub get_string: ::std::option::Option<
4932        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> cef_string_userfree_t,
4933    >,
4934    #[doc = "\n Returns the value at the specified index as type binary. The returned\n value will reference existing data.\n"]
4935    pub get_binary: ::std::option::Option<
4936        unsafe extern "C" fn(
4937            self_: *mut _cef_list_value_t,
4938            index: usize,
4939        ) -> *mut _cef_binary_value_t,
4940    >,
4941    #[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"]
4942    pub get_dictionary: ::std::option::Option<
4943        unsafe extern "C" fn(
4944            self_: *mut _cef_list_value_t,
4945            index: usize,
4946        ) -> *mut _cef_dictionary_value_t,
4947    >,
4948    #[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"]
4949    pub get_list: ::std::option::Option<
4950        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> *mut _cef_list_value_t,
4951    >,
4952    #[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"]
4953    pub set_value: ::std::option::Option<
4954        unsafe extern "C" fn(
4955            self_: *mut _cef_list_value_t,
4956            index: usize,
4957            value: *mut _cef_value_t,
4958        ) -> ::std::os::raw::c_int,
4959    >,
4960    #[doc = "\n Sets the value at the specified index as type null. Returns true (1) if\n the value was set successfully.\n"]
4961    pub set_null: ::std::option::Option<
4962        unsafe extern "C" fn(self_: *mut _cef_list_value_t, index: usize) -> ::std::os::raw::c_int,
4963    >,
4964    #[doc = "\n Sets the value at the specified index as type bool. Returns true (1) if\n the value was set successfully.\n"]
4965    pub set_bool: ::std::option::Option<
4966        unsafe extern "C" fn(
4967            self_: *mut _cef_list_value_t,
4968            index: usize,
4969            value: ::std::os::raw::c_int,
4970        ) -> ::std::os::raw::c_int,
4971    >,
4972    #[doc = "\n Sets the value at the specified index as type int. Returns true (1) if the\n value was set successfully.\n"]
4973    pub set_int: ::std::option::Option<
4974        unsafe extern "C" fn(
4975            self_: *mut _cef_list_value_t,
4976            index: usize,
4977            value: ::std::os::raw::c_int,
4978        ) -> ::std::os::raw::c_int,
4979    >,
4980    #[doc = "\n Sets the value at the specified index as type double. Returns true (1) if\n the value was set successfully.\n"]
4981    pub set_double: ::std::option::Option<
4982        unsafe extern "C" fn(
4983            self_: *mut _cef_list_value_t,
4984            index: usize,
4985            value: f64,
4986        ) -> ::std::os::raw::c_int,
4987    >,
4988    #[doc = "\n Sets the value at the specified index as type string. Returns true (1) if\n the value was set successfully.\n"]
4989    pub set_string: ::std::option::Option<
4990        unsafe extern "C" fn(
4991            self_: *mut _cef_list_value_t,
4992            index: usize,
4993            value: *const cef_string_t,
4994        ) -> ::std::os::raw::c_int,
4995    >,
4996    #[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"]
4997    pub set_binary: ::std::option::Option<
4998        unsafe extern "C" fn(
4999            self_: *mut _cef_list_value_t,
5000            index: usize,
5001            value: *mut _cef_binary_value_t,
5002        ) -> ::std::os::raw::c_int,
5003    >,
5004    #[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"]
5005    pub set_dictionary: ::std::option::Option<
5006        unsafe extern "C" fn(
5007            self_: *mut _cef_list_value_t,
5008            index: usize,
5009            value: *mut _cef_dictionary_value_t,
5010        ) -> ::std::os::raw::c_int,
5011    >,
5012    #[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"]
5013    pub set_list: ::std::option::Option<
5014        unsafe extern "C" fn(
5015            self_: *mut _cef_list_value_t,
5016            index: usize,
5017            value: *mut _cef_list_value_t,
5018        ) -> ::std::os::raw::c_int,
5019    >,
5020}
5021#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5022const _: () = {
5023    ["Size of _cef_list_value_t"][::std::mem::size_of::<_cef_list_value_t>() - 264usize];
5024    ["Alignment of _cef_list_value_t"][::std::mem::align_of::<_cef_list_value_t>() - 8usize];
5025    ["Offset of field: _cef_list_value_t::base"]
5026        [::std::mem::offset_of!(_cef_list_value_t, base) - 0usize];
5027    ["Offset of field: _cef_list_value_t::is_valid"]
5028        [::std::mem::offset_of!(_cef_list_value_t, is_valid) - 40usize];
5029    ["Offset of field: _cef_list_value_t::is_owned"]
5030        [::std::mem::offset_of!(_cef_list_value_t, is_owned) - 48usize];
5031    ["Offset of field: _cef_list_value_t::is_read_only"]
5032        [::std::mem::offset_of!(_cef_list_value_t, is_read_only) - 56usize];
5033    ["Offset of field: _cef_list_value_t::is_same"]
5034        [::std::mem::offset_of!(_cef_list_value_t, is_same) - 64usize];
5035    ["Offset of field: _cef_list_value_t::is_equal"]
5036        [::std::mem::offset_of!(_cef_list_value_t, is_equal) - 72usize];
5037    ["Offset of field: _cef_list_value_t::copy"]
5038        [::std::mem::offset_of!(_cef_list_value_t, copy) - 80usize];
5039    ["Offset of field: _cef_list_value_t::set_size"]
5040        [::std::mem::offset_of!(_cef_list_value_t, set_size) - 88usize];
5041    ["Offset of field: _cef_list_value_t::get_size"]
5042        [::std::mem::offset_of!(_cef_list_value_t, get_size) - 96usize];
5043    ["Offset of field: _cef_list_value_t::clear"]
5044        [::std::mem::offset_of!(_cef_list_value_t, clear) - 104usize];
5045    ["Offset of field: _cef_list_value_t::remove"]
5046        [::std::mem::offset_of!(_cef_list_value_t, remove) - 112usize];
5047    ["Offset of field: _cef_list_value_t::get_type"]
5048        [::std::mem::offset_of!(_cef_list_value_t, get_type) - 120usize];
5049    ["Offset of field: _cef_list_value_t::get_value"]
5050        [::std::mem::offset_of!(_cef_list_value_t, get_value) - 128usize];
5051    ["Offset of field: _cef_list_value_t::get_bool"]
5052        [::std::mem::offset_of!(_cef_list_value_t, get_bool) - 136usize];
5053    ["Offset of field: _cef_list_value_t::get_int"]
5054        [::std::mem::offset_of!(_cef_list_value_t, get_int) - 144usize];
5055    ["Offset of field: _cef_list_value_t::get_double"]
5056        [::std::mem::offset_of!(_cef_list_value_t, get_double) - 152usize];
5057    ["Offset of field: _cef_list_value_t::get_string"]
5058        [::std::mem::offset_of!(_cef_list_value_t, get_string) - 160usize];
5059    ["Offset of field: _cef_list_value_t::get_binary"]
5060        [::std::mem::offset_of!(_cef_list_value_t, get_binary) - 168usize];
5061    ["Offset of field: _cef_list_value_t::get_dictionary"]
5062        [::std::mem::offset_of!(_cef_list_value_t, get_dictionary) - 176usize];
5063    ["Offset of field: _cef_list_value_t::get_list"]
5064        [::std::mem::offset_of!(_cef_list_value_t, get_list) - 184usize];
5065    ["Offset of field: _cef_list_value_t::set_value"]
5066        [::std::mem::offset_of!(_cef_list_value_t, set_value) - 192usize];
5067    ["Offset of field: _cef_list_value_t::set_null"]
5068        [::std::mem::offset_of!(_cef_list_value_t, set_null) - 200usize];
5069    ["Offset of field: _cef_list_value_t::set_bool"]
5070        [::std::mem::offset_of!(_cef_list_value_t, set_bool) - 208usize];
5071    ["Offset of field: _cef_list_value_t::set_int"]
5072        [::std::mem::offset_of!(_cef_list_value_t, set_int) - 216usize];
5073    ["Offset of field: _cef_list_value_t::set_double"]
5074        [::std::mem::offset_of!(_cef_list_value_t, set_double) - 224usize];
5075    ["Offset of field: _cef_list_value_t::set_string"]
5076        [::std::mem::offset_of!(_cef_list_value_t, set_string) - 232usize];
5077    ["Offset of field: _cef_list_value_t::set_binary"]
5078        [::std::mem::offset_of!(_cef_list_value_t, set_binary) - 240usize];
5079    ["Offset of field: _cef_list_value_t::set_dictionary"]
5080        [::std::mem::offset_of!(_cef_list_value_t, set_dictionary) - 248usize];
5081    ["Offset of field: _cef_list_value_t::set_list"]
5082        [::std::mem::offset_of!(_cef_list_value_t, set_list) - 256usize];
5083};
5084#[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"]
5085pub type cef_list_value_t = _cef_list_value_t;
5086unsafe extern "C" {
5087    #[doc = "\n Creates a new object that is not owned by any other object.\n"]
5088    pub fn cef_list_value_create() -> *mut cef_list_value_t;
5089}
5090#[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"]
5091#[repr(C)]
5092#[derive(Debug, Copy, Clone)]
5093pub struct _cef_image_t {
5094    #[doc = "\n Base structure.\n"]
5095    pub base: cef_base_ref_counted_t,
5096    #[doc = "\n Returns true (1) if this Image is NULL.\n"]
5097    pub is_empty: ::std::option::Option<
5098        unsafe extern "C" fn(self_: *mut _cef_image_t) -> ::std::os::raw::c_int,
5099    >,
5100    #[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"]
5101    pub is_same: ::std::option::Option<
5102        unsafe extern "C" fn(
5103            self_: *mut _cef_image_t,
5104            that: *mut _cef_image_t,
5105        ) -> ::std::os::raw::c_int,
5106    >,
5107    #[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"]
5108    pub add_bitmap: ::std::option::Option<
5109        unsafe extern "C" fn(
5110            self_: *mut _cef_image_t,
5111            scale_factor: f32,
5112            pixel_width: ::std::os::raw::c_int,
5113            pixel_height: ::std::os::raw::c_int,
5114            color_type: cef_color_type_t,
5115            alpha_type: cef_alpha_type_t,
5116            pixel_data: *const ::std::os::raw::c_void,
5117            pixel_data_size: usize,
5118        ) -> ::std::os::raw::c_int,
5119    >,
5120    #[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"]
5121    pub add_png: ::std::option::Option<
5122        unsafe extern "C" fn(
5123            self_: *mut _cef_image_t,
5124            scale_factor: f32,
5125            png_data: *const ::std::os::raw::c_void,
5126            png_data_size: usize,
5127        ) -> ::std::os::raw::c_int,
5128    >,
5129    #[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"]
5130    pub add_jpeg: ::std::option::Option<
5131        unsafe extern "C" fn(
5132            self_: *mut _cef_image_t,
5133            scale_factor: f32,
5134            jpeg_data: *const ::std::os::raw::c_void,
5135            jpeg_data_size: usize,
5136        ) -> ::std::os::raw::c_int,
5137    >,
5138    #[doc = "\n Returns the image width in density independent pixel (DIP) units.\n"]
5139    pub get_width: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_image_t) -> usize>,
5140    #[doc = "\n Returns the image height in density independent pixel (DIP) units.\n"]
5141    pub get_height: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_image_t) -> usize>,
5142    #[doc = "\n Returns true (1) if this image contains a representation for\n |scale_factor|.\n"]
5143    pub has_representation: ::std::option::Option<
5144        unsafe extern "C" fn(self_: *mut _cef_image_t, scale_factor: f32) -> ::std::os::raw::c_int,
5145    >,
5146    #[doc = "\n Removes the representation for |scale_factor|. Returns true (1) on\n success.\n"]
5147    pub remove_representation: ::std::option::Option<
5148        unsafe extern "C" fn(self_: *mut _cef_image_t, scale_factor: f32) -> ::std::os::raw::c_int,
5149    >,
5150    #[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"]
5151    pub get_representation_info: ::std::option::Option<
5152        unsafe extern "C" fn(
5153            self_: *mut _cef_image_t,
5154            scale_factor: f32,
5155            actual_scale_factor: *mut f32,
5156            pixel_width: *mut ::std::os::raw::c_int,
5157            pixel_height: *mut ::std::os::raw::c_int,
5158        ) -> ::std::os::raw::c_int,
5159    >,
5160    #[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"]
5161    pub get_as_bitmap: ::std::option::Option<
5162        unsafe extern "C" fn(
5163            self_: *mut _cef_image_t,
5164            scale_factor: f32,
5165            color_type: cef_color_type_t,
5166            alpha_type: cef_alpha_type_t,
5167            pixel_width: *mut ::std::os::raw::c_int,
5168            pixel_height: *mut ::std::os::raw::c_int,
5169        ) -> *mut _cef_binary_value_t,
5170    >,
5171    #[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"]
5172    pub get_as_png: ::std::option::Option<
5173        unsafe extern "C" fn(
5174            self_: *mut _cef_image_t,
5175            scale_factor: f32,
5176            with_transparency: ::std::os::raw::c_int,
5177            pixel_width: *mut ::std::os::raw::c_int,
5178            pixel_height: *mut ::std::os::raw::c_int,
5179        ) -> *mut _cef_binary_value_t,
5180    >,
5181    #[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"]
5182    pub get_as_jpeg: ::std::option::Option<
5183        unsafe extern "C" fn(
5184            self_: *mut _cef_image_t,
5185            scale_factor: f32,
5186            quality: ::std::os::raw::c_int,
5187            pixel_width: *mut ::std::os::raw::c_int,
5188            pixel_height: *mut ::std::os::raw::c_int,
5189        ) -> *mut _cef_binary_value_t,
5190    >,
5191}
5192#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5193const _: () = {
5194    ["Size of _cef_image_t"][::std::mem::size_of::<_cef_image_t>() - 144usize];
5195    ["Alignment of _cef_image_t"][::std::mem::align_of::<_cef_image_t>() - 8usize];
5196    ["Offset of field: _cef_image_t::base"][::std::mem::offset_of!(_cef_image_t, base) - 0usize];
5197    ["Offset of field: _cef_image_t::is_empty"]
5198        [::std::mem::offset_of!(_cef_image_t, is_empty) - 40usize];
5199    ["Offset of field: _cef_image_t::is_same"]
5200        [::std::mem::offset_of!(_cef_image_t, is_same) - 48usize];
5201    ["Offset of field: _cef_image_t::add_bitmap"]
5202        [::std::mem::offset_of!(_cef_image_t, add_bitmap) - 56usize];
5203    ["Offset of field: _cef_image_t::add_png"]
5204        [::std::mem::offset_of!(_cef_image_t, add_png) - 64usize];
5205    ["Offset of field: _cef_image_t::add_jpeg"]
5206        [::std::mem::offset_of!(_cef_image_t, add_jpeg) - 72usize];
5207    ["Offset of field: _cef_image_t::get_width"]
5208        [::std::mem::offset_of!(_cef_image_t, get_width) - 80usize];
5209    ["Offset of field: _cef_image_t::get_height"]
5210        [::std::mem::offset_of!(_cef_image_t, get_height) - 88usize];
5211    ["Offset of field: _cef_image_t::has_representation"]
5212        [::std::mem::offset_of!(_cef_image_t, has_representation) - 96usize];
5213    ["Offset of field: _cef_image_t::remove_representation"]
5214        [::std::mem::offset_of!(_cef_image_t, remove_representation) - 104usize];
5215    ["Offset of field: _cef_image_t::get_representation_info"]
5216        [::std::mem::offset_of!(_cef_image_t, get_representation_info) - 112usize];
5217    ["Offset of field: _cef_image_t::get_as_bitmap"]
5218        [::std::mem::offset_of!(_cef_image_t, get_as_bitmap) - 120usize];
5219    ["Offset of field: _cef_image_t::get_as_png"]
5220        [::std::mem::offset_of!(_cef_image_t, get_as_png) - 128usize];
5221    ["Offset of field: _cef_image_t::get_as_jpeg"]
5222        [::std::mem::offset_of!(_cef_image_t, get_as_jpeg) - 136usize];
5223};
5224#[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"]
5225pub type cef_image_t = _cef_image_t;
5226unsafe extern "C" {
5227    #[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"]
5228    pub fn cef_image_create() -> *mut cef_image_t;
5229}
5230#[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"]
5231#[repr(C)]
5232#[derive(Debug, Copy, Clone)]
5233pub struct _cef_read_handler_t {
5234    #[doc = "\n Base structure.\n"]
5235    pub base: cef_base_ref_counted_t,
5236    #[doc = "\n Read raw binary data.\n"]
5237    pub read: ::std::option::Option<
5238        unsafe extern "C" fn(
5239            self_: *mut _cef_read_handler_t,
5240            ptr: *mut ::std::os::raw::c_void,
5241            size: usize,
5242            n: usize,
5243        ) -> usize,
5244    >,
5245    #[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"]
5246    pub seek: ::std::option::Option<
5247        unsafe extern "C" fn(
5248            self_: *mut _cef_read_handler_t,
5249            offset: i64,
5250            whence: ::std::os::raw::c_int,
5251        ) -> ::std::os::raw::c_int,
5252    >,
5253    #[doc = "\n Return the current offset position.\n"]
5254    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> i64>,
5255    #[doc = "\n Return non-zero if at end of file.\n"]
5256    pub eof: ::std::option::Option<
5257        unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> ::std::os::raw::c_int,
5258    >,
5259    #[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"]
5260    pub may_block: ::std::option::Option<
5261        unsafe extern "C" fn(self_: *mut _cef_read_handler_t) -> ::std::os::raw::c_int,
5262    >,
5263}
5264#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5265const _: () = {
5266    ["Size of _cef_read_handler_t"][::std::mem::size_of::<_cef_read_handler_t>() - 80usize];
5267    ["Alignment of _cef_read_handler_t"][::std::mem::align_of::<_cef_read_handler_t>() - 8usize];
5268    ["Offset of field: _cef_read_handler_t::base"]
5269        [::std::mem::offset_of!(_cef_read_handler_t, base) - 0usize];
5270    ["Offset of field: _cef_read_handler_t::read"]
5271        [::std::mem::offset_of!(_cef_read_handler_t, read) - 40usize];
5272    ["Offset of field: _cef_read_handler_t::seek"]
5273        [::std::mem::offset_of!(_cef_read_handler_t, seek) - 48usize];
5274    ["Offset of field: _cef_read_handler_t::tell"]
5275        [::std::mem::offset_of!(_cef_read_handler_t, tell) - 56usize];
5276    ["Offset of field: _cef_read_handler_t::eof"]
5277        [::std::mem::offset_of!(_cef_read_handler_t, eof) - 64usize];
5278    ["Offset of field: _cef_read_handler_t::may_block"]
5279        [::std::mem::offset_of!(_cef_read_handler_t, may_block) - 72usize];
5280};
5281#[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"]
5282pub type cef_read_handler_t = _cef_read_handler_t;
5283#[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"]
5284#[repr(C)]
5285#[derive(Debug, Copy, Clone)]
5286pub struct _cef_stream_reader_t {
5287    #[doc = "\n Base structure.\n"]
5288    pub base: cef_base_ref_counted_t,
5289    #[doc = "\n Read raw binary data.\n"]
5290    pub read: ::std::option::Option<
5291        unsafe extern "C" fn(
5292            self_: *mut _cef_stream_reader_t,
5293            ptr: *mut ::std::os::raw::c_void,
5294            size: usize,
5295            n: usize,
5296        ) -> usize,
5297    >,
5298    #[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"]
5299    pub seek: ::std::option::Option<
5300        unsafe extern "C" fn(
5301            self_: *mut _cef_stream_reader_t,
5302            offset: i64,
5303            whence: ::std::os::raw::c_int,
5304        ) -> ::std::os::raw::c_int,
5305    >,
5306    #[doc = "\n Return the current offset position.\n"]
5307    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> i64>,
5308    #[doc = "\n Return non-zero if at end of file.\n"]
5309    pub eof: ::std::option::Option<
5310        unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> ::std::os::raw::c_int,
5311    >,
5312    #[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"]
5313    pub may_block: ::std::option::Option<
5314        unsafe extern "C" fn(self_: *mut _cef_stream_reader_t) -> ::std::os::raw::c_int,
5315    >,
5316}
5317#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5318const _: () = {
5319    ["Size of _cef_stream_reader_t"][::std::mem::size_of::<_cef_stream_reader_t>() - 80usize];
5320    ["Alignment of _cef_stream_reader_t"][::std::mem::align_of::<_cef_stream_reader_t>() - 8usize];
5321    ["Offset of field: _cef_stream_reader_t::base"]
5322        [::std::mem::offset_of!(_cef_stream_reader_t, base) - 0usize];
5323    ["Offset of field: _cef_stream_reader_t::read"]
5324        [::std::mem::offset_of!(_cef_stream_reader_t, read) - 40usize];
5325    ["Offset of field: _cef_stream_reader_t::seek"]
5326        [::std::mem::offset_of!(_cef_stream_reader_t, seek) - 48usize];
5327    ["Offset of field: _cef_stream_reader_t::tell"]
5328        [::std::mem::offset_of!(_cef_stream_reader_t, tell) - 56usize];
5329    ["Offset of field: _cef_stream_reader_t::eof"]
5330        [::std::mem::offset_of!(_cef_stream_reader_t, eof) - 64usize];
5331    ["Offset of field: _cef_stream_reader_t::may_block"]
5332        [::std::mem::offset_of!(_cef_stream_reader_t, may_block) - 72usize];
5333};
5334#[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"]
5335pub type cef_stream_reader_t = _cef_stream_reader_t;
5336unsafe extern "C" {
5337    #[doc = "\n Create a new cef_stream_reader_t object from a file.\n"]
5338    pub fn cef_stream_reader_create_for_file(
5339        fileName: *const cef_string_t,
5340    ) -> *mut cef_stream_reader_t;
5341}
5342unsafe extern "C" {
5343    #[doc = "\n Create a new cef_stream_reader_t object from data.\n"]
5344    pub fn cef_stream_reader_create_for_data(
5345        data: *mut ::std::os::raw::c_void,
5346        size: usize,
5347    ) -> *mut cef_stream_reader_t;
5348}
5349unsafe extern "C" {
5350    #[doc = "\n Create a new cef_stream_reader_t object from a custom handler.\n"]
5351    pub fn cef_stream_reader_create_for_handler(
5352        handler: *mut cef_read_handler_t,
5353    ) -> *mut cef_stream_reader_t;
5354}
5355#[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"]
5356#[repr(C)]
5357#[derive(Debug, Copy, Clone)]
5358pub struct _cef_write_handler_t {
5359    #[doc = "\n Base structure.\n"]
5360    pub base: cef_base_ref_counted_t,
5361    #[doc = "\n Write raw binary data.\n"]
5362    pub write: ::std::option::Option<
5363        unsafe extern "C" fn(
5364            self_: *mut _cef_write_handler_t,
5365            ptr: *const ::std::os::raw::c_void,
5366            size: usize,
5367            n: usize,
5368        ) -> usize,
5369    >,
5370    #[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"]
5371    pub seek: ::std::option::Option<
5372        unsafe extern "C" fn(
5373            self_: *mut _cef_write_handler_t,
5374            offset: i64,
5375            whence: ::std::os::raw::c_int,
5376        ) -> ::std::os::raw::c_int,
5377    >,
5378    #[doc = "\n Return the current offset position.\n"]
5379    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> i64>,
5380    #[doc = "\n Flush the stream.\n"]
5381    pub flush: ::std::option::Option<
5382        unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> ::std::os::raw::c_int,
5383    >,
5384    #[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"]
5385    pub may_block: ::std::option::Option<
5386        unsafe extern "C" fn(self_: *mut _cef_write_handler_t) -> ::std::os::raw::c_int,
5387    >,
5388}
5389#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5390const _: () = {
5391    ["Size of _cef_write_handler_t"][::std::mem::size_of::<_cef_write_handler_t>() - 80usize];
5392    ["Alignment of _cef_write_handler_t"][::std::mem::align_of::<_cef_write_handler_t>() - 8usize];
5393    ["Offset of field: _cef_write_handler_t::base"]
5394        [::std::mem::offset_of!(_cef_write_handler_t, base) - 0usize];
5395    ["Offset of field: _cef_write_handler_t::write"]
5396        [::std::mem::offset_of!(_cef_write_handler_t, write) - 40usize];
5397    ["Offset of field: _cef_write_handler_t::seek"]
5398        [::std::mem::offset_of!(_cef_write_handler_t, seek) - 48usize];
5399    ["Offset of field: _cef_write_handler_t::tell"]
5400        [::std::mem::offset_of!(_cef_write_handler_t, tell) - 56usize];
5401    ["Offset of field: _cef_write_handler_t::flush"]
5402        [::std::mem::offset_of!(_cef_write_handler_t, flush) - 64usize];
5403    ["Offset of field: _cef_write_handler_t::may_block"]
5404        [::std::mem::offset_of!(_cef_write_handler_t, may_block) - 72usize];
5405};
5406#[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"]
5407pub type cef_write_handler_t = _cef_write_handler_t;
5408#[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"]
5409#[repr(C)]
5410#[derive(Debug, Copy, Clone)]
5411pub struct _cef_stream_writer_t {
5412    #[doc = "\n Base structure.\n"]
5413    pub base: cef_base_ref_counted_t,
5414    #[doc = "\n Write raw binary data.\n"]
5415    pub write: ::std::option::Option<
5416        unsafe extern "C" fn(
5417            self_: *mut _cef_stream_writer_t,
5418            ptr: *const ::std::os::raw::c_void,
5419            size: usize,
5420            n: usize,
5421        ) -> usize,
5422    >,
5423    #[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"]
5424    pub seek: ::std::option::Option<
5425        unsafe extern "C" fn(
5426            self_: *mut _cef_stream_writer_t,
5427            offset: i64,
5428            whence: ::std::os::raw::c_int,
5429        ) -> ::std::os::raw::c_int,
5430    >,
5431    #[doc = "\n Return the current offset position.\n"]
5432    pub tell: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> i64>,
5433    #[doc = "\n Flush the stream.\n"]
5434    pub flush: ::std::option::Option<
5435        unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> ::std::os::raw::c_int,
5436    >,
5437    #[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"]
5438    pub may_block: ::std::option::Option<
5439        unsafe extern "C" fn(self_: *mut _cef_stream_writer_t) -> ::std::os::raw::c_int,
5440    >,
5441}
5442#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5443const _: () = {
5444    ["Size of _cef_stream_writer_t"][::std::mem::size_of::<_cef_stream_writer_t>() - 80usize];
5445    ["Alignment of _cef_stream_writer_t"][::std::mem::align_of::<_cef_stream_writer_t>() - 8usize];
5446    ["Offset of field: _cef_stream_writer_t::base"]
5447        [::std::mem::offset_of!(_cef_stream_writer_t, base) - 0usize];
5448    ["Offset of field: _cef_stream_writer_t::write"]
5449        [::std::mem::offset_of!(_cef_stream_writer_t, write) - 40usize];
5450    ["Offset of field: _cef_stream_writer_t::seek"]
5451        [::std::mem::offset_of!(_cef_stream_writer_t, seek) - 48usize];
5452    ["Offset of field: _cef_stream_writer_t::tell"]
5453        [::std::mem::offset_of!(_cef_stream_writer_t, tell) - 56usize];
5454    ["Offset of field: _cef_stream_writer_t::flush"]
5455        [::std::mem::offset_of!(_cef_stream_writer_t, flush) - 64usize];
5456    ["Offset of field: _cef_stream_writer_t::may_block"]
5457        [::std::mem::offset_of!(_cef_stream_writer_t, may_block) - 72usize];
5458};
5459#[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"]
5460pub type cef_stream_writer_t = _cef_stream_writer_t;
5461unsafe extern "C" {
5462    #[doc = "\n Create a new cef_stream_writer_t object for a file.\n"]
5463    pub fn cef_stream_writer_create_for_file(
5464        fileName: *const cef_string_t,
5465    ) -> *mut cef_stream_writer_t;
5466}
5467unsafe extern "C" {
5468    #[doc = "\n Create a new cef_stream_writer_t object for a custom handler.\n"]
5469    pub fn cef_stream_writer_create_for_handler(
5470        handler: *mut cef_write_handler_t,
5471    ) -> *mut cef_stream_writer_t;
5472}
5473#[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"]
5474#[repr(C)]
5475#[derive(Debug, Copy, Clone)]
5476pub struct _cef_drag_data_t {
5477    #[doc = "\n Base structure.\n"]
5478    pub base: cef_base_ref_counted_t,
5479    #[doc = "\n Returns a copy of the current object.\n"]
5480    pub clone: ::std::option::Option<
5481        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> *mut _cef_drag_data_t,
5482    >,
5483    #[doc = "\n Returns true (1) if this object is read-only.\n"]
5484    pub is_read_only: ::std::option::Option<
5485        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5486    >,
5487    #[doc = "\n Returns true (1) if the drag data is a link.\n"]
5488    pub is_link: ::std::option::Option<
5489        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5490    >,
5491    #[doc = "\n Returns true (1) if the drag data is a text or html fragment.\n"]
5492    pub is_fragment: ::std::option::Option<
5493        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5494    >,
5495    #[doc = "\n Returns true (1) if the drag data is a file.\n"]
5496    pub is_file: ::std::option::Option<
5497        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5498    >,
5499    #[doc = "\n Return the link URL that is being dragged.\n"]
5500    pub get_link_url: ::std::option::Option<
5501        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5502    >,
5503    #[doc = "\n Return the title associated with the link being dragged.\n"]
5504    pub get_link_title: ::std::option::Option<
5505        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5506    >,
5507    #[doc = "\n Return the metadata, if any, associated with the link being dragged.\n"]
5508    pub get_link_metadata: ::std::option::Option<
5509        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5510    >,
5511    #[doc = "\n Return the plain text fragment that is being dragged.\n"]
5512    pub get_fragment_text: ::std::option::Option<
5513        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5514    >,
5515    #[doc = "\n Return the text/html fragment that is being dragged.\n"]
5516    pub get_fragment_html: ::std::option::Option<
5517        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5518    >,
5519    #[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"]
5520    pub get_fragment_base_url: ::std::option::Option<
5521        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5522    >,
5523    #[doc = "\n Return the name of the file being dragged out of the browser window.\n"]
5524    pub get_file_name: ::std::option::Option<
5525        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_string_userfree_t,
5526    >,
5527    #[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"]
5528    pub get_file_contents: ::std::option::Option<
5529        unsafe extern "C" fn(
5530            self_: *mut _cef_drag_data_t,
5531            writer: *mut _cef_stream_writer_t,
5532        ) -> usize,
5533    >,
5534    #[doc = "\n Retrieve the list of file names that are being dragged into the browser\n window.\n"]
5535    pub get_file_names: ::std::option::Option<
5536        unsafe extern "C" fn(
5537            self_: *mut _cef_drag_data_t,
5538            names: cef_string_list_t,
5539        ) -> ::std::os::raw::c_int,
5540    >,
5541    #[doc = "\n Retrieve the list of file paths that are being dragged into the browser\n window.\n"]
5542    pub get_file_paths: ::std::option::Option<
5543        unsafe extern "C" fn(
5544            self_: *mut _cef_drag_data_t,
5545            paths: cef_string_list_t,
5546        ) -> ::std::os::raw::c_int,
5547    >,
5548    #[doc = "\n Set the link URL that is being dragged.\n"]
5549    pub set_link_url: ::std::option::Option<
5550        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, url: *const cef_string_t),
5551    >,
5552    #[doc = "\n Set the title associated with the link being dragged.\n"]
5553    pub set_link_title: ::std::option::Option<
5554        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, title: *const cef_string_t),
5555    >,
5556    #[doc = "\n Set the metadata associated with the link being dragged.\n"]
5557    pub set_link_metadata: ::std::option::Option<
5558        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, data: *const cef_string_t),
5559    >,
5560    #[doc = "\n Set the plain text fragment that is being dragged.\n"]
5561    pub set_fragment_text: ::std::option::Option<
5562        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, text: *const cef_string_t),
5563    >,
5564    #[doc = "\n Set the text/html fragment that is being dragged.\n"]
5565    pub set_fragment_html: ::std::option::Option<
5566        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, html: *const cef_string_t),
5567    >,
5568    #[doc = "\n Set the base URL that the fragment came from.\n"]
5569    pub set_fragment_base_url: ::std::option::Option<
5570        unsafe extern "C" fn(self_: *mut _cef_drag_data_t, base_url: *const cef_string_t),
5571    >,
5572    #[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"]
5573    pub reset_file_contents:
5574        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t)>,
5575    #[doc = "\n Add a file that is being dragged into the webview.\n"]
5576    pub add_file: ::std::option::Option<
5577        unsafe extern "C" fn(
5578            self_: *mut _cef_drag_data_t,
5579            path: *const cef_string_t,
5580            display_name: *const cef_string_t,
5581        ),
5582    >,
5583    #[doc = "\n Clear list of filenames.\n"]
5584    pub clear_filenames: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t)>,
5585    #[doc = "\n Get the image representation of drag data. May return NULL if no image\n representation is available.\n"]
5586    pub get_image: ::std::option::Option<
5587        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> *mut _cef_image_t,
5588    >,
5589    #[doc = "\n Get the image hotspot (drag start location relative to image dimensions).\n"]
5590    pub get_image_hotspot:
5591        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> cef_point_t>,
5592    #[doc = "\n Returns true (1) if an image representation of drag data is available.\n"]
5593    pub has_image: ::std::option::Option<
5594        unsafe extern "C" fn(self_: *mut _cef_drag_data_t) -> ::std::os::raw::c_int,
5595    >,
5596}
5597#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5598const _: () = {
5599    ["Size of _cef_drag_data_t"][::std::mem::size_of::<_cef_drag_data_t>() - 256usize];
5600    ["Alignment of _cef_drag_data_t"][::std::mem::align_of::<_cef_drag_data_t>() - 8usize];
5601    ["Offset of field: _cef_drag_data_t::base"]
5602        [::std::mem::offset_of!(_cef_drag_data_t, base) - 0usize];
5603    ["Offset of field: _cef_drag_data_t::clone"]
5604        [::std::mem::offset_of!(_cef_drag_data_t, clone) - 40usize];
5605    ["Offset of field: _cef_drag_data_t::is_read_only"]
5606        [::std::mem::offset_of!(_cef_drag_data_t, is_read_only) - 48usize];
5607    ["Offset of field: _cef_drag_data_t::is_link"]
5608        [::std::mem::offset_of!(_cef_drag_data_t, is_link) - 56usize];
5609    ["Offset of field: _cef_drag_data_t::is_fragment"]
5610        [::std::mem::offset_of!(_cef_drag_data_t, is_fragment) - 64usize];
5611    ["Offset of field: _cef_drag_data_t::is_file"]
5612        [::std::mem::offset_of!(_cef_drag_data_t, is_file) - 72usize];
5613    ["Offset of field: _cef_drag_data_t::get_link_url"]
5614        [::std::mem::offset_of!(_cef_drag_data_t, get_link_url) - 80usize];
5615    ["Offset of field: _cef_drag_data_t::get_link_title"]
5616        [::std::mem::offset_of!(_cef_drag_data_t, get_link_title) - 88usize];
5617    ["Offset of field: _cef_drag_data_t::get_link_metadata"]
5618        [::std::mem::offset_of!(_cef_drag_data_t, get_link_metadata) - 96usize];
5619    ["Offset of field: _cef_drag_data_t::get_fragment_text"]
5620        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_text) - 104usize];
5621    ["Offset of field: _cef_drag_data_t::get_fragment_html"]
5622        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_html) - 112usize];
5623    ["Offset of field: _cef_drag_data_t::get_fragment_base_url"]
5624        [::std::mem::offset_of!(_cef_drag_data_t, get_fragment_base_url) - 120usize];
5625    ["Offset of field: _cef_drag_data_t::get_file_name"]
5626        [::std::mem::offset_of!(_cef_drag_data_t, get_file_name) - 128usize];
5627    ["Offset of field: _cef_drag_data_t::get_file_contents"]
5628        [::std::mem::offset_of!(_cef_drag_data_t, get_file_contents) - 136usize];
5629    ["Offset of field: _cef_drag_data_t::get_file_names"]
5630        [::std::mem::offset_of!(_cef_drag_data_t, get_file_names) - 144usize];
5631    ["Offset of field: _cef_drag_data_t::get_file_paths"]
5632        [::std::mem::offset_of!(_cef_drag_data_t, get_file_paths) - 152usize];
5633    ["Offset of field: _cef_drag_data_t::set_link_url"]
5634        [::std::mem::offset_of!(_cef_drag_data_t, set_link_url) - 160usize];
5635    ["Offset of field: _cef_drag_data_t::set_link_title"]
5636        [::std::mem::offset_of!(_cef_drag_data_t, set_link_title) - 168usize];
5637    ["Offset of field: _cef_drag_data_t::set_link_metadata"]
5638        [::std::mem::offset_of!(_cef_drag_data_t, set_link_metadata) - 176usize];
5639    ["Offset of field: _cef_drag_data_t::set_fragment_text"]
5640        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_text) - 184usize];
5641    ["Offset of field: _cef_drag_data_t::set_fragment_html"]
5642        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_html) - 192usize];
5643    ["Offset of field: _cef_drag_data_t::set_fragment_base_url"]
5644        [::std::mem::offset_of!(_cef_drag_data_t, set_fragment_base_url) - 200usize];
5645    ["Offset of field: _cef_drag_data_t::reset_file_contents"]
5646        [::std::mem::offset_of!(_cef_drag_data_t, reset_file_contents) - 208usize];
5647    ["Offset of field: _cef_drag_data_t::add_file"]
5648        [::std::mem::offset_of!(_cef_drag_data_t, add_file) - 216usize];
5649    ["Offset of field: _cef_drag_data_t::clear_filenames"]
5650        [::std::mem::offset_of!(_cef_drag_data_t, clear_filenames) - 224usize];
5651    ["Offset of field: _cef_drag_data_t::get_image"]
5652        [::std::mem::offset_of!(_cef_drag_data_t, get_image) - 232usize];
5653    ["Offset of field: _cef_drag_data_t::get_image_hotspot"]
5654        [::std::mem::offset_of!(_cef_drag_data_t, get_image_hotspot) - 240usize];
5655    ["Offset of field: _cef_drag_data_t::has_image"]
5656        [::std::mem::offset_of!(_cef_drag_data_t, has_image) - 248usize];
5657};
5658#[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"]
5659pub type cef_drag_data_t = _cef_drag_data_t;
5660unsafe extern "C" {
5661    #[doc = "\n Create a new cef_drag_data_t object.\n"]
5662    pub fn cef_drag_data_create() -> *mut cef_drag_data_t;
5663}
5664#[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"]
5665#[repr(C)]
5666#[derive(Debug, Copy, Clone)]
5667pub struct _cef_domvisitor_t {
5668    #[doc = "\n Base structure.\n"]
5669    pub base: cef_base_ref_counted_t,
5670    #[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"]
5671    pub visit: ::std::option::Option<
5672        unsafe extern "C" fn(self_: *mut _cef_domvisitor_t, document: *mut _cef_domdocument_t),
5673    >,
5674}
5675#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5676const _: () = {
5677    ["Size of _cef_domvisitor_t"][::std::mem::size_of::<_cef_domvisitor_t>() - 48usize];
5678    ["Alignment of _cef_domvisitor_t"][::std::mem::align_of::<_cef_domvisitor_t>() - 8usize];
5679    ["Offset of field: _cef_domvisitor_t::base"]
5680        [::std::mem::offset_of!(_cef_domvisitor_t, base) - 0usize];
5681    ["Offset of field: _cef_domvisitor_t::visit"]
5682        [::std::mem::offset_of!(_cef_domvisitor_t, visit) - 40usize];
5683};
5684#[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"]
5685pub type cef_domvisitor_t = _cef_domvisitor_t;
5686#[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"]
5687#[repr(C)]
5688#[derive(Debug, Copy, Clone)]
5689pub struct _cef_domdocument_t {
5690    #[doc = "\n Base structure.\n"]
5691    pub base: cef_base_ref_counted_t,
5692    #[doc = "\n Returns the document type.\n"]
5693    pub get_type: ::std::option::Option<
5694        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_dom_document_type_t,
5695    >,
5696    #[doc = "\n Returns the root document node.\n"]
5697    pub get_document: ::std::option::Option<
5698        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
5699    >,
5700    #[doc = "\n Returns the BODY node of an HTML document.\n"]
5701    pub get_body: ::std::option::Option<
5702        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
5703    >,
5704    #[doc = "\n Returns the HEAD node of an HTML document.\n"]
5705    pub get_head: ::std::option::Option<
5706        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
5707    >,
5708    #[doc = "\n Returns the title of an HTML document.\n"]
5709    pub get_title: ::std::option::Option<
5710        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
5711    >,
5712    #[doc = "\n Returns the document element with the specified ID value.\n"]
5713    pub get_element_by_id: ::std::option::Option<
5714        unsafe extern "C" fn(
5715            self_: *mut _cef_domdocument_t,
5716            id: *const cef_string_t,
5717        ) -> *mut _cef_domnode_t,
5718    >,
5719    #[doc = "\n Returns the node that currently has keyboard focus.\n"]
5720    pub get_focused_node: ::std::option::Option<
5721        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> *mut _cef_domnode_t,
5722    >,
5723    #[doc = "\n Returns true (1) if a portion of the document is selected.\n"]
5724    pub has_selection: ::std::option::Option<
5725        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
5726    >,
5727    #[doc = "\n Returns the selection offset within the start node.\n"]
5728    pub get_selection_start_offset: ::std::option::Option<
5729        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
5730    >,
5731    #[doc = "\n Returns the selection offset within the end node.\n"]
5732    pub get_selection_end_offset: ::std::option::Option<
5733        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> ::std::os::raw::c_int,
5734    >,
5735    #[doc = "\n Returns the contents of this selection as markup.\n"]
5736    pub get_selection_as_markup: ::std::option::Option<
5737        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
5738    >,
5739    #[doc = "\n Returns the contents of this selection as text.\n"]
5740    pub get_selection_as_text: ::std::option::Option<
5741        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
5742    >,
5743    #[doc = "\n Returns the base URL for the document.\n"]
5744    pub get_base_url: ::std::option::Option<
5745        unsafe extern "C" fn(self_: *mut _cef_domdocument_t) -> cef_string_userfree_t,
5746    >,
5747    #[doc = "\n Returns a complete URL based on the document base URL and the specified\n partial URL.\n"]
5748    pub get_complete_url: ::std::option::Option<
5749        unsafe extern "C" fn(
5750            self_: *mut _cef_domdocument_t,
5751            partialURL: *const cef_string_t,
5752        ) -> cef_string_userfree_t,
5753    >,
5754}
5755#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5756const _: () = {
5757    ["Size of _cef_domdocument_t"][::std::mem::size_of::<_cef_domdocument_t>() - 152usize];
5758    ["Alignment of _cef_domdocument_t"][::std::mem::align_of::<_cef_domdocument_t>() - 8usize];
5759    ["Offset of field: _cef_domdocument_t::base"]
5760        [::std::mem::offset_of!(_cef_domdocument_t, base) - 0usize];
5761    ["Offset of field: _cef_domdocument_t::get_type"]
5762        [::std::mem::offset_of!(_cef_domdocument_t, get_type) - 40usize];
5763    ["Offset of field: _cef_domdocument_t::get_document"]
5764        [::std::mem::offset_of!(_cef_domdocument_t, get_document) - 48usize];
5765    ["Offset of field: _cef_domdocument_t::get_body"]
5766        [::std::mem::offset_of!(_cef_domdocument_t, get_body) - 56usize];
5767    ["Offset of field: _cef_domdocument_t::get_head"]
5768        [::std::mem::offset_of!(_cef_domdocument_t, get_head) - 64usize];
5769    ["Offset of field: _cef_domdocument_t::get_title"]
5770        [::std::mem::offset_of!(_cef_domdocument_t, get_title) - 72usize];
5771    ["Offset of field: _cef_domdocument_t::get_element_by_id"]
5772        [::std::mem::offset_of!(_cef_domdocument_t, get_element_by_id) - 80usize];
5773    ["Offset of field: _cef_domdocument_t::get_focused_node"]
5774        [::std::mem::offset_of!(_cef_domdocument_t, get_focused_node) - 88usize];
5775    ["Offset of field: _cef_domdocument_t::has_selection"]
5776        [::std::mem::offset_of!(_cef_domdocument_t, has_selection) - 96usize];
5777    ["Offset of field: _cef_domdocument_t::get_selection_start_offset"]
5778        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_start_offset) - 104usize];
5779    ["Offset of field: _cef_domdocument_t::get_selection_end_offset"]
5780        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_end_offset) - 112usize];
5781    ["Offset of field: _cef_domdocument_t::get_selection_as_markup"]
5782        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_as_markup) - 120usize];
5783    ["Offset of field: _cef_domdocument_t::get_selection_as_text"]
5784        [::std::mem::offset_of!(_cef_domdocument_t, get_selection_as_text) - 128usize];
5785    ["Offset of field: _cef_domdocument_t::get_base_url"]
5786        [::std::mem::offset_of!(_cef_domdocument_t, get_base_url) - 136usize];
5787    ["Offset of field: _cef_domdocument_t::get_complete_url"]
5788        [::std::mem::offset_of!(_cef_domdocument_t, get_complete_url) - 144usize];
5789};
5790#[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"]
5791pub type cef_domdocument_t = _cef_domdocument_t;
5792#[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"]
5793#[repr(C)]
5794#[derive(Debug, Copy, Clone)]
5795pub struct _cef_domnode_t {
5796    #[doc = "\n Base structure.\n"]
5797    pub base: cef_base_ref_counted_t,
5798    #[doc = "\n Returns the type for this node.\n"]
5799    pub get_type: ::std::option::Option<
5800        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_dom_node_type_t,
5801    >,
5802    #[doc = "\n Returns true (1) if this is a text node.\n"]
5803    pub is_text: ::std::option::Option<
5804        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5805    >,
5806    #[doc = "\n Returns true (1) if this is an element node.\n"]
5807    pub is_element: ::std::option::Option<
5808        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5809    >,
5810    #[doc = "\n Returns true (1) if this is an editable node.\n"]
5811    pub is_editable: ::std::option::Option<
5812        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5813    >,
5814    #[doc = "\n Returns true (1) if this is a form control element node.\n"]
5815    pub is_form_control_element: ::std::option::Option<
5816        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5817    >,
5818    #[doc = "\n Returns the type of this form control element node.\n"]
5819    pub get_form_control_element_type: ::std::option::Option<
5820        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_dom_form_control_type_t,
5821    >,
5822    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
5823    pub is_same: ::std::option::Option<
5824        unsafe extern "C" fn(
5825            self_: *mut _cef_domnode_t,
5826            that: *mut _cef_domnode_t,
5827        ) -> ::std::os::raw::c_int,
5828    >,
5829    #[doc = "\n Returns the name of this node.\n"]
5830    pub get_name: ::std::option::Option<
5831        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
5832    >,
5833    #[doc = "\n Returns the value of this node.\n"]
5834    pub get_value: ::std::option::Option<
5835        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
5836    >,
5837    #[doc = "\n Set the value of this node. Returns true (1) on success.\n"]
5838    pub set_value: ::std::option::Option<
5839        unsafe extern "C" fn(
5840            self_: *mut _cef_domnode_t,
5841            value: *const cef_string_t,
5842        ) -> ::std::os::raw::c_int,
5843    >,
5844    #[doc = "\n Returns the contents of this node as markup.\n"]
5845    pub get_as_markup: ::std::option::Option<
5846        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
5847    >,
5848    #[doc = "\n Returns the document associated with this node.\n"]
5849    pub get_document: ::std::option::Option<
5850        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domdocument_t,
5851    >,
5852    #[doc = "\n Returns the parent node.\n"]
5853    pub get_parent: ::std::option::Option<
5854        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
5855    >,
5856    #[doc = "\n Returns the previous sibling node.\n"]
5857    pub get_previous_sibling: ::std::option::Option<
5858        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
5859    >,
5860    #[doc = "\n Returns the next sibling node.\n"]
5861    pub get_next_sibling: ::std::option::Option<
5862        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
5863    >,
5864    #[doc = "\n Returns true (1) if this node has child nodes.\n"]
5865    pub has_children: ::std::option::Option<
5866        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5867    >,
5868    #[doc = "\n Return the first child node.\n"]
5869    pub get_first_child: ::std::option::Option<
5870        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
5871    >,
5872    #[doc = "\n Returns the last child node.\n"]
5873    pub get_last_child: ::std::option::Option<
5874        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> *mut _cef_domnode_t,
5875    >,
5876    #[doc = "\n Returns the tag name of this element.\n"]
5877    pub get_element_tag_name: ::std::option::Option<
5878        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
5879    >,
5880    #[doc = "\n Returns true (1) if this element has attributes.\n"]
5881    pub has_element_attributes: ::std::option::Option<
5882        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> ::std::os::raw::c_int,
5883    >,
5884    #[doc = "\n Returns true (1) if this element has an attribute named |attrName|.\n"]
5885    pub has_element_attribute: ::std::option::Option<
5886        unsafe extern "C" fn(
5887            self_: *mut _cef_domnode_t,
5888            attrName: *const cef_string_t,
5889        ) -> ::std::os::raw::c_int,
5890    >,
5891    #[doc = "\n Returns the element attribute named |attrName|.\n"]
5892    pub get_element_attribute: ::std::option::Option<
5893        unsafe extern "C" fn(
5894            self_: *mut _cef_domnode_t,
5895            attrName: *const cef_string_t,
5896        ) -> cef_string_userfree_t,
5897    >,
5898    #[doc = "\n Returns a map of all element attributes.\n"]
5899    pub get_element_attributes: ::std::option::Option<
5900        unsafe extern "C" fn(self_: *mut _cef_domnode_t, attrMap: cef_string_map_t),
5901    >,
5902    #[doc = "\n Set the value for the element attribute named |attrName|. Returns true (1)\n on success.\n"]
5903    pub set_element_attribute: ::std::option::Option<
5904        unsafe extern "C" fn(
5905            self_: *mut _cef_domnode_t,
5906            attrName: *const cef_string_t,
5907            value: *const cef_string_t,
5908        ) -> ::std::os::raw::c_int,
5909    >,
5910    #[doc = "\n Returns the inner text of the element.\n"]
5911    pub get_element_inner_text: ::std::option::Option<
5912        unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_string_userfree_t,
5913    >,
5914    #[doc = "\n Returns the bounds of the element in device pixels. Use\n \"window.devicePixelRatio\" to convert to/from CSS pixels.\n"]
5915    pub get_element_bounds:
5916        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_domnode_t) -> cef_rect_t>,
5917}
5918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5919const _: () = {
5920    ["Size of _cef_domnode_t"][::std::mem::size_of::<_cef_domnode_t>() - 248usize];
5921    ["Alignment of _cef_domnode_t"][::std::mem::align_of::<_cef_domnode_t>() - 8usize];
5922    ["Offset of field: _cef_domnode_t::base"]
5923        [::std::mem::offset_of!(_cef_domnode_t, base) - 0usize];
5924    ["Offset of field: _cef_domnode_t::get_type"]
5925        [::std::mem::offset_of!(_cef_domnode_t, get_type) - 40usize];
5926    ["Offset of field: _cef_domnode_t::is_text"]
5927        [::std::mem::offset_of!(_cef_domnode_t, is_text) - 48usize];
5928    ["Offset of field: _cef_domnode_t::is_element"]
5929        [::std::mem::offset_of!(_cef_domnode_t, is_element) - 56usize];
5930    ["Offset of field: _cef_domnode_t::is_editable"]
5931        [::std::mem::offset_of!(_cef_domnode_t, is_editable) - 64usize];
5932    ["Offset of field: _cef_domnode_t::is_form_control_element"]
5933        [::std::mem::offset_of!(_cef_domnode_t, is_form_control_element) - 72usize];
5934    ["Offset of field: _cef_domnode_t::get_form_control_element_type"]
5935        [::std::mem::offset_of!(_cef_domnode_t, get_form_control_element_type) - 80usize];
5936    ["Offset of field: _cef_domnode_t::is_same"]
5937        [::std::mem::offset_of!(_cef_domnode_t, is_same) - 88usize];
5938    ["Offset of field: _cef_domnode_t::get_name"]
5939        [::std::mem::offset_of!(_cef_domnode_t, get_name) - 96usize];
5940    ["Offset of field: _cef_domnode_t::get_value"]
5941        [::std::mem::offset_of!(_cef_domnode_t, get_value) - 104usize];
5942    ["Offset of field: _cef_domnode_t::set_value"]
5943        [::std::mem::offset_of!(_cef_domnode_t, set_value) - 112usize];
5944    ["Offset of field: _cef_domnode_t::get_as_markup"]
5945        [::std::mem::offset_of!(_cef_domnode_t, get_as_markup) - 120usize];
5946    ["Offset of field: _cef_domnode_t::get_document"]
5947        [::std::mem::offset_of!(_cef_domnode_t, get_document) - 128usize];
5948    ["Offset of field: _cef_domnode_t::get_parent"]
5949        [::std::mem::offset_of!(_cef_domnode_t, get_parent) - 136usize];
5950    ["Offset of field: _cef_domnode_t::get_previous_sibling"]
5951        [::std::mem::offset_of!(_cef_domnode_t, get_previous_sibling) - 144usize];
5952    ["Offset of field: _cef_domnode_t::get_next_sibling"]
5953        [::std::mem::offset_of!(_cef_domnode_t, get_next_sibling) - 152usize];
5954    ["Offset of field: _cef_domnode_t::has_children"]
5955        [::std::mem::offset_of!(_cef_domnode_t, has_children) - 160usize];
5956    ["Offset of field: _cef_domnode_t::get_first_child"]
5957        [::std::mem::offset_of!(_cef_domnode_t, get_first_child) - 168usize];
5958    ["Offset of field: _cef_domnode_t::get_last_child"]
5959        [::std::mem::offset_of!(_cef_domnode_t, get_last_child) - 176usize];
5960    ["Offset of field: _cef_domnode_t::get_element_tag_name"]
5961        [::std::mem::offset_of!(_cef_domnode_t, get_element_tag_name) - 184usize];
5962    ["Offset of field: _cef_domnode_t::has_element_attributes"]
5963        [::std::mem::offset_of!(_cef_domnode_t, has_element_attributes) - 192usize];
5964    ["Offset of field: _cef_domnode_t::has_element_attribute"]
5965        [::std::mem::offset_of!(_cef_domnode_t, has_element_attribute) - 200usize];
5966    ["Offset of field: _cef_domnode_t::get_element_attribute"]
5967        [::std::mem::offset_of!(_cef_domnode_t, get_element_attribute) - 208usize];
5968    ["Offset of field: _cef_domnode_t::get_element_attributes"]
5969        [::std::mem::offset_of!(_cef_domnode_t, get_element_attributes) - 216usize];
5970    ["Offset of field: _cef_domnode_t::set_element_attribute"]
5971        [::std::mem::offset_of!(_cef_domnode_t, set_element_attribute) - 224usize];
5972    ["Offset of field: _cef_domnode_t::get_element_inner_text"]
5973        [::std::mem::offset_of!(_cef_domnode_t, get_element_inner_text) - 232usize];
5974    ["Offset of field: _cef_domnode_t::get_element_bounds"]
5975        [::std::mem::offset_of!(_cef_domnode_t, get_element_bounds) - 240usize];
5976};
5977#[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"]
5978pub type cef_domnode_t = _cef_domnode_t;
5979#[doc = "\n Structure that wraps platform-dependent share memory region mapping.\n\n NOTE: This struct is allocated DLL-side.\n"]
5980#[repr(C)]
5981#[derive(Debug, Copy, Clone)]
5982pub struct _cef_shared_memory_region_t {
5983    #[doc = "\n Base structure.\n"]
5984    pub base: cef_base_ref_counted_t,
5985    #[doc = "\n Returns true (1) if the mapping is valid.\n"]
5986    pub is_valid: ::std::option::Option<
5987        unsafe extern "C" fn(self_: *mut _cef_shared_memory_region_t) -> ::std::os::raw::c_int,
5988    >,
5989    #[doc = "\n Returns the size of the mapping in bytes. Returns 0 for invalid instances.\n"]
5990    pub size: ::std::option::Option<
5991        unsafe extern "C" fn(self_: *mut _cef_shared_memory_region_t) -> usize,
5992    >,
5993    #[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"]
5994    pub memory: ::std::option::Option<
5995        unsafe extern "C" fn(
5996            self_: *mut _cef_shared_memory_region_t,
5997        ) -> *mut ::std::os::raw::c_void,
5998    >,
5999}
6000#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6001const _: () = {
6002    ["Size of _cef_shared_memory_region_t"]
6003        [::std::mem::size_of::<_cef_shared_memory_region_t>() - 64usize];
6004    ["Alignment of _cef_shared_memory_region_t"]
6005        [::std::mem::align_of::<_cef_shared_memory_region_t>() - 8usize];
6006    ["Offset of field: _cef_shared_memory_region_t::base"]
6007        [::std::mem::offset_of!(_cef_shared_memory_region_t, base) - 0usize];
6008    ["Offset of field: _cef_shared_memory_region_t::is_valid"]
6009        [::std::mem::offset_of!(_cef_shared_memory_region_t, is_valid) - 40usize];
6010    ["Offset of field: _cef_shared_memory_region_t::size"]
6011        [::std::mem::offset_of!(_cef_shared_memory_region_t, size) - 48usize];
6012    ["Offset of field: _cef_shared_memory_region_t::memory"]
6013        [::std::mem::offset_of!(_cef_shared_memory_region_t, memory) - 56usize];
6014};
6015#[doc = "\n Structure that wraps platform-dependent share memory region mapping.\n\n NOTE: This struct is allocated DLL-side.\n"]
6016pub type cef_shared_memory_region_t = _cef_shared_memory_region_t;
6017#[doc = "\n Structure representing a message. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6018#[repr(C)]
6019#[derive(Debug, Copy, Clone)]
6020pub struct _cef_process_message_t {
6021    #[doc = "\n Base structure.\n"]
6022    pub base: cef_base_ref_counted_t,
6023    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
6024    pub is_valid: ::std::option::Option<
6025        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> ::std::os::raw::c_int,
6026    >,
6027    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
6028    pub is_read_only: ::std::option::Option<
6029        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> ::std::os::raw::c_int,
6030    >,
6031    #[doc = "\n Returns a writable copy of this object. Returns nullptr when message\n contains a shared memory region.\n"]
6032    pub copy: ::std::option::Option<
6033        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> *mut _cef_process_message_t,
6034    >,
6035    #[doc = "\n Returns the message name.\n"]
6036    pub get_name: ::std::option::Option<
6037        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> cef_string_userfree_t,
6038    >,
6039    #[doc = "\n Returns the list of arguments. Returns nullptr when message contains a\n shared memory region.\n"]
6040    pub get_argument_list: ::std::option::Option<
6041        unsafe extern "C" fn(self_: *mut _cef_process_message_t) -> *mut _cef_list_value_t,
6042    >,
6043    #[doc = "\n Returns the shared memory region. Returns nullptr when message contains an\n argument list.\n"]
6044    pub get_shared_memory_region: ::std::option::Option<
6045        unsafe extern "C" fn(
6046            self_: *mut _cef_process_message_t,
6047        ) -> *mut _cef_shared_memory_region_t,
6048    >,
6049}
6050#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6051const _: () = {
6052    ["Size of _cef_process_message_t"][::std::mem::size_of::<_cef_process_message_t>() - 88usize];
6053    ["Alignment of _cef_process_message_t"]
6054        [::std::mem::align_of::<_cef_process_message_t>() - 8usize];
6055    ["Offset of field: _cef_process_message_t::base"]
6056        [::std::mem::offset_of!(_cef_process_message_t, base) - 0usize];
6057    ["Offset of field: _cef_process_message_t::is_valid"]
6058        [::std::mem::offset_of!(_cef_process_message_t, is_valid) - 40usize];
6059    ["Offset of field: _cef_process_message_t::is_read_only"]
6060        [::std::mem::offset_of!(_cef_process_message_t, is_read_only) - 48usize];
6061    ["Offset of field: _cef_process_message_t::copy"]
6062        [::std::mem::offset_of!(_cef_process_message_t, copy) - 56usize];
6063    ["Offset of field: _cef_process_message_t::get_name"]
6064        [::std::mem::offset_of!(_cef_process_message_t, get_name) - 64usize];
6065    ["Offset of field: _cef_process_message_t::get_argument_list"]
6066        [::std::mem::offset_of!(_cef_process_message_t, get_argument_list) - 72usize];
6067    ["Offset of field: _cef_process_message_t::get_shared_memory_region"]
6068        [::std::mem::offset_of!(_cef_process_message_t, get_shared_memory_region) - 80usize];
6069};
6070#[doc = "\n Structure representing a message. Can be used on any process and thread.\n\n NOTE: This struct is allocated DLL-side.\n"]
6071pub type cef_process_message_t = _cef_process_message_t;
6072unsafe extern "C" {
6073    #[doc = "\n Create a new cef_process_message_t object with the specified name.\n"]
6074    pub fn cef_process_message_create(name: *const cef_string_t) -> *mut cef_process_message_t;
6075}
6076#[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"]
6077#[repr(C)]
6078#[derive(Debug, Copy, Clone)]
6079pub struct _cef_request_t {
6080    #[doc = "\n Base structure.\n"]
6081    pub base: cef_base_ref_counted_t,
6082    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6083    pub is_read_only: ::std::option::Option<
6084        unsafe extern "C" fn(self_: *mut _cef_request_t) -> ::std::os::raw::c_int,
6085    >,
6086    #[doc = "\n Get the fully qualified URL.\n"]
6087    pub get_url: ::std::option::Option<
6088        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6089    >,
6090    #[doc = "\n Set the fully qualified URL.\n"]
6091    pub set_url: ::std::option::Option<
6092        unsafe extern "C" fn(self_: *mut _cef_request_t, url: *const cef_string_t),
6093    >,
6094    #[doc = "\n Get the request function type. The value will default to POST if post data\n is provided and GET otherwise.\n"]
6095    pub get_method: ::std::option::Option<
6096        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6097    >,
6098    #[doc = "\n Set the request function type.\n"]
6099    pub set_method: ::std::option::Option<
6100        unsafe extern "C" fn(self_: *mut _cef_request_t, method: *const cef_string_t),
6101    >,
6102    #[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"]
6103    pub set_referrer: ::std::option::Option<
6104        unsafe extern "C" fn(
6105            self_: *mut _cef_request_t,
6106            referrer_url: *const cef_string_t,
6107            policy: cef_referrer_policy_t,
6108        ),
6109    >,
6110    #[doc = "\n Get the referrer URL.\n"]
6111    pub get_referrer_url: ::std::option::Option<
6112        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6113    >,
6114    #[doc = "\n Get the referrer policy.\n"]
6115    pub get_referrer_policy: ::std::option::Option<
6116        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_referrer_policy_t,
6117    >,
6118    #[doc = "\n Get the post data.\n"]
6119    pub get_post_data: ::std::option::Option<
6120        unsafe extern "C" fn(self_: *mut _cef_request_t) -> *mut _cef_post_data_t,
6121    >,
6122    #[doc = "\n Set the post data.\n"]
6123    pub set_post_data: ::std::option::Option<
6124        unsafe extern "C" fn(self_: *mut _cef_request_t, postData: *mut _cef_post_data_t),
6125    >,
6126    #[doc = "\n Get the header values. Will not include the Referer value if any.\n"]
6127    pub get_header_map: ::std::option::Option<
6128        unsafe extern "C" fn(self_: *mut _cef_request_t, headerMap: cef_string_multimap_t),
6129    >,
6130    #[doc = "\n Set the header values. If a Referer value exists in the header map it will\n be removed and ignored.\n"]
6131    pub set_header_map: ::std::option::Option<
6132        unsafe extern "C" fn(self_: *mut _cef_request_t, headerMap: cef_string_multimap_t),
6133    >,
6134    #[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"]
6135    pub get_header_by_name: ::std::option::Option<
6136        unsafe extern "C" fn(
6137            self_: *mut _cef_request_t,
6138            name: *const cef_string_t,
6139        ) -> cef_string_userfree_t,
6140    >,
6141    #[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"]
6142    pub set_header_by_name: ::std::option::Option<
6143        unsafe extern "C" fn(
6144            self_: *mut _cef_request_t,
6145            name: *const cef_string_t,
6146            value: *const cef_string_t,
6147            overwrite: ::std::os::raw::c_int,
6148        ),
6149    >,
6150    #[doc = "\n Set all values at one time.\n"]
6151    pub set: ::std::option::Option<
6152        unsafe extern "C" fn(
6153            self_: *mut _cef_request_t,
6154            url: *const cef_string_t,
6155            method: *const cef_string_t,
6156            postData: *mut _cef_post_data_t,
6157            headerMap: cef_string_multimap_t,
6158        ),
6159    >,
6160    #[doc = "\n Get the flags used in combination with cef_urlrequest_t. See\n cef_urlrequest_flags_t for supported values.\n"]
6161    pub get_flags: ::std::option::Option<
6162        unsafe extern "C" fn(self_: *mut _cef_request_t) -> ::std::os::raw::c_int,
6163    >,
6164    #[doc = "\n Set the flags used in combination with cef_urlrequest_t.  See\n cef_urlrequest_flags_t for supported values.\n"]
6165    pub set_flags: ::std::option::Option<
6166        unsafe extern "C" fn(self_: *mut _cef_request_t, flags: ::std::os::raw::c_int),
6167    >,
6168    #[doc = "\n Get the URL to the first party for cookies used in combination with\n cef_urlrequest_t.\n"]
6169    pub get_first_party_for_cookies: ::std::option::Option<
6170        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_string_userfree_t,
6171    >,
6172    #[doc = "\n Set the URL to the first party for cookies used in combination with\n cef_urlrequest_t.\n"]
6173    pub set_first_party_for_cookies: ::std::option::Option<
6174        unsafe extern "C" fn(self_: *mut _cef_request_t, url: *const cef_string_t),
6175    >,
6176    #[doc = "\n Get the resource type for this request. Only available in the browser\n process.\n"]
6177    pub get_resource_type: ::std::option::Option<
6178        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_resource_type_t,
6179    >,
6180    #[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"]
6181    pub get_transition_type: ::std::option::Option<
6182        unsafe extern "C" fn(self_: *mut _cef_request_t) -> cef_transition_type_t,
6183    >,
6184    #[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"]
6185    pub get_identifier:
6186        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_request_t) -> u64>,
6187}
6188#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6189const _: () = {
6190    ["Size of _cef_request_t"][::std::mem::size_of::<_cef_request_t>() - 216usize];
6191    ["Alignment of _cef_request_t"][::std::mem::align_of::<_cef_request_t>() - 8usize];
6192    ["Offset of field: _cef_request_t::base"]
6193        [::std::mem::offset_of!(_cef_request_t, base) - 0usize];
6194    ["Offset of field: _cef_request_t::is_read_only"]
6195        [::std::mem::offset_of!(_cef_request_t, is_read_only) - 40usize];
6196    ["Offset of field: _cef_request_t::get_url"]
6197        [::std::mem::offset_of!(_cef_request_t, get_url) - 48usize];
6198    ["Offset of field: _cef_request_t::set_url"]
6199        [::std::mem::offset_of!(_cef_request_t, set_url) - 56usize];
6200    ["Offset of field: _cef_request_t::get_method"]
6201        [::std::mem::offset_of!(_cef_request_t, get_method) - 64usize];
6202    ["Offset of field: _cef_request_t::set_method"]
6203        [::std::mem::offset_of!(_cef_request_t, set_method) - 72usize];
6204    ["Offset of field: _cef_request_t::set_referrer"]
6205        [::std::mem::offset_of!(_cef_request_t, set_referrer) - 80usize];
6206    ["Offset of field: _cef_request_t::get_referrer_url"]
6207        [::std::mem::offset_of!(_cef_request_t, get_referrer_url) - 88usize];
6208    ["Offset of field: _cef_request_t::get_referrer_policy"]
6209        [::std::mem::offset_of!(_cef_request_t, get_referrer_policy) - 96usize];
6210    ["Offset of field: _cef_request_t::get_post_data"]
6211        [::std::mem::offset_of!(_cef_request_t, get_post_data) - 104usize];
6212    ["Offset of field: _cef_request_t::set_post_data"]
6213        [::std::mem::offset_of!(_cef_request_t, set_post_data) - 112usize];
6214    ["Offset of field: _cef_request_t::get_header_map"]
6215        [::std::mem::offset_of!(_cef_request_t, get_header_map) - 120usize];
6216    ["Offset of field: _cef_request_t::set_header_map"]
6217        [::std::mem::offset_of!(_cef_request_t, set_header_map) - 128usize];
6218    ["Offset of field: _cef_request_t::get_header_by_name"]
6219        [::std::mem::offset_of!(_cef_request_t, get_header_by_name) - 136usize];
6220    ["Offset of field: _cef_request_t::set_header_by_name"]
6221        [::std::mem::offset_of!(_cef_request_t, set_header_by_name) - 144usize];
6222    ["Offset of field: _cef_request_t::set"]
6223        [::std::mem::offset_of!(_cef_request_t, set) - 152usize];
6224    ["Offset of field: _cef_request_t::get_flags"]
6225        [::std::mem::offset_of!(_cef_request_t, get_flags) - 160usize];
6226    ["Offset of field: _cef_request_t::set_flags"]
6227        [::std::mem::offset_of!(_cef_request_t, set_flags) - 168usize];
6228    ["Offset of field: _cef_request_t::get_first_party_for_cookies"]
6229        [::std::mem::offset_of!(_cef_request_t, get_first_party_for_cookies) - 176usize];
6230    ["Offset of field: _cef_request_t::set_first_party_for_cookies"]
6231        [::std::mem::offset_of!(_cef_request_t, set_first_party_for_cookies) - 184usize];
6232    ["Offset of field: _cef_request_t::get_resource_type"]
6233        [::std::mem::offset_of!(_cef_request_t, get_resource_type) - 192usize];
6234    ["Offset of field: _cef_request_t::get_transition_type"]
6235        [::std::mem::offset_of!(_cef_request_t, get_transition_type) - 200usize];
6236    ["Offset of field: _cef_request_t::get_identifier"]
6237        [::std::mem::offset_of!(_cef_request_t, get_identifier) - 208usize];
6238};
6239#[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"]
6240pub type cef_request_t = _cef_request_t;
6241unsafe extern "C" {
6242    #[doc = "\n Create a new cef_request_t object.\n"]
6243    pub fn cef_request_create() -> *mut cef_request_t;
6244}
6245#[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"]
6246#[repr(C)]
6247#[derive(Debug, Copy, Clone)]
6248pub struct _cef_post_data_t {
6249    #[doc = "\n Base structure.\n"]
6250    pub base: cef_base_ref_counted_t,
6251    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6252    pub is_read_only: ::std::option::Option<
6253        unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> ::std::os::raw::c_int,
6254    >,
6255    #[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"]
6256    pub has_excluded_elements: ::std::option::Option<
6257        unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> ::std::os::raw::c_int,
6258    >,
6259    #[doc = "\n Returns the number of existing post data elements.\n"]
6260    pub get_element_count:
6261        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_t) -> usize>,
6262    #[doc = "\n Retrieve the post data elements.\n"]
6263    pub get_elements: ::std::option::Option<
6264        unsafe extern "C" fn(
6265            self_: *mut _cef_post_data_t,
6266            elementsCount: *mut usize,
6267            elements: *mut *mut _cef_post_data_element_t,
6268        ),
6269    >,
6270    #[doc = "\n Remove the specified post data element.  Returns true (1) if the removal\n succeeds.\n"]
6271    pub remove_element: ::std::option::Option<
6272        unsafe extern "C" fn(
6273            self_: *mut _cef_post_data_t,
6274            element: *mut _cef_post_data_element_t,
6275        ) -> ::std::os::raw::c_int,
6276    >,
6277    #[doc = "\n Add the specified post data element.  Returns true (1) if the add\n succeeds.\n"]
6278    pub add_element: ::std::option::Option<
6279        unsafe extern "C" fn(
6280            self_: *mut _cef_post_data_t,
6281            element: *mut _cef_post_data_element_t,
6282        ) -> ::std::os::raw::c_int,
6283    >,
6284    #[doc = "\n Remove all existing post data elements.\n"]
6285    pub remove_elements: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_t)>,
6286}
6287#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6288const _: () = {
6289    ["Size of _cef_post_data_t"][::std::mem::size_of::<_cef_post_data_t>() - 96usize];
6290    ["Alignment of _cef_post_data_t"][::std::mem::align_of::<_cef_post_data_t>() - 8usize];
6291    ["Offset of field: _cef_post_data_t::base"]
6292        [::std::mem::offset_of!(_cef_post_data_t, base) - 0usize];
6293    ["Offset of field: _cef_post_data_t::is_read_only"]
6294        [::std::mem::offset_of!(_cef_post_data_t, is_read_only) - 40usize];
6295    ["Offset of field: _cef_post_data_t::has_excluded_elements"]
6296        [::std::mem::offset_of!(_cef_post_data_t, has_excluded_elements) - 48usize];
6297    ["Offset of field: _cef_post_data_t::get_element_count"]
6298        [::std::mem::offset_of!(_cef_post_data_t, get_element_count) - 56usize];
6299    ["Offset of field: _cef_post_data_t::get_elements"]
6300        [::std::mem::offset_of!(_cef_post_data_t, get_elements) - 64usize];
6301    ["Offset of field: _cef_post_data_t::remove_element"]
6302        [::std::mem::offset_of!(_cef_post_data_t, remove_element) - 72usize];
6303    ["Offset of field: _cef_post_data_t::add_element"]
6304        [::std::mem::offset_of!(_cef_post_data_t, add_element) - 80usize];
6305    ["Offset of field: _cef_post_data_t::remove_elements"]
6306        [::std::mem::offset_of!(_cef_post_data_t, remove_elements) - 88usize];
6307};
6308#[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"]
6309pub type cef_post_data_t = _cef_post_data_t;
6310unsafe extern "C" {
6311    #[doc = "\n Create a new cef_post_data_t object.\n"]
6312    pub fn cef_post_data_create() -> *mut cef_post_data_t;
6313}
6314#[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"]
6315#[repr(C)]
6316#[derive(Debug, Copy, Clone)]
6317pub struct _cef_post_data_element_t {
6318    #[doc = "\n Base structure.\n"]
6319    pub base: cef_base_ref_counted_t,
6320    #[doc = "\n Returns true (1) if this object is read-only.\n"]
6321    pub is_read_only: ::std::option::Option<
6322        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> ::std::os::raw::c_int,
6323    >,
6324    #[doc = "\n Remove all contents from the post data element.\n"]
6325    pub set_to_empty:
6326        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_element_t)>,
6327    #[doc = "\n The post data element will represent a file.\n"]
6328    pub set_to_file: ::std::option::Option<
6329        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t, fileName: *const cef_string_t),
6330    >,
6331    #[doc = "\n The post data element will represent bytes.  The bytes passed in will be\n copied.\n"]
6332    pub set_to_bytes: ::std::option::Option<
6333        unsafe extern "C" fn(
6334            self_: *mut _cef_post_data_element_t,
6335            size: usize,
6336            bytes: *const ::std::os::raw::c_void,
6337        ),
6338    >,
6339    #[doc = "\n Return the type of this post data element.\n"]
6340    pub get_type: ::std::option::Option<
6341        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> cef_postdataelement_type_t,
6342    >,
6343    #[doc = "\n Return the file name.\n"]
6344    pub get_file: ::std::option::Option<
6345        unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> cef_string_userfree_t,
6346    >,
6347    #[doc = "\n Return the number of bytes.\n"]
6348    pub get_bytes_count:
6349        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_post_data_element_t) -> usize>,
6350    #[doc = "\n Read up to |size| bytes into |bytes| and return the number of bytes\n actually read.\n"]
6351    pub get_bytes: ::std::option::Option<
6352        unsafe extern "C" fn(
6353            self_: *mut _cef_post_data_element_t,
6354            size: usize,
6355            bytes: *mut ::std::os::raw::c_void,
6356        ) -> usize,
6357    >,
6358}
6359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6360const _: () = {
6361    ["Size of _cef_post_data_element_t"]
6362        [::std::mem::size_of::<_cef_post_data_element_t>() - 104usize];
6363    ["Alignment of _cef_post_data_element_t"]
6364        [::std::mem::align_of::<_cef_post_data_element_t>() - 8usize];
6365    ["Offset of field: _cef_post_data_element_t::base"]
6366        [::std::mem::offset_of!(_cef_post_data_element_t, base) - 0usize];
6367    ["Offset of field: _cef_post_data_element_t::is_read_only"]
6368        [::std::mem::offset_of!(_cef_post_data_element_t, is_read_only) - 40usize];
6369    ["Offset of field: _cef_post_data_element_t::set_to_empty"]
6370        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_empty) - 48usize];
6371    ["Offset of field: _cef_post_data_element_t::set_to_file"]
6372        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_file) - 56usize];
6373    ["Offset of field: _cef_post_data_element_t::set_to_bytes"]
6374        [::std::mem::offset_of!(_cef_post_data_element_t, set_to_bytes) - 64usize];
6375    ["Offset of field: _cef_post_data_element_t::get_type"]
6376        [::std::mem::offset_of!(_cef_post_data_element_t, get_type) - 72usize];
6377    ["Offset of field: _cef_post_data_element_t::get_file"]
6378        [::std::mem::offset_of!(_cef_post_data_element_t, get_file) - 80usize];
6379    ["Offset of field: _cef_post_data_element_t::get_bytes_count"]
6380        [::std::mem::offset_of!(_cef_post_data_element_t, get_bytes_count) - 88usize];
6381    ["Offset of field: _cef_post_data_element_t::get_bytes"]
6382        [::std::mem::offset_of!(_cef_post_data_element_t, get_bytes) - 96usize];
6383};
6384#[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"]
6385pub type cef_post_data_element_t = _cef_post_data_element_t;
6386unsafe extern "C" {
6387    #[doc = "\n Create a new cef_post_data_element_t object.\n"]
6388    pub fn cef_post_data_element_create() -> *mut cef_post_data_element_t;
6389}
6390#[doc = "\n Implement this structure to receive string values asynchronously.\n\n NOTE: This struct is allocated client-side.\n"]
6391#[repr(C)]
6392#[derive(Debug, Copy, Clone)]
6393pub struct _cef_string_visitor_t {
6394    #[doc = "\n Base structure.\n"]
6395    pub base: cef_base_ref_counted_t,
6396    #[doc = "\n Method that will be executed.\n"]
6397    pub visit: ::std::option::Option<
6398        unsafe extern "C" fn(self_: *mut _cef_string_visitor_t, string: *const cef_string_t),
6399    >,
6400}
6401#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6402const _: () = {
6403    ["Size of _cef_string_visitor_t"][::std::mem::size_of::<_cef_string_visitor_t>() - 48usize];
6404    ["Alignment of _cef_string_visitor_t"]
6405        [::std::mem::align_of::<_cef_string_visitor_t>() - 8usize];
6406    ["Offset of field: _cef_string_visitor_t::base"]
6407        [::std::mem::offset_of!(_cef_string_visitor_t, base) - 0usize];
6408    ["Offset of field: _cef_string_visitor_t::visit"]
6409        [::std::mem::offset_of!(_cef_string_visitor_t, visit) - 40usize];
6410};
6411#[doc = "\n Implement this structure to receive string values asynchronously.\n\n NOTE: This struct is allocated client-side.\n"]
6412pub type cef_string_visitor_t = _cef_string_visitor_t;
6413#[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"]
6414#[repr(C)]
6415#[derive(Debug, Copy, Clone)]
6416pub struct _cef_frame_t {
6417    #[doc = "\n Base structure.\n"]
6418    pub base: cef_base_ref_counted_t,
6419    #[doc = "\n True if this object is currently attached to a valid frame.\n"]
6420    pub is_valid: ::std::option::Option<
6421        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6422    >,
6423    #[doc = "\n Execute undo in this frame.\n"]
6424    pub undo: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6425    #[doc = "\n Execute redo in this frame.\n"]
6426    pub redo: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6427    #[doc = "\n Execute cut in this frame.\n"]
6428    pub cut: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6429    #[doc = "\n Execute copy in this frame.\n"]
6430    pub copy: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6431    #[doc = "\n Execute paste in this frame.\n"]
6432    pub paste: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6433    #[doc = "\n Execute paste and match style in this frame.\n"]
6434    pub paste_and_match_style:
6435        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6436    #[doc = "\n Execute delete in this frame.\n"]
6437    pub del: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6438    #[doc = "\n Execute select all in this frame.\n"]
6439    pub select_all: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6440    #[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"]
6441    pub view_source: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t)>,
6442    #[doc = "\n Retrieve this frame's HTML source as a string sent to the specified\n visitor.\n"]
6443    pub get_source: ::std::option::Option<
6444        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_string_visitor_t),
6445    >,
6446    #[doc = "\n Retrieve this frame's display text as a string sent to the specified\n visitor.\n"]
6447    pub get_text: ::std::option::Option<
6448        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_string_visitor_t),
6449    >,
6450    #[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"]
6451    pub load_request: ::std::option::Option<
6452        unsafe extern "C" fn(self_: *mut _cef_frame_t, request: *mut _cef_request_t),
6453    >,
6454    #[doc = "\n Load the specified |url|.\n"]
6455    pub load_url: ::std::option::Option<
6456        unsafe extern "C" fn(self_: *mut _cef_frame_t, url: *const cef_string_t),
6457    >,
6458    #[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"]
6459    pub execute_java_script: ::std::option::Option<
6460        unsafe extern "C" fn(
6461            self_: *mut _cef_frame_t,
6462            code: *const cef_string_t,
6463            script_url: *const cef_string_t,
6464            start_line: ::std::os::raw::c_int,
6465        ),
6466    >,
6467    #[doc = "\n Returns true (1) if this is the main (top-level) frame.\n"]
6468    pub is_main: ::std::option::Option<
6469        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6470    >,
6471    #[doc = "\n Returns true (1) if this is the focused frame.\n"]
6472    pub is_focused: ::std::option::Option<
6473        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> ::std::os::raw::c_int,
6474    >,
6475    #[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"]
6476    pub get_name: ::std::option::Option<
6477        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6478    >,
6479    #[doc = "\n Returns the globally unique identifier for this frame or NULL if the\n underlying frame does not yet exist.\n"]
6480    pub get_identifier: ::std::option::Option<
6481        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6482    >,
6483    #[doc = "\n Returns the parent of this frame or NULL if this is the main (top-level)\n frame.\n"]
6484    pub get_parent:
6485        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_frame_t>,
6486    #[doc = "\n Returns the URL currently loaded in this frame.\n"]
6487    pub get_url: ::std::option::Option<
6488        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> cef_string_userfree_t,
6489    >,
6490    #[doc = "\n Returns the browser that this frame belongs to.\n"]
6491    pub get_browser: ::std::option::Option<
6492        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_browser_t,
6493    >,
6494    #[doc = "\n Get the V8 context associated with the frame. This function can only be\n called from the render process.\n"]
6495    pub get_v8_context: ::std::option::Option<
6496        unsafe extern "C" fn(self_: *mut _cef_frame_t) -> *mut _cef_v8_context_t,
6497    >,
6498    #[doc = "\n Visit the DOM document. This function can only be called from the render\n process.\n"]
6499    pub visit_dom: ::std::option::Option<
6500        unsafe extern "C" fn(self_: *mut _cef_frame_t, visitor: *mut _cef_domvisitor_t),
6501    >,
6502    #[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"]
6503    pub create_urlrequest: ::std::option::Option<
6504        unsafe extern "C" fn(
6505            self_: *mut _cef_frame_t,
6506            request: *mut _cef_request_t,
6507            client: *mut _cef_urlrequest_client_t,
6508        ) -> *mut _cef_urlrequest_t,
6509    >,
6510    #[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"]
6511    pub send_process_message: ::std::option::Option<
6512        unsafe extern "C" fn(
6513            self_: *mut _cef_frame_t,
6514            target_process: cef_process_id_t,
6515            message: *mut _cef_process_message_t,
6516        ),
6517    >,
6518}
6519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6520const _: () = {
6521    ["Size of _cef_frame_t"][::std::mem::size_of::<_cef_frame_t>() - 248usize];
6522    ["Alignment of _cef_frame_t"][::std::mem::align_of::<_cef_frame_t>() - 8usize];
6523    ["Offset of field: _cef_frame_t::base"][::std::mem::offset_of!(_cef_frame_t, base) - 0usize];
6524    ["Offset of field: _cef_frame_t::is_valid"]
6525        [::std::mem::offset_of!(_cef_frame_t, is_valid) - 40usize];
6526    ["Offset of field: _cef_frame_t::undo"][::std::mem::offset_of!(_cef_frame_t, undo) - 48usize];
6527    ["Offset of field: _cef_frame_t::redo"][::std::mem::offset_of!(_cef_frame_t, redo) - 56usize];
6528    ["Offset of field: _cef_frame_t::cut"][::std::mem::offset_of!(_cef_frame_t, cut) - 64usize];
6529    ["Offset of field: _cef_frame_t::copy"][::std::mem::offset_of!(_cef_frame_t, copy) - 72usize];
6530    ["Offset of field: _cef_frame_t::paste"][::std::mem::offset_of!(_cef_frame_t, paste) - 80usize];
6531    ["Offset of field: _cef_frame_t::paste_and_match_style"]
6532        [::std::mem::offset_of!(_cef_frame_t, paste_and_match_style) - 88usize];
6533    ["Offset of field: _cef_frame_t::del"][::std::mem::offset_of!(_cef_frame_t, del) - 96usize];
6534    ["Offset of field: _cef_frame_t::select_all"]
6535        [::std::mem::offset_of!(_cef_frame_t, select_all) - 104usize];
6536    ["Offset of field: _cef_frame_t::view_source"]
6537        [::std::mem::offset_of!(_cef_frame_t, view_source) - 112usize];
6538    ["Offset of field: _cef_frame_t::get_source"]
6539        [::std::mem::offset_of!(_cef_frame_t, get_source) - 120usize];
6540    ["Offset of field: _cef_frame_t::get_text"]
6541        [::std::mem::offset_of!(_cef_frame_t, get_text) - 128usize];
6542    ["Offset of field: _cef_frame_t::load_request"]
6543        [::std::mem::offset_of!(_cef_frame_t, load_request) - 136usize];
6544    ["Offset of field: _cef_frame_t::load_url"]
6545        [::std::mem::offset_of!(_cef_frame_t, load_url) - 144usize];
6546    ["Offset of field: _cef_frame_t::execute_java_script"]
6547        [::std::mem::offset_of!(_cef_frame_t, execute_java_script) - 152usize];
6548    ["Offset of field: _cef_frame_t::is_main"]
6549        [::std::mem::offset_of!(_cef_frame_t, is_main) - 160usize];
6550    ["Offset of field: _cef_frame_t::is_focused"]
6551        [::std::mem::offset_of!(_cef_frame_t, is_focused) - 168usize];
6552    ["Offset of field: _cef_frame_t::get_name"]
6553        [::std::mem::offset_of!(_cef_frame_t, get_name) - 176usize];
6554    ["Offset of field: _cef_frame_t::get_identifier"]
6555        [::std::mem::offset_of!(_cef_frame_t, get_identifier) - 184usize];
6556    ["Offset of field: _cef_frame_t::get_parent"]
6557        [::std::mem::offset_of!(_cef_frame_t, get_parent) - 192usize];
6558    ["Offset of field: _cef_frame_t::get_url"]
6559        [::std::mem::offset_of!(_cef_frame_t, get_url) - 200usize];
6560    ["Offset of field: _cef_frame_t::get_browser"]
6561        [::std::mem::offset_of!(_cef_frame_t, get_browser) - 208usize];
6562    ["Offset of field: _cef_frame_t::get_v8_context"]
6563        [::std::mem::offset_of!(_cef_frame_t, get_v8_context) - 216usize];
6564    ["Offset of field: _cef_frame_t::visit_dom"]
6565        [::std::mem::offset_of!(_cef_frame_t, visit_dom) - 224usize];
6566    ["Offset of field: _cef_frame_t::create_urlrequest"]
6567        [::std::mem::offset_of!(_cef_frame_t, create_urlrequest) - 232usize];
6568    ["Offset of field: _cef_frame_t::send_process_message"]
6569        [::std::mem::offset_of!(_cef_frame_t, send_process_message) - 240usize];
6570};
6571#[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"]
6572pub type cef_frame_t = _cef_frame_t;
6573#[doc = "\n Structure representing the issuer or subject field of an X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6574#[repr(C)]
6575#[derive(Debug, Copy, Clone)]
6576pub struct _cef_x509_cert_principal_t {
6577    #[doc = "\n Base structure.\n"]
6578    pub base: cef_base_ref_counted_t,
6579    #[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"]
6580    pub get_display_name: ::std::option::Option<
6581        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6582    >,
6583    #[doc = "\n Returns the common name.\n"]
6584    pub get_common_name: ::std::option::Option<
6585        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6586    >,
6587    #[doc = "\n Returns the locality name.\n"]
6588    pub get_locality_name: ::std::option::Option<
6589        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6590    >,
6591    #[doc = "\n Returns the state or province name.\n"]
6592    pub get_state_or_province_name: ::std::option::Option<
6593        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6594    >,
6595    #[doc = "\n Returns the country name.\n"]
6596    pub get_country_name: ::std::option::Option<
6597        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t) -> cef_string_userfree_t,
6598    >,
6599    #[doc = "\n Retrieve the list of organization names.\n"]
6600    pub get_organization_names: ::std::option::Option<
6601        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t, names: cef_string_list_t),
6602    >,
6603    #[doc = "\n Retrieve the list of organization unit names.\n"]
6604    pub get_organization_unit_names: ::std::option::Option<
6605        unsafe extern "C" fn(self_: *mut _cef_x509_cert_principal_t, names: cef_string_list_t),
6606    >,
6607}
6608#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6609const _: () = {
6610    ["Size of _cef_x509_cert_principal_t"]
6611        [::std::mem::size_of::<_cef_x509_cert_principal_t>() - 96usize];
6612    ["Alignment of _cef_x509_cert_principal_t"]
6613        [::std::mem::align_of::<_cef_x509_cert_principal_t>() - 8usize];
6614    ["Offset of field: _cef_x509_cert_principal_t::base"]
6615        [::std::mem::offset_of!(_cef_x509_cert_principal_t, base) - 0usize];
6616    ["Offset of field: _cef_x509_cert_principal_t::get_display_name"]
6617        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_display_name) - 40usize];
6618    ["Offset of field: _cef_x509_cert_principal_t::get_common_name"]
6619        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_common_name) - 48usize];
6620    ["Offset of field: _cef_x509_cert_principal_t::get_locality_name"]
6621        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_locality_name) - 56usize];
6622    ["Offset of field: _cef_x509_cert_principal_t::get_state_or_province_name"]
6623        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_state_or_province_name) - 64usize];
6624    ["Offset of field: _cef_x509_cert_principal_t::get_country_name"]
6625        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_country_name) - 72usize];
6626    ["Offset of field: _cef_x509_cert_principal_t::get_organization_names"]
6627        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_organization_names) - 80usize];
6628    ["Offset of field: _cef_x509_cert_principal_t::get_organization_unit_names"]
6629        [::std::mem::offset_of!(_cef_x509_cert_principal_t, get_organization_unit_names) - 88usize];
6630};
6631#[doc = "\n Structure representing the issuer or subject field of an X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6632pub type cef_x509_cert_principal_t = _cef_x509_cert_principal_t;
6633#[doc = "\n Structure representing a X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6634#[repr(C)]
6635#[derive(Debug, Copy, Clone)]
6636pub struct _cef_x509_certificate_t {
6637    #[doc = "\n Base structure.\n"]
6638    pub base: cef_base_ref_counted_t,
6639    #[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"]
6640    pub get_subject: ::std::option::Option<
6641        unsafe extern "C" fn(
6642            self_: *mut _cef_x509_certificate_t,
6643        ) -> *mut _cef_x509_cert_principal_t,
6644    >,
6645    #[doc = "\n Returns the issuer of the X.509 certificate.\n"]
6646    pub get_issuer: ::std::option::Option<
6647        unsafe extern "C" fn(
6648            self_: *mut _cef_x509_certificate_t,
6649        ) -> *mut _cef_x509_cert_principal_t,
6650    >,
6651    #[doc = "\n Returns the DER encoded serial number for the X.509 certificate. The value\n possibly includes a leading 00 byte.\n"]
6652    pub get_serial_number: ::std::option::Option<
6653        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
6654    >,
6655    #[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"]
6656    pub get_valid_start: ::std::option::Option<
6657        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> cef_basetime_t,
6658    >,
6659    #[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"]
6660    pub get_valid_expiry: ::std::option::Option<
6661        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> cef_basetime_t,
6662    >,
6663    #[doc = "\n Returns the DER encoded data for the X.509 certificate.\n"]
6664    pub get_derencoded: ::std::option::Option<
6665        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
6666    >,
6667    #[doc = "\n Returns the PEM encoded data for the X.509 certificate.\n"]
6668    pub get_pemencoded: ::std::option::Option<
6669        unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> *mut _cef_binary_value_t,
6670    >,
6671    #[doc = "\n Returns the number of certificates in the issuer chain. If 0, the\n certificate is self-signed.\n"]
6672    pub get_issuer_chain_size:
6673        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_x509_certificate_t) -> usize>,
6674    #[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"]
6675    pub get_derencoded_issuer_chain: ::std::option::Option<
6676        unsafe extern "C" fn(
6677            self_: *mut _cef_x509_certificate_t,
6678            chainCount: *mut usize,
6679            chain: *mut *mut _cef_binary_value_t,
6680        ),
6681    >,
6682    #[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"]
6683    pub get_pemencoded_issuer_chain: ::std::option::Option<
6684        unsafe extern "C" fn(
6685            self_: *mut _cef_x509_certificate_t,
6686            chainCount: *mut usize,
6687            chain: *mut *mut _cef_binary_value_t,
6688        ),
6689    >,
6690}
6691#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6692const _: () = {
6693    ["Size of _cef_x509_certificate_t"]
6694        [::std::mem::size_of::<_cef_x509_certificate_t>() - 120usize];
6695    ["Alignment of _cef_x509_certificate_t"]
6696        [::std::mem::align_of::<_cef_x509_certificate_t>() - 8usize];
6697    ["Offset of field: _cef_x509_certificate_t::base"]
6698        [::std::mem::offset_of!(_cef_x509_certificate_t, base) - 0usize];
6699    ["Offset of field: _cef_x509_certificate_t::get_subject"]
6700        [::std::mem::offset_of!(_cef_x509_certificate_t, get_subject) - 40usize];
6701    ["Offset of field: _cef_x509_certificate_t::get_issuer"]
6702        [::std::mem::offset_of!(_cef_x509_certificate_t, get_issuer) - 48usize];
6703    ["Offset of field: _cef_x509_certificate_t::get_serial_number"]
6704        [::std::mem::offset_of!(_cef_x509_certificate_t, get_serial_number) - 56usize];
6705    ["Offset of field: _cef_x509_certificate_t::get_valid_start"]
6706        [::std::mem::offset_of!(_cef_x509_certificate_t, get_valid_start) - 64usize];
6707    ["Offset of field: _cef_x509_certificate_t::get_valid_expiry"]
6708        [::std::mem::offset_of!(_cef_x509_certificate_t, get_valid_expiry) - 72usize];
6709    ["Offset of field: _cef_x509_certificate_t::get_derencoded"]
6710        [::std::mem::offset_of!(_cef_x509_certificate_t, get_derencoded) - 80usize];
6711    ["Offset of field: _cef_x509_certificate_t::get_pemencoded"]
6712        [::std::mem::offset_of!(_cef_x509_certificate_t, get_pemencoded) - 88usize];
6713    ["Offset of field: _cef_x509_certificate_t::get_issuer_chain_size"]
6714        [::std::mem::offset_of!(_cef_x509_certificate_t, get_issuer_chain_size) - 96usize];
6715    ["Offset of field: _cef_x509_certificate_t::get_derencoded_issuer_chain"]
6716        [::std::mem::offset_of!(_cef_x509_certificate_t, get_derencoded_issuer_chain) - 104usize];
6717    ["Offset of field: _cef_x509_certificate_t::get_pemencoded_issuer_chain"]
6718        [::std::mem::offset_of!(_cef_x509_certificate_t, get_pemencoded_issuer_chain) - 112usize];
6719};
6720#[doc = "\n Structure representing a X.509 certificate.\n\n NOTE: This struct is allocated DLL-side.\n"]
6721pub type cef_x509_certificate_t = _cef_x509_certificate_t;
6722#[doc = "\n Structure representing the SSL information for a navigation entry.\n\n NOTE: This struct is allocated DLL-side.\n"]
6723#[repr(C)]
6724#[derive(Debug, Copy, Clone)]
6725pub struct _cef_sslstatus_t {
6726    #[doc = "\n Base structure.\n"]
6727    pub base: cef_base_ref_counted_t,
6728    #[doc = "\n Returns true (1) if the status is related to a secure SSL/TLS connection.\n"]
6729    pub is_secure_connection: ::std::option::Option<
6730        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> ::std::os::raw::c_int,
6731    >,
6732    #[doc = "\n Returns a bitmask containing any and all problems verifying the server\n certificate.\n"]
6733    pub get_cert_status: ::std::option::Option<
6734        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_cert_status_t,
6735    >,
6736    #[doc = "\n Returns the SSL version used for the SSL connection.\n"]
6737    pub get_sslversion: ::std::option::Option<
6738        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_ssl_version_t,
6739    >,
6740    #[doc = "\n Returns a bitmask containing the page security content status.\n"]
6741    pub get_content_status: ::std::option::Option<
6742        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> cef_ssl_content_status_t,
6743    >,
6744    #[doc = "\n Returns the X.509 certificate.\n"]
6745    pub get_x509_certificate: ::std::option::Option<
6746        unsafe extern "C" fn(self_: *mut _cef_sslstatus_t) -> *mut _cef_x509_certificate_t,
6747    >,
6748}
6749#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6750const _: () = {
6751    ["Size of _cef_sslstatus_t"][::std::mem::size_of::<_cef_sslstatus_t>() - 80usize];
6752    ["Alignment of _cef_sslstatus_t"][::std::mem::align_of::<_cef_sslstatus_t>() - 8usize];
6753    ["Offset of field: _cef_sslstatus_t::base"]
6754        [::std::mem::offset_of!(_cef_sslstatus_t, base) - 0usize];
6755    ["Offset of field: _cef_sslstatus_t::is_secure_connection"]
6756        [::std::mem::offset_of!(_cef_sslstatus_t, is_secure_connection) - 40usize];
6757    ["Offset of field: _cef_sslstatus_t::get_cert_status"]
6758        [::std::mem::offset_of!(_cef_sslstatus_t, get_cert_status) - 48usize];
6759    ["Offset of field: _cef_sslstatus_t::get_sslversion"]
6760        [::std::mem::offset_of!(_cef_sslstatus_t, get_sslversion) - 56usize];
6761    ["Offset of field: _cef_sslstatus_t::get_content_status"]
6762        [::std::mem::offset_of!(_cef_sslstatus_t, get_content_status) - 64usize];
6763    ["Offset of field: _cef_sslstatus_t::get_x509_certificate"]
6764        [::std::mem::offset_of!(_cef_sslstatus_t, get_x509_certificate) - 72usize];
6765};
6766#[doc = "\n Structure representing the SSL information for a navigation entry.\n\n NOTE: This struct is allocated DLL-side.\n"]
6767pub type cef_sslstatus_t = _cef_sslstatus_t;
6768#[doc = "\n Structure used to represent an entry in navigation history.\n\n NOTE: This struct is allocated DLL-side.\n"]
6769#[repr(C)]
6770#[derive(Debug, Copy, Clone)]
6771pub struct _cef_navigation_entry_t {
6772    #[doc = "\n Base structure.\n"]
6773    pub base: cef_base_ref_counted_t,
6774    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
6775    pub is_valid: ::std::option::Option<
6776        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
6777    >,
6778    #[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"]
6779    pub get_url: ::std::option::Option<
6780        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
6781    >,
6782    #[doc = "\n Returns a display-friendly version of the URL.\n"]
6783    pub get_display_url: ::std::option::Option<
6784        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
6785    >,
6786    #[doc = "\n Returns the original URL that was entered by the user before any\n redirects.\n"]
6787    pub get_original_url: ::std::option::Option<
6788        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
6789    >,
6790    #[doc = "\n Returns the title set by the page. This value may be NULL.\n"]
6791    pub get_title: ::std::option::Option<
6792        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_string_userfree_t,
6793    >,
6794    #[doc = "\n Returns the transition type which indicates what the user did to move to\n this page from the previous page.\n"]
6795    pub get_transition_type: ::std::option::Option<
6796        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_transition_type_t,
6797    >,
6798    #[doc = "\n Returns true (1) if this navigation includes post data.\n"]
6799    pub has_post_data: ::std::option::Option<
6800        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
6801    >,
6802    #[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"]
6803    pub get_completion_time: ::std::option::Option<
6804        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> cef_basetime_t,
6805    >,
6806    #[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"]
6807    pub get_http_status_code: ::std::option::Option<
6808        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> ::std::os::raw::c_int,
6809    >,
6810    #[doc = "\n Returns the SSL information for this navigation entry.\n"]
6811    pub get_sslstatus: ::std::option::Option<
6812        unsafe extern "C" fn(self_: *mut _cef_navigation_entry_t) -> *mut _cef_sslstatus_t,
6813    >,
6814}
6815#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6816const _: () = {
6817    ["Size of _cef_navigation_entry_t"]
6818        [::std::mem::size_of::<_cef_navigation_entry_t>() - 120usize];
6819    ["Alignment of _cef_navigation_entry_t"]
6820        [::std::mem::align_of::<_cef_navigation_entry_t>() - 8usize];
6821    ["Offset of field: _cef_navigation_entry_t::base"]
6822        [::std::mem::offset_of!(_cef_navigation_entry_t, base) - 0usize];
6823    ["Offset of field: _cef_navigation_entry_t::is_valid"]
6824        [::std::mem::offset_of!(_cef_navigation_entry_t, is_valid) - 40usize];
6825    ["Offset of field: _cef_navigation_entry_t::get_url"]
6826        [::std::mem::offset_of!(_cef_navigation_entry_t, get_url) - 48usize];
6827    ["Offset of field: _cef_navigation_entry_t::get_display_url"]
6828        [::std::mem::offset_of!(_cef_navigation_entry_t, get_display_url) - 56usize];
6829    ["Offset of field: _cef_navigation_entry_t::get_original_url"]
6830        [::std::mem::offset_of!(_cef_navigation_entry_t, get_original_url) - 64usize];
6831    ["Offset of field: _cef_navigation_entry_t::get_title"]
6832        [::std::mem::offset_of!(_cef_navigation_entry_t, get_title) - 72usize];
6833    ["Offset of field: _cef_navigation_entry_t::get_transition_type"]
6834        [::std::mem::offset_of!(_cef_navigation_entry_t, get_transition_type) - 80usize];
6835    ["Offset of field: _cef_navigation_entry_t::has_post_data"]
6836        [::std::mem::offset_of!(_cef_navigation_entry_t, has_post_data) - 88usize];
6837    ["Offset of field: _cef_navigation_entry_t::get_completion_time"]
6838        [::std::mem::offset_of!(_cef_navigation_entry_t, get_completion_time) - 96usize];
6839    ["Offset of field: _cef_navigation_entry_t::get_http_status_code"]
6840        [::std::mem::offset_of!(_cef_navigation_entry_t, get_http_status_code) - 104usize];
6841    ["Offset of field: _cef_navigation_entry_t::get_sslstatus"]
6842        [::std::mem::offset_of!(_cef_navigation_entry_t, get_sslstatus) - 112usize];
6843};
6844#[doc = "\n Structure used to represent an entry in navigation history.\n\n NOTE: This struct is allocated DLL-side.\n"]
6845pub type cef_navigation_entry_t = _cef_navigation_entry_t;
6846#[doc = "\n Generic callback structure used for managing the lifespan of a registration.\n\n NOTE: This struct is allocated DLL-side.\n"]
6847#[repr(C)]
6848#[derive(Debug, Copy, Clone)]
6849pub struct _cef_registration_t {
6850    #[doc = "\n Base structure.\n"]
6851    pub base: cef_base_ref_counted_t,
6852}
6853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6854const _: () = {
6855    ["Size of _cef_registration_t"][::std::mem::size_of::<_cef_registration_t>() - 40usize];
6856    ["Alignment of _cef_registration_t"][::std::mem::align_of::<_cef_registration_t>() - 8usize];
6857    ["Offset of field: _cef_registration_t::base"]
6858        [::std::mem::offset_of!(_cef_registration_t, base) - 0usize];
6859};
6860#[doc = "\n Generic callback structure used for managing the lifespan of a registration.\n\n NOTE: This struct is allocated DLL-side.\n"]
6861pub type cef_registration_t = _cef_registration_t;
6862#[doc = "\n Generic callback structure used for asynchronous continuation.\n\n NOTE: This struct is allocated DLL-side.\n"]
6863#[repr(C)]
6864#[derive(Debug, Copy, Clone)]
6865pub struct _cef_callback_t {
6866    #[doc = "\n Base structure.\n"]
6867    pub base: cef_base_ref_counted_t,
6868    #[doc = "\n Continue processing.\n"]
6869    pub cont: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_callback_t)>,
6870    #[doc = "\n Cancel processing.\n"]
6871    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_callback_t)>,
6872}
6873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6874const _: () = {
6875    ["Size of _cef_callback_t"][::std::mem::size_of::<_cef_callback_t>() - 56usize];
6876    ["Alignment of _cef_callback_t"][::std::mem::align_of::<_cef_callback_t>() - 8usize];
6877    ["Offset of field: _cef_callback_t::base"]
6878        [::std::mem::offset_of!(_cef_callback_t, base) - 0usize];
6879    ["Offset of field: _cef_callback_t::cont"]
6880        [::std::mem::offset_of!(_cef_callback_t, cont) - 40usize];
6881    ["Offset of field: _cef_callback_t::cancel"]
6882        [::std::mem::offset_of!(_cef_callback_t, cancel) - 48usize];
6883};
6884#[doc = "\n Generic callback structure used for asynchronous continuation.\n\n NOTE: This struct is allocated DLL-side.\n"]
6885pub type cef_callback_t = _cef_callback_t;
6886#[doc = "\n Generic callback structure used for asynchronous completion.\n\n NOTE: This struct is allocated client-side.\n"]
6887#[repr(C)]
6888#[derive(Debug, Copy, Clone)]
6889pub struct _cef_completion_callback_t {
6890    #[doc = "\n Base structure.\n"]
6891    pub base: cef_base_ref_counted_t,
6892    #[doc = "\n Method that will be called once the task is complete.\n"]
6893    pub on_complete:
6894        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_completion_callback_t)>,
6895}
6896#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6897const _: () = {
6898    ["Size of _cef_completion_callback_t"]
6899        [::std::mem::size_of::<_cef_completion_callback_t>() - 48usize];
6900    ["Alignment of _cef_completion_callback_t"]
6901        [::std::mem::align_of::<_cef_completion_callback_t>() - 8usize];
6902    ["Offset of field: _cef_completion_callback_t::base"]
6903        [::std::mem::offset_of!(_cef_completion_callback_t, base) - 0usize];
6904    ["Offset of field: _cef_completion_callback_t::on_complete"]
6905        [::std::mem::offset_of!(_cef_completion_callback_t, on_complete) - 40usize];
6906};
6907#[doc = "\n Generic callback structure used for asynchronous completion.\n\n NOTE: This struct is allocated client-side.\n"]
6908pub type cef_completion_callback_t = _cef_completion_callback_t;
6909#[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"]
6910#[repr(C)]
6911#[derive(Debug, Copy, Clone)]
6912pub struct _cef_cookie_manager_t {
6913    #[doc = "\n Base structure.\n"]
6914    pub base: cef_base_ref_counted_t,
6915    #[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"]
6916    pub visit_all_cookies: ::std::option::Option<
6917        unsafe extern "C" fn(
6918            self_: *mut _cef_cookie_manager_t,
6919            visitor: *mut _cef_cookie_visitor_t,
6920        ) -> ::std::os::raw::c_int,
6921    >,
6922    #[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"]
6923    pub visit_url_cookies: ::std::option::Option<
6924        unsafe extern "C" fn(
6925            self_: *mut _cef_cookie_manager_t,
6926            url: *const cef_string_t,
6927            includeHttpOnly: ::std::os::raw::c_int,
6928            visitor: *mut _cef_cookie_visitor_t,
6929        ) -> ::std::os::raw::c_int,
6930    >,
6931    #[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"]
6932    pub set_cookie: ::std::option::Option<
6933        unsafe extern "C" fn(
6934            self_: *mut _cef_cookie_manager_t,
6935            url: *const cef_string_t,
6936            cookie: *const _cef_cookie_t,
6937            callback: *mut _cef_set_cookie_callback_t,
6938        ) -> ::std::os::raw::c_int,
6939    >,
6940    #[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"]
6941    pub delete_cookies: ::std::option::Option<
6942        unsafe extern "C" fn(
6943            self_: *mut _cef_cookie_manager_t,
6944            url: *const cef_string_t,
6945            cookie_name: *const cef_string_t,
6946            callback: *mut _cef_delete_cookies_callback_t,
6947        ) -> ::std::os::raw::c_int,
6948    >,
6949    #[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"]
6950    pub flush_store: ::std::option::Option<
6951        unsafe extern "C" fn(
6952            self_: *mut _cef_cookie_manager_t,
6953            callback: *mut _cef_completion_callback_t,
6954        ) -> ::std::os::raw::c_int,
6955    >,
6956}
6957#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6958const _: () = {
6959    ["Size of _cef_cookie_manager_t"][::std::mem::size_of::<_cef_cookie_manager_t>() - 80usize];
6960    ["Alignment of _cef_cookie_manager_t"]
6961        [::std::mem::align_of::<_cef_cookie_manager_t>() - 8usize];
6962    ["Offset of field: _cef_cookie_manager_t::base"]
6963        [::std::mem::offset_of!(_cef_cookie_manager_t, base) - 0usize];
6964    ["Offset of field: _cef_cookie_manager_t::visit_all_cookies"]
6965        [::std::mem::offset_of!(_cef_cookie_manager_t, visit_all_cookies) - 40usize];
6966    ["Offset of field: _cef_cookie_manager_t::visit_url_cookies"]
6967        [::std::mem::offset_of!(_cef_cookie_manager_t, visit_url_cookies) - 48usize];
6968    ["Offset of field: _cef_cookie_manager_t::set_cookie"]
6969        [::std::mem::offset_of!(_cef_cookie_manager_t, set_cookie) - 56usize];
6970    ["Offset of field: _cef_cookie_manager_t::delete_cookies"]
6971        [::std::mem::offset_of!(_cef_cookie_manager_t, delete_cookies) - 64usize];
6972    ["Offset of field: _cef_cookie_manager_t::flush_store"]
6973        [::std::mem::offset_of!(_cef_cookie_manager_t, flush_store) - 72usize];
6974};
6975#[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"]
6976pub type cef_cookie_manager_t = _cef_cookie_manager_t;
6977unsafe extern "C" {
6978    #[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()->Get\n DefaultCookieManager().\n"]
6979    pub fn cef_cookie_manager_get_global_manager(
6980        callback: *mut _cef_completion_callback_t,
6981    ) -> *mut cef_cookie_manager_t;
6982}
6983#[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"]
6984#[repr(C)]
6985#[derive(Debug, Copy, Clone)]
6986pub struct _cef_cookie_visitor_t {
6987    #[doc = "\n Base structure.\n"]
6988    pub base: cef_base_ref_counted_t,
6989    #[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"]
6990    pub visit: ::std::option::Option<
6991        unsafe extern "C" fn(
6992            self_: *mut _cef_cookie_visitor_t,
6993            cookie: *const _cef_cookie_t,
6994            count: ::std::os::raw::c_int,
6995            total: ::std::os::raw::c_int,
6996            deleteCookie: *mut ::std::os::raw::c_int,
6997        ) -> ::std::os::raw::c_int,
6998    >,
6999}
7000#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7001const _: () = {
7002    ["Size of _cef_cookie_visitor_t"][::std::mem::size_of::<_cef_cookie_visitor_t>() - 48usize];
7003    ["Alignment of _cef_cookie_visitor_t"]
7004        [::std::mem::align_of::<_cef_cookie_visitor_t>() - 8usize];
7005    ["Offset of field: _cef_cookie_visitor_t::base"]
7006        [::std::mem::offset_of!(_cef_cookie_visitor_t, base) - 0usize];
7007    ["Offset of field: _cef_cookie_visitor_t::visit"]
7008        [::std::mem::offset_of!(_cef_cookie_visitor_t, visit) - 40usize];
7009};
7010#[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"]
7011pub type cef_cookie_visitor_t = _cef_cookie_visitor_t;
7012#[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"]
7013#[repr(C)]
7014#[derive(Debug, Copy, Clone)]
7015pub struct _cef_set_cookie_callback_t {
7016    #[doc = "\n Base structure.\n"]
7017    pub base: cef_base_ref_counted_t,
7018    #[doc = "\n Method that will be called upon completion. |success| will be true (1) if\n the cookie was set successfully.\n"]
7019    pub on_complete: ::std::option::Option<
7020        unsafe extern "C" fn(
7021            self_: *mut _cef_set_cookie_callback_t,
7022            success: ::std::os::raw::c_int,
7023        ),
7024    >,
7025}
7026#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7027const _: () = {
7028    ["Size of _cef_set_cookie_callback_t"]
7029        [::std::mem::size_of::<_cef_set_cookie_callback_t>() - 48usize];
7030    ["Alignment of _cef_set_cookie_callback_t"]
7031        [::std::mem::align_of::<_cef_set_cookie_callback_t>() - 8usize];
7032    ["Offset of field: _cef_set_cookie_callback_t::base"]
7033        [::std::mem::offset_of!(_cef_set_cookie_callback_t, base) - 0usize];
7034    ["Offset of field: _cef_set_cookie_callback_t::on_complete"]
7035        [::std::mem::offset_of!(_cef_set_cookie_callback_t, on_complete) - 40usize];
7036};
7037#[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"]
7038pub type cef_set_cookie_callback_t = _cef_set_cookie_callback_t;
7039#[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"]
7040#[repr(C)]
7041#[derive(Debug, Copy, Clone)]
7042pub struct _cef_delete_cookies_callback_t {
7043    #[doc = "\n Base structure.\n"]
7044    pub base: cef_base_ref_counted_t,
7045    #[doc = "\n Method that will be called upon completion. |num_deleted| will be the\n number of cookies that were deleted.\n"]
7046    pub on_complete: ::std::option::Option<
7047        unsafe extern "C" fn(
7048            self_: *mut _cef_delete_cookies_callback_t,
7049            num_deleted: ::std::os::raw::c_int,
7050        ),
7051    >,
7052}
7053#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7054const _: () = {
7055    ["Size of _cef_delete_cookies_callback_t"]
7056        [::std::mem::size_of::<_cef_delete_cookies_callback_t>() - 48usize];
7057    ["Alignment of _cef_delete_cookies_callback_t"]
7058        [::std::mem::align_of::<_cef_delete_cookies_callback_t>() - 8usize];
7059    ["Offset of field: _cef_delete_cookies_callback_t::base"]
7060        [::std::mem::offset_of!(_cef_delete_cookies_callback_t, base) - 0usize];
7061    ["Offset of field: _cef_delete_cookies_callback_t::on_complete"]
7062        [::std::mem::offset_of!(_cef_delete_cookies_callback_t, on_complete) - 40usize];
7063};
7064#[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"]
7065pub type cef_delete_cookies_callback_t = _cef_delete_cookies_callback_t;
7066#[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"]
7067#[repr(C)]
7068#[derive(Debug, Copy, Clone)]
7069pub struct _cef_media_router_t {
7070    #[doc = "\n Base structure.\n"]
7071    pub base: cef_base_ref_counted_t,
7072    #[doc = "\n Add an observer for MediaRouter events. The observer will remain\n registered until the returned Registration object is destroyed.\n"]
7073    pub add_observer: ::std::option::Option<
7074        unsafe extern "C" fn(
7075            self_: *mut _cef_media_router_t,
7076            observer: *mut _cef_media_observer_t,
7077        ) -> *mut _cef_registration_t,
7078    >,
7079    #[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"]
7080    pub get_source: ::std::option::Option<
7081        unsafe extern "C" fn(
7082            self_: *mut _cef_media_router_t,
7083            urn: *const cef_string_t,
7084        ) -> *mut _cef_media_source_t,
7085    >,
7086    #[doc = "\n Trigger an asynchronous call to cef_media_observer_t::OnSinks on all\n registered observers.\n"]
7087    pub notify_current_sinks:
7088        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_router_t)>,
7089    #[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"]
7090    pub create_route: ::std::option::Option<
7091        unsafe extern "C" fn(
7092            self_: *mut _cef_media_router_t,
7093            source: *mut _cef_media_source_t,
7094            sink: *mut _cef_media_sink_t,
7095            callback: *mut _cef_media_route_create_callback_t,
7096        ),
7097    >,
7098    #[doc = "\n Trigger an asynchronous call to cef_media_observer_t::OnRoutes on all\n registered observers.\n"]
7099    pub notify_current_routes:
7100        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_router_t)>,
7101}
7102#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7103const _: () = {
7104    ["Size of _cef_media_router_t"][::std::mem::size_of::<_cef_media_router_t>() - 80usize];
7105    ["Alignment of _cef_media_router_t"][::std::mem::align_of::<_cef_media_router_t>() - 8usize];
7106    ["Offset of field: _cef_media_router_t::base"]
7107        [::std::mem::offset_of!(_cef_media_router_t, base) - 0usize];
7108    ["Offset of field: _cef_media_router_t::add_observer"]
7109        [::std::mem::offset_of!(_cef_media_router_t, add_observer) - 40usize];
7110    ["Offset of field: _cef_media_router_t::get_source"]
7111        [::std::mem::offset_of!(_cef_media_router_t, get_source) - 48usize];
7112    ["Offset of field: _cef_media_router_t::notify_current_sinks"]
7113        [::std::mem::offset_of!(_cef_media_router_t, notify_current_sinks) - 56usize];
7114    ["Offset of field: _cef_media_router_t::create_route"]
7115        [::std::mem::offset_of!(_cef_media_router_t, create_route) - 64usize];
7116    ["Offset of field: _cef_media_router_t::notify_current_routes"]
7117        [::std::mem::offset_of!(_cef_media_router_t, notify_current_routes) - 72usize];
7118};
7119#[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"]
7120pub type cef_media_router_t = _cef_media_router_t;
7121unsafe extern "C" {
7122    #[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()->get\n _media_router().\n"]
7123    pub fn cef_media_router_get_global(
7124        callback: *mut _cef_completion_callback_t,
7125    ) -> *mut cef_media_router_t;
7126}
7127#[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"]
7128#[repr(C)]
7129#[derive(Debug, Copy, Clone)]
7130pub struct _cef_media_observer_t {
7131    #[doc = "\n Base structure.\n"]
7132    pub base: cef_base_ref_counted_t,
7133    #[doc = "\n The list of available media sinks has changed or\n cef_media_router_t::NotifyCurrentSinks was called.\n"]
7134    pub on_sinks: ::std::option::Option<
7135        unsafe extern "C" fn(
7136            self_: *mut _cef_media_observer_t,
7137            sinksCount: usize,
7138            sinks: *const *mut _cef_media_sink_t,
7139        ),
7140    >,
7141    #[doc = "\n The list of available media routes has changed or\n cef_media_router_t::NotifyCurrentRoutes was called.\n"]
7142    pub on_routes: ::std::option::Option<
7143        unsafe extern "C" fn(
7144            self_: *mut _cef_media_observer_t,
7145            routesCount: usize,
7146            routes: *const *mut _cef_media_route_t,
7147        ),
7148    >,
7149    #[doc = "\n The connection state of |route| has changed.\n"]
7150    pub on_route_state_changed: ::std::option::Option<
7151        unsafe extern "C" fn(
7152            self_: *mut _cef_media_observer_t,
7153            route: *mut _cef_media_route_t,
7154            state: cef_media_route_connection_state_t,
7155        ),
7156    >,
7157    #[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"]
7158    pub on_route_message_received: ::std::option::Option<
7159        unsafe extern "C" fn(
7160            self_: *mut _cef_media_observer_t,
7161            route: *mut _cef_media_route_t,
7162            message: *const ::std::os::raw::c_void,
7163            message_size: usize,
7164        ),
7165    >,
7166}
7167#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7168const _: () = {
7169    ["Size of _cef_media_observer_t"][::std::mem::size_of::<_cef_media_observer_t>() - 72usize];
7170    ["Alignment of _cef_media_observer_t"]
7171        [::std::mem::align_of::<_cef_media_observer_t>() - 8usize];
7172    ["Offset of field: _cef_media_observer_t::base"]
7173        [::std::mem::offset_of!(_cef_media_observer_t, base) - 0usize];
7174    ["Offset of field: _cef_media_observer_t::on_sinks"]
7175        [::std::mem::offset_of!(_cef_media_observer_t, on_sinks) - 40usize];
7176    ["Offset of field: _cef_media_observer_t::on_routes"]
7177        [::std::mem::offset_of!(_cef_media_observer_t, on_routes) - 48usize];
7178    ["Offset of field: _cef_media_observer_t::on_route_state_changed"]
7179        [::std::mem::offset_of!(_cef_media_observer_t, on_route_state_changed) - 56usize];
7180    ["Offset of field: _cef_media_observer_t::on_route_message_received"]
7181        [::std::mem::offset_of!(_cef_media_observer_t, on_route_message_received) - 64usize];
7182};
7183#[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"]
7184pub type cef_media_observer_t = _cef_media_observer_t;
7185#[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"]
7186#[repr(C)]
7187#[derive(Debug, Copy, Clone)]
7188pub struct _cef_media_route_t {
7189    #[doc = "\n Base structure.\n"]
7190    pub base: cef_base_ref_counted_t,
7191    #[doc = "\n Returns the ID for this route.\n"]
7192    pub get_id: ::std::option::Option<
7193        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> cef_string_userfree_t,
7194    >,
7195    #[doc = "\n Returns the source associated with this route.\n"]
7196    pub get_source: ::std::option::Option<
7197        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> *mut _cef_media_source_t,
7198    >,
7199    #[doc = "\n Returns the sink associated with this route.\n"]
7200    pub get_sink: ::std::option::Option<
7201        unsafe extern "C" fn(self_: *mut _cef_media_route_t) -> *mut _cef_media_sink_t,
7202    >,
7203    #[doc = "\n Send a message over this route. |message| will be copied if necessary.\n"]
7204    pub send_route_message: ::std::option::Option<
7205        unsafe extern "C" fn(
7206            self_: *mut _cef_media_route_t,
7207            message: *const ::std::os::raw::c_void,
7208            message_size: usize,
7209        ),
7210    >,
7211    #[doc = "\n Terminate this route. Will result in an asynchronous call to\n cef_media_observer_t::OnRoutes on all registered observers.\n"]
7212    pub terminate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_route_t)>,
7213}
7214#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7215const _: () = {
7216    ["Size of _cef_media_route_t"][::std::mem::size_of::<_cef_media_route_t>() - 80usize];
7217    ["Alignment of _cef_media_route_t"][::std::mem::align_of::<_cef_media_route_t>() - 8usize];
7218    ["Offset of field: _cef_media_route_t::base"]
7219        [::std::mem::offset_of!(_cef_media_route_t, base) - 0usize];
7220    ["Offset of field: _cef_media_route_t::get_id"]
7221        [::std::mem::offset_of!(_cef_media_route_t, get_id) - 40usize];
7222    ["Offset of field: _cef_media_route_t::get_source"]
7223        [::std::mem::offset_of!(_cef_media_route_t, get_source) - 48usize];
7224    ["Offset of field: _cef_media_route_t::get_sink"]
7225        [::std::mem::offset_of!(_cef_media_route_t, get_sink) - 56usize];
7226    ["Offset of field: _cef_media_route_t::send_route_message"]
7227        [::std::mem::offset_of!(_cef_media_route_t, send_route_message) - 64usize];
7228    ["Offset of field: _cef_media_route_t::terminate"]
7229        [::std::mem::offset_of!(_cef_media_route_t, terminate) - 72usize];
7230};
7231#[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"]
7232pub type cef_media_route_t = _cef_media_route_t;
7233#[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"]
7234#[repr(C)]
7235#[derive(Debug, Copy, Clone)]
7236pub struct _cef_media_route_create_callback_t {
7237    #[doc = "\n Base structure.\n"]
7238    pub base: cef_base_ref_counted_t,
7239    #[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"]
7240    pub on_media_route_create_finished: ::std::option::Option<
7241        unsafe extern "C" fn(
7242            self_: *mut _cef_media_route_create_callback_t,
7243            result: cef_media_route_create_result_t,
7244            error: *const cef_string_t,
7245            route: *mut _cef_media_route_t,
7246        ),
7247    >,
7248}
7249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7250const _: () = {
7251    ["Size of _cef_media_route_create_callback_t"]
7252        [::std::mem::size_of::<_cef_media_route_create_callback_t>() - 48usize];
7253    ["Alignment of _cef_media_route_create_callback_t"]
7254        [::std::mem::align_of::<_cef_media_route_create_callback_t>() - 8usize];
7255    ["Offset of field: _cef_media_route_create_callback_t::base"]
7256        [::std::mem::offset_of!(_cef_media_route_create_callback_t, base) - 0usize];
7257    ["Offset of field: _cef_media_route_create_callback_t::on_media_route_create_finished"][::std::mem::offset_of!(
7258        _cef_media_route_create_callback_t,
7259        on_media_route_create_finished
7260    )
7261        - 40usize];
7262};
7263#[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"]
7264pub type cef_media_route_create_callback_t = _cef_media_route_create_callback_t;
7265#[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"]
7266#[repr(C)]
7267#[derive(Debug, Copy, Clone)]
7268pub struct _cef_media_sink_t {
7269    #[doc = "\n Base structure.\n"]
7270    pub base: cef_base_ref_counted_t,
7271    #[doc = "\n Returns the ID for this sink.\n"]
7272    pub get_id: ::std::option::Option<
7273        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_string_userfree_t,
7274    >,
7275    #[doc = "\n Returns the name of this sink.\n"]
7276    pub get_name: ::std::option::Option<
7277        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_string_userfree_t,
7278    >,
7279    #[doc = "\n Returns the icon type for this sink.\n"]
7280    pub get_icon_type: ::std::option::Option<
7281        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> cef_media_sink_icon_type_t,
7282    >,
7283    #[doc = "\n Asynchronously retrieves device info.\n"]
7284    pub get_device_info: ::std::option::Option<
7285        unsafe extern "C" fn(
7286            self_: *mut _cef_media_sink_t,
7287            callback: *mut _cef_media_sink_device_info_callback_t,
7288        ),
7289    >,
7290    #[doc = "\n Returns true (1) if this sink accepts content via Cast.\n"]
7291    pub is_cast_sink: ::std::option::Option<
7292        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> ::std::os::raw::c_int,
7293    >,
7294    #[doc = "\n Returns true (1) if this sink accepts content via DIAL.\n"]
7295    pub is_dial_sink: ::std::option::Option<
7296        unsafe extern "C" fn(self_: *mut _cef_media_sink_t) -> ::std::os::raw::c_int,
7297    >,
7298    #[doc = "\n Returns true (1) if this sink is compatible with |source|.\n"]
7299    pub is_compatible_with: ::std::option::Option<
7300        unsafe extern "C" fn(
7301            self_: *mut _cef_media_sink_t,
7302            source: *mut _cef_media_source_t,
7303        ) -> ::std::os::raw::c_int,
7304    >,
7305}
7306#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7307const _: () = {
7308    ["Size of _cef_media_sink_t"][::std::mem::size_of::<_cef_media_sink_t>() - 96usize];
7309    ["Alignment of _cef_media_sink_t"][::std::mem::align_of::<_cef_media_sink_t>() - 8usize];
7310    ["Offset of field: _cef_media_sink_t::base"]
7311        [::std::mem::offset_of!(_cef_media_sink_t, base) - 0usize];
7312    ["Offset of field: _cef_media_sink_t::get_id"]
7313        [::std::mem::offset_of!(_cef_media_sink_t, get_id) - 40usize];
7314    ["Offset of field: _cef_media_sink_t::get_name"]
7315        [::std::mem::offset_of!(_cef_media_sink_t, get_name) - 48usize];
7316    ["Offset of field: _cef_media_sink_t::get_icon_type"]
7317        [::std::mem::offset_of!(_cef_media_sink_t, get_icon_type) - 56usize];
7318    ["Offset of field: _cef_media_sink_t::get_device_info"]
7319        [::std::mem::offset_of!(_cef_media_sink_t, get_device_info) - 64usize];
7320    ["Offset of field: _cef_media_sink_t::is_cast_sink"]
7321        [::std::mem::offset_of!(_cef_media_sink_t, is_cast_sink) - 72usize];
7322    ["Offset of field: _cef_media_sink_t::is_dial_sink"]
7323        [::std::mem::offset_of!(_cef_media_sink_t, is_dial_sink) - 80usize];
7324    ["Offset of field: _cef_media_sink_t::is_compatible_with"]
7325        [::std::mem::offset_of!(_cef_media_sink_t, is_compatible_with) - 88usize];
7326};
7327#[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"]
7328pub type cef_media_sink_t = _cef_media_sink_t;
7329#[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"]
7330#[repr(C)]
7331#[derive(Debug, Copy, Clone)]
7332pub struct _cef_media_sink_device_info_callback_t {
7333    #[doc = "\n Base structure.\n"]
7334    pub base: cef_base_ref_counted_t,
7335    #[doc = "\n Method that will be executed asyncronously once device information has\n been retrieved.\n"]
7336    pub on_media_sink_device_info: ::std::option::Option<
7337        unsafe extern "C" fn(
7338            self_: *mut _cef_media_sink_device_info_callback_t,
7339            device_info: *const _cef_media_sink_device_info_t,
7340        ),
7341    >,
7342}
7343#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7344const _: () = {
7345    ["Size of _cef_media_sink_device_info_callback_t"]
7346        [::std::mem::size_of::<_cef_media_sink_device_info_callback_t>() - 48usize];
7347    ["Alignment of _cef_media_sink_device_info_callback_t"]
7348        [::std::mem::align_of::<_cef_media_sink_device_info_callback_t>() - 8usize];
7349    ["Offset of field: _cef_media_sink_device_info_callback_t::base"]
7350        [::std::mem::offset_of!(_cef_media_sink_device_info_callback_t, base) - 0usize];
7351    ["Offset of field: _cef_media_sink_device_info_callback_t::on_media_sink_device_info"][::std::mem::offset_of!(
7352        _cef_media_sink_device_info_callback_t,
7353        on_media_sink_device_info
7354    )
7355        - 40usize];
7356};
7357#[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"]
7358pub type cef_media_sink_device_info_callback_t = _cef_media_sink_device_info_callback_t;
7359#[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"]
7360#[repr(C)]
7361#[derive(Debug, Copy, Clone)]
7362pub struct _cef_media_source_t {
7363    #[doc = "\n Base structure.\n"]
7364    pub base: cef_base_ref_counted_t,
7365    #[doc = "\n Returns the ID (media source URN or URL) for this source.\n"]
7366    pub get_id: ::std::option::Option<
7367        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> cef_string_userfree_t,
7368    >,
7369    #[doc = "\n Returns true (1) if this source outputs its content via Cast.\n"]
7370    pub is_cast_source: ::std::option::Option<
7371        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> ::std::os::raw::c_int,
7372    >,
7373    #[doc = "\n Returns true (1) if this source outputs its content via DIAL.\n"]
7374    pub is_dial_source: ::std::option::Option<
7375        unsafe extern "C" fn(self_: *mut _cef_media_source_t) -> ::std::os::raw::c_int,
7376    >,
7377}
7378#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7379const _: () = {
7380    ["Size of _cef_media_source_t"][::std::mem::size_of::<_cef_media_source_t>() - 64usize];
7381    ["Alignment of _cef_media_source_t"][::std::mem::align_of::<_cef_media_source_t>() - 8usize];
7382    ["Offset of field: _cef_media_source_t::base"]
7383        [::std::mem::offset_of!(_cef_media_source_t, base) - 0usize];
7384    ["Offset of field: _cef_media_source_t::get_id"]
7385        [::std::mem::offset_of!(_cef_media_source_t, get_id) - 40usize];
7386    ["Offset of field: _cef_media_source_t::is_cast_source"]
7387        [::std::mem::offset_of!(_cef_media_source_t, is_cast_source) - 48usize];
7388    ["Offset of field: _cef_media_source_t::is_dial_source"]
7389        [::std::mem::offset_of!(_cef_media_source_t, is_dial_source) - 56usize];
7390};
7391#[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"]
7392pub type cef_media_source_t = _cef_media_source_t;
7393#[doc = "\n Structure that manages custom preference registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
7394#[repr(C)]
7395#[derive(Debug, Copy, Clone)]
7396pub struct _cef_preference_registrar_t {
7397    #[doc = "\n Base structure.\n"]
7398    pub base: cef_base_scoped_t,
7399    #[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"]
7400    pub add_preference: ::std::option::Option<
7401        unsafe extern "C" fn(
7402            self_: *mut _cef_preference_registrar_t,
7403            name: *const cef_string_t,
7404            default_value: *mut _cef_value_t,
7405        ) -> ::std::os::raw::c_int,
7406    >,
7407}
7408#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7409const _: () = {
7410    ["Size of _cef_preference_registrar_t"]
7411        [::std::mem::size_of::<_cef_preference_registrar_t>() - 24usize];
7412    ["Alignment of _cef_preference_registrar_t"]
7413        [::std::mem::align_of::<_cef_preference_registrar_t>() - 8usize];
7414    ["Offset of field: _cef_preference_registrar_t::base"]
7415        [::std::mem::offset_of!(_cef_preference_registrar_t, base) - 0usize];
7416    ["Offset of field: _cef_preference_registrar_t::add_preference"]
7417        [::std::mem::offset_of!(_cef_preference_registrar_t, add_preference) - 16usize];
7418};
7419#[doc = "\n Structure that manages custom preference registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
7420pub type cef_preference_registrar_t = _cef_preference_registrar_t;
7421#[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"]
7422#[repr(C)]
7423#[derive(Debug, Copy, Clone)]
7424pub struct _cef_preference_observer_t {
7425    #[doc = "\n Base structure.\n"]
7426    pub base: cef_base_ref_counted_t,
7427    #[doc = "\n Called when a preference has changed. The new value can be retrieved using\n cef_preference_manager_t::GetPreference.\n"]
7428    pub on_preference_changed: ::std::option::Option<
7429        unsafe extern "C" fn(self_: *mut _cef_preference_observer_t, name: *const cef_string_t),
7430    >,
7431}
7432#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7433const _: () = {
7434    ["Size of _cef_preference_observer_t"]
7435        [::std::mem::size_of::<_cef_preference_observer_t>() - 48usize];
7436    ["Alignment of _cef_preference_observer_t"]
7437        [::std::mem::align_of::<_cef_preference_observer_t>() - 8usize];
7438    ["Offset of field: _cef_preference_observer_t::base"]
7439        [::std::mem::offset_of!(_cef_preference_observer_t, base) - 0usize];
7440    ["Offset of field: _cef_preference_observer_t::on_preference_changed"]
7441        [::std::mem::offset_of!(_cef_preference_observer_t, on_preference_changed) - 40usize];
7442};
7443#[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"]
7444pub type cef_preference_observer_t = _cef_preference_observer_t;
7445#[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"]
7446#[repr(C)]
7447#[derive(Debug, Copy, Clone)]
7448pub struct _cef_preference_manager_t {
7449    #[doc = "\n Base structure.\n"]
7450    pub base: cef_base_ref_counted_t,
7451    #[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"]
7452    pub has_preference: ::std::option::Option<
7453        unsafe extern "C" fn(
7454            self_: *mut _cef_preference_manager_t,
7455            name: *const cef_string_t,
7456        ) -> ::std::os::raw::c_int,
7457    >,
7458    #[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"]
7459    pub get_preference: ::std::option::Option<
7460        unsafe extern "C" fn(
7461            self_: *mut _cef_preference_manager_t,
7462            name: *const cef_string_t,
7463        ) -> *mut _cef_value_t,
7464    >,
7465    #[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"]
7466    pub get_all_preferences: ::std::option::Option<
7467        unsafe extern "C" fn(
7468            self_: *mut _cef_preference_manager_t,
7469            include_defaults: ::std::os::raw::c_int,
7470        ) -> *mut _cef_dictionary_value_t,
7471    >,
7472    #[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"]
7473    pub can_set_preference: ::std::option::Option<
7474        unsafe extern "C" fn(
7475            self_: *mut _cef_preference_manager_t,
7476            name: *const cef_string_t,
7477        ) -> ::std::os::raw::c_int,
7478    >,
7479    #[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"]
7480    pub set_preference: ::std::option::Option<
7481        unsafe extern "C" fn(
7482            self_: *mut _cef_preference_manager_t,
7483            name: *const cef_string_t,
7484            value: *mut _cef_value_t,
7485            error: *mut cef_string_t,
7486        ) -> ::std::os::raw::c_int,
7487    >,
7488    #[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"]
7489    pub add_preference_observer: ::std::option::Option<
7490        unsafe extern "C" fn(
7491            self_: *mut _cef_preference_manager_t,
7492            name: *const cef_string_t,
7493            observer: *mut _cef_preference_observer_t,
7494        ) -> *mut _cef_registration_t,
7495    >,
7496}
7497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7498const _: () = {
7499    ["Size of _cef_preference_manager_t"]
7500        [::std::mem::size_of::<_cef_preference_manager_t>() - 88usize];
7501    ["Alignment of _cef_preference_manager_t"]
7502        [::std::mem::align_of::<_cef_preference_manager_t>() - 8usize];
7503    ["Offset of field: _cef_preference_manager_t::base"]
7504        [::std::mem::offset_of!(_cef_preference_manager_t, base) - 0usize];
7505    ["Offset of field: _cef_preference_manager_t::has_preference"]
7506        [::std::mem::offset_of!(_cef_preference_manager_t, has_preference) - 40usize];
7507    ["Offset of field: _cef_preference_manager_t::get_preference"]
7508        [::std::mem::offset_of!(_cef_preference_manager_t, get_preference) - 48usize];
7509    ["Offset of field: _cef_preference_manager_t::get_all_preferences"]
7510        [::std::mem::offset_of!(_cef_preference_manager_t, get_all_preferences) - 56usize];
7511    ["Offset of field: _cef_preference_manager_t::can_set_preference"]
7512        [::std::mem::offset_of!(_cef_preference_manager_t, can_set_preference) - 64usize];
7513    ["Offset of field: _cef_preference_manager_t::set_preference"]
7514        [::std::mem::offset_of!(_cef_preference_manager_t, set_preference) - 72usize];
7515    ["Offset of field: _cef_preference_manager_t::add_preference_observer"]
7516        [::std::mem::offset_of!(_cef_preference_manager_t, add_preference_observer) - 80usize];
7517};
7518#[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"]
7519pub type cef_preference_manager_t = _cef_preference_manager_t;
7520unsafe extern "C" {
7521    #[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"]
7522    pub fn cef_preference_manager_get_chrome_variations_as_switches(switches: cef_string_list_t);
7523}
7524unsafe extern "C" {
7525    #[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"]
7526    pub fn cef_preference_manager_get_chrome_variations_as_strings(strings: cef_string_list_t);
7527}
7528unsafe extern "C" {
7529    #[doc = "\n Returns the global preference manager object.\n"]
7530    pub fn cef_preference_manager_get_global() -> *mut cef_preference_manager_t;
7531}
7532#[doc = "\n Callback structure for cef_request_context_t::ResolveHost.\n\n NOTE: This struct is allocated client-side.\n"]
7533#[repr(C)]
7534#[derive(Debug, Copy, Clone)]
7535pub struct _cef_resolve_callback_t {
7536    #[doc = "\n Base structure.\n"]
7537    pub base: cef_base_ref_counted_t,
7538    #[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"]
7539    pub on_resolve_completed: ::std::option::Option<
7540        unsafe extern "C" fn(
7541            self_: *mut _cef_resolve_callback_t,
7542            result: cef_errorcode_t,
7543            resolved_ips: cef_string_list_t,
7544        ),
7545    >,
7546}
7547#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7548const _: () = {
7549    ["Size of _cef_resolve_callback_t"][::std::mem::size_of::<_cef_resolve_callback_t>() - 48usize];
7550    ["Alignment of _cef_resolve_callback_t"]
7551        [::std::mem::align_of::<_cef_resolve_callback_t>() - 8usize];
7552    ["Offset of field: _cef_resolve_callback_t::base"]
7553        [::std::mem::offset_of!(_cef_resolve_callback_t, base) - 0usize];
7554    ["Offset of field: _cef_resolve_callback_t::on_resolve_completed"]
7555        [::std::mem::offset_of!(_cef_resolve_callback_t, on_resolve_completed) - 40usize];
7556};
7557#[doc = "\n Callback structure for cef_request_context_t::ResolveHost.\n\n NOTE: This struct is allocated client-side.\n"]
7558pub type cef_resolve_callback_t = _cef_resolve_callback_t;
7559#[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"]
7560#[repr(C)]
7561#[derive(Debug, Copy, Clone)]
7562pub struct _cef_setting_observer_t {
7563    #[doc = "\n Base structure.\n"]
7564    pub base: cef_base_ref_counted_t,
7565    #[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"]
7566    pub on_setting_changed: ::std::option::Option<
7567        unsafe extern "C" fn(
7568            self_: *mut _cef_setting_observer_t,
7569            requesting_url: *const cef_string_t,
7570            top_level_url: *const cef_string_t,
7571            content_type: cef_content_setting_types_t,
7572        ),
7573    >,
7574}
7575#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7576const _: () = {
7577    ["Size of _cef_setting_observer_t"][::std::mem::size_of::<_cef_setting_observer_t>() - 48usize];
7578    ["Alignment of _cef_setting_observer_t"]
7579        [::std::mem::align_of::<_cef_setting_observer_t>() - 8usize];
7580    ["Offset of field: _cef_setting_observer_t::base"]
7581        [::std::mem::offset_of!(_cef_setting_observer_t, base) - 0usize];
7582    ["Offset of field: _cef_setting_observer_t::on_setting_changed"]
7583        [::std::mem::offset_of!(_cef_setting_observer_t, on_setting_changed) - 40usize];
7584};
7585#[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"]
7586pub type cef_setting_observer_t = _cef_setting_observer_t;
7587#[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"]
7588#[repr(C)]
7589#[derive(Debug, Copy, Clone)]
7590pub struct _cef_request_context_t {
7591    #[doc = "\n Base structure.\n"]
7592    pub base: cef_preference_manager_t,
7593    #[doc = "\n Returns true (1) if this object is pointing to the same context as |that|\n object.\n"]
7594    pub is_same: ::std::option::Option<
7595        unsafe extern "C" fn(
7596            self_: *mut _cef_request_context_t,
7597            other: *mut _cef_request_context_t,
7598        ) -> ::std::os::raw::c_int,
7599    >,
7600    #[doc = "\n Returns true (1) if this object is sharing the same storage as |that|\n object.\n"]
7601    pub is_sharing_with: ::std::option::Option<
7602        unsafe extern "C" fn(
7603            self_: *mut _cef_request_context_t,
7604            other: *mut _cef_request_context_t,
7605        ) -> ::std::os::raw::c_int,
7606    >,
7607    #[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"]
7608    pub is_global: ::std::option::Option<
7609        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> ::std::os::raw::c_int,
7610    >,
7611    #[doc = "\n Returns the handler for this context if any.\n"]
7612    pub get_handler: ::std::option::Option<
7613        unsafe extern "C" fn(
7614            self_: *mut _cef_request_context_t,
7615        ) -> *mut _cef_request_context_handler_t,
7616    >,
7617    #[doc = "\n Returns the cache path for this object. If NULL an \"incognito mode\" in-\n memory cache is being used.\n"]
7618    pub get_cache_path: ::std::option::Option<
7619        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_string_userfree_t,
7620    >,
7621    #[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"]
7622    pub get_cookie_manager: ::std::option::Option<
7623        unsafe extern "C" fn(
7624            self_: *mut _cef_request_context_t,
7625            callback: *mut _cef_completion_callback_t,
7626        ) -> *mut _cef_cookie_manager_t,
7627    >,
7628    #[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"]
7629    pub register_scheme_handler_factory: ::std::option::Option<
7630        unsafe extern "C" fn(
7631            self_: *mut _cef_request_context_t,
7632            scheme_name: *const cef_string_t,
7633            domain_name: *const cef_string_t,
7634            factory: *mut _cef_scheme_handler_factory_t,
7635        ) -> ::std::os::raw::c_int,
7636    >,
7637    #[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"]
7638    pub clear_scheme_handler_factories: ::std::option::Option<
7639        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> ::std::os::raw::c_int,
7640    >,
7641    #[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"]
7642    pub clear_certificate_exceptions: ::std::option::Option<
7643        unsafe extern "C" fn(
7644            self_: *mut _cef_request_context_t,
7645            callback: *mut _cef_completion_callback_t,
7646        ),
7647    >,
7648    #[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"]
7649    pub clear_http_auth_credentials: ::std::option::Option<
7650        unsafe extern "C" fn(
7651            self_: *mut _cef_request_context_t,
7652            callback: *mut _cef_completion_callback_t,
7653        ),
7654    >,
7655    #[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"]
7656    pub close_all_connections: ::std::option::Option<
7657        unsafe extern "C" fn(
7658            self_: *mut _cef_request_context_t,
7659            callback: *mut _cef_completion_callback_t,
7660        ),
7661    >,
7662    #[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"]
7663    pub resolve_host: ::std::option::Option<
7664        unsafe extern "C" fn(
7665            self_: *mut _cef_request_context_t,
7666            origin: *const cef_string_t,
7667            callback: *mut _cef_resolve_callback_t,
7668        ),
7669    >,
7670    #[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"]
7671    pub get_media_router: ::std::option::Option<
7672        unsafe extern "C" fn(
7673            self_: *mut _cef_request_context_t,
7674            callback: *mut _cef_completion_callback_t,
7675        ) -> *mut _cef_media_router_t,
7676    >,
7677    #[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"]
7678    pub get_website_setting: ::std::option::Option<
7679        unsafe extern "C" fn(
7680            self_: *mut _cef_request_context_t,
7681            requesting_url: *const cef_string_t,
7682            top_level_url: *const cef_string_t,
7683            content_type: cef_content_setting_types_t,
7684        ) -> *mut _cef_value_t,
7685    >,
7686    #[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"]
7687    pub set_website_setting: ::std::option::Option<
7688        unsafe extern "C" fn(
7689            self_: *mut _cef_request_context_t,
7690            requesting_url: *const cef_string_t,
7691            top_level_url: *const cef_string_t,
7692            content_type: cef_content_setting_types_t,
7693            value: *mut _cef_value_t,
7694        ),
7695    >,
7696    #[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"]
7697    pub get_content_setting: ::std::option::Option<
7698        unsafe extern "C" fn(
7699            self_: *mut _cef_request_context_t,
7700            requesting_url: *const cef_string_t,
7701            top_level_url: *const cef_string_t,
7702            content_type: cef_content_setting_types_t,
7703        ) -> cef_content_setting_values_t,
7704    >,
7705    #[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"]
7706    pub set_content_setting: ::std::option::Option<
7707        unsafe extern "C" fn(
7708            self_: *mut _cef_request_context_t,
7709            requesting_url: *const cef_string_t,
7710            top_level_url: *const cef_string_t,
7711            content_type: cef_content_setting_types_t,
7712            value: cef_content_setting_values_t,
7713        ),
7714    >,
7715    #[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"]
7716    pub set_chrome_color_scheme: ::std::option::Option<
7717        unsafe extern "C" fn(
7718            self_: *mut _cef_request_context_t,
7719            variant: cef_color_variant_t,
7720            user_color: cef_color_t,
7721        ),
7722    >,
7723    #[doc = "\n Returns the current Chrome color scheme mode (SYSTEM, LIGHT or DARK). Must\n be called on the browser process UI thread.\n"]
7724    pub get_chrome_color_scheme_mode: ::std::option::Option<
7725        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_variant_t,
7726    >,
7727    #[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"]
7728    pub get_chrome_color_scheme_color: ::std::option::Option<
7729        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_t,
7730    >,
7731    #[doc = "\n Returns the current Chrome color scheme variant. Must be called on the\n browser process UI thread.\n"]
7732    pub get_chrome_color_scheme_variant: ::std::option::Option<
7733        unsafe extern "C" fn(self_: *mut _cef_request_context_t) -> cef_color_variant_t,
7734    >,
7735    #[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"]
7736    pub add_setting_observer: ::std::option::Option<
7737        unsafe extern "C" fn(
7738            self_: *mut _cef_request_context_t,
7739            observer: *mut _cef_setting_observer_t,
7740        ) -> *mut _cef_registration_t,
7741    >,
7742}
7743#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7744const _: () = {
7745    ["Size of _cef_request_context_t"][::std::mem::size_of::<_cef_request_context_t>() - 264usize];
7746    ["Alignment of _cef_request_context_t"]
7747        [::std::mem::align_of::<_cef_request_context_t>() - 8usize];
7748    ["Offset of field: _cef_request_context_t::base"]
7749        [::std::mem::offset_of!(_cef_request_context_t, base) - 0usize];
7750    ["Offset of field: _cef_request_context_t::is_same"]
7751        [::std::mem::offset_of!(_cef_request_context_t, is_same) - 88usize];
7752    ["Offset of field: _cef_request_context_t::is_sharing_with"]
7753        [::std::mem::offset_of!(_cef_request_context_t, is_sharing_with) - 96usize];
7754    ["Offset of field: _cef_request_context_t::is_global"]
7755        [::std::mem::offset_of!(_cef_request_context_t, is_global) - 104usize];
7756    ["Offset of field: _cef_request_context_t::get_handler"]
7757        [::std::mem::offset_of!(_cef_request_context_t, get_handler) - 112usize];
7758    ["Offset of field: _cef_request_context_t::get_cache_path"]
7759        [::std::mem::offset_of!(_cef_request_context_t, get_cache_path) - 120usize];
7760    ["Offset of field: _cef_request_context_t::get_cookie_manager"]
7761        [::std::mem::offset_of!(_cef_request_context_t, get_cookie_manager) - 128usize];
7762    ["Offset of field: _cef_request_context_t::register_scheme_handler_factory"][::std::mem::offset_of!(
7763        _cef_request_context_t,
7764        register_scheme_handler_factory
7765    ) - 136usize];
7766    ["Offset of field: _cef_request_context_t::clear_scheme_handler_factories"]
7767        [::std::mem::offset_of!(_cef_request_context_t, clear_scheme_handler_factories) - 144usize];
7768    ["Offset of field: _cef_request_context_t::clear_certificate_exceptions"]
7769        [::std::mem::offset_of!(_cef_request_context_t, clear_certificate_exceptions) - 152usize];
7770    ["Offset of field: _cef_request_context_t::clear_http_auth_credentials"]
7771        [::std::mem::offset_of!(_cef_request_context_t, clear_http_auth_credentials) - 160usize];
7772    ["Offset of field: _cef_request_context_t::close_all_connections"]
7773        [::std::mem::offset_of!(_cef_request_context_t, close_all_connections) - 168usize];
7774    ["Offset of field: _cef_request_context_t::resolve_host"]
7775        [::std::mem::offset_of!(_cef_request_context_t, resolve_host) - 176usize];
7776    ["Offset of field: _cef_request_context_t::get_media_router"]
7777        [::std::mem::offset_of!(_cef_request_context_t, get_media_router) - 184usize];
7778    ["Offset of field: _cef_request_context_t::get_website_setting"]
7779        [::std::mem::offset_of!(_cef_request_context_t, get_website_setting) - 192usize];
7780    ["Offset of field: _cef_request_context_t::set_website_setting"]
7781        [::std::mem::offset_of!(_cef_request_context_t, set_website_setting) - 200usize];
7782    ["Offset of field: _cef_request_context_t::get_content_setting"]
7783        [::std::mem::offset_of!(_cef_request_context_t, get_content_setting) - 208usize];
7784    ["Offset of field: _cef_request_context_t::set_content_setting"]
7785        [::std::mem::offset_of!(_cef_request_context_t, set_content_setting) - 216usize];
7786    ["Offset of field: _cef_request_context_t::set_chrome_color_scheme"]
7787        [::std::mem::offset_of!(_cef_request_context_t, set_chrome_color_scheme) - 224usize];
7788    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_mode"]
7789        [::std::mem::offset_of!(_cef_request_context_t, get_chrome_color_scheme_mode) - 232usize];
7790    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_color"]
7791        [::std::mem::offset_of!(_cef_request_context_t, get_chrome_color_scheme_color) - 240usize];
7792    ["Offset of field: _cef_request_context_t::get_chrome_color_scheme_variant"][::std::mem::offset_of!(
7793        _cef_request_context_t,
7794        get_chrome_color_scheme_variant
7795    ) - 248usize];
7796    ["Offset of field: _cef_request_context_t::add_setting_observer"]
7797        [::std::mem::offset_of!(_cef_request_context_t, add_setting_observer) - 256usize];
7798};
7799#[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"]
7800pub type cef_request_context_t = _cef_request_context_t;
7801unsafe extern "C" {
7802    #[doc = "\n Returns the global context object.\n"]
7803    pub fn cef_request_context_get_global_context() -> *mut cef_request_context_t;
7804}
7805unsafe extern "C" {
7806    #[doc = "\n Creates a new context object with the specified |settings| and optional\n |handler|.\n"]
7807    pub fn cef_request_context_create_context(
7808        settings: *const _cef_request_context_settings_t,
7809        handler: *mut _cef_request_context_handler_t,
7810    ) -> *mut cef_request_context_t;
7811}
7812unsafe extern "C" {
7813    #[doc = "\n Creates a new context object that shares storage with |other| and uses an\n optional |handler|.\n"]
7814    pub fn cef_request_context_cef_create_context_shared(
7815        other: *mut cef_request_context_t,
7816        handler: *mut _cef_request_context_handler_t,
7817    ) -> *mut cef_request_context_t;
7818}
7819#[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"]
7820#[repr(C)]
7821#[derive(Debug, Copy, Clone)]
7822pub struct _cef_browser_t {
7823    #[doc = "\n Base structure.\n"]
7824    pub base: cef_base_ref_counted_t,
7825    #[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"]
7826    pub is_valid: ::std::option::Option<
7827        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7828    >,
7829    #[doc = "\n Returns the browser host object. This function can only be called in the\n browser process.\n"]
7830    pub get_host: ::std::option::Option<
7831        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_browser_host_t,
7832    >,
7833    #[doc = "\n Returns true (1) if the browser can navigate backwards.\n"]
7834    pub can_go_back: ::std::option::Option<
7835        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7836    >,
7837    #[doc = "\n Navigate backwards.\n"]
7838    pub go_back: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
7839    #[doc = "\n Returns true (1) if the browser can navigate forwards.\n"]
7840    pub can_go_forward: ::std::option::Option<
7841        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7842    >,
7843    #[doc = "\n Navigate forwards.\n"]
7844    pub go_forward: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
7845    #[doc = "\n Returns true (1) if the browser is currently loading.\n"]
7846    pub is_loading: ::std::option::Option<
7847        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7848    >,
7849    #[doc = "\n Reload the current page.\n"]
7850    pub reload: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
7851    #[doc = "\n Reload the current page ignoring any cached data.\n"]
7852    pub reload_ignore_cache:
7853        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
7854    #[doc = "\n Stop loading the page.\n"]
7855    pub stop_load: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t)>,
7856    #[doc = "\n Returns the globally unique identifier for this browser. This value is\n also used as the tabId for extension APIs.\n"]
7857    pub get_identifier: ::std::option::Option<
7858        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7859    >,
7860    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
7861    pub is_same: ::std::option::Option<
7862        unsafe extern "C" fn(
7863            self_: *mut _cef_browser_t,
7864            that: *mut _cef_browser_t,
7865        ) -> ::std::os::raw::c_int,
7866    >,
7867    #[doc = "\n Returns true (1) if the browser is a popup.\n"]
7868    pub is_popup: ::std::option::Option<
7869        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7870    >,
7871    #[doc = "\n Returns true (1) if a document has been loaded in the browser.\n"]
7872    pub has_document: ::std::option::Option<
7873        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> ::std::os::raw::c_int,
7874    >,
7875    #[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"]
7876    pub get_main_frame: ::std::option::Option<
7877        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_frame_t,
7878    >,
7879    #[doc = "\n Returns the focused frame for the browser.\n"]
7880    pub get_focused_frame: ::std::option::Option<
7881        unsafe extern "C" fn(self_: *mut _cef_browser_t) -> *mut _cef_frame_t,
7882    >,
7883    #[doc = "\n Returns the frame with the specified identifier, or NULL if not found.\n"]
7884    pub get_frame_by_identifier: ::std::option::Option<
7885        unsafe extern "C" fn(
7886            self_: *mut _cef_browser_t,
7887            identifier: *const cef_string_t,
7888        ) -> *mut _cef_frame_t,
7889    >,
7890    #[doc = "\n Returns the frame with the specified name, or NULL if not found.\n"]
7891    pub get_frame_by_name: ::std::option::Option<
7892        unsafe extern "C" fn(
7893            self_: *mut _cef_browser_t,
7894            name: *const cef_string_t,
7895        ) -> *mut _cef_frame_t,
7896    >,
7897    #[doc = "\n Returns the number of frames that currently exist.\n"]
7898    pub get_frame_count:
7899        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_t) -> usize>,
7900    #[doc = "\n Returns the identifiers of all existing frames.\n"]
7901    pub get_frame_identifiers: ::std::option::Option<
7902        unsafe extern "C" fn(self_: *mut _cef_browser_t, identifiers: cef_string_list_t),
7903    >,
7904    #[doc = "\n Returns the names of all existing frames.\n"]
7905    pub get_frame_names: ::std::option::Option<
7906        unsafe extern "C" fn(self_: *mut _cef_browser_t, names: cef_string_list_t),
7907    >,
7908}
7909#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7910const _: () = {
7911    ["Size of _cef_browser_t"][::std::mem::size_of::<_cef_browser_t>() - 208usize];
7912    ["Alignment of _cef_browser_t"][::std::mem::align_of::<_cef_browser_t>() - 8usize];
7913    ["Offset of field: _cef_browser_t::base"]
7914        [::std::mem::offset_of!(_cef_browser_t, base) - 0usize];
7915    ["Offset of field: _cef_browser_t::is_valid"]
7916        [::std::mem::offset_of!(_cef_browser_t, is_valid) - 40usize];
7917    ["Offset of field: _cef_browser_t::get_host"]
7918        [::std::mem::offset_of!(_cef_browser_t, get_host) - 48usize];
7919    ["Offset of field: _cef_browser_t::can_go_back"]
7920        [::std::mem::offset_of!(_cef_browser_t, can_go_back) - 56usize];
7921    ["Offset of field: _cef_browser_t::go_back"]
7922        [::std::mem::offset_of!(_cef_browser_t, go_back) - 64usize];
7923    ["Offset of field: _cef_browser_t::can_go_forward"]
7924        [::std::mem::offset_of!(_cef_browser_t, can_go_forward) - 72usize];
7925    ["Offset of field: _cef_browser_t::go_forward"]
7926        [::std::mem::offset_of!(_cef_browser_t, go_forward) - 80usize];
7927    ["Offset of field: _cef_browser_t::is_loading"]
7928        [::std::mem::offset_of!(_cef_browser_t, is_loading) - 88usize];
7929    ["Offset of field: _cef_browser_t::reload"]
7930        [::std::mem::offset_of!(_cef_browser_t, reload) - 96usize];
7931    ["Offset of field: _cef_browser_t::reload_ignore_cache"]
7932        [::std::mem::offset_of!(_cef_browser_t, reload_ignore_cache) - 104usize];
7933    ["Offset of field: _cef_browser_t::stop_load"]
7934        [::std::mem::offset_of!(_cef_browser_t, stop_load) - 112usize];
7935    ["Offset of field: _cef_browser_t::get_identifier"]
7936        [::std::mem::offset_of!(_cef_browser_t, get_identifier) - 120usize];
7937    ["Offset of field: _cef_browser_t::is_same"]
7938        [::std::mem::offset_of!(_cef_browser_t, is_same) - 128usize];
7939    ["Offset of field: _cef_browser_t::is_popup"]
7940        [::std::mem::offset_of!(_cef_browser_t, is_popup) - 136usize];
7941    ["Offset of field: _cef_browser_t::has_document"]
7942        [::std::mem::offset_of!(_cef_browser_t, has_document) - 144usize];
7943    ["Offset of field: _cef_browser_t::get_main_frame"]
7944        [::std::mem::offset_of!(_cef_browser_t, get_main_frame) - 152usize];
7945    ["Offset of field: _cef_browser_t::get_focused_frame"]
7946        [::std::mem::offset_of!(_cef_browser_t, get_focused_frame) - 160usize];
7947    ["Offset of field: _cef_browser_t::get_frame_by_identifier"]
7948        [::std::mem::offset_of!(_cef_browser_t, get_frame_by_identifier) - 168usize];
7949    ["Offset of field: _cef_browser_t::get_frame_by_name"]
7950        [::std::mem::offset_of!(_cef_browser_t, get_frame_by_name) - 176usize];
7951    ["Offset of field: _cef_browser_t::get_frame_count"]
7952        [::std::mem::offset_of!(_cef_browser_t, get_frame_count) - 184usize];
7953    ["Offset of field: _cef_browser_t::get_frame_identifiers"]
7954        [::std::mem::offset_of!(_cef_browser_t, get_frame_identifiers) - 192usize];
7955    ["Offset of field: _cef_browser_t::get_frame_names"]
7956        [::std::mem::offset_of!(_cef_browser_t, get_frame_names) - 200usize];
7957};
7958#[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"]
7959pub type cef_browser_t = _cef_browser_t;
7960#[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"]
7961#[repr(C)]
7962#[derive(Debug, Copy, Clone)]
7963pub struct _cef_run_file_dialog_callback_t {
7964    #[doc = "\n Base structure.\n"]
7965    pub base: cef_base_ref_counted_t,
7966    #[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"]
7967    pub on_file_dialog_dismissed: ::std::option::Option<
7968        unsafe extern "C" fn(
7969            self_: *mut _cef_run_file_dialog_callback_t,
7970            file_paths: cef_string_list_t,
7971        ),
7972    >,
7973}
7974#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7975const _: () = {
7976    ["Size of _cef_run_file_dialog_callback_t"]
7977        [::std::mem::size_of::<_cef_run_file_dialog_callback_t>() - 48usize];
7978    ["Alignment of _cef_run_file_dialog_callback_t"]
7979        [::std::mem::align_of::<_cef_run_file_dialog_callback_t>() - 8usize];
7980    ["Offset of field: _cef_run_file_dialog_callback_t::base"]
7981        [::std::mem::offset_of!(_cef_run_file_dialog_callback_t, base) - 0usize];
7982    ["Offset of field: _cef_run_file_dialog_callback_t::on_file_dialog_dismissed"][::std::mem::offset_of!(
7983        _cef_run_file_dialog_callback_t,
7984        on_file_dialog_dismissed
7985    ) - 40usize];
7986};
7987#[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"]
7988pub type cef_run_file_dialog_callback_t = _cef_run_file_dialog_callback_t;
7989#[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"]
7990#[repr(C)]
7991#[derive(Debug, Copy, Clone)]
7992pub struct _cef_navigation_entry_visitor_t {
7993    #[doc = "\n Base structure.\n"]
7994    pub base: cef_base_ref_counted_t,
7995    #[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"]
7996    pub visit: ::std::option::Option<
7997        unsafe extern "C" fn(
7998            self_: *mut _cef_navigation_entry_visitor_t,
7999            entry: *mut _cef_navigation_entry_t,
8000            current: ::std::os::raw::c_int,
8001            index: ::std::os::raw::c_int,
8002            total: ::std::os::raw::c_int,
8003        ) -> ::std::os::raw::c_int,
8004    >,
8005}
8006#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8007const _: () = {
8008    ["Size of _cef_navigation_entry_visitor_t"]
8009        [::std::mem::size_of::<_cef_navigation_entry_visitor_t>() - 48usize];
8010    ["Alignment of _cef_navigation_entry_visitor_t"]
8011        [::std::mem::align_of::<_cef_navigation_entry_visitor_t>() - 8usize];
8012    ["Offset of field: _cef_navigation_entry_visitor_t::base"]
8013        [::std::mem::offset_of!(_cef_navigation_entry_visitor_t, base) - 0usize];
8014    ["Offset of field: _cef_navigation_entry_visitor_t::visit"]
8015        [::std::mem::offset_of!(_cef_navigation_entry_visitor_t, visit) - 40usize];
8016};
8017#[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"]
8018pub type cef_navigation_entry_visitor_t = _cef_navigation_entry_visitor_t;
8019#[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"]
8020#[repr(C)]
8021#[derive(Debug, Copy, Clone)]
8022pub struct _cef_pdf_print_callback_t {
8023    #[doc = "\n Base structure.\n"]
8024    pub base: cef_base_ref_counted_t,
8025    #[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"]
8026    pub on_pdf_print_finished: ::std::option::Option<
8027        unsafe extern "C" fn(
8028            self_: *mut _cef_pdf_print_callback_t,
8029            path: *const cef_string_t,
8030            ok: ::std::os::raw::c_int,
8031        ),
8032    >,
8033}
8034#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8035const _: () = {
8036    ["Size of _cef_pdf_print_callback_t"]
8037        [::std::mem::size_of::<_cef_pdf_print_callback_t>() - 48usize];
8038    ["Alignment of _cef_pdf_print_callback_t"]
8039        [::std::mem::align_of::<_cef_pdf_print_callback_t>() - 8usize];
8040    ["Offset of field: _cef_pdf_print_callback_t::base"]
8041        [::std::mem::offset_of!(_cef_pdf_print_callback_t, base) - 0usize];
8042    ["Offset of field: _cef_pdf_print_callback_t::on_pdf_print_finished"]
8043        [::std::mem::offset_of!(_cef_pdf_print_callback_t, on_pdf_print_finished) - 40usize];
8044};
8045#[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"]
8046pub type cef_pdf_print_callback_t = _cef_pdf_print_callback_t;
8047#[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"]
8048#[repr(C)]
8049#[derive(Debug, Copy, Clone)]
8050pub struct _cef_download_image_callback_t {
8051    #[doc = "\n Base structure.\n"]
8052    pub base: cef_base_ref_counted_t,
8053    #[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"]
8054    pub on_download_image_finished: ::std::option::Option<
8055        unsafe extern "C" fn(
8056            self_: *mut _cef_download_image_callback_t,
8057            image_url: *const cef_string_t,
8058            http_status_code: ::std::os::raw::c_int,
8059            image: *mut _cef_image_t,
8060        ),
8061    >,
8062}
8063#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8064const _: () = {
8065    ["Size of _cef_download_image_callback_t"]
8066        [::std::mem::size_of::<_cef_download_image_callback_t>() - 48usize];
8067    ["Alignment of _cef_download_image_callback_t"]
8068        [::std::mem::align_of::<_cef_download_image_callback_t>() - 8usize];
8069    ["Offset of field: _cef_download_image_callback_t::base"]
8070        [::std::mem::offset_of!(_cef_download_image_callback_t, base) - 0usize];
8071    ["Offset of field: _cef_download_image_callback_t::on_download_image_finished"][::std::mem::offset_of!(
8072        _cef_download_image_callback_t,
8073        on_download_image_finished
8074    ) - 40usize];
8075};
8076#[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"]
8077pub type cef_download_image_callback_t = _cef_download_image_callback_t;
8078#[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"]
8079#[repr(C)]
8080#[derive(Debug, Copy, Clone)]
8081pub struct _cef_browser_host_t {
8082    #[doc = "\n Base structure.\n"]
8083    pub base: cef_base_ref_counted_t,
8084    #[doc = "\n Returns the hosted browser object.\n"]
8085    pub get_browser: ::std::option::Option<
8086        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_browser_t,
8087    >,
8088    #[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"]
8089    pub close_browser: ::std::option::Option<
8090        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, force_close: ::std::os::raw::c_int),
8091    >,
8092    #[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"]
8093    pub try_close_browser: ::std::option::Option<
8094        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8095    >,
8096    #[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"]
8097    pub is_ready_to_be_closed: ::std::option::Option<
8098        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8099    >,
8100    #[doc = "\n Set whether the browser is focused.\n"]
8101    pub set_focus: ::std::option::Option<
8102        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, focus: ::std::os::raw::c_int),
8103    >,
8104    #[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"]
8105    pub get_window_handle: ::std::option::Option<
8106        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_window_handle_t,
8107    >,
8108    #[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"]
8109    pub get_opener_window_handle: ::std::option::Option<
8110        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_window_handle_t,
8111    >,
8112    #[doc = "\n Retrieve the unique identifier of the browser that opened this browser.\n Will return 0 for non-popup browsers.\n"]
8113    pub get_opener_identifier: ::std::option::Option<
8114        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8115    >,
8116    #[doc = "\n Returns true (1) if this browser is wrapped in a cef_browser_view_t.\n"]
8117    pub has_view: ::std::option::Option<
8118        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8119    >,
8120    #[doc = "\n Returns the client for this browser.\n"]
8121    pub get_client: ::std::option::Option<
8122        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_client_t,
8123    >,
8124    #[doc = "\n Returns the request context for this browser.\n"]
8125    pub get_request_context: ::std::option::Option<
8126        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_request_context_t,
8127    >,
8128    #[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"]
8129    pub can_zoom: ::std::option::Option<
8130        unsafe extern "C" fn(
8131            self_: *mut _cef_browser_host_t,
8132            command: cef_zoom_command_t,
8133        ) -> ::std::os::raw::c_int,
8134    >,
8135    #[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"]
8136    pub zoom: ::std::option::Option<
8137        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, command: cef_zoom_command_t),
8138    >,
8139    #[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"]
8140    pub get_default_zoom_level:
8141        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> f64>,
8142    #[doc = "\n Get the current zoom level. This function can only be called on the UI\n thread.\n"]
8143    pub get_zoom_level:
8144        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> f64>,
8145    #[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"]
8146    pub set_zoom_level: ::std::option::Option<
8147        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, zoomLevel: f64),
8148    >,
8149    #[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"]
8150    pub run_file_dialog: ::std::option::Option<
8151        unsafe extern "C" fn(
8152            self_: *mut _cef_browser_host_t,
8153            mode: cef_file_dialog_mode_t,
8154            title: *const cef_string_t,
8155            default_file_path: *const cef_string_t,
8156            accept_filters: cef_string_list_t,
8157            callback: *mut _cef_run_file_dialog_callback_t,
8158        ),
8159    >,
8160    #[doc = "\n Download the file at |url| using cef_download_handler_t.\n"]
8161    pub start_download: ::std::option::Option<
8162        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, url: *const cef_string_t),
8163    >,
8164    #[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"]
8165    pub download_image: ::std::option::Option<
8166        unsafe extern "C" fn(
8167            self_: *mut _cef_browser_host_t,
8168            image_url: *const cef_string_t,
8169            is_favicon: ::std::os::raw::c_int,
8170            max_image_size: u32,
8171            bypass_cache: ::std::os::raw::c_int,
8172            callback: *mut _cef_download_image_callback_t,
8173        ),
8174    >,
8175    #[doc = "\n Print the current browser contents.\n"]
8176    pub print: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8177    #[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"]
8178    pub print_to_pdf: ::std::option::Option<
8179        unsafe extern "C" fn(
8180            self_: *mut _cef_browser_host_t,
8181            path: *const cef_string_t,
8182            settings: *const _cef_pdf_print_settings_t,
8183            callback: *mut _cef_pdf_print_callback_t,
8184        ),
8185    >,
8186    #[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"]
8187    pub find: ::std::option::Option<
8188        unsafe extern "C" fn(
8189            self_: *mut _cef_browser_host_t,
8190            searchText: *const cef_string_t,
8191            forward: ::std::os::raw::c_int,
8192            matchCase: ::std::os::raw::c_int,
8193            findNext: ::std::os::raw::c_int,
8194        ),
8195    >,
8196    #[doc = "\n Cancel all searches that are currently going on.\n"]
8197    pub stop_finding: ::std::option::Option<
8198        unsafe extern "C" fn(
8199            self_: *mut _cef_browser_host_t,
8200            clearSelection: ::std::os::raw::c_int,
8201        ),
8202    >,
8203    #[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"]
8204    pub show_dev_tools: ::std::option::Option<
8205        unsafe extern "C" fn(
8206            self_: *mut _cef_browser_host_t,
8207            windowInfo: *const _cef_window_info_t,
8208            client: *mut _cef_client_t,
8209            settings: *const _cef_browser_settings_t,
8210            inspect_element_at: *const cef_point_t,
8211        ),
8212    >,
8213    #[doc = "\n Explicitly close the associated DevTools browser, if any.\n"]
8214    pub close_dev_tools:
8215        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8216    #[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"]
8217    pub has_dev_tools: ::std::option::Option<
8218        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8219    >,
8220    #[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"]
8221    pub send_dev_tools_message: ::std::option::Option<
8222        unsafe extern "C" fn(
8223            self_: *mut _cef_browser_host_t,
8224            message: *const ::std::os::raw::c_void,
8225            message_size: usize,
8226        ) -> ::std::os::raw::c_int,
8227    >,
8228    #[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"]
8229    pub execute_dev_tools_method: ::std::option::Option<
8230        unsafe extern "C" fn(
8231            self_: *mut _cef_browser_host_t,
8232            message_id: ::std::os::raw::c_int,
8233            method: *const cef_string_t,
8234            params: *mut _cef_dictionary_value_t,
8235        ) -> ::std::os::raw::c_int,
8236    >,
8237    #[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"]
8238    pub add_dev_tools_message_observer: ::std::option::Option<
8239        unsafe extern "C" fn(
8240            self_: *mut _cef_browser_host_t,
8241            observer: *mut _cef_dev_tools_message_observer_t,
8242        ) -> *mut _cef_registration_t,
8243    >,
8244    #[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"]
8245    pub get_navigation_entries: ::std::option::Option<
8246        unsafe extern "C" fn(
8247            self_: *mut _cef_browser_host_t,
8248            visitor: *mut _cef_navigation_entry_visitor_t,
8249            current_only: ::std::os::raw::c_int,
8250        ),
8251    >,
8252    #[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"]
8253    pub replace_misspelling: ::std::option::Option<
8254        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, word: *const cef_string_t),
8255    >,
8256    #[doc = "\n Add the specified |word| to the spelling dictionary.\n"]
8257    pub add_word_to_dictionary: ::std::option::Option<
8258        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, word: *const cef_string_t),
8259    >,
8260    #[doc = "\n Returns true (1) if window rendering is disabled.\n"]
8261    pub is_window_rendering_disabled: ::std::option::Option<
8262        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8263    >,
8264    #[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"]
8265    pub was_resized: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8266    #[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"]
8267    pub was_hidden: ::std::option::Option<
8268        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, hidden: ::std::os::raw::c_int),
8269    >,
8270    #[doc = "\n Send a notification to the browser that the screen info has changed. The\n browser will then call cef_render_handler_t::GetScreenInfo to update the\n screen information with the new values. This simulates moving the webview\n window from one display to another, or changing the properties of the\n current display. This function is only used when window rendering is\n disabled.\n"]
8271    pub notify_screen_info_changed:
8272        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8273    #[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"]
8274    pub invalidate: ::std::option::Option<
8275        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, type_: cef_paint_element_type_t),
8276    >,
8277    #[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"]
8278    pub send_external_begin_frame:
8279        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8280    #[doc = "\n Send a key event to the browser.\n"]
8281    pub send_key_event: ::std::option::Option<
8282        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_key_event_t),
8283    >,
8284    #[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"]
8285    pub send_mouse_click_event: ::std::option::Option<
8286        unsafe extern "C" fn(
8287            self_: *mut _cef_browser_host_t,
8288            event: *const cef_mouse_event_t,
8289            type_: cef_mouse_button_type_t,
8290            mouseUp: ::std::os::raw::c_int,
8291            clickCount: ::std::os::raw::c_int,
8292        ),
8293    >,
8294    #[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"]
8295    pub send_mouse_move_event: ::std::option::Option<
8296        unsafe extern "C" fn(
8297            self_: *mut _cef_browser_host_t,
8298            event: *const cef_mouse_event_t,
8299            mouseLeave: ::std::os::raw::c_int,
8300        ),
8301    >,
8302    #[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"]
8303    pub send_mouse_wheel_event: ::std::option::Option<
8304        unsafe extern "C" fn(
8305            self_: *mut _cef_browser_host_t,
8306            event: *const cef_mouse_event_t,
8307            deltaX: ::std::os::raw::c_int,
8308            deltaY: ::std::os::raw::c_int,
8309        ),
8310    >,
8311    #[doc = "\n Send a touch event to the browser for a windowless browser.\n"]
8312    pub send_touch_event: ::std::option::Option<
8313        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_touch_event_t),
8314    >,
8315    #[doc = "\n Send a capture lost event to the browser.\n"]
8316    pub send_capture_lost_event:
8317        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8318    #[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"]
8319    pub notify_move_or_resize_started:
8320        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8321    #[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 maximum value is 60\n (default 30). This function can only be called on the UI thread.\n"]
8322    pub get_windowless_frame_rate: ::std::option::Option<
8323        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8324    >,
8325    #[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 maximum value is 60\n (default 30). Can also be set at browser creation via\n cef_browser_tSettings.windowless_frame_rate.\n"]
8326    pub set_windowless_frame_rate: ::std::option::Option<
8327        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, frame_rate: ::std::os::raw::c_int),
8328    >,
8329    #[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"]
8330    pub ime_set_composition: ::std::option::Option<
8331        unsafe extern "C" fn(
8332            self_: *mut _cef_browser_host_t,
8333            text: *const cef_string_t,
8334            underlinesCount: usize,
8335            underlines: *const cef_composition_underline_t,
8336            replacement_range: *const cef_range_t,
8337            selection_range: *const cef_range_t,
8338        ),
8339    >,
8340    #[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"]
8341    pub ime_commit_text: ::std::option::Option<
8342        unsafe extern "C" fn(
8343            self_: *mut _cef_browser_host_t,
8344            text: *const cef_string_t,
8345            replacement_range: *const cef_range_t,
8346            relative_cursor_pos: ::std::os::raw::c_int,
8347        ),
8348    >,
8349    #[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"]
8350    pub ime_finish_composing_text: ::std::option::Option<
8351        unsafe extern "C" fn(
8352            self_: *mut _cef_browser_host_t,
8353            keep_selection: ::std::os::raw::c_int,
8354        ),
8355    >,
8356    #[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"]
8357    pub ime_cancel_composition:
8358        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8359    #[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"]
8360    pub drag_target_drag_enter: ::std::option::Option<
8361        unsafe extern "C" fn(
8362            self_: *mut _cef_browser_host_t,
8363            drag_data: *mut _cef_drag_data_t,
8364            event: *const cef_mouse_event_t,
8365            allowed_ops: cef_drag_operations_mask_t,
8366        ),
8367    >,
8368    #[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"]
8369    pub drag_target_drag_over: ::std::option::Option<
8370        unsafe extern "C" fn(
8371            self_: *mut _cef_browser_host_t,
8372            event: *const cef_mouse_event_t,
8373            allowed_ops: cef_drag_operations_mask_t,
8374        ),
8375    >,
8376    #[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"]
8377    pub drag_target_drag_leave:
8378        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8379    #[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"]
8380    pub drag_target_drop: ::std::option::Option<
8381        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, event: *const cef_mouse_event_t),
8382    >,
8383    #[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"]
8384    pub drag_source_ended_at: ::std::option::Option<
8385        unsafe extern "C" fn(
8386            self_: *mut _cef_browser_host_t,
8387            x: ::std::os::raw::c_int,
8388            y: ::std::os::raw::c_int,
8389            op: cef_drag_operations_mask_t,
8390        ),
8391    >,
8392    #[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"]
8393    pub drag_source_system_drag_ended:
8394        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_host_t)>,
8395    #[doc = "\n Returns the current visible navigation entry for this browser. This\n function can only be called on the UI thread.\n"]
8396    pub get_visible_navigation_entry: ::std::option::Option<
8397        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> *mut _cef_navigation_entry_t,
8398    >,
8399    #[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"]
8400    pub set_accessibility_state: ::std::option::Option<
8401        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, accessibility_state: cef_state_t),
8402    >,
8403    #[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"]
8404    pub set_auto_resize_enabled: ::std::option::Option<
8405        unsafe extern "C" fn(
8406            self_: *mut _cef_browser_host_t,
8407            enabled: ::std::os::raw::c_int,
8408            min_size: *const cef_size_t,
8409            max_size: *const cef_size_t,
8410        ),
8411    >,
8412    #[doc = "\n Set whether the browser's audio is muted.\n"]
8413    pub set_audio_muted: ::std::option::Option<
8414        unsafe extern "C" fn(self_: *mut _cef_browser_host_t, mute: ::std::os::raw::c_int),
8415    >,
8416    #[doc = "\n Returns true (1) if the browser's audio is muted.  This function can only\n be called on the UI thread.\n"]
8417    pub is_audio_muted: ::std::option::Option<
8418        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8419    >,
8420    #[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"]
8421    pub is_fullscreen: ::std::option::Option<
8422        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8423    >,
8424    #[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"]
8425    pub exit_fullscreen: ::std::option::Option<
8426        unsafe extern "C" fn(
8427            self_: *mut _cef_browser_host_t,
8428            will_cause_resize: ::std::os::raw::c_int,
8429        ),
8430    >,
8431    #[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"]
8432    pub can_execute_chrome_command: ::std::option::Option<
8433        unsafe extern "C" fn(
8434            self_: *mut _cef_browser_host_t,
8435            command_id: ::std::os::raw::c_int,
8436        ) -> ::std::os::raw::c_int,
8437    >,
8438    #[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"]
8439    pub execute_chrome_command: ::std::option::Option<
8440        unsafe extern "C" fn(
8441            self_: *mut _cef_browser_host_t,
8442            command_id: ::std::os::raw::c_int,
8443            disposition: cef_window_open_disposition_t,
8444        ),
8445    >,
8446    #[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"]
8447    pub is_render_process_unresponsive: ::std::option::Option<
8448        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> ::std::os::raw::c_int,
8449    >,
8450    #[doc = "\n Returns the runtime style for this browser (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
8451    pub get_runtime_style: ::std::option::Option<
8452        unsafe extern "C" fn(self_: *mut _cef_browser_host_t) -> cef_runtime_style_t,
8453    >,
8454}
8455#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8456const _: () = {
8457    ["Size of _cef_browser_host_t"][::std::mem::size_of::<_cef_browser_host_t>() - 584usize];
8458    ["Alignment of _cef_browser_host_t"][::std::mem::align_of::<_cef_browser_host_t>() - 8usize];
8459    ["Offset of field: _cef_browser_host_t::base"]
8460        [::std::mem::offset_of!(_cef_browser_host_t, base) - 0usize];
8461    ["Offset of field: _cef_browser_host_t::get_browser"]
8462        [::std::mem::offset_of!(_cef_browser_host_t, get_browser) - 40usize];
8463    ["Offset of field: _cef_browser_host_t::close_browser"]
8464        [::std::mem::offset_of!(_cef_browser_host_t, close_browser) - 48usize];
8465    ["Offset of field: _cef_browser_host_t::try_close_browser"]
8466        [::std::mem::offset_of!(_cef_browser_host_t, try_close_browser) - 56usize];
8467    ["Offset of field: _cef_browser_host_t::is_ready_to_be_closed"]
8468        [::std::mem::offset_of!(_cef_browser_host_t, is_ready_to_be_closed) - 64usize];
8469    ["Offset of field: _cef_browser_host_t::set_focus"]
8470        [::std::mem::offset_of!(_cef_browser_host_t, set_focus) - 72usize];
8471    ["Offset of field: _cef_browser_host_t::get_window_handle"]
8472        [::std::mem::offset_of!(_cef_browser_host_t, get_window_handle) - 80usize];
8473    ["Offset of field: _cef_browser_host_t::get_opener_window_handle"]
8474        [::std::mem::offset_of!(_cef_browser_host_t, get_opener_window_handle) - 88usize];
8475    ["Offset of field: _cef_browser_host_t::get_opener_identifier"]
8476        [::std::mem::offset_of!(_cef_browser_host_t, get_opener_identifier) - 96usize];
8477    ["Offset of field: _cef_browser_host_t::has_view"]
8478        [::std::mem::offset_of!(_cef_browser_host_t, has_view) - 104usize];
8479    ["Offset of field: _cef_browser_host_t::get_client"]
8480        [::std::mem::offset_of!(_cef_browser_host_t, get_client) - 112usize];
8481    ["Offset of field: _cef_browser_host_t::get_request_context"]
8482        [::std::mem::offset_of!(_cef_browser_host_t, get_request_context) - 120usize];
8483    ["Offset of field: _cef_browser_host_t::can_zoom"]
8484        [::std::mem::offset_of!(_cef_browser_host_t, can_zoom) - 128usize];
8485    ["Offset of field: _cef_browser_host_t::zoom"]
8486        [::std::mem::offset_of!(_cef_browser_host_t, zoom) - 136usize];
8487    ["Offset of field: _cef_browser_host_t::get_default_zoom_level"]
8488        [::std::mem::offset_of!(_cef_browser_host_t, get_default_zoom_level) - 144usize];
8489    ["Offset of field: _cef_browser_host_t::get_zoom_level"]
8490        [::std::mem::offset_of!(_cef_browser_host_t, get_zoom_level) - 152usize];
8491    ["Offset of field: _cef_browser_host_t::set_zoom_level"]
8492        [::std::mem::offset_of!(_cef_browser_host_t, set_zoom_level) - 160usize];
8493    ["Offset of field: _cef_browser_host_t::run_file_dialog"]
8494        [::std::mem::offset_of!(_cef_browser_host_t, run_file_dialog) - 168usize];
8495    ["Offset of field: _cef_browser_host_t::start_download"]
8496        [::std::mem::offset_of!(_cef_browser_host_t, start_download) - 176usize];
8497    ["Offset of field: _cef_browser_host_t::download_image"]
8498        [::std::mem::offset_of!(_cef_browser_host_t, download_image) - 184usize];
8499    ["Offset of field: _cef_browser_host_t::print"]
8500        [::std::mem::offset_of!(_cef_browser_host_t, print) - 192usize];
8501    ["Offset of field: _cef_browser_host_t::print_to_pdf"]
8502        [::std::mem::offset_of!(_cef_browser_host_t, print_to_pdf) - 200usize];
8503    ["Offset of field: _cef_browser_host_t::find"]
8504        [::std::mem::offset_of!(_cef_browser_host_t, find) - 208usize];
8505    ["Offset of field: _cef_browser_host_t::stop_finding"]
8506        [::std::mem::offset_of!(_cef_browser_host_t, stop_finding) - 216usize];
8507    ["Offset of field: _cef_browser_host_t::show_dev_tools"]
8508        [::std::mem::offset_of!(_cef_browser_host_t, show_dev_tools) - 224usize];
8509    ["Offset of field: _cef_browser_host_t::close_dev_tools"]
8510        [::std::mem::offset_of!(_cef_browser_host_t, close_dev_tools) - 232usize];
8511    ["Offset of field: _cef_browser_host_t::has_dev_tools"]
8512        [::std::mem::offset_of!(_cef_browser_host_t, has_dev_tools) - 240usize];
8513    ["Offset of field: _cef_browser_host_t::send_dev_tools_message"]
8514        [::std::mem::offset_of!(_cef_browser_host_t, send_dev_tools_message) - 248usize];
8515    ["Offset of field: _cef_browser_host_t::execute_dev_tools_method"]
8516        [::std::mem::offset_of!(_cef_browser_host_t, execute_dev_tools_method) - 256usize];
8517    ["Offset of field: _cef_browser_host_t::add_dev_tools_message_observer"]
8518        [::std::mem::offset_of!(_cef_browser_host_t, add_dev_tools_message_observer) - 264usize];
8519    ["Offset of field: _cef_browser_host_t::get_navigation_entries"]
8520        [::std::mem::offset_of!(_cef_browser_host_t, get_navigation_entries) - 272usize];
8521    ["Offset of field: _cef_browser_host_t::replace_misspelling"]
8522        [::std::mem::offset_of!(_cef_browser_host_t, replace_misspelling) - 280usize];
8523    ["Offset of field: _cef_browser_host_t::add_word_to_dictionary"]
8524        [::std::mem::offset_of!(_cef_browser_host_t, add_word_to_dictionary) - 288usize];
8525    ["Offset of field: _cef_browser_host_t::is_window_rendering_disabled"]
8526        [::std::mem::offset_of!(_cef_browser_host_t, is_window_rendering_disabled) - 296usize];
8527    ["Offset of field: _cef_browser_host_t::was_resized"]
8528        [::std::mem::offset_of!(_cef_browser_host_t, was_resized) - 304usize];
8529    ["Offset of field: _cef_browser_host_t::was_hidden"]
8530        [::std::mem::offset_of!(_cef_browser_host_t, was_hidden) - 312usize];
8531    ["Offset of field: _cef_browser_host_t::notify_screen_info_changed"]
8532        [::std::mem::offset_of!(_cef_browser_host_t, notify_screen_info_changed) - 320usize];
8533    ["Offset of field: _cef_browser_host_t::invalidate"]
8534        [::std::mem::offset_of!(_cef_browser_host_t, invalidate) - 328usize];
8535    ["Offset of field: _cef_browser_host_t::send_external_begin_frame"]
8536        [::std::mem::offset_of!(_cef_browser_host_t, send_external_begin_frame) - 336usize];
8537    ["Offset of field: _cef_browser_host_t::send_key_event"]
8538        [::std::mem::offset_of!(_cef_browser_host_t, send_key_event) - 344usize];
8539    ["Offset of field: _cef_browser_host_t::send_mouse_click_event"]
8540        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_click_event) - 352usize];
8541    ["Offset of field: _cef_browser_host_t::send_mouse_move_event"]
8542        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_move_event) - 360usize];
8543    ["Offset of field: _cef_browser_host_t::send_mouse_wheel_event"]
8544        [::std::mem::offset_of!(_cef_browser_host_t, send_mouse_wheel_event) - 368usize];
8545    ["Offset of field: _cef_browser_host_t::send_touch_event"]
8546        [::std::mem::offset_of!(_cef_browser_host_t, send_touch_event) - 376usize];
8547    ["Offset of field: _cef_browser_host_t::send_capture_lost_event"]
8548        [::std::mem::offset_of!(_cef_browser_host_t, send_capture_lost_event) - 384usize];
8549    ["Offset of field: _cef_browser_host_t::notify_move_or_resize_started"]
8550        [::std::mem::offset_of!(_cef_browser_host_t, notify_move_or_resize_started) - 392usize];
8551    ["Offset of field: _cef_browser_host_t::get_windowless_frame_rate"]
8552        [::std::mem::offset_of!(_cef_browser_host_t, get_windowless_frame_rate) - 400usize];
8553    ["Offset of field: _cef_browser_host_t::set_windowless_frame_rate"]
8554        [::std::mem::offset_of!(_cef_browser_host_t, set_windowless_frame_rate) - 408usize];
8555    ["Offset of field: _cef_browser_host_t::ime_set_composition"]
8556        [::std::mem::offset_of!(_cef_browser_host_t, ime_set_composition) - 416usize];
8557    ["Offset of field: _cef_browser_host_t::ime_commit_text"]
8558        [::std::mem::offset_of!(_cef_browser_host_t, ime_commit_text) - 424usize];
8559    ["Offset of field: _cef_browser_host_t::ime_finish_composing_text"]
8560        [::std::mem::offset_of!(_cef_browser_host_t, ime_finish_composing_text) - 432usize];
8561    ["Offset of field: _cef_browser_host_t::ime_cancel_composition"]
8562        [::std::mem::offset_of!(_cef_browser_host_t, ime_cancel_composition) - 440usize];
8563    ["Offset of field: _cef_browser_host_t::drag_target_drag_enter"]
8564        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_enter) - 448usize];
8565    ["Offset of field: _cef_browser_host_t::drag_target_drag_over"]
8566        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_over) - 456usize];
8567    ["Offset of field: _cef_browser_host_t::drag_target_drag_leave"]
8568        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drag_leave) - 464usize];
8569    ["Offset of field: _cef_browser_host_t::drag_target_drop"]
8570        [::std::mem::offset_of!(_cef_browser_host_t, drag_target_drop) - 472usize];
8571    ["Offset of field: _cef_browser_host_t::drag_source_ended_at"]
8572        [::std::mem::offset_of!(_cef_browser_host_t, drag_source_ended_at) - 480usize];
8573    ["Offset of field: _cef_browser_host_t::drag_source_system_drag_ended"]
8574        [::std::mem::offset_of!(_cef_browser_host_t, drag_source_system_drag_ended) - 488usize];
8575    ["Offset of field: _cef_browser_host_t::get_visible_navigation_entry"]
8576        [::std::mem::offset_of!(_cef_browser_host_t, get_visible_navigation_entry) - 496usize];
8577    ["Offset of field: _cef_browser_host_t::set_accessibility_state"]
8578        [::std::mem::offset_of!(_cef_browser_host_t, set_accessibility_state) - 504usize];
8579    ["Offset of field: _cef_browser_host_t::set_auto_resize_enabled"]
8580        [::std::mem::offset_of!(_cef_browser_host_t, set_auto_resize_enabled) - 512usize];
8581    ["Offset of field: _cef_browser_host_t::set_audio_muted"]
8582        [::std::mem::offset_of!(_cef_browser_host_t, set_audio_muted) - 520usize];
8583    ["Offset of field: _cef_browser_host_t::is_audio_muted"]
8584        [::std::mem::offset_of!(_cef_browser_host_t, is_audio_muted) - 528usize];
8585    ["Offset of field: _cef_browser_host_t::is_fullscreen"]
8586        [::std::mem::offset_of!(_cef_browser_host_t, is_fullscreen) - 536usize];
8587    ["Offset of field: _cef_browser_host_t::exit_fullscreen"]
8588        [::std::mem::offset_of!(_cef_browser_host_t, exit_fullscreen) - 544usize];
8589    ["Offset of field: _cef_browser_host_t::can_execute_chrome_command"]
8590        [::std::mem::offset_of!(_cef_browser_host_t, can_execute_chrome_command) - 552usize];
8591    ["Offset of field: _cef_browser_host_t::execute_chrome_command"]
8592        [::std::mem::offset_of!(_cef_browser_host_t, execute_chrome_command) - 560usize];
8593    ["Offset of field: _cef_browser_host_t::is_render_process_unresponsive"]
8594        [::std::mem::offset_of!(_cef_browser_host_t, is_render_process_unresponsive) - 568usize];
8595    ["Offset of field: _cef_browser_host_t::get_runtime_style"]
8596        [::std::mem::offset_of!(_cef_browser_host_t, get_runtime_style) - 576usize];
8597};
8598#[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"]
8599pub type cef_browser_host_t = _cef_browser_host_t;
8600unsafe extern "C" {
8601    #[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"]
8602    pub fn cef_browser_host_create_browser(
8603        windowInfo: *const cef_window_info_t,
8604        client: *mut _cef_client_t,
8605        url: *const cef_string_t,
8606        settings: *const _cef_browser_settings_t,
8607        extra_info: *mut _cef_dictionary_value_t,
8608        request_context: *mut _cef_request_context_t,
8609    ) -> ::std::os::raw::c_int;
8610}
8611unsafe extern "C" {
8612    #[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"]
8613    pub fn cef_browser_host_create_browser_sync(
8614        windowInfo: *const cef_window_info_t,
8615        client: *mut _cef_client_t,
8616        url: *const cef_string_t,
8617        settings: *const _cef_browser_settings_t,
8618        extra_info: *mut _cef_dictionary_value_t,
8619        request_context: *mut _cef_request_context_t,
8620    ) -> *mut cef_browser_t;
8621}
8622unsafe extern "C" {
8623    #[doc = "\n Returns the browser (if any) with the specified identifier.\n"]
8624    pub fn cef_browser_host_get_browser_by_identifier(
8625        browser_id: ::std::os::raw::c_int,
8626    ) -> *mut cef_browser_t;
8627}
8628#[doc = "\n Implement this structure to handle audio events.\n\n NOTE: This struct is allocated client-side.\n"]
8629#[repr(C)]
8630#[derive(Debug, Copy, Clone)]
8631pub struct _cef_audio_handler_t {
8632    #[doc = "\n Base structure.\n"]
8633    pub base: cef_base_ref_counted_t,
8634    #[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"]
8635    pub get_audio_parameters: ::std::option::Option<
8636        unsafe extern "C" fn(
8637            self_: *mut _cef_audio_handler_t,
8638            browser: *mut _cef_browser_t,
8639            params: *mut cef_audio_parameters_t,
8640        ) -> ::std::os::raw::c_int,
8641    >,
8642    #[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"]
8643    pub on_audio_stream_started: ::std::option::Option<
8644        unsafe extern "C" fn(
8645            self_: *mut _cef_audio_handler_t,
8646            browser: *mut _cef_browser_t,
8647            params: *const cef_audio_parameters_t,
8648            channels: ::std::os::raw::c_int,
8649        ),
8650    >,
8651    #[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"]
8652    pub on_audio_stream_packet: ::std::option::Option<
8653        unsafe extern "C" fn(
8654            self_: *mut _cef_audio_handler_t,
8655            browser: *mut _cef_browser_t,
8656            data: *mut *const f32,
8657            frames: ::std::os::raw::c_int,
8658            pts: i64,
8659        ),
8660    >,
8661    #[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"]
8662    pub on_audio_stream_stopped: ::std::option::Option<
8663        unsafe extern "C" fn(self_: *mut _cef_audio_handler_t, browser: *mut _cef_browser_t),
8664    >,
8665    #[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"]
8666    pub on_audio_stream_error: ::std::option::Option<
8667        unsafe extern "C" fn(
8668            self_: *mut _cef_audio_handler_t,
8669            browser: *mut _cef_browser_t,
8670            message: *const cef_string_t,
8671        ),
8672    >,
8673}
8674#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8675const _: () = {
8676    ["Size of _cef_audio_handler_t"][::std::mem::size_of::<_cef_audio_handler_t>() - 80usize];
8677    ["Alignment of _cef_audio_handler_t"][::std::mem::align_of::<_cef_audio_handler_t>() - 8usize];
8678    ["Offset of field: _cef_audio_handler_t::base"]
8679        [::std::mem::offset_of!(_cef_audio_handler_t, base) - 0usize];
8680    ["Offset of field: _cef_audio_handler_t::get_audio_parameters"]
8681        [::std::mem::offset_of!(_cef_audio_handler_t, get_audio_parameters) - 40usize];
8682    ["Offset of field: _cef_audio_handler_t::on_audio_stream_started"]
8683        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_started) - 48usize];
8684    ["Offset of field: _cef_audio_handler_t::on_audio_stream_packet"]
8685        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_packet) - 56usize];
8686    ["Offset of field: _cef_audio_handler_t::on_audio_stream_stopped"]
8687        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_stopped) - 64usize];
8688    ["Offset of field: _cef_audio_handler_t::on_audio_stream_error"]
8689        [::std::mem::offset_of!(_cef_audio_handler_t, on_audio_stream_error) - 72usize];
8690};
8691#[doc = "\n Implement this structure to handle audio events.\n\n NOTE: This struct is allocated client-side.\n"]
8692pub type cef_audio_handler_t = _cef_audio_handler_t;
8693#[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"]
8694#[repr(C)]
8695#[derive(Debug, Copy, Clone)]
8696pub struct _cef_command_handler_t {
8697    #[doc = "\n Base structure.\n"]
8698    pub base: cef_base_ref_counted_t,
8699    #[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"]
8700    pub on_chrome_command: ::std::option::Option<
8701        unsafe extern "C" fn(
8702            self_: *mut _cef_command_handler_t,
8703            browser: *mut _cef_browser_t,
8704            command_id: ::std::os::raw::c_int,
8705            disposition: cef_window_open_disposition_t,
8706        ) -> ::std::os::raw::c_int,
8707    >,
8708    #[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"]
8709    pub is_chrome_app_menu_item_visible: ::std::option::Option<
8710        unsafe extern "C" fn(
8711            self_: *mut _cef_command_handler_t,
8712            browser: *mut _cef_browser_t,
8713            command_id: ::std::os::raw::c_int,
8714        ) -> ::std::os::raw::c_int,
8715    >,
8716    #[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"]
8717    pub is_chrome_app_menu_item_enabled: ::std::option::Option<
8718        unsafe extern "C" fn(
8719            self_: *mut _cef_command_handler_t,
8720            browser: *mut _cef_browser_t,
8721            command_id: ::std::os::raw::c_int,
8722        ) -> ::std::os::raw::c_int,
8723    >,
8724    #[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"]
8725    pub is_chrome_page_action_icon_visible: ::std::option::Option<
8726        unsafe extern "C" fn(
8727            self_: *mut _cef_command_handler_t,
8728            icon_type: cef_chrome_page_action_icon_type_t,
8729        ) -> ::std::os::raw::c_int,
8730    >,
8731    #[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"]
8732    pub is_chrome_toolbar_button_visible: ::std::option::Option<
8733        unsafe extern "C" fn(
8734            self_: *mut _cef_command_handler_t,
8735            button_type: cef_chrome_toolbar_button_type_t,
8736        ) -> ::std::os::raw::c_int,
8737    >,
8738}
8739#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8740const _: () = {
8741    ["Size of _cef_command_handler_t"][::std::mem::size_of::<_cef_command_handler_t>() - 80usize];
8742    ["Alignment of _cef_command_handler_t"]
8743        [::std::mem::align_of::<_cef_command_handler_t>() - 8usize];
8744    ["Offset of field: _cef_command_handler_t::base"]
8745        [::std::mem::offset_of!(_cef_command_handler_t, base) - 0usize];
8746    ["Offset of field: _cef_command_handler_t::on_chrome_command"]
8747        [::std::mem::offset_of!(_cef_command_handler_t, on_chrome_command) - 40usize];
8748    ["Offset of field: _cef_command_handler_t::is_chrome_app_menu_item_visible"]
8749        [::std::mem::offset_of!(_cef_command_handler_t, is_chrome_app_menu_item_visible) - 48usize];
8750    ["Offset of field: _cef_command_handler_t::is_chrome_app_menu_item_enabled"]
8751        [::std::mem::offset_of!(_cef_command_handler_t, is_chrome_app_menu_item_enabled) - 56usize];
8752    ["Offset of field: _cef_command_handler_t::is_chrome_page_action_icon_visible"][::std::mem::offset_of!(
8753        _cef_command_handler_t,
8754        is_chrome_page_action_icon_visible
8755    ) - 64usize];
8756    ["Offset of field: _cef_command_handler_t::is_chrome_toolbar_button_visible"][::std::mem::offset_of!(
8757        _cef_command_handler_t,
8758        is_chrome_toolbar_button_visible
8759    ) - 72usize];
8760};
8761#[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"]
8762pub type cef_command_handler_t = _cef_command_handler_t;
8763#[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"]
8764#[repr(C)]
8765#[derive(Debug, Copy, Clone)]
8766pub struct _cef_menu_model_delegate_t {
8767    #[doc = "\n Base structure.\n"]
8768    pub base: cef_base_ref_counted_t,
8769    #[doc = "\n Perform the action associated with the specified |command_id| and optional\n |event_flags|.\n"]
8770    pub execute_command: ::std::option::Option<
8771        unsafe extern "C" fn(
8772            self_: *mut _cef_menu_model_delegate_t,
8773            menu_model: *mut _cef_menu_model_t,
8774            command_id: ::std::os::raw::c_int,
8775            event_flags: cef_event_flags_t,
8776        ),
8777    >,
8778    #[doc = "\n Called when the user moves the mouse outside the menu and over the owning\n window.\n"]
8779    pub mouse_outside_menu: ::std::option::Option<
8780        unsafe extern "C" fn(
8781            self_: *mut _cef_menu_model_delegate_t,
8782            menu_model: *mut _cef_menu_model_t,
8783            screen_point: *const cef_point_t,
8784        ),
8785    >,
8786    #[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"]
8787    pub unhandled_open_submenu: ::std::option::Option<
8788        unsafe extern "C" fn(
8789            self_: *mut _cef_menu_model_delegate_t,
8790            menu_model: *mut _cef_menu_model_t,
8791            is_rtl: ::std::os::raw::c_int,
8792        ),
8793    >,
8794    #[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"]
8795    pub unhandled_close_submenu: ::std::option::Option<
8796        unsafe extern "C" fn(
8797            self_: *mut _cef_menu_model_delegate_t,
8798            menu_model: *mut _cef_menu_model_t,
8799            is_rtl: ::std::os::raw::c_int,
8800        ),
8801    >,
8802    #[doc = "\n The menu is about to show.\n"]
8803    pub menu_will_show: ::std::option::Option<
8804        unsafe extern "C" fn(
8805            self_: *mut _cef_menu_model_delegate_t,
8806            menu_model: *mut _cef_menu_model_t,
8807        ),
8808    >,
8809    #[doc = "\n The menu has closed.\n"]
8810    pub menu_closed: ::std::option::Option<
8811        unsafe extern "C" fn(
8812            self_: *mut _cef_menu_model_delegate_t,
8813            menu_model: *mut _cef_menu_model_t,
8814        ),
8815    >,
8816    #[doc = "\n Optionally modify a menu item label. Return true (1) if |label| was\n modified.\n"]
8817    pub format_label: ::std::option::Option<
8818        unsafe extern "C" fn(
8819            self_: *mut _cef_menu_model_delegate_t,
8820            menu_model: *mut _cef_menu_model_t,
8821            label: *mut cef_string_t,
8822        ) -> ::std::os::raw::c_int,
8823    >,
8824}
8825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8826const _: () = {
8827    ["Size of _cef_menu_model_delegate_t"]
8828        [::std::mem::size_of::<_cef_menu_model_delegate_t>() - 96usize];
8829    ["Alignment of _cef_menu_model_delegate_t"]
8830        [::std::mem::align_of::<_cef_menu_model_delegate_t>() - 8usize];
8831    ["Offset of field: _cef_menu_model_delegate_t::base"]
8832        [::std::mem::offset_of!(_cef_menu_model_delegate_t, base) - 0usize];
8833    ["Offset of field: _cef_menu_model_delegate_t::execute_command"]
8834        [::std::mem::offset_of!(_cef_menu_model_delegate_t, execute_command) - 40usize];
8835    ["Offset of field: _cef_menu_model_delegate_t::mouse_outside_menu"]
8836        [::std::mem::offset_of!(_cef_menu_model_delegate_t, mouse_outside_menu) - 48usize];
8837    ["Offset of field: _cef_menu_model_delegate_t::unhandled_open_submenu"]
8838        [::std::mem::offset_of!(_cef_menu_model_delegate_t, unhandled_open_submenu) - 56usize];
8839    ["Offset of field: _cef_menu_model_delegate_t::unhandled_close_submenu"]
8840        [::std::mem::offset_of!(_cef_menu_model_delegate_t, unhandled_close_submenu) - 64usize];
8841    ["Offset of field: _cef_menu_model_delegate_t::menu_will_show"]
8842        [::std::mem::offset_of!(_cef_menu_model_delegate_t, menu_will_show) - 72usize];
8843    ["Offset of field: _cef_menu_model_delegate_t::menu_closed"]
8844        [::std::mem::offset_of!(_cef_menu_model_delegate_t, menu_closed) - 80usize];
8845    ["Offset of field: _cef_menu_model_delegate_t::format_label"]
8846        [::std::mem::offset_of!(_cef_menu_model_delegate_t, format_label) - 88usize];
8847};
8848#[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"]
8849pub type cef_menu_model_delegate_t = _cef_menu_model_delegate_t;
8850#[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"]
8851#[repr(C)]
8852#[derive(Debug, Copy, Clone)]
8853pub struct _cef_menu_model_t {
8854    #[doc = "\n Base structure.\n"]
8855    pub base: cef_base_ref_counted_t,
8856    #[doc = "\n Returns true (1) if this menu is a submenu.\n"]
8857    pub is_sub_menu: ::std::option::Option<
8858        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
8859    >,
8860    #[doc = "\n Clears the menu. Returns true (1) on success.\n"]
8861    pub clear: ::std::option::Option<
8862        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
8863    >,
8864    #[doc = "\n Returns the number of items in this menu.\n"]
8865    pub get_count:
8866        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> usize>,
8867    #[doc = "\n Add a separator to the menu. Returns true (1) on success.\n"]
8868    pub add_separator: ::std::option::Option<
8869        unsafe extern "C" fn(self_: *mut _cef_menu_model_t) -> ::std::os::raw::c_int,
8870    >,
8871    #[doc = "\n Add an item to the menu. Returns true (1) on success.\n"]
8872    pub add_item: ::std::option::Option<
8873        unsafe extern "C" fn(
8874            self_: *mut _cef_menu_model_t,
8875            command_id: ::std::os::raw::c_int,
8876            label: *const cef_string_t,
8877        ) -> ::std::os::raw::c_int,
8878    >,
8879    #[doc = "\n Add a check item to the menu. Returns true (1) on success.\n"]
8880    pub add_check_item: ::std::option::Option<
8881        unsafe extern "C" fn(
8882            self_: *mut _cef_menu_model_t,
8883            command_id: ::std::os::raw::c_int,
8884            label: *const cef_string_t,
8885        ) -> ::std::os::raw::c_int,
8886    >,
8887    #[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"]
8888    pub add_radio_item: ::std::option::Option<
8889        unsafe extern "C" fn(
8890            self_: *mut _cef_menu_model_t,
8891            command_id: ::std::os::raw::c_int,
8892            label: *const cef_string_t,
8893            group_id: ::std::os::raw::c_int,
8894        ) -> ::std::os::raw::c_int,
8895    >,
8896    #[doc = "\n Add a sub-menu to the menu. The new sub-menu is returned.\n"]
8897    pub add_sub_menu: ::std::option::Option<
8898        unsafe extern "C" fn(
8899            self_: *mut _cef_menu_model_t,
8900            command_id: ::std::os::raw::c_int,
8901            label: *const cef_string_t,
8902        ) -> *mut _cef_menu_model_t,
8903    >,
8904    #[doc = "\n Insert a separator in the menu at the specified |index|. Returns true (1)\n on success.\n"]
8905    pub insert_separator_at: ::std::option::Option<
8906        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
8907    >,
8908    #[doc = "\n Insert an item in the menu at the specified |index|. Returns true (1) on\n success.\n"]
8909    pub insert_item_at: ::std::option::Option<
8910        unsafe extern "C" fn(
8911            self_: *mut _cef_menu_model_t,
8912            index: usize,
8913            command_id: ::std::os::raw::c_int,
8914            label: *const cef_string_t,
8915        ) -> ::std::os::raw::c_int,
8916    >,
8917    #[doc = "\n Insert a check item in the menu at the specified |index|. Returns true (1)\n on success.\n"]
8918    pub insert_check_item_at: ::std::option::Option<
8919        unsafe extern "C" fn(
8920            self_: *mut _cef_menu_model_t,
8921            index: usize,
8922            command_id: ::std::os::raw::c_int,
8923            label: *const cef_string_t,
8924        ) -> ::std::os::raw::c_int,
8925    >,
8926    #[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"]
8927    pub insert_radio_item_at: ::std::option::Option<
8928        unsafe extern "C" fn(
8929            self_: *mut _cef_menu_model_t,
8930            index: usize,
8931            command_id: ::std::os::raw::c_int,
8932            label: *const cef_string_t,
8933            group_id: ::std::os::raw::c_int,
8934        ) -> ::std::os::raw::c_int,
8935    >,
8936    #[doc = "\n Insert a sub-menu in the menu at the specified |index|. The new sub-menu\n is returned.\n"]
8937    pub insert_sub_menu_at: ::std::option::Option<
8938        unsafe extern "C" fn(
8939            self_: *mut _cef_menu_model_t,
8940            index: usize,
8941            command_id: ::std::os::raw::c_int,
8942            label: *const cef_string_t,
8943        ) -> *mut _cef_menu_model_t,
8944    >,
8945    #[doc = "\n Removes the item with the specified |command_id|. Returns true (1) on\n success.\n"]
8946    pub remove: ::std::option::Option<
8947        unsafe extern "C" fn(
8948            self_: *mut _cef_menu_model_t,
8949            command_id: ::std::os::raw::c_int,
8950        ) -> ::std::os::raw::c_int,
8951    >,
8952    #[doc = "\n Removes the item at the specified |index|. Returns true (1) on success.\n"]
8953    pub remove_at: ::std::option::Option<
8954        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
8955    >,
8956    #[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"]
8957    pub get_index_of: ::std::option::Option<
8958        unsafe extern "C" fn(
8959            self_: *mut _cef_menu_model_t,
8960            command_id: ::std::os::raw::c_int,
8961        ) -> ::std::os::raw::c_int,
8962    >,
8963    #[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"]
8964    pub get_command_id_at: ::std::option::Option<
8965        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
8966    >,
8967    #[doc = "\n Sets the command id at the specified |index|. Returns true (1) on success.\n"]
8968    pub set_command_id_at: ::std::option::Option<
8969        unsafe extern "C" fn(
8970            self_: *mut _cef_menu_model_t,
8971            index: usize,
8972            command_id: ::std::os::raw::c_int,
8973        ) -> ::std::os::raw::c_int,
8974    >,
8975    #[doc = "\n Returns the label for the specified |command_id| or NULL if not found.\n"]
8976    pub get_label: ::std::option::Option<
8977        unsafe extern "C" fn(
8978            self_: *mut _cef_menu_model_t,
8979            command_id: ::std::os::raw::c_int,
8980        ) -> cef_string_userfree_t,
8981    >,
8982    #[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"]
8983    pub get_label_at: ::std::option::Option<
8984        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> cef_string_userfree_t,
8985    >,
8986    #[doc = "\n Sets the label for the specified |command_id|. Returns true (1) on\n success.\n"]
8987    pub set_label: ::std::option::Option<
8988        unsafe extern "C" fn(
8989            self_: *mut _cef_menu_model_t,
8990            command_id: ::std::os::raw::c_int,
8991            label: *const cef_string_t,
8992        ) -> ::std::os::raw::c_int,
8993    >,
8994    #[doc = "\n Set the label at the specified |index|. Returns true (1) on success.\n"]
8995    pub set_label_at: ::std::option::Option<
8996        unsafe extern "C" fn(
8997            self_: *mut _cef_menu_model_t,
8998            index: usize,
8999            label: *const cef_string_t,
9000        ) -> ::std::os::raw::c_int,
9001    >,
9002    #[doc = "\n Returns the item type for the specified |command_id|.\n"]
9003    pub get_type: ::std::option::Option<
9004        unsafe extern "C" fn(
9005            self_: *mut _cef_menu_model_t,
9006            command_id: ::std::os::raw::c_int,
9007        ) -> cef_menu_item_type_t,
9008    >,
9009    #[doc = "\n Returns the item type at the specified |index|.\n"]
9010    pub get_type_at: ::std::option::Option<
9011        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> cef_menu_item_type_t,
9012    >,
9013    #[doc = "\n Returns the group id for the specified |command_id| or -1 if invalid.\n"]
9014    pub get_group_id: ::std::option::Option<
9015        unsafe extern "C" fn(
9016            self_: *mut _cef_menu_model_t,
9017            command_id: ::std::os::raw::c_int,
9018        ) -> ::std::os::raw::c_int,
9019    >,
9020    #[doc = "\n Returns the group id at the specified |index| or -1 if invalid.\n"]
9021    pub get_group_id_at: ::std::option::Option<
9022        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9023    >,
9024    #[doc = "\n Sets the group id for the specified |command_id|. Returns true (1) on\n success.\n"]
9025    pub set_group_id: ::std::option::Option<
9026        unsafe extern "C" fn(
9027            self_: *mut _cef_menu_model_t,
9028            command_id: ::std::os::raw::c_int,
9029            group_id: ::std::os::raw::c_int,
9030        ) -> ::std::os::raw::c_int,
9031    >,
9032    #[doc = "\n Sets the group id at the specified |index|. Returns true (1) on success.\n"]
9033    pub set_group_id_at: ::std::option::Option<
9034        unsafe extern "C" fn(
9035            self_: *mut _cef_menu_model_t,
9036            index: usize,
9037            group_id: ::std::os::raw::c_int,
9038        ) -> ::std::os::raw::c_int,
9039    >,
9040    #[doc = "\n Returns the submenu for the specified |command_id| or NULL if invalid.\n"]
9041    pub get_sub_menu: ::std::option::Option<
9042        unsafe extern "C" fn(
9043            self_: *mut _cef_menu_model_t,
9044            command_id: ::std::os::raw::c_int,
9045        ) -> *mut _cef_menu_model_t,
9046    >,
9047    #[doc = "\n Returns the submenu at the specified |index| or NULL if invalid.\n"]
9048    pub get_sub_menu_at: ::std::option::Option<
9049        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> *mut _cef_menu_model_t,
9050    >,
9051    #[doc = "\n Returns true (1) if the specified |command_id| is visible.\n"]
9052    pub is_visible: ::std::option::Option<
9053        unsafe extern "C" fn(
9054            self_: *mut _cef_menu_model_t,
9055            command_id: ::std::os::raw::c_int,
9056        ) -> ::std::os::raw::c_int,
9057    >,
9058    #[doc = "\n Returns true (1) if the specified |index| is visible.\n"]
9059    pub is_visible_at: ::std::option::Option<
9060        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9061    >,
9062    #[doc = "\n Change the visibility of the specified |command_id|. Returns true (1) on\n success.\n"]
9063    pub set_visible: ::std::option::Option<
9064        unsafe extern "C" fn(
9065            self_: *mut _cef_menu_model_t,
9066            command_id: ::std::os::raw::c_int,
9067            visible: ::std::os::raw::c_int,
9068        ) -> ::std::os::raw::c_int,
9069    >,
9070    #[doc = "\n Change the visibility at the specified |index|. Returns true (1) on\n success.\n"]
9071    pub set_visible_at: ::std::option::Option<
9072        unsafe extern "C" fn(
9073            self_: *mut _cef_menu_model_t,
9074            index: usize,
9075            visible: ::std::os::raw::c_int,
9076        ) -> ::std::os::raw::c_int,
9077    >,
9078    #[doc = "\n Returns true (1) if the specified |command_id| is enabled.\n"]
9079    pub is_enabled: ::std::option::Option<
9080        unsafe extern "C" fn(
9081            self_: *mut _cef_menu_model_t,
9082            command_id: ::std::os::raw::c_int,
9083        ) -> ::std::os::raw::c_int,
9084    >,
9085    #[doc = "\n Returns true (1) if the specified |index| is enabled.\n"]
9086    pub is_enabled_at: ::std::option::Option<
9087        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9088    >,
9089    #[doc = "\n Change the enabled status of the specified |command_id|. Returns true (1)\n on success.\n"]
9090    pub set_enabled: ::std::option::Option<
9091        unsafe extern "C" fn(
9092            self_: *mut _cef_menu_model_t,
9093            command_id: ::std::os::raw::c_int,
9094            enabled: ::std::os::raw::c_int,
9095        ) -> ::std::os::raw::c_int,
9096    >,
9097    #[doc = "\n Change the enabled status at the specified |index|. Returns true (1) on\n success.\n"]
9098    pub set_enabled_at: ::std::option::Option<
9099        unsafe extern "C" fn(
9100            self_: *mut _cef_menu_model_t,
9101            index: usize,
9102            enabled: ::std::os::raw::c_int,
9103        ) -> ::std::os::raw::c_int,
9104    >,
9105    #[doc = "\n Returns true (1) if the specified |command_id| is checked. Only applies to\n check and radio items.\n"]
9106    pub is_checked: ::std::option::Option<
9107        unsafe extern "C" fn(
9108            self_: *mut _cef_menu_model_t,
9109            command_id: ::std::os::raw::c_int,
9110        ) -> ::std::os::raw::c_int,
9111    >,
9112    #[doc = "\n Returns true (1) if the specified |index| is checked. Only applies to\n check and radio items.\n"]
9113    pub is_checked_at: ::std::option::Option<
9114        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9115    >,
9116    #[doc = "\n Check the specified |command_id|. Only applies to check and radio items.\n Returns true (1) on success.\n"]
9117    pub set_checked: ::std::option::Option<
9118        unsafe extern "C" fn(
9119            self_: *mut _cef_menu_model_t,
9120            command_id: ::std::os::raw::c_int,
9121            checked: ::std::os::raw::c_int,
9122        ) -> ::std::os::raw::c_int,
9123    >,
9124    #[doc = "\n Check the specified |index|. Only applies to check and radio items.\n Returns true (1) on success.\n"]
9125    pub set_checked_at: ::std::option::Option<
9126        unsafe extern "C" fn(
9127            self_: *mut _cef_menu_model_t,
9128            index: usize,
9129            checked: ::std::os::raw::c_int,
9130        ) -> ::std::os::raw::c_int,
9131    >,
9132    #[doc = "\n Returns true (1) if the specified |command_id| has a keyboard accelerator\n assigned.\n"]
9133    pub has_accelerator: ::std::option::Option<
9134        unsafe extern "C" fn(
9135            self_: *mut _cef_menu_model_t,
9136            command_id: ::std::os::raw::c_int,
9137        ) -> ::std::os::raw::c_int,
9138    >,
9139    #[doc = "\n Returns true (1) if the specified |index| has a keyboard accelerator\n assigned.\n"]
9140    pub has_accelerator_at: ::std::option::Option<
9141        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9142    >,
9143    #[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"]
9144    pub set_accelerator: ::std::option::Option<
9145        unsafe extern "C" fn(
9146            self_: *mut _cef_menu_model_t,
9147            command_id: ::std::os::raw::c_int,
9148            key_code: ::std::os::raw::c_int,
9149            shift_pressed: ::std::os::raw::c_int,
9150            ctrl_pressed: ::std::os::raw::c_int,
9151            alt_pressed: ::std::os::raw::c_int,
9152        ) -> ::std::os::raw::c_int,
9153    >,
9154    #[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"]
9155    pub set_accelerator_at: ::std::option::Option<
9156        unsafe extern "C" fn(
9157            self_: *mut _cef_menu_model_t,
9158            index: usize,
9159            key_code: ::std::os::raw::c_int,
9160            shift_pressed: ::std::os::raw::c_int,
9161            ctrl_pressed: ::std::os::raw::c_int,
9162            alt_pressed: ::std::os::raw::c_int,
9163        ) -> ::std::os::raw::c_int,
9164    >,
9165    #[doc = "\n Remove the keyboard accelerator for the specified |command_id|. Returns\n true (1) on success.\n"]
9166    pub remove_accelerator: ::std::option::Option<
9167        unsafe extern "C" fn(
9168            self_: *mut _cef_menu_model_t,
9169            command_id: ::std::os::raw::c_int,
9170        ) -> ::std::os::raw::c_int,
9171    >,
9172    #[doc = "\n Remove the keyboard accelerator at the specified |index|. Returns true (1)\n on success.\n"]
9173    pub remove_accelerator_at: ::std::option::Option<
9174        unsafe extern "C" fn(self_: *mut _cef_menu_model_t, index: usize) -> ::std::os::raw::c_int,
9175    >,
9176    #[doc = "\n Retrieves the keyboard accelerator for the specified |command_id|. Returns\n true (1) on success.\n"]
9177    pub get_accelerator: ::std::option::Option<
9178        unsafe extern "C" fn(
9179            self_: *mut _cef_menu_model_t,
9180            command_id: ::std::os::raw::c_int,
9181            key_code: *mut ::std::os::raw::c_int,
9182            shift_pressed: *mut ::std::os::raw::c_int,
9183            ctrl_pressed: *mut ::std::os::raw::c_int,
9184            alt_pressed: *mut ::std::os::raw::c_int,
9185        ) -> ::std::os::raw::c_int,
9186    >,
9187    #[doc = "\n Retrieves the keyboard accelerator for the specified |index|. Returns true\n (1) on success.\n"]
9188    pub get_accelerator_at: ::std::option::Option<
9189        unsafe extern "C" fn(
9190            self_: *mut _cef_menu_model_t,
9191            index: usize,
9192            key_code: *mut ::std::os::raw::c_int,
9193            shift_pressed: *mut ::std::os::raw::c_int,
9194            ctrl_pressed: *mut ::std::os::raw::c_int,
9195            alt_pressed: *mut ::std::os::raw::c_int,
9196        ) -> ::std::os::raw::c_int,
9197    >,
9198    #[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"]
9199    pub set_color: ::std::option::Option<
9200        unsafe extern "C" fn(
9201            self_: *mut _cef_menu_model_t,
9202            command_id: ::std::os::raw::c_int,
9203            color_type: cef_menu_color_type_t,
9204            color: cef_color_t,
9205        ) -> ::std::os::raw::c_int,
9206    >,
9207    #[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"]
9208    pub set_color_at: ::std::option::Option<
9209        unsafe extern "C" fn(
9210            self_: *mut _cef_menu_model_t,
9211            index: ::std::os::raw::c_int,
9212            color_type: cef_menu_color_type_t,
9213            color: cef_color_t,
9214        ) -> ::std::os::raw::c_int,
9215    >,
9216    #[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"]
9217    pub get_color: ::std::option::Option<
9218        unsafe extern "C" fn(
9219            self_: *mut _cef_menu_model_t,
9220            command_id: ::std::os::raw::c_int,
9221            color_type: cef_menu_color_type_t,
9222            color: *mut cef_color_t,
9223        ) -> ::std::os::raw::c_int,
9224    >,
9225    #[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"]
9226    pub get_color_at: ::std::option::Option<
9227        unsafe extern "C" fn(
9228            self_: *mut _cef_menu_model_t,
9229            index: ::std::os::raw::c_int,
9230            color_type: cef_menu_color_type_t,
9231            color: *mut cef_color_t,
9232        ) -> ::std::os::raw::c_int,
9233    >,
9234    #[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"]
9235    pub set_font_list: ::std::option::Option<
9236        unsafe extern "C" fn(
9237            self_: *mut _cef_menu_model_t,
9238            command_id: ::std::os::raw::c_int,
9239            font_list: *const cef_string_t,
9240        ) -> ::std::os::raw::c_int,
9241    >,
9242    #[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"]
9243    pub set_font_list_at: ::std::option::Option<
9244        unsafe extern "C" fn(
9245            self_: *mut _cef_menu_model_t,
9246            index: ::std::os::raw::c_int,
9247            font_list: *const cef_string_t,
9248        ) -> ::std::os::raw::c_int,
9249    >,
9250}
9251#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9252const _: () = {
9253    ["Size of _cef_menu_model_t"][::std::mem::size_of::<_cef_menu_model_t>() - 488usize];
9254    ["Alignment of _cef_menu_model_t"][::std::mem::align_of::<_cef_menu_model_t>() - 8usize];
9255    ["Offset of field: _cef_menu_model_t::base"]
9256        [::std::mem::offset_of!(_cef_menu_model_t, base) - 0usize];
9257    ["Offset of field: _cef_menu_model_t::is_sub_menu"]
9258        [::std::mem::offset_of!(_cef_menu_model_t, is_sub_menu) - 40usize];
9259    ["Offset of field: _cef_menu_model_t::clear"]
9260        [::std::mem::offset_of!(_cef_menu_model_t, clear) - 48usize];
9261    ["Offset of field: _cef_menu_model_t::get_count"]
9262        [::std::mem::offset_of!(_cef_menu_model_t, get_count) - 56usize];
9263    ["Offset of field: _cef_menu_model_t::add_separator"]
9264        [::std::mem::offset_of!(_cef_menu_model_t, add_separator) - 64usize];
9265    ["Offset of field: _cef_menu_model_t::add_item"]
9266        [::std::mem::offset_of!(_cef_menu_model_t, add_item) - 72usize];
9267    ["Offset of field: _cef_menu_model_t::add_check_item"]
9268        [::std::mem::offset_of!(_cef_menu_model_t, add_check_item) - 80usize];
9269    ["Offset of field: _cef_menu_model_t::add_radio_item"]
9270        [::std::mem::offset_of!(_cef_menu_model_t, add_radio_item) - 88usize];
9271    ["Offset of field: _cef_menu_model_t::add_sub_menu"]
9272        [::std::mem::offset_of!(_cef_menu_model_t, add_sub_menu) - 96usize];
9273    ["Offset of field: _cef_menu_model_t::insert_separator_at"]
9274        [::std::mem::offset_of!(_cef_menu_model_t, insert_separator_at) - 104usize];
9275    ["Offset of field: _cef_menu_model_t::insert_item_at"]
9276        [::std::mem::offset_of!(_cef_menu_model_t, insert_item_at) - 112usize];
9277    ["Offset of field: _cef_menu_model_t::insert_check_item_at"]
9278        [::std::mem::offset_of!(_cef_menu_model_t, insert_check_item_at) - 120usize];
9279    ["Offset of field: _cef_menu_model_t::insert_radio_item_at"]
9280        [::std::mem::offset_of!(_cef_menu_model_t, insert_radio_item_at) - 128usize];
9281    ["Offset of field: _cef_menu_model_t::insert_sub_menu_at"]
9282        [::std::mem::offset_of!(_cef_menu_model_t, insert_sub_menu_at) - 136usize];
9283    ["Offset of field: _cef_menu_model_t::remove"]
9284        [::std::mem::offset_of!(_cef_menu_model_t, remove) - 144usize];
9285    ["Offset of field: _cef_menu_model_t::remove_at"]
9286        [::std::mem::offset_of!(_cef_menu_model_t, remove_at) - 152usize];
9287    ["Offset of field: _cef_menu_model_t::get_index_of"]
9288        [::std::mem::offset_of!(_cef_menu_model_t, get_index_of) - 160usize];
9289    ["Offset of field: _cef_menu_model_t::get_command_id_at"]
9290        [::std::mem::offset_of!(_cef_menu_model_t, get_command_id_at) - 168usize];
9291    ["Offset of field: _cef_menu_model_t::set_command_id_at"]
9292        [::std::mem::offset_of!(_cef_menu_model_t, set_command_id_at) - 176usize];
9293    ["Offset of field: _cef_menu_model_t::get_label"]
9294        [::std::mem::offset_of!(_cef_menu_model_t, get_label) - 184usize];
9295    ["Offset of field: _cef_menu_model_t::get_label_at"]
9296        [::std::mem::offset_of!(_cef_menu_model_t, get_label_at) - 192usize];
9297    ["Offset of field: _cef_menu_model_t::set_label"]
9298        [::std::mem::offset_of!(_cef_menu_model_t, set_label) - 200usize];
9299    ["Offset of field: _cef_menu_model_t::set_label_at"]
9300        [::std::mem::offset_of!(_cef_menu_model_t, set_label_at) - 208usize];
9301    ["Offset of field: _cef_menu_model_t::get_type"]
9302        [::std::mem::offset_of!(_cef_menu_model_t, get_type) - 216usize];
9303    ["Offset of field: _cef_menu_model_t::get_type_at"]
9304        [::std::mem::offset_of!(_cef_menu_model_t, get_type_at) - 224usize];
9305    ["Offset of field: _cef_menu_model_t::get_group_id"]
9306        [::std::mem::offset_of!(_cef_menu_model_t, get_group_id) - 232usize];
9307    ["Offset of field: _cef_menu_model_t::get_group_id_at"]
9308        [::std::mem::offset_of!(_cef_menu_model_t, get_group_id_at) - 240usize];
9309    ["Offset of field: _cef_menu_model_t::set_group_id"]
9310        [::std::mem::offset_of!(_cef_menu_model_t, set_group_id) - 248usize];
9311    ["Offset of field: _cef_menu_model_t::set_group_id_at"]
9312        [::std::mem::offset_of!(_cef_menu_model_t, set_group_id_at) - 256usize];
9313    ["Offset of field: _cef_menu_model_t::get_sub_menu"]
9314        [::std::mem::offset_of!(_cef_menu_model_t, get_sub_menu) - 264usize];
9315    ["Offset of field: _cef_menu_model_t::get_sub_menu_at"]
9316        [::std::mem::offset_of!(_cef_menu_model_t, get_sub_menu_at) - 272usize];
9317    ["Offset of field: _cef_menu_model_t::is_visible"]
9318        [::std::mem::offset_of!(_cef_menu_model_t, is_visible) - 280usize];
9319    ["Offset of field: _cef_menu_model_t::is_visible_at"]
9320        [::std::mem::offset_of!(_cef_menu_model_t, is_visible_at) - 288usize];
9321    ["Offset of field: _cef_menu_model_t::set_visible"]
9322        [::std::mem::offset_of!(_cef_menu_model_t, set_visible) - 296usize];
9323    ["Offset of field: _cef_menu_model_t::set_visible_at"]
9324        [::std::mem::offset_of!(_cef_menu_model_t, set_visible_at) - 304usize];
9325    ["Offset of field: _cef_menu_model_t::is_enabled"]
9326        [::std::mem::offset_of!(_cef_menu_model_t, is_enabled) - 312usize];
9327    ["Offset of field: _cef_menu_model_t::is_enabled_at"]
9328        [::std::mem::offset_of!(_cef_menu_model_t, is_enabled_at) - 320usize];
9329    ["Offset of field: _cef_menu_model_t::set_enabled"]
9330        [::std::mem::offset_of!(_cef_menu_model_t, set_enabled) - 328usize];
9331    ["Offset of field: _cef_menu_model_t::set_enabled_at"]
9332        [::std::mem::offset_of!(_cef_menu_model_t, set_enabled_at) - 336usize];
9333    ["Offset of field: _cef_menu_model_t::is_checked"]
9334        [::std::mem::offset_of!(_cef_menu_model_t, is_checked) - 344usize];
9335    ["Offset of field: _cef_menu_model_t::is_checked_at"]
9336        [::std::mem::offset_of!(_cef_menu_model_t, is_checked_at) - 352usize];
9337    ["Offset of field: _cef_menu_model_t::set_checked"]
9338        [::std::mem::offset_of!(_cef_menu_model_t, set_checked) - 360usize];
9339    ["Offset of field: _cef_menu_model_t::set_checked_at"]
9340        [::std::mem::offset_of!(_cef_menu_model_t, set_checked_at) - 368usize];
9341    ["Offset of field: _cef_menu_model_t::has_accelerator"]
9342        [::std::mem::offset_of!(_cef_menu_model_t, has_accelerator) - 376usize];
9343    ["Offset of field: _cef_menu_model_t::has_accelerator_at"]
9344        [::std::mem::offset_of!(_cef_menu_model_t, has_accelerator_at) - 384usize];
9345    ["Offset of field: _cef_menu_model_t::set_accelerator"]
9346        [::std::mem::offset_of!(_cef_menu_model_t, set_accelerator) - 392usize];
9347    ["Offset of field: _cef_menu_model_t::set_accelerator_at"]
9348        [::std::mem::offset_of!(_cef_menu_model_t, set_accelerator_at) - 400usize];
9349    ["Offset of field: _cef_menu_model_t::remove_accelerator"]
9350        [::std::mem::offset_of!(_cef_menu_model_t, remove_accelerator) - 408usize];
9351    ["Offset of field: _cef_menu_model_t::remove_accelerator_at"]
9352        [::std::mem::offset_of!(_cef_menu_model_t, remove_accelerator_at) - 416usize];
9353    ["Offset of field: _cef_menu_model_t::get_accelerator"]
9354        [::std::mem::offset_of!(_cef_menu_model_t, get_accelerator) - 424usize];
9355    ["Offset of field: _cef_menu_model_t::get_accelerator_at"]
9356        [::std::mem::offset_of!(_cef_menu_model_t, get_accelerator_at) - 432usize];
9357    ["Offset of field: _cef_menu_model_t::set_color"]
9358        [::std::mem::offset_of!(_cef_menu_model_t, set_color) - 440usize];
9359    ["Offset of field: _cef_menu_model_t::set_color_at"]
9360        [::std::mem::offset_of!(_cef_menu_model_t, set_color_at) - 448usize];
9361    ["Offset of field: _cef_menu_model_t::get_color"]
9362        [::std::mem::offset_of!(_cef_menu_model_t, get_color) - 456usize];
9363    ["Offset of field: _cef_menu_model_t::get_color_at"]
9364        [::std::mem::offset_of!(_cef_menu_model_t, get_color_at) - 464usize];
9365    ["Offset of field: _cef_menu_model_t::set_font_list"]
9366        [::std::mem::offset_of!(_cef_menu_model_t, set_font_list) - 472usize];
9367    ["Offset of field: _cef_menu_model_t::set_font_list_at"]
9368        [::std::mem::offset_of!(_cef_menu_model_t, set_font_list_at) - 480usize];
9369};
9370#[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"]
9371pub type cef_menu_model_t = _cef_menu_model_t;
9372unsafe extern "C" {
9373    #[doc = "\n Create a new MenuModel with the specified |delegate|.\n"]
9374    pub fn cef_menu_model_create(
9375        delegate: *mut _cef_menu_model_delegate_t,
9376    ) -> *mut cef_menu_model_t;
9377}
9378#[doc = "\n Callback structure used for continuation of custom context menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9379#[repr(C)]
9380#[derive(Debug, Copy, Clone)]
9381pub struct _cef_run_context_menu_callback_t {
9382    #[doc = "\n Base structure.\n"]
9383    pub base: cef_base_ref_counted_t,
9384    #[doc = "\n Complete context menu display by selecting the specified |command_id| and\n |event_flags|.\n"]
9385    pub cont: ::std::option::Option<
9386        unsafe extern "C" fn(
9387            self_: *mut _cef_run_context_menu_callback_t,
9388            command_id: ::std::os::raw::c_int,
9389            event_flags: cef_event_flags_t,
9390        ),
9391    >,
9392    #[doc = "\n Cancel context menu display.\n"]
9393    pub cancel:
9394        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_run_context_menu_callback_t)>,
9395}
9396#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9397const _: () = {
9398    ["Size of _cef_run_context_menu_callback_t"]
9399        [::std::mem::size_of::<_cef_run_context_menu_callback_t>() - 56usize];
9400    ["Alignment of _cef_run_context_menu_callback_t"]
9401        [::std::mem::align_of::<_cef_run_context_menu_callback_t>() - 8usize];
9402    ["Offset of field: _cef_run_context_menu_callback_t::base"]
9403        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, base) - 0usize];
9404    ["Offset of field: _cef_run_context_menu_callback_t::cont"]
9405        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, cont) - 40usize];
9406    ["Offset of field: _cef_run_context_menu_callback_t::cancel"]
9407        [::std::mem::offset_of!(_cef_run_context_menu_callback_t, cancel) - 48usize];
9408};
9409#[doc = "\n Callback structure used for continuation of custom context menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9410pub type cef_run_context_menu_callback_t = _cef_run_context_menu_callback_t;
9411#[doc = "\n Callback structure used for continuation of custom quick menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9412#[repr(C)]
9413#[derive(Debug, Copy, Clone)]
9414pub struct _cef_run_quick_menu_callback_t {
9415    #[doc = "\n Base structure.\n"]
9416    pub base: cef_base_ref_counted_t,
9417    #[doc = "\n Complete quick menu display by selecting the specified |command_id| and\n |event_flags|.\n"]
9418    pub cont: ::std::option::Option<
9419        unsafe extern "C" fn(
9420            self_: *mut _cef_run_quick_menu_callback_t,
9421            command_id: ::std::os::raw::c_int,
9422            event_flags: cef_event_flags_t,
9423        ),
9424    >,
9425    #[doc = "\n Cancel quick menu display.\n"]
9426    pub cancel:
9427        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_run_quick_menu_callback_t)>,
9428}
9429#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9430const _: () = {
9431    ["Size of _cef_run_quick_menu_callback_t"]
9432        [::std::mem::size_of::<_cef_run_quick_menu_callback_t>() - 56usize];
9433    ["Alignment of _cef_run_quick_menu_callback_t"]
9434        [::std::mem::align_of::<_cef_run_quick_menu_callback_t>() - 8usize];
9435    ["Offset of field: _cef_run_quick_menu_callback_t::base"]
9436        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, base) - 0usize];
9437    ["Offset of field: _cef_run_quick_menu_callback_t::cont"]
9438        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, cont) - 40usize];
9439    ["Offset of field: _cef_run_quick_menu_callback_t::cancel"]
9440        [::std::mem::offset_of!(_cef_run_quick_menu_callback_t, cancel) - 48usize];
9441};
9442#[doc = "\n Callback structure used for continuation of custom quick menu display.\n\n NOTE: This struct is allocated DLL-side.\n"]
9443pub type cef_run_quick_menu_callback_t = _cef_run_quick_menu_callback_t;
9444#[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"]
9445#[repr(C)]
9446#[derive(Debug, Copy, Clone)]
9447pub struct _cef_context_menu_handler_t {
9448    #[doc = "\n Base structure.\n"]
9449    pub base: cef_base_ref_counted_t,
9450    #[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"]
9451    pub on_before_context_menu: ::std::option::Option<
9452        unsafe extern "C" fn(
9453            self_: *mut _cef_context_menu_handler_t,
9454            browser: *mut _cef_browser_t,
9455            frame: *mut _cef_frame_t,
9456            params: *mut _cef_context_menu_params_t,
9457            model: *mut _cef_menu_model_t,
9458        ),
9459    >,
9460    #[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"]
9461    pub run_context_menu: ::std::option::Option<
9462        unsafe extern "C" fn(
9463            self_: *mut _cef_context_menu_handler_t,
9464            browser: *mut _cef_browser_t,
9465            frame: *mut _cef_frame_t,
9466            params: *mut _cef_context_menu_params_t,
9467            model: *mut _cef_menu_model_t,
9468            callback: *mut _cef_run_context_menu_callback_t,
9469        ) -> ::std::os::raw::c_int,
9470    >,
9471    #[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"]
9472    pub on_context_menu_command: ::std::option::Option<
9473        unsafe extern "C" fn(
9474            self_: *mut _cef_context_menu_handler_t,
9475            browser: *mut _cef_browser_t,
9476            frame: *mut _cef_frame_t,
9477            params: *mut _cef_context_menu_params_t,
9478            command_id: ::std::os::raw::c_int,
9479            event_flags: cef_event_flags_t,
9480        ) -> ::std::os::raw::c_int,
9481    >,
9482    #[doc = "\n Called when the context menu is dismissed irregardless of whether the menu\n was canceled or a command was selected.\n"]
9483    pub on_context_menu_dismissed: ::std::option::Option<
9484        unsafe extern "C" fn(
9485            self_: *mut _cef_context_menu_handler_t,
9486            browser: *mut _cef_browser_t,
9487            frame: *mut _cef_frame_t,
9488        ),
9489    >,
9490    #[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"]
9491    pub run_quick_menu: ::std::option::Option<
9492        unsafe extern "C" fn(
9493            self_: *mut _cef_context_menu_handler_t,
9494            browser: *mut _cef_browser_t,
9495            frame: *mut _cef_frame_t,
9496            location: *const cef_point_t,
9497            size: *const cef_size_t,
9498            edit_state_flags: cef_quick_menu_edit_state_flags_t,
9499            callback: *mut _cef_run_quick_menu_callback_t,
9500        ) -> ::std::os::raw::c_int,
9501    >,
9502    #[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"]
9503    pub on_quick_menu_command: ::std::option::Option<
9504        unsafe extern "C" fn(
9505            self_: *mut _cef_context_menu_handler_t,
9506            browser: *mut _cef_browser_t,
9507            frame: *mut _cef_frame_t,
9508            command_id: ::std::os::raw::c_int,
9509            event_flags: cef_event_flags_t,
9510        ) -> ::std::os::raw::c_int,
9511    >,
9512    #[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"]
9513    pub on_quick_menu_dismissed: ::std::option::Option<
9514        unsafe extern "C" fn(
9515            self_: *mut _cef_context_menu_handler_t,
9516            browser: *mut _cef_browser_t,
9517            frame: *mut _cef_frame_t,
9518        ),
9519    >,
9520}
9521#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9522const _: () = {
9523    ["Size of _cef_context_menu_handler_t"]
9524        [::std::mem::size_of::<_cef_context_menu_handler_t>() - 96usize];
9525    ["Alignment of _cef_context_menu_handler_t"]
9526        [::std::mem::align_of::<_cef_context_menu_handler_t>() - 8usize];
9527    ["Offset of field: _cef_context_menu_handler_t::base"]
9528        [::std::mem::offset_of!(_cef_context_menu_handler_t, base) - 0usize];
9529    ["Offset of field: _cef_context_menu_handler_t::on_before_context_menu"]
9530        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_before_context_menu) - 40usize];
9531    ["Offset of field: _cef_context_menu_handler_t::run_context_menu"]
9532        [::std::mem::offset_of!(_cef_context_menu_handler_t, run_context_menu) - 48usize];
9533    ["Offset of field: _cef_context_menu_handler_t::on_context_menu_command"]
9534        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_context_menu_command) - 56usize];
9535    ["Offset of field: _cef_context_menu_handler_t::on_context_menu_dismissed"]
9536        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_context_menu_dismissed) - 64usize];
9537    ["Offset of field: _cef_context_menu_handler_t::run_quick_menu"]
9538        [::std::mem::offset_of!(_cef_context_menu_handler_t, run_quick_menu) - 72usize];
9539    ["Offset of field: _cef_context_menu_handler_t::on_quick_menu_command"]
9540        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_quick_menu_command) - 80usize];
9541    ["Offset of field: _cef_context_menu_handler_t::on_quick_menu_dismissed"]
9542        [::std::mem::offset_of!(_cef_context_menu_handler_t, on_quick_menu_dismissed) - 88usize];
9543};
9544#[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"]
9545pub type cef_context_menu_handler_t = _cef_context_menu_handler_t;
9546#[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"]
9547#[repr(C)]
9548#[derive(Debug, Copy, Clone)]
9549pub struct _cef_context_menu_params_t {
9550    #[doc = "\n Base structure.\n"]
9551    pub base: cef_base_ref_counted_t,
9552    #[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"]
9553    pub get_xcoord: ::std::option::Option<
9554        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9555    >,
9556    #[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"]
9557    pub get_ycoord: ::std::option::Option<
9558        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9559    >,
9560    #[doc = "\n Returns flags representing the type of node that the context menu was\n invoked on.\n"]
9561    pub get_type_flags: ::std::option::Option<
9562        unsafe extern "C" fn(
9563            self_: *mut _cef_context_menu_params_t,
9564        ) -> cef_context_menu_type_flags_t,
9565    >,
9566    #[doc = "\n Returns the URL of the link, if any, that encloses the node that the\n context menu was invoked on.\n"]
9567    pub get_link_url: ::std::option::Option<
9568        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9569    >,
9570    #[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"]
9571    pub get_unfiltered_link_url: ::std::option::Option<
9572        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9573    >,
9574    #[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"]
9575    pub get_source_url: ::std::option::Option<
9576        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9577    >,
9578    #[doc = "\n Returns true (1) if the context menu was invoked on an image which has\n non-NULL contents.\n"]
9579    pub has_image_contents: ::std::option::Option<
9580        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9581    >,
9582    #[doc = "\n Returns the title text or the alt text if the context menu was invoked on\n an image.\n"]
9583    pub get_title_text: ::std::option::Option<
9584        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9585    >,
9586    #[doc = "\n Returns the URL of the top level page that the context menu was invoked\n on.\n"]
9587    pub get_page_url: ::std::option::Option<
9588        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9589    >,
9590    #[doc = "\n Returns the URL of the subframe that the context menu was invoked on.\n"]
9591    pub get_frame_url: ::std::option::Option<
9592        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9593    >,
9594    #[doc = "\n Returns the character encoding of the subframe that the context menu was\n invoked on.\n"]
9595    pub get_frame_charset: ::std::option::Option<
9596        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9597    >,
9598    #[doc = "\n Returns the type of context node that the context menu was invoked on.\n"]
9599    pub get_media_type: ::std::option::Option<
9600        unsafe extern "C" fn(
9601            self_: *mut _cef_context_menu_params_t,
9602        ) -> cef_context_menu_media_type_t,
9603    >,
9604    #[doc = "\n Returns flags representing the actions supported by the media element, if\n any, that the context menu was invoked on.\n"]
9605    pub get_media_state_flags: ::std::option::Option<
9606        unsafe extern "C" fn(
9607            self_: *mut _cef_context_menu_params_t,
9608        ) -> cef_context_menu_media_state_flags_t,
9609    >,
9610    #[doc = "\n Returns the text of the selection, if any, that the context menu was\n invoked on.\n"]
9611    pub get_selection_text: ::std::option::Option<
9612        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9613    >,
9614    #[doc = "\n Returns the text of the misspelled word, if any, that the context menu was\n invoked on.\n"]
9615    pub get_misspelled_word: ::std::option::Option<
9616        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> cef_string_userfree_t,
9617    >,
9618    #[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"]
9619    pub get_dictionary_suggestions: ::std::option::Option<
9620        unsafe extern "C" fn(
9621            self_: *mut _cef_context_menu_params_t,
9622            suggestions: cef_string_list_t,
9623        ) -> ::std::os::raw::c_int,
9624    >,
9625    #[doc = "\n Returns true (1) if the context menu was invoked on an editable node.\n"]
9626    pub is_editable: ::std::option::Option<
9627        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9628    >,
9629    #[doc = "\n Returns true (1) if the context menu was invoked on an editable node where\n spell-check is enabled.\n"]
9630    pub is_spell_check_enabled: ::std::option::Option<
9631        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9632    >,
9633    #[doc = "\n Returns flags representing the actions supported by the editable node, if\n any, that the context menu was invoked on.\n"]
9634    pub get_edit_state_flags: ::std::option::Option<
9635        unsafe extern "C" fn(
9636            self_: *mut _cef_context_menu_params_t,
9637        ) -> cef_context_menu_edit_state_flags_t,
9638    >,
9639    #[doc = "\n Returns true (1) if the context menu contains items specified by the\n renderer process.\n"]
9640    pub is_custom_menu: ::std::option::Option<
9641        unsafe extern "C" fn(self_: *mut _cef_context_menu_params_t) -> ::std::os::raw::c_int,
9642    >,
9643}
9644#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9645const _: () = {
9646    ["Size of _cef_context_menu_params_t"]
9647        [::std::mem::size_of::<_cef_context_menu_params_t>() - 200usize];
9648    ["Alignment of _cef_context_menu_params_t"]
9649        [::std::mem::align_of::<_cef_context_menu_params_t>() - 8usize];
9650    ["Offset of field: _cef_context_menu_params_t::base"]
9651        [::std::mem::offset_of!(_cef_context_menu_params_t, base) - 0usize];
9652    ["Offset of field: _cef_context_menu_params_t::get_xcoord"]
9653        [::std::mem::offset_of!(_cef_context_menu_params_t, get_xcoord) - 40usize];
9654    ["Offset of field: _cef_context_menu_params_t::get_ycoord"]
9655        [::std::mem::offset_of!(_cef_context_menu_params_t, get_ycoord) - 48usize];
9656    ["Offset of field: _cef_context_menu_params_t::get_type_flags"]
9657        [::std::mem::offset_of!(_cef_context_menu_params_t, get_type_flags) - 56usize];
9658    ["Offset of field: _cef_context_menu_params_t::get_link_url"]
9659        [::std::mem::offset_of!(_cef_context_menu_params_t, get_link_url) - 64usize];
9660    ["Offset of field: _cef_context_menu_params_t::get_unfiltered_link_url"]
9661        [::std::mem::offset_of!(_cef_context_menu_params_t, get_unfiltered_link_url) - 72usize];
9662    ["Offset of field: _cef_context_menu_params_t::get_source_url"]
9663        [::std::mem::offset_of!(_cef_context_menu_params_t, get_source_url) - 80usize];
9664    ["Offset of field: _cef_context_menu_params_t::has_image_contents"]
9665        [::std::mem::offset_of!(_cef_context_menu_params_t, has_image_contents) - 88usize];
9666    ["Offset of field: _cef_context_menu_params_t::get_title_text"]
9667        [::std::mem::offset_of!(_cef_context_menu_params_t, get_title_text) - 96usize];
9668    ["Offset of field: _cef_context_menu_params_t::get_page_url"]
9669        [::std::mem::offset_of!(_cef_context_menu_params_t, get_page_url) - 104usize];
9670    ["Offset of field: _cef_context_menu_params_t::get_frame_url"]
9671        [::std::mem::offset_of!(_cef_context_menu_params_t, get_frame_url) - 112usize];
9672    ["Offset of field: _cef_context_menu_params_t::get_frame_charset"]
9673        [::std::mem::offset_of!(_cef_context_menu_params_t, get_frame_charset) - 120usize];
9674    ["Offset of field: _cef_context_menu_params_t::get_media_type"]
9675        [::std::mem::offset_of!(_cef_context_menu_params_t, get_media_type) - 128usize];
9676    ["Offset of field: _cef_context_menu_params_t::get_media_state_flags"]
9677        [::std::mem::offset_of!(_cef_context_menu_params_t, get_media_state_flags) - 136usize];
9678    ["Offset of field: _cef_context_menu_params_t::get_selection_text"]
9679        [::std::mem::offset_of!(_cef_context_menu_params_t, get_selection_text) - 144usize];
9680    ["Offset of field: _cef_context_menu_params_t::get_misspelled_word"]
9681        [::std::mem::offset_of!(_cef_context_menu_params_t, get_misspelled_word) - 152usize];
9682    ["Offset of field: _cef_context_menu_params_t::get_dictionary_suggestions"]
9683        [::std::mem::offset_of!(_cef_context_menu_params_t, get_dictionary_suggestions) - 160usize];
9684    ["Offset of field: _cef_context_menu_params_t::is_editable"]
9685        [::std::mem::offset_of!(_cef_context_menu_params_t, is_editable) - 168usize];
9686    ["Offset of field: _cef_context_menu_params_t::is_spell_check_enabled"]
9687        [::std::mem::offset_of!(_cef_context_menu_params_t, is_spell_check_enabled) - 176usize];
9688    ["Offset of field: _cef_context_menu_params_t::get_edit_state_flags"]
9689        [::std::mem::offset_of!(_cef_context_menu_params_t, get_edit_state_flags) - 184usize];
9690    ["Offset of field: _cef_context_menu_params_t::is_custom_menu"]
9691        [::std::mem::offset_of!(_cef_context_menu_params_t, is_custom_menu) - 192usize];
9692};
9693#[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"]
9694pub type cef_context_menu_params_t = _cef_context_menu_params_t;
9695#[doc = "\n Callback structure for asynchronous continuation of file dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
9696#[repr(C)]
9697#[derive(Debug, Copy, Clone)]
9698pub struct _cef_file_dialog_callback_t {
9699    #[doc = "\n Base structure.\n"]
9700    pub base: cef_base_ref_counted_t,
9701    #[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"]
9702    pub cont: ::std::option::Option<
9703        unsafe extern "C" fn(
9704            self_: *mut _cef_file_dialog_callback_t,
9705            file_paths: cef_string_list_t,
9706        ),
9707    >,
9708    #[doc = "\n Cancel the file selection.\n"]
9709    pub cancel:
9710        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_file_dialog_callback_t)>,
9711}
9712#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9713const _: () = {
9714    ["Size of _cef_file_dialog_callback_t"]
9715        [::std::mem::size_of::<_cef_file_dialog_callback_t>() - 56usize];
9716    ["Alignment of _cef_file_dialog_callback_t"]
9717        [::std::mem::align_of::<_cef_file_dialog_callback_t>() - 8usize];
9718    ["Offset of field: _cef_file_dialog_callback_t::base"]
9719        [::std::mem::offset_of!(_cef_file_dialog_callback_t, base) - 0usize];
9720    ["Offset of field: _cef_file_dialog_callback_t::cont"]
9721        [::std::mem::offset_of!(_cef_file_dialog_callback_t, cont) - 40usize];
9722    ["Offset of field: _cef_file_dialog_callback_t::cancel"]
9723        [::std::mem::offset_of!(_cef_file_dialog_callback_t, cancel) - 48usize];
9724};
9725#[doc = "\n Callback structure for asynchronous continuation of file dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
9726pub type cef_file_dialog_callback_t = _cef_file_dialog_callback_t;
9727#[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"]
9728#[repr(C)]
9729#[derive(Debug, Copy, Clone)]
9730pub struct _cef_dialog_handler_t {
9731    #[doc = "\n Base structure.\n"]
9732    pub base: cef_base_ref_counted_t,
9733    #[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"]
9734    pub on_file_dialog: ::std::option::Option<
9735        unsafe extern "C" fn(
9736            self_: *mut _cef_dialog_handler_t,
9737            browser: *mut _cef_browser_t,
9738            mode: cef_file_dialog_mode_t,
9739            title: *const cef_string_t,
9740            default_file_path: *const cef_string_t,
9741            accept_filters: cef_string_list_t,
9742            accept_extensions: cef_string_list_t,
9743            accept_descriptions: cef_string_list_t,
9744            callback: *mut _cef_file_dialog_callback_t,
9745        ) -> ::std::os::raw::c_int,
9746    >,
9747}
9748#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9749const _: () = {
9750    ["Size of _cef_dialog_handler_t"][::std::mem::size_of::<_cef_dialog_handler_t>() - 48usize];
9751    ["Alignment of _cef_dialog_handler_t"]
9752        [::std::mem::align_of::<_cef_dialog_handler_t>() - 8usize];
9753    ["Offset of field: _cef_dialog_handler_t::base"]
9754        [::std::mem::offset_of!(_cef_dialog_handler_t, base) - 0usize];
9755    ["Offset of field: _cef_dialog_handler_t::on_file_dialog"]
9756        [::std::mem::offset_of!(_cef_dialog_handler_t, on_file_dialog) - 40usize];
9757};
9758#[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"]
9759pub type cef_dialog_handler_t = _cef_dialog_handler_t;
9760#[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"]
9761#[repr(C)]
9762#[derive(Debug, Copy, Clone)]
9763pub struct _cef_display_handler_t {
9764    #[doc = "\n Base structure.\n"]
9765    pub base: cef_base_ref_counted_t,
9766    #[doc = "\n Called when a frame's address has changed.\n"]
9767    pub on_address_change: ::std::option::Option<
9768        unsafe extern "C" fn(
9769            self_: *mut _cef_display_handler_t,
9770            browser: *mut _cef_browser_t,
9771            frame: *mut _cef_frame_t,
9772            url: *const cef_string_t,
9773        ),
9774    >,
9775    #[doc = "\n Called when the page title changes.\n"]
9776    pub on_title_change: ::std::option::Option<
9777        unsafe extern "C" fn(
9778            self_: *mut _cef_display_handler_t,
9779            browser: *mut _cef_browser_t,
9780            title: *const cef_string_t,
9781        ),
9782    >,
9783    #[doc = "\n Called when the page icon changes.\n"]
9784    pub on_favicon_urlchange: ::std::option::Option<
9785        unsafe extern "C" fn(
9786            self_: *mut _cef_display_handler_t,
9787            browser: *mut _cef_browser_t,
9788            icon_urls: cef_string_list_t,
9789        ),
9790    >,
9791    #[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"]
9792    pub on_fullscreen_mode_change: ::std::option::Option<
9793        unsafe extern "C" fn(
9794            self_: *mut _cef_display_handler_t,
9795            browser: *mut _cef_browser_t,
9796            fullscreen: ::std::os::raw::c_int,
9797        ),
9798    >,
9799    #[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"]
9800    pub on_tooltip: ::std::option::Option<
9801        unsafe extern "C" fn(
9802            self_: *mut _cef_display_handler_t,
9803            browser: *mut _cef_browser_t,
9804            text: *mut cef_string_t,
9805        ) -> ::std::os::raw::c_int,
9806    >,
9807    #[doc = "\n Called when the browser receives a status message. |value| contains the\n text that will be displayed in the status message.\n"]
9808    pub on_status_message: ::std::option::Option<
9809        unsafe extern "C" fn(
9810            self_: *mut _cef_display_handler_t,
9811            browser: *mut _cef_browser_t,
9812            value: *const cef_string_t,
9813        ),
9814    >,
9815    #[doc = "\n Called to display a console message. Return true (1) to stop the message\n from being output to the console.\n"]
9816    pub on_console_message: ::std::option::Option<
9817        unsafe extern "C" fn(
9818            self_: *mut _cef_display_handler_t,
9819            browser: *mut _cef_browser_t,
9820            level: cef_log_severity_t,
9821            message: *const cef_string_t,
9822            source: *const cef_string_t,
9823            line: ::std::os::raw::c_int,
9824        ) -> ::std::os::raw::c_int,
9825    >,
9826    #[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 view coordinates. Return\n true (1) if the resize was handled or false (0) for default handling.\n"]
9827    pub on_auto_resize: ::std::option::Option<
9828        unsafe extern "C" fn(
9829            self_: *mut _cef_display_handler_t,
9830            browser: *mut _cef_browser_t,
9831            new_size: *const cef_size_t,
9832        ) -> ::std::os::raw::c_int,
9833    >,
9834    #[doc = "\n Called when the overall page loading progress has changed. |progress|\n ranges from 0.0 to 1.0.\n"]
9835    pub on_loading_progress_change: ::std::option::Option<
9836        unsafe extern "C" fn(
9837            self_: *mut _cef_display_handler_t,
9838            browser: *mut _cef_browser_t,
9839            progress: f64,
9840        ),
9841    >,
9842    #[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"]
9843    pub on_cursor_change: ::std::option::Option<
9844        unsafe extern "C" fn(
9845            self_: *mut _cef_display_handler_t,
9846            browser: *mut _cef_browser_t,
9847            cursor: cef_cursor_handle_t,
9848            type_: cef_cursor_type_t,
9849            custom_cursor_info: *const cef_cursor_info_t,
9850        ) -> ::std::os::raw::c_int,
9851    >,
9852    #[doc = "\n Called when the browser's access to an audio and/or video source has\n changed.\n"]
9853    pub on_media_access_change: ::std::option::Option<
9854        unsafe extern "C" fn(
9855            self_: *mut _cef_display_handler_t,
9856            browser: *mut _cef_browser_t,
9857            has_video_access: ::std::os::raw::c_int,
9858            has_audio_access: ::std::os::raw::c_int,
9859        ),
9860    >,
9861}
9862#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9863const _: () = {
9864    ["Size of _cef_display_handler_t"][::std::mem::size_of::<_cef_display_handler_t>() - 128usize];
9865    ["Alignment of _cef_display_handler_t"]
9866        [::std::mem::align_of::<_cef_display_handler_t>() - 8usize];
9867    ["Offset of field: _cef_display_handler_t::base"]
9868        [::std::mem::offset_of!(_cef_display_handler_t, base) - 0usize];
9869    ["Offset of field: _cef_display_handler_t::on_address_change"]
9870        [::std::mem::offset_of!(_cef_display_handler_t, on_address_change) - 40usize];
9871    ["Offset of field: _cef_display_handler_t::on_title_change"]
9872        [::std::mem::offset_of!(_cef_display_handler_t, on_title_change) - 48usize];
9873    ["Offset of field: _cef_display_handler_t::on_favicon_urlchange"]
9874        [::std::mem::offset_of!(_cef_display_handler_t, on_favicon_urlchange) - 56usize];
9875    ["Offset of field: _cef_display_handler_t::on_fullscreen_mode_change"]
9876        [::std::mem::offset_of!(_cef_display_handler_t, on_fullscreen_mode_change) - 64usize];
9877    ["Offset of field: _cef_display_handler_t::on_tooltip"]
9878        [::std::mem::offset_of!(_cef_display_handler_t, on_tooltip) - 72usize];
9879    ["Offset of field: _cef_display_handler_t::on_status_message"]
9880        [::std::mem::offset_of!(_cef_display_handler_t, on_status_message) - 80usize];
9881    ["Offset of field: _cef_display_handler_t::on_console_message"]
9882        [::std::mem::offset_of!(_cef_display_handler_t, on_console_message) - 88usize];
9883    ["Offset of field: _cef_display_handler_t::on_auto_resize"]
9884        [::std::mem::offset_of!(_cef_display_handler_t, on_auto_resize) - 96usize];
9885    ["Offset of field: _cef_display_handler_t::on_loading_progress_change"]
9886        [::std::mem::offset_of!(_cef_display_handler_t, on_loading_progress_change) - 104usize];
9887    ["Offset of field: _cef_display_handler_t::on_cursor_change"]
9888        [::std::mem::offset_of!(_cef_display_handler_t, on_cursor_change) - 112usize];
9889    ["Offset of field: _cef_display_handler_t::on_media_access_change"]
9890        [::std::mem::offset_of!(_cef_display_handler_t, on_media_access_change) - 120usize];
9891};
9892#[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"]
9893pub type cef_display_handler_t = _cef_display_handler_t;
9894#[doc = "\n Structure used to represent a download item.\n\n NOTE: This struct is allocated DLL-side.\n"]
9895#[repr(C)]
9896#[derive(Debug, Copy, Clone)]
9897pub struct _cef_download_item_t {
9898    #[doc = "\n Base structure.\n"]
9899    pub base: cef_base_ref_counted_t,
9900    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
9901    pub is_valid: ::std::option::Option<
9902        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9903    >,
9904    #[doc = "\n Returns true (1) if the download is in progress.\n"]
9905    pub is_in_progress: ::std::option::Option<
9906        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9907    >,
9908    #[doc = "\n Returns true (1) if the download is complete.\n"]
9909    pub is_complete: ::std::option::Option<
9910        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9911    >,
9912    #[doc = "\n Returns true (1) if the download has been canceled.\n"]
9913    pub is_canceled: ::std::option::Option<
9914        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9915    >,
9916    #[doc = "\n Returns true (1) if the download has been interrupted.\n"]
9917    pub is_interrupted: ::std::option::Option<
9918        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9919    >,
9920    #[doc = "\n Returns the most recent interrupt reason.\n"]
9921    pub get_interrupt_reason: ::std::option::Option<
9922        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_download_interrupt_reason_t,
9923    >,
9924    #[doc = "\n Returns a simple speed estimate in bytes/s.\n"]
9925    pub get_current_speed:
9926        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
9927    #[doc = "\n Returns the rough percent complete or -1 if the receive total size is\n unknown.\n"]
9928    pub get_percent_complete: ::std::option::Option<
9929        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> ::std::os::raw::c_int,
9930    >,
9931    #[doc = "\n Returns the total number of bytes.\n"]
9932    pub get_total_bytes:
9933        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
9934    #[doc = "\n Returns the number of received bytes.\n"]
9935    pub get_received_bytes:
9936        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> i64>,
9937    #[doc = "\n Returns the time that the download started.\n"]
9938    pub get_start_time: ::std::option::Option<
9939        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_basetime_t,
9940    >,
9941    #[doc = "\n Returns the time that the download ended.\n"]
9942    pub get_end_time: ::std::option::Option<
9943        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_basetime_t,
9944    >,
9945    #[doc = "\n Returns the full path to the downloaded or downloading file.\n"]
9946    pub get_full_path: ::std::option::Option<
9947        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9948    >,
9949    #[doc = "\n Returns the unique identifier for this download.\n"]
9950    pub get_id:
9951        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> u32>,
9952    #[doc = "\n Returns the URL.\n"]
9953    pub get_url: ::std::option::Option<
9954        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9955    >,
9956    #[doc = "\n Returns the original URL before any redirections.\n"]
9957    pub get_original_url: ::std::option::Option<
9958        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9959    >,
9960    #[doc = "\n Returns the suggested file name.\n"]
9961    pub get_suggested_file_name: ::std::option::Option<
9962        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9963    >,
9964    #[doc = "\n Returns the content disposition.\n"]
9965    pub get_content_disposition: ::std::option::Option<
9966        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9967    >,
9968    #[doc = "\n Returns the mime type.\n"]
9969    pub get_mime_type: ::std::option::Option<
9970        unsafe extern "C" fn(self_: *mut _cef_download_item_t) -> cef_string_userfree_t,
9971    >,
9972}
9973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9974const _: () = {
9975    ["Size of _cef_download_item_t"][::std::mem::size_of::<_cef_download_item_t>() - 192usize];
9976    ["Alignment of _cef_download_item_t"][::std::mem::align_of::<_cef_download_item_t>() - 8usize];
9977    ["Offset of field: _cef_download_item_t::base"]
9978        [::std::mem::offset_of!(_cef_download_item_t, base) - 0usize];
9979    ["Offset of field: _cef_download_item_t::is_valid"]
9980        [::std::mem::offset_of!(_cef_download_item_t, is_valid) - 40usize];
9981    ["Offset of field: _cef_download_item_t::is_in_progress"]
9982        [::std::mem::offset_of!(_cef_download_item_t, is_in_progress) - 48usize];
9983    ["Offset of field: _cef_download_item_t::is_complete"]
9984        [::std::mem::offset_of!(_cef_download_item_t, is_complete) - 56usize];
9985    ["Offset of field: _cef_download_item_t::is_canceled"]
9986        [::std::mem::offset_of!(_cef_download_item_t, is_canceled) - 64usize];
9987    ["Offset of field: _cef_download_item_t::is_interrupted"]
9988        [::std::mem::offset_of!(_cef_download_item_t, is_interrupted) - 72usize];
9989    ["Offset of field: _cef_download_item_t::get_interrupt_reason"]
9990        [::std::mem::offset_of!(_cef_download_item_t, get_interrupt_reason) - 80usize];
9991    ["Offset of field: _cef_download_item_t::get_current_speed"]
9992        [::std::mem::offset_of!(_cef_download_item_t, get_current_speed) - 88usize];
9993    ["Offset of field: _cef_download_item_t::get_percent_complete"]
9994        [::std::mem::offset_of!(_cef_download_item_t, get_percent_complete) - 96usize];
9995    ["Offset of field: _cef_download_item_t::get_total_bytes"]
9996        [::std::mem::offset_of!(_cef_download_item_t, get_total_bytes) - 104usize];
9997    ["Offset of field: _cef_download_item_t::get_received_bytes"]
9998        [::std::mem::offset_of!(_cef_download_item_t, get_received_bytes) - 112usize];
9999    ["Offset of field: _cef_download_item_t::get_start_time"]
10000        [::std::mem::offset_of!(_cef_download_item_t, get_start_time) - 120usize];
10001    ["Offset of field: _cef_download_item_t::get_end_time"]
10002        [::std::mem::offset_of!(_cef_download_item_t, get_end_time) - 128usize];
10003    ["Offset of field: _cef_download_item_t::get_full_path"]
10004        [::std::mem::offset_of!(_cef_download_item_t, get_full_path) - 136usize];
10005    ["Offset of field: _cef_download_item_t::get_id"]
10006        [::std::mem::offset_of!(_cef_download_item_t, get_id) - 144usize];
10007    ["Offset of field: _cef_download_item_t::get_url"]
10008        [::std::mem::offset_of!(_cef_download_item_t, get_url) - 152usize];
10009    ["Offset of field: _cef_download_item_t::get_original_url"]
10010        [::std::mem::offset_of!(_cef_download_item_t, get_original_url) - 160usize];
10011    ["Offset of field: _cef_download_item_t::get_suggested_file_name"]
10012        [::std::mem::offset_of!(_cef_download_item_t, get_suggested_file_name) - 168usize];
10013    ["Offset of field: _cef_download_item_t::get_content_disposition"]
10014        [::std::mem::offset_of!(_cef_download_item_t, get_content_disposition) - 176usize];
10015    ["Offset of field: _cef_download_item_t::get_mime_type"]
10016        [::std::mem::offset_of!(_cef_download_item_t, get_mime_type) - 184usize];
10017};
10018#[doc = "\n Structure used to represent a download item.\n\n NOTE: This struct is allocated DLL-side.\n"]
10019pub type cef_download_item_t = _cef_download_item_t;
10020#[doc = "\n Callback structure used to asynchronously continue a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10021#[repr(C)]
10022#[derive(Debug, Copy, Clone)]
10023pub struct _cef_before_download_callback_t {
10024    #[doc = "\n Base structure.\n"]
10025    pub base: cef_base_ref_counted_t,
10026    #[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"]
10027    pub cont: ::std::option::Option<
10028        unsafe extern "C" fn(
10029            self_: *mut _cef_before_download_callback_t,
10030            download_path: *const cef_string_t,
10031            show_dialog: ::std::os::raw::c_int,
10032        ),
10033    >,
10034}
10035#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10036const _: () = {
10037    ["Size of _cef_before_download_callback_t"]
10038        [::std::mem::size_of::<_cef_before_download_callback_t>() - 48usize];
10039    ["Alignment of _cef_before_download_callback_t"]
10040        [::std::mem::align_of::<_cef_before_download_callback_t>() - 8usize];
10041    ["Offset of field: _cef_before_download_callback_t::base"]
10042        [::std::mem::offset_of!(_cef_before_download_callback_t, base) - 0usize];
10043    ["Offset of field: _cef_before_download_callback_t::cont"]
10044        [::std::mem::offset_of!(_cef_before_download_callback_t, cont) - 40usize];
10045};
10046#[doc = "\n Callback structure used to asynchronously continue a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10047pub type cef_before_download_callback_t = _cef_before_download_callback_t;
10048#[doc = "\n Callback structure used to asynchronously cancel a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10049#[repr(C)]
10050#[derive(Debug, Copy, Clone)]
10051pub struct _cef_download_item_callback_t {
10052    #[doc = "\n Base structure.\n"]
10053    pub base: cef_base_ref_counted_t,
10054    #[doc = "\n Call to cancel the download.\n"]
10055    pub cancel:
10056        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10057    #[doc = "\n Call to pause the download.\n"]
10058    pub pause:
10059        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10060    #[doc = "\n Call to resume the download.\n"]
10061    pub resume:
10062        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_download_item_callback_t)>,
10063}
10064#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10065const _: () = {
10066    ["Size of _cef_download_item_callback_t"]
10067        [::std::mem::size_of::<_cef_download_item_callback_t>() - 64usize];
10068    ["Alignment of _cef_download_item_callback_t"]
10069        [::std::mem::align_of::<_cef_download_item_callback_t>() - 8usize];
10070    ["Offset of field: _cef_download_item_callback_t::base"]
10071        [::std::mem::offset_of!(_cef_download_item_callback_t, base) - 0usize];
10072    ["Offset of field: _cef_download_item_callback_t::cancel"]
10073        [::std::mem::offset_of!(_cef_download_item_callback_t, cancel) - 40usize];
10074    ["Offset of field: _cef_download_item_callback_t::pause"]
10075        [::std::mem::offset_of!(_cef_download_item_callback_t, pause) - 48usize];
10076    ["Offset of field: _cef_download_item_callback_t::resume"]
10077        [::std::mem::offset_of!(_cef_download_item_callback_t, resume) - 56usize];
10078};
10079#[doc = "\n Callback structure used to asynchronously cancel a download.\n\n NOTE: This struct is allocated DLL-side.\n"]
10080pub type cef_download_item_callback_t = _cef_download_item_callback_t;
10081#[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"]
10082#[repr(C)]
10083#[derive(Debug, Copy, Clone)]
10084pub struct _cef_download_handler_t {
10085    #[doc = "\n Base structure.\n"]
10086    pub base: cef_base_ref_counted_t,
10087    #[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"]
10088    pub can_download: ::std::option::Option<
10089        unsafe extern "C" fn(
10090            self_: *mut _cef_download_handler_t,
10091            browser: *mut _cef_browser_t,
10092            url: *const cef_string_t,
10093            request_method: *const cef_string_t,
10094        ) -> ::std::os::raw::c_int,
10095    >,
10096    #[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"]
10097    pub on_before_download: ::std::option::Option<
10098        unsafe extern "C" fn(
10099            self_: *mut _cef_download_handler_t,
10100            browser: *mut _cef_browser_t,
10101            download_item: *mut _cef_download_item_t,
10102            suggested_name: *const cef_string_t,
10103            callback: *mut _cef_before_download_callback_t,
10104        ) -> ::std::os::raw::c_int,
10105    >,
10106    #[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"]
10107    pub on_download_updated: ::std::option::Option<
10108        unsafe extern "C" fn(
10109            self_: *mut _cef_download_handler_t,
10110            browser: *mut _cef_browser_t,
10111            download_item: *mut _cef_download_item_t,
10112            callback: *mut _cef_download_item_callback_t,
10113        ),
10114    >,
10115}
10116#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10117const _: () = {
10118    ["Size of _cef_download_handler_t"][::std::mem::size_of::<_cef_download_handler_t>() - 64usize];
10119    ["Alignment of _cef_download_handler_t"]
10120        [::std::mem::align_of::<_cef_download_handler_t>() - 8usize];
10121    ["Offset of field: _cef_download_handler_t::base"]
10122        [::std::mem::offset_of!(_cef_download_handler_t, base) - 0usize];
10123    ["Offset of field: _cef_download_handler_t::can_download"]
10124        [::std::mem::offset_of!(_cef_download_handler_t, can_download) - 40usize];
10125    ["Offset of field: _cef_download_handler_t::on_before_download"]
10126        [::std::mem::offset_of!(_cef_download_handler_t, on_before_download) - 48usize];
10127    ["Offset of field: _cef_download_handler_t::on_download_updated"]
10128        [::std::mem::offset_of!(_cef_download_handler_t, on_download_updated) - 56usize];
10129};
10130#[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"]
10131pub type cef_download_handler_t = _cef_download_handler_t;
10132#[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"]
10133#[repr(C)]
10134#[derive(Debug, Copy, Clone)]
10135pub struct _cef_drag_handler_t {
10136    #[doc = "\n Base structure.\n"]
10137    pub base: cef_base_ref_counted_t,
10138    #[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"]
10139    pub on_drag_enter: ::std::option::Option<
10140        unsafe extern "C" fn(
10141            self_: *mut _cef_drag_handler_t,
10142            browser: *mut _cef_browser_t,
10143            dragData: *mut _cef_drag_data_t,
10144            mask: cef_drag_operations_mask_t,
10145        ) -> ::std::os::raw::c_int,
10146    >,
10147    #[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"]
10148    pub on_draggable_regions_changed: ::std::option::Option<
10149        unsafe extern "C" fn(
10150            self_: *mut _cef_drag_handler_t,
10151            browser: *mut _cef_browser_t,
10152            frame: *mut _cef_frame_t,
10153            regionsCount: usize,
10154            regions: *const cef_draggable_region_t,
10155        ),
10156    >,
10157}
10158#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10159const _: () = {
10160    ["Size of _cef_drag_handler_t"][::std::mem::size_of::<_cef_drag_handler_t>() - 56usize];
10161    ["Alignment of _cef_drag_handler_t"][::std::mem::align_of::<_cef_drag_handler_t>() - 8usize];
10162    ["Offset of field: _cef_drag_handler_t::base"]
10163        [::std::mem::offset_of!(_cef_drag_handler_t, base) - 0usize];
10164    ["Offset of field: _cef_drag_handler_t::on_drag_enter"]
10165        [::std::mem::offset_of!(_cef_drag_handler_t, on_drag_enter) - 40usize];
10166    ["Offset of field: _cef_drag_handler_t::on_draggable_regions_changed"]
10167        [::std::mem::offset_of!(_cef_drag_handler_t, on_draggable_regions_changed) - 48usize];
10168};
10169#[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"]
10170pub type cef_drag_handler_t = _cef_drag_handler_t;
10171#[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"]
10172#[repr(C)]
10173#[derive(Debug, Copy, Clone)]
10174pub struct _cef_find_handler_t {
10175    #[doc = "\n Base structure.\n"]
10176    pub base: cef_base_ref_counted_t,
10177    #[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"]
10178    pub on_find_result: ::std::option::Option<
10179        unsafe extern "C" fn(
10180            self_: *mut _cef_find_handler_t,
10181            browser: *mut _cef_browser_t,
10182            identifier: ::std::os::raw::c_int,
10183            count: ::std::os::raw::c_int,
10184            selectionRect: *const cef_rect_t,
10185            activeMatchOrdinal: ::std::os::raw::c_int,
10186            finalUpdate: ::std::os::raw::c_int,
10187        ),
10188    >,
10189}
10190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10191const _: () = {
10192    ["Size of _cef_find_handler_t"][::std::mem::size_of::<_cef_find_handler_t>() - 48usize];
10193    ["Alignment of _cef_find_handler_t"][::std::mem::align_of::<_cef_find_handler_t>() - 8usize];
10194    ["Offset of field: _cef_find_handler_t::base"]
10195        [::std::mem::offset_of!(_cef_find_handler_t, base) - 0usize];
10196    ["Offset of field: _cef_find_handler_t::on_find_result"]
10197        [::std::mem::offset_of!(_cef_find_handler_t, on_find_result) - 40usize];
10198};
10199#[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"]
10200pub type cef_find_handler_t = _cef_find_handler_t;
10201#[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"]
10202#[repr(C)]
10203#[derive(Debug, Copy, Clone)]
10204pub struct _cef_focus_handler_t {
10205    #[doc = "\n Base structure.\n"]
10206    pub base: cef_base_ref_counted_t,
10207    #[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"]
10208    pub on_take_focus: ::std::option::Option<
10209        unsafe extern "C" fn(
10210            self_: *mut _cef_focus_handler_t,
10211            browser: *mut _cef_browser_t,
10212            next: ::std::os::raw::c_int,
10213        ),
10214    >,
10215    #[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"]
10216    pub on_set_focus: ::std::option::Option<
10217        unsafe extern "C" fn(
10218            self_: *mut _cef_focus_handler_t,
10219            browser: *mut _cef_browser_t,
10220            source: cef_focus_source_t,
10221        ) -> ::std::os::raw::c_int,
10222    >,
10223    #[doc = "\n Called when the browser component has received focus.\n"]
10224    pub on_got_focus: ::std::option::Option<
10225        unsafe extern "C" fn(self_: *mut _cef_focus_handler_t, browser: *mut _cef_browser_t),
10226    >,
10227}
10228#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10229const _: () = {
10230    ["Size of _cef_focus_handler_t"][::std::mem::size_of::<_cef_focus_handler_t>() - 64usize];
10231    ["Alignment of _cef_focus_handler_t"][::std::mem::align_of::<_cef_focus_handler_t>() - 8usize];
10232    ["Offset of field: _cef_focus_handler_t::base"]
10233        [::std::mem::offset_of!(_cef_focus_handler_t, base) - 0usize];
10234    ["Offset of field: _cef_focus_handler_t::on_take_focus"]
10235        [::std::mem::offset_of!(_cef_focus_handler_t, on_take_focus) - 40usize];
10236    ["Offset of field: _cef_focus_handler_t::on_set_focus"]
10237        [::std::mem::offset_of!(_cef_focus_handler_t, on_set_focus) - 48usize];
10238    ["Offset of field: _cef_focus_handler_t::on_got_focus"]
10239        [::std::mem::offset_of!(_cef_focus_handler_t, on_got_focus) - 56usize];
10240};
10241#[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"]
10242pub type cef_focus_handler_t = _cef_focus_handler_t;
10243#[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"]
10244#[repr(C)]
10245#[derive(Debug, Copy, Clone)]
10246pub struct _cef_frame_handler_t {
10247    #[doc = "\n Base structure.\n"]
10248    pub base: cef_base_ref_counted_t,
10249    #[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"]
10250    pub on_frame_created: ::std::option::Option<
10251        unsafe extern "C" fn(
10252            self_: *mut _cef_frame_handler_t,
10253            browser: *mut _cef_browser_t,
10254            frame: *mut _cef_frame_t,
10255        ),
10256    >,
10257    #[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"]
10258    pub on_frame_destroyed: ::std::option::Option<
10259        unsafe extern "C" fn(
10260            self_: *mut _cef_frame_handler_t,
10261            browser: *mut _cef_browser_t,
10262            frame: *mut _cef_frame_t,
10263        ),
10264    >,
10265    #[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"]
10266    pub on_frame_attached: ::std::option::Option<
10267        unsafe extern "C" fn(
10268            self_: *mut _cef_frame_handler_t,
10269            browser: *mut _cef_browser_t,
10270            frame: *mut _cef_frame_t,
10271            reattached: ::std::os::raw::c_int,
10272        ),
10273    >,
10274    #[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"]
10275    pub on_frame_detached: ::std::option::Option<
10276        unsafe extern "C" fn(
10277            self_: *mut _cef_frame_handler_t,
10278            browser: *mut _cef_browser_t,
10279            frame: *mut _cef_frame_t,
10280        ),
10281    >,
10282    #[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"]
10283    pub on_main_frame_changed: ::std::option::Option<
10284        unsafe extern "C" fn(
10285            self_: *mut _cef_frame_handler_t,
10286            browser: *mut _cef_browser_t,
10287            old_frame: *mut _cef_frame_t,
10288            new_frame: *mut _cef_frame_t,
10289        ),
10290    >,
10291}
10292#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10293const _: () = {
10294    ["Size of _cef_frame_handler_t"][::std::mem::size_of::<_cef_frame_handler_t>() - 80usize];
10295    ["Alignment of _cef_frame_handler_t"][::std::mem::align_of::<_cef_frame_handler_t>() - 8usize];
10296    ["Offset of field: _cef_frame_handler_t::base"]
10297        [::std::mem::offset_of!(_cef_frame_handler_t, base) - 0usize];
10298    ["Offset of field: _cef_frame_handler_t::on_frame_created"]
10299        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_created) - 40usize];
10300    ["Offset of field: _cef_frame_handler_t::on_frame_destroyed"]
10301        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_destroyed) - 48usize];
10302    ["Offset of field: _cef_frame_handler_t::on_frame_attached"]
10303        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_attached) - 56usize];
10304    ["Offset of field: _cef_frame_handler_t::on_frame_detached"]
10305        [::std::mem::offset_of!(_cef_frame_handler_t, on_frame_detached) - 64usize];
10306    ["Offset of field: _cef_frame_handler_t::on_main_frame_changed"]
10307        [::std::mem::offset_of!(_cef_frame_handler_t, on_main_frame_changed) - 72usize];
10308};
10309#[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"]
10310pub type cef_frame_handler_t = _cef_frame_handler_t;
10311#[doc = "\n Callback structure used for asynchronous continuation of JavaScript dialog\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10312#[repr(C)]
10313#[derive(Debug, Copy, Clone)]
10314pub struct _cef_jsdialog_callback_t {
10315    #[doc = "\n Base structure.\n"]
10316    pub base: cef_base_ref_counted_t,
10317    #[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"]
10318    pub cont: ::std::option::Option<
10319        unsafe extern "C" fn(
10320            self_: *mut _cef_jsdialog_callback_t,
10321            success: ::std::os::raw::c_int,
10322            user_input: *const cef_string_t,
10323        ),
10324    >,
10325}
10326#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10327const _: () = {
10328    ["Size of _cef_jsdialog_callback_t"]
10329        [::std::mem::size_of::<_cef_jsdialog_callback_t>() - 48usize];
10330    ["Alignment of _cef_jsdialog_callback_t"]
10331        [::std::mem::align_of::<_cef_jsdialog_callback_t>() - 8usize];
10332    ["Offset of field: _cef_jsdialog_callback_t::base"]
10333        [::std::mem::offset_of!(_cef_jsdialog_callback_t, base) - 0usize];
10334    ["Offset of field: _cef_jsdialog_callback_t::cont"]
10335        [::std::mem::offset_of!(_cef_jsdialog_callback_t, cont) - 40usize];
10336};
10337#[doc = "\n Callback structure used for asynchronous continuation of JavaScript dialog\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10338pub type cef_jsdialog_callback_t = _cef_jsdialog_callback_t;
10339#[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"]
10340#[repr(C)]
10341#[derive(Debug, Copy, Clone)]
10342pub struct _cef_jsdialog_handler_t {
10343    #[doc = "\n Base structure.\n"]
10344    pub base: cef_base_ref_counted_t,
10345    #[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"]
10346    pub on_jsdialog: ::std::option::Option<
10347        unsafe extern "C" fn(
10348            self_: *mut _cef_jsdialog_handler_t,
10349            browser: *mut _cef_browser_t,
10350            origin_url: *const cef_string_t,
10351            dialog_type: cef_jsdialog_type_t,
10352            message_text: *const cef_string_t,
10353            default_prompt_text: *const cef_string_t,
10354            callback: *mut _cef_jsdialog_callback_t,
10355            suppress_message: *mut ::std::os::raw::c_int,
10356        ) -> ::std::os::raw::c_int,
10357    >,
10358    #[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"]
10359    pub on_before_unload_dialog: ::std::option::Option<
10360        unsafe extern "C" fn(
10361            self_: *mut _cef_jsdialog_handler_t,
10362            browser: *mut _cef_browser_t,
10363            message_text: *const cef_string_t,
10364            is_reload: ::std::os::raw::c_int,
10365            callback: *mut _cef_jsdialog_callback_t,
10366        ) -> ::std::os::raw::c_int,
10367    >,
10368    #[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"]
10369    pub on_reset_dialog_state: ::std::option::Option<
10370        unsafe extern "C" fn(self_: *mut _cef_jsdialog_handler_t, browser: *mut _cef_browser_t),
10371    >,
10372    #[doc = "\n Called when the dialog is closed.\n"]
10373    pub on_dialog_closed: ::std::option::Option<
10374        unsafe extern "C" fn(self_: *mut _cef_jsdialog_handler_t, browser: *mut _cef_browser_t),
10375    >,
10376}
10377#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10378const _: () = {
10379    ["Size of _cef_jsdialog_handler_t"][::std::mem::size_of::<_cef_jsdialog_handler_t>() - 72usize];
10380    ["Alignment of _cef_jsdialog_handler_t"]
10381        [::std::mem::align_of::<_cef_jsdialog_handler_t>() - 8usize];
10382    ["Offset of field: _cef_jsdialog_handler_t::base"]
10383        [::std::mem::offset_of!(_cef_jsdialog_handler_t, base) - 0usize];
10384    ["Offset of field: _cef_jsdialog_handler_t::on_jsdialog"]
10385        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_jsdialog) - 40usize];
10386    ["Offset of field: _cef_jsdialog_handler_t::on_before_unload_dialog"]
10387        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_before_unload_dialog) - 48usize];
10388    ["Offset of field: _cef_jsdialog_handler_t::on_reset_dialog_state"]
10389        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_reset_dialog_state) - 56usize];
10390    ["Offset of field: _cef_jsdialog_handler_t::on_dialog_closed"]
10391        [::std::mem::offset_of!(_cef_jsdialog_handler_t, on_dialog_closed) - 64usize];
10392};
10393#[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"]
10394pub type cef_jsdialog_handler_t = _cef_jsdialog_handler_t;
10395#[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"]
10396#[repr(C)]
10397#[derive(Debug, Copy, Clone)]
10398pub struct _cef_keyboard_handler_t {
10399    #[doc = "\n Base structure.\n"]
10400    pub base: cef_base_ref_counted_t,
10401    #[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"]
10402    pub on_pre_key_event: ::std::option::Option<
10403        unsafe extern "C" fn(
10404            self_: *mut _cef_keyboard_handler_t,
10405            browser: *mut _cef_browser_t,
10406            event: *const cef_key_event_t,
10407            os_event: cef_event_handle_t,
10408            is_keyboard_shortcut: *mut ::std::os::raw::c_int,
10409        ) -> ::std::os::raw::c_int,
10410    >,
10411    #[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"]
10412    pub on_key_event: ::std::option::Option<
10413        unsafe extern "C" fn(
10414            self_: *mut _cef_keyboard_handler_t,
10415            browser: *mut _cef_browser_t,
10416            event: *const cef_key_event_t,
10417            os_event: cef_event_handle_t,
10418        ) -> ::std::os::raw::c_int,
10419    >,
10420}
10421#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10422const _: () = {
10423    ["Size of _cef_keyboard_handler_t"][::std::mem::size_of::<_cef_keyboard_handler_t>() - 56usize];
10424    ["Alignment of _cef_keyboard_handler_t"]
10425        [::std::mem::align_of::<_cef_keyboard_handler_t>() - 8usize];
10426    ["Offset of field: _cef_keyboard_handler_t::base"]
10427        [::std::mem::offset_of!(_cef_keyboard_handler_t, base) - 0usize];
10428    ["Offset of field: _cef_keyboard_handler_t::on_pre_key_event"]
10429        [::std::mem::offset_of!(_cef_keyboard_handler_t, on_pre_key_event) - 40usize];
10430    ["Offset of field: _cef_keyboard_handler_t::on_key_event"]
10431        [::std::mem::offset_of!(_cef_keyboard_handler_t, on_key_event) - 48usize];
10432};
10433#[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"]
10434pub type cef_keyboard_handler_t = _cef_keyboard_handler_t;
10435#[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"]
10436#[repr(C)]
10437#[derive(Copy, Clone)]
10438pub struct _cef_life_span_handler_t {
10439    #[doc = "\n Base structure.\n"]
10440    pub base: cef_base_ref_counted_t,
10441    #[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"]
10442    pub on_before_popup: ::std::option::Option<
10443        unsafe extern "C" fn(
10444            self_: *mut _cef_life_span_handler_t,
10445            browser: *mut _cef_browser_t,
10446            frame: *mut _cef_frame_t,
10447            popup_id: ::std::os::raw::c_int,
10448            target_url: *const cef_string_t,
10449            target_frame_name: *const cef_string_t,
10450            target_disposition: cef_window_open_disposition_t,
10451            user_gesture: ::std::os::raw::c_int,
10452            popupFeatures: *const cef_popup_features_t,
10453            windowInfo: *mut _cef_window_info_t,
10454            client: *mut *mut _cef_client_t,
10455            settings: *mut _cef_browser_settings_t,
10456            extra_info: *mut *mut _cef_dictionary_value_t,
10457            no_javascript_access: *mut ::std::os::raw::c_int,
10458        ) -> ::std::os::raw::c_int,
10459    >,
10460    #[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"]
10461    pub on_before_popup_aborted: ::std::option::Option<
10462        unsafe extern "C" fn(
10463            self_: *mut _cef_life_span_handler_t,
10464            browser: *mut _cef_browser_t,
10465            popup_id: ::std::os::raw::c_int,
10466        ),
10467    >,
10468    #[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"]
10469    pub on_before_dev_tools_popup: ::std::option::Option<
10470        unsafe extern "C" fn(
10471            self_: *mut _cef_life_span_handler_t,
10472            browser: *mut _cef_browser_t,
10473            windowInfo: *mut _cef_window_info_t,
10474            client: *mut *mut _cef_client_t,
10475            settings: *mut _cef_browser_settings_t,
10476            extra_info: *mut *mut _cef_dictionary_value_t,
10477            use_default_window: *mut ::std::os::raw::c_int,
10478        ),
10479    >,
10480    #[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"]
10481    pub on_after_created: ::std::option::Option<
10482        unsafe extern "C" fn(self_: *mut _cef_life_span_handler_t, browser: *mut _cef_browser_t),
10483    >,
10484    #[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"]
10485    pub do_close: ::std::option::Option<
10486        unsafe extern "C" fn(
10487            self_: *mut _cef_life_span_handler_t,
10488            browser: *mut _cef_browser_t,
10489        ) -> ::std::os::raw::c_int,
10490    >,
10491    #[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"]
10492    pub on_before_close: ::std::option::Option<
10493        unsafe extern "C" fn(self_: *mut _cef_life_span_handler_t, browser: *mut _cef_browser_t),
10494    >,
10495}
10496#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10497const _: () = {
10498    ["Size of _cef_life_span_handler_t"]
10499        [::std::mem::size_of::<_cef_life_span_handler_t>() - 88usize];
10500    ["Alignment of _cef_life_span_handler_t"]
10501        [::std::mem::align_of::<_cef_life_span_handler_t>() - 8usize];
10502    ["Offset of field: _cef_life_span_handler_t::base"]
10503        [::std::mem::offset_of!(_cef_life_span_handler_t, base) - 0usize];
10504    ["Offset of field: _cef_life_span_handler_t::on_before_popup"]
10505        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_popup) - 40usize];
10506    ["Offset of field: _cef_life_span_handler_t::on_before_popup_aborted"]
10507        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_popup_aborted) - 48usize];
10508    ["Offset of field: _cef_life_span_handler_t::on_before_dev_tools_popup"]
10509        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_dev_tools_popup) - 56usize];
10510    ["Offset of field: _cef_life_span_handler_t::on_after_created"]
10511        [::std::mem::offset_of!(_cef_life_span_handler_t, on_after_created) - 64usize];
10512    ["Offset of field: _cef_life_span_handler_t::do_close"]
10513        [::std::mem::offset_of!(_cef_life_span_handler_t, do_close) - 72usize];
10514    ["Offset of field: _cef_life_span_handler_t::on_before_close"]
10515        [::std::mem::offset_of!(_cef_life_span_handler_t, on_before_close) - 80usize];
10516};
10517#[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"]
10518pub type cef_life_span_handler_t = _cef_life_span_handler_t;
10519#[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"]
10520#[repr(C)]
10521#[derive(Debug, Copy, Clone)]
10522pub struct _cef_load_handler_t {
10523    #[doc = "\n Base structure.\n"]
10524    pub base: cef_base_ref_counted_t,
10525    #[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"]
10526    pub on_loading_state_change: ::std::option::Option<
10527        unsafe extern "C" fn(
10528            self_: *mut _cef_load_handler_t,
10529            browser: *mut _cef_browser_t,
10530            isLoading: ::std::os::raw::c_int,
10531            canGoBack: ::std::os::raw::c_int,
10532            canGoForward: ::std::os::raw::c_int,
10533        ),
10534    >,
10535    #[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"]
10536    pub on_load_start: ::std::option::Option<
10537        unsafe extern "C" fn(
10538            self_: *mut _cef_load_handler_t,
10539            browser: *mut _cef_browser_t,
10540            frame: *mut _cef_frame_t,
10541            transition_type: cef_transition_type_t,
10542        ),
10543    >,
10544    #[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"]
10545    pub on_load_end: ::std::option::Option<
10546        unsafe extern "C" fn(
10547            self_: *mut _cef_load_handler_t,
10548            browser: *mut _cef_browser_t,
10549            frame: *mut _cef_frame_t,
10550            httpStatusCode: ::std::os::raw::c_int,
10551        ),
10552    >,
10553    #[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"]
10554    pub on_load_error: ::std::option::Option<
10555        unsafe extern "C" fn(
10556            self_: *mut _cef_load_handler_t,
10557            browser: *mut _cef_browser_t,
10558            frame: *mut _cef_frame_t,
10559            errorCode: cef_errorcode_t,
10560            errorText: *const cef_string_t,
10561            failedUrl: *const cef_string_t,
10562        ),
10563    >,
10564}
10565#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10566const _: () = {
10567    ["Size of _cef_load_handler_t"][::std::mem::size_of::<_cef_load_handler_t>() - 72usize];
10568    ["Alignment of _cef_load_handler_t"][::std::mem::align_of::<_cef_load_handler_t>() - 8usize];
10569    ["Offset of field: _cef_load_handler_t::base"]
10570        [::std::mem::offset_of!(_cef_load_handler_t, base) - 0usize];
10571    ["Offset of field: _cef_load_handler_t::on_loading_state_change"]
10572        [::std::mem::offset_of!(_cef_load_handler_t, on_loading_state_change) - 40usize];
10573    ["Offset of field: _cef_load_handler_t::on_load_start"]
10574        [::std::mem::offset_of!(_cef_load_handler_t, on_load_start) - 48usize];
10575    ["Offset of field: _cef_load_handler_t::on_load_end"]
10576        [::std::mem::offset_of!(_cef_load_handler_t, on_load_end) - 56usize];
10577    ["Offset of field: _cef_load_handler_t::on_load_error"]
10578        [::std::mem::offset_of!(_cef_load_handler_t, on_load_error) - 64usize];
10579};
10580#[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"]
10581pub type cef_load_handler_t = _cef_load_handler_t;
10582#[doc = "\n Callback structure used for asynchronous continuation of media access\n permission requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10583#[repr(C)]
10584#[derive(Debug, Copy, Clone)]
10585pub struct _cef_media_access_callback_t {
10586    #[doc = "\n Base structure.\n"]
10587    pub base: cef_base_ref_counted_t,
10588    #[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"]
10589    pub cont: ::std::option::Option<
10590        unsafe extern "C" fn(self_: *mut _cef_media_access_callback_t, allowed_permissions: u32),
10591    >,
10592    #[doc = "\n Cancel the media access request.\n"]
10593    pub cancel:
10594        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_media_access_callback_t)>,
10595}
10596#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10597const _: () = {
10598    ["Size of _cef_media_access_callback_t"]
10599        [::std::mem::size_of::<_cef_media_access_callback_t>() - 56usize];
10600    ["Alignment of _cef_media_access_callback_t"]
10601        [::std::mem::align_of::<_cef_media_access_callback_t>() - 8usize];
10602    ["Offset of field: _cef_media_access_callback_t::base"]
10603        [::std::mem::offset_of!(_cef_media_access_callback_t, base) - 0usize];
10604    ["Offset of field: _cef_media_access_callback_t::cont"]
10605        [::std::mem::offset_of!(_cef_media_access_callback_t, cont) - 40usize];
10606    ["Offset of field: _cef_media_access_callback_t::cancel"]
10607        [::std::mem::offset_of!(_cef_media_access_callback_t, cancel) - 48usize];
10608};
10609#[doc = "\n Callback structure used for asynchronous continuation of media access\n permission requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10610pub type cef_media_access_callback_t = _cef_media_access_callback_t;
10611#[doc = "\n Callback structure used for asynchronous continuation of permission prompts.\n\n NOTE: This struct is allocated DLL-side.\n"]
10612#[repr(C)]
10613#[derive(Debug, Copy, Clone)]
10614pub struct _cef_permission_prompt_callback_t {
10615    #[doc = "\n Base structure.\n"]
10616    pub base: cef_base_ref_counted_t,
10617    #[doc = "\n Complete the permissions request with the specified |result|.\n"]
10618    pub cont: ::std::option::Option<
10619        unsafe extern "C" fn(
10620            self_: *mut _cef_permission_prompt_callback_t,
10621            result: cef_permission_request_result_t,
10622        ),
10623    >,
10624}
10625#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10626const _: () = {
10627    ["Size of _cef_permission_prompt_callback_t"]
10628        [::std::mem::size_of::<_cef_permission_prompt_callback_t>() - 48usize];
10629    ["Alignment of _cef_permission_prompt_callback_t"]
10630        [::std::mem::align_of::<_cef_permission_prompt_callback_t>() - 8usize];
10631    ["Offset of field: _cef_permission_prompt_callback_t::base"]
10632        [::std::mem::offset_of!(_cef_permission_prompt_callback_t, base) - 0usize];
10633    ["Offset of field: _cef_permission_prompt_callback_t::cont"]
10634        [::std::mem::offset_of!(_cef_permission_prompt_callback_t, cont) - 40usize];
10635};
10636#[doc = "\n Callback structure used for asynchronous continuation of permission prompts.\n\n NOTE: This struct is allocated DLL-side.\n"]
10637pub type cef_permission_prompt_callback_t = _cef_permission_prompt_callback_t;
10638#[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"]
10639#[repr(C)]
10640#[derive(Debug, Copy, Clone)]
10641pub struct _cef_permission_handler_t {
10642    #[doc = "\n Base structure.\n"]
10643    pub base: cef_base_ref_counted_t,
10644    #[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"]
10645    pub on_request_media_access_permission: ::std::option::Option<
10646        unsafe extern "C" fn(
10647            self_: *mut _cef_permission_handler_t,
10648            browser: *mut _cef_browser_t,
10649            frame: *mut _cef_frame_t,
10650            requesting_origin: *const cef_string_t,
10651            requested_permissions: u32,
10652            callback: *mut _cef_media_access_callback_t,
10653        ) -> ::std::os::raw::c_int,
10654    >,
10655    #[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"]
10656    pub on_show_permission_prompt: ::std::option::Option<
10657        unsafe extern "C" fn(
10658            self_: *mut _cef_permission_handler_t,
10659            browser: *mut _cef_browser_t,
10660            prompt_id: u64,
10661            requesting_origin: *const cef_string_t,
10662            requested_permissions: u32,
10663            callback: *mut _cef_permission_prompt_callback_t,
10664        ) -> ::std::os::raw::c_int,
10665    >,
10666    #[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"]
10667    pub on_dismiss_permission_prompt: ::std::option::Option<
10668        unsafe extern "C" fn(
10669            self_: *mut _cef_permission_handler_t,
10670            browser: *mut _cef_browser_t,
10671            prompt_id: u64,
10672            result: cef_permission_request_result_t,
10673        ),
10674    >,
10675}
10676#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10677const _: () = {
10678    ["Size of _cef_permission_handler_t"]
10679        [::std::mem::size_of::<_cef_permission_handler_t>() - 64usize];
10680    ["Alignment of _cef_permission_handler_t"]
10681        [::std::mem::align_of::<_cef_permission_handler_t>() - 8usize];
10682    ["Offset of field: _cef_permission_handler_t::base"]
10683        [::std::mem::offset_of!(_cef_permission_handler_t, base) - 0usize];
10684    ["Offset of field: _cef_permission_handler_t::on_request_media_access_permission"][::std::mem::offset_of!(
10685        _cef_permission_handler_t,
10686        on_request_media_access_permission
10687    ) - 40usize];
10688    ["Offset of field: _cef_permission_handler_t::on_show_permission_prompt"]
10689        [::std::mem::offset_of!(_cef_permission_handler_t, on_show_permission_prompt) - 48usize];
10690    ["Offset of field: _cef_permission_handler_t::on_dismiss_permission_prompt"]
10691        [::std::mem::offset_of!(_cef_permission_handler_t, on_dismiss_permission_prompt) - 56usize];
10692};
10693#[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"]
10694pub type cef_permission_handler_t = _cef_permission_handler_t;
10695#[doc = "\n Structure representing print settings.\n\n NOTE: This struct is allocated DLL-side.\n"]
10696#[repr(C)]
10697#[derive(Debug, Copy, Clone)]
10698pub struct _cef_print_settings_t {
10699    #[doc = "\n Base structure.\n"]
10700    pub base: cef_base_ref_counted_t,
10701    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
10702    pub is_valid: ::std::option::Option<
10703        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10704    >,
10705    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
10706    pub is_read_only: ::std::option::Option<
10707        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10708    >,
10709    #[doc = "\n Set the page orientation.\n"]
10710    pub set_orientation: ::std::option::Option<
10711        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, landscape: ::std::os::raw::c_int),
10712    >,
10713    #[doc = "\n Returns true (1) if the orientation is landscape.\n"]
10714    pub is_landscape: ::std::option::Option<
10715        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10716    >,
10717    #[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"]
10718    pub set_printer_printable_area: ::std::option::Option<
10719        unsafe extern "C" fn(
10720            self_: *mut _cef_print_settings_t,
10721            physical_size_device_units: *const cef_size_t,
10722            printable_area_device_units: *const cef_rect_t,
10723            landscape_needs_flip: ::std::os::raw::c_int,
10724        ),
10725    >,
10726    #[doc = "\n Set the device name.\n"]
10727    pub set_device_name: ::std::option::Option<
10728        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, name: *const cef_string_t),
10729    >,
10730    #[doc = "\n Get the device name.\n"]
10731    pub get_device_name: ::std::option::Option<
10732        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_string_userfree_t,
10733    >,
10734    #[doc = "\n Set the DPI (dots per inch).\n"]
10735    pub set_dpi: ::std::option::Option<
10736        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, dpi: ::std::os::raw::c_int),
10737    >,
10738    #[doc = "\n Get the DPI (dots per inch).\n"]
10739    pub get_dpi: ::std::option::Option<
10740        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10741    >,
10742    #[doc = "\n Set the page ranges.\n"]
10743    pub set_page_ranges: ::std::option::Option<
10744        unsafe extern "C" fn(
10745            self_: *mut _cef_print_settings_t,
10746            rangesCount: usize,
10747            ranges: *const cef_range_t,
10748        ),
10749    >,
10750    #[doc = "\n Returns the number of page ranges that currently exist.\n"]
10751    pub get_page_ranges_count:
10752        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> usize>,
10753    #[doc = "\n Retrieve the page ranges.\n"]
10754    pub get_page_ranges: ::std::option::Option<
10755        unsafe extern "C" fn(
10756            self_: *mut _cef_print_settings_t,
10757            rangesCount: *mut usize,
10758            ranges: *mut cef_range_t,
10759        ),
10760    >,
10761    #[doc = "\n Set whether only the selection will be printed.\n"]
10762    pub set_selection_only: ::std::option::Option<
10763        unsafe extern "C" fn(
10764            self_: *mut _cef_print_settings_t,
10765            selection_only: ::std::os::raw::c_int,
10766        ),
10767    >,
10768    #[doc = "\n Returns true (1) if only the selection will be printed.\n"]
10769    pub is_selection_only: ::std::option::Option<
10770        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10771    >,
10772    #[doc = "\n Set whether pages will be collated.\n"]
10773    pub set_collate: ::std::option::Option<
10774        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, collate: ::std::os::raw::c_int),
10775    >,
10776    #[doc = "\n Returns true (1) if pages will be collated.\n"]
10777    pub will_collate: ::std::option::Option<
10778        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10779    >,
10780    #[doc = "\n Set the color model.\n"]
10781    pub set_color_model: ::std::option::Option<
10782        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, model: cef_color_model_t),
10783    >,
10784    #[doc = "\n Get the color model.\n"]
10785    pub get_color_model: ::std::option::Option<
10786        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_color_model_t,
10787    >,
10788    #[doc = "\n Set the number of copies.\n"]
10789    pub set_copies: ::std::option::Option<
10790        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, copies: ::std::os::raw::c_int),
10791    >,
10792    #[doc = "\n Get the number of copies.\n"]
10793    pub get_copies: ::std::option::Option<
10794        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> ::std::os::raw::c_int,
10795    >,
10796    #[doc = "\n Set the duplex mode.\n"]
10797    pub set_duplex_mode: ::std::option::Option<
10798        unsafe extern "C" fn(self_: *mut _cef_print_settings_t, mode: cef_duplex_mode_t),
10799    >,
10800    #[doc = "\n Get the duplex mode.\n"]
10801    pub get_duplex_mode: ::std::option::Option<
10802        unsafe extern "C" fn(self_: *mut _cef_print_settings_t) -> cef_duplex_mode_t,
10803    >,
10804}
10805#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10806const _: () = {
10807    ["Size of _cef_print_settings_t"][::std::mem::size_of::<_cef_print_settings_t>() - 216usize];
10808    ["Alignment of _cef_print_settings_t"]
10809        [::std::mem::align_of::<_cef_print_settings_t>() - 8usize];
10810    ["Offset of field: _cef_print_settings_t::base"]
10811        [::std::mem::offset_of!(_cef_print_settings_t, base) - 0usize];
10812    ["Offset of field: _cef_print_settings_t::is_valid"]
10813        [::std::mem::offset_of!(_cef_print_settings_t, is_valid) - 40usize];
10814    ["Offset of field: _cef_print_settings_t::is_read_only"]
10815        [::std::mem::offset_of!(_cef_print_settings_t, is_read_only) - 48usize];
10816    ["Offset of field: _cef_print_settings_t::set_orientation"]
10817        [::std::mem::offset_of!(_cef_print_settings_t, set_orientation) - 56usize];
10818    ["Offset of field: _cef_print_settings_t::is_landscape"]
10819        [::std::mem::offset_of!(_cef_print_settings_t, is_landscape) - 64usize];
10820    ["Offset of field: _cef_print_settings_t::set_printer_printable_area"]
10821        [::std::mem::offset_of!(_cef_print_settings_t, set_printer_printable_area) - 72usize];
10822    ["Offset of field: _cef_print_settings_t::set_device_name"]
10823        [::std::mem::offset_of!(_cef_print_settings_t, set_device_name) - 80usize];
10824    ["Offset of field: _cef_print_settings_t::get_device_name"]
10825        [::std::mem::offset_of!(_cef_print_settings_t, get_device_name) - 88usize];
10826    ["Offset of field: _cef_print_settings_t::set_dpi"]
10827        [::std::mem::offset_of!(_cef_print_settings_t, set_dpi) - 96usize];
10828    ["Offset of field: _cef_print_settings_t::get_dpi"]
10829        [::std::mem::offset_of!(_cef_print_settings_t, get_dpi) - 104usize];
10830    ["Offset of field: _cef_print_settings_t::set_page_ranges"]
10831        [::std::mem::offset_of!(_cef_print_settings_t, set_page_ranges) - 112usize];
10832    ["Offset of field: _cef_print_settings_t::get_page_ranges_count"]
10833        [::std::mem::offset_of!(_cef_print_settings_t, get_page_ranges_count) - 120usize];
10834    ["Offset of field: _cef_print_settings_t::get_page_ranges"]
10835        [::std::mem::offset_of!(_cef_print_settings_t, get_page_ranges) - 128usize];
10836    ["Offset of field: _cef_print_settings_t::set_selection_only"]
10837        [::std::mem::offset_of!(_cef_print_settings_t, set_selection_only) - 136usize];
10838    ["Offset of field: _cef_print_settings_t::is_selection_only"]
10839        [::std::mem::offset_of!(_cef_print_settings_t, is_selection_only) - 144usize];
10840    ["Offset of field: _cef_print_settings_t::set_collate"]
10841        [::std::mem::offset_of!(_cef_print_settings_t, set_collate) - 152usize];
10842    ["Offset of field: _cef_print_settings_t::will_collate"]
10843        [::std::mem::offset_of!(_cef_print_settings_t, will_collate) - 160usize];
10844    ["Offset of field: _cef_print_settings_t::set_color_model"]
10845        [::std::mem::offset_of!(_cef_print_settings_t, set_color_model) - 168usize];
10846    ["Offset of field: _cef_print_settings_t::get_color_model"]
10847        [::std::mem::offset_of!(_cef_print_settings_t, get_color_model) - 176usize];
10848    ["Offset of field: _cef_print_settings_t::set_copies"]
10849        [::std::mem::offset_of!(_cef_print_settings_t, set_copies) - 184usize];
10850    ["Offset of field: _cef_print_settings_t::get_copies"]
10851        [::std::mem::offset_of!(_cef_print_settings_t, get_copies) - 192usize];
10852    ["Offset of field: _cef_print_settings_t::set_duplex_mode"]
10853        [::std::mem::offset_of!(_cef_print_settings_t, set_duplex_mode) - 200usize];
10854    ["Offset of field: _cef_print_settings_t::get_duplex_mode"]
10855        [::std::mem::offset_of!(_cef_print_settings_t, get_duplex_mode) - 208usize];
10856};
10857#[doc = "\n Structure representing print settings.\n\n NOTE: This struct is allocated DLL-side.\n"]
10858pub type cef_print_settings_t = _cef_print_settings_t;
10859unsafe extern "C" {
10860    #[doc = "\n Create a new cef_print_settings_t object.\n"]
10861    pub fn cef_print_settings_create() -> *mut cef_print_settings_t;
10862}
10863#[doc = "\n Callback structure for asynchronous continuation of print dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10864#[repr(C)]
10865#[derive(Debug, Copy, Clone)]
10866pub struct _cef_print_dialog_callback_t {
10867    #[doc = "\n Base structure.\n"]
10868    pub base: cef_base_ref_counted_t,
10869    #[doc = "\n Continue printing with the specified |settings|.\n"]
10870    pub cont: ::std::option::Option<
10871        unsafe extern "C" fn(
10872            self_: *mut _cef_print_dialog_callback_t,
10873            settings: *mut _cef_print_settings_t,
10874        ),
10875    >,
10876    #[doc = "\n Cancel the printing.\n"]
10877    pub cancel:
10878        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_dialog_callback_t)>,
10879}
10880#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10881const _: () = {
10882    ["Size of _cef_print_dialog_callback_t"]
10883        [::std::mem::size_of::<_cef_print_dialog_callback_t>() - 56usize];
10884    ["Alignment of _cef_print_dialog_callback_t"]
10885        [::std::mem::align_of::<_cef_print_dialog_callback_t>() - 8usize];
10886    ["Offset of field: _cef_print_dialog_callback_t::base"]
10887        [::std::mem::offset_of!(_cef_print_dialog_callback_t, base) - 0usize];
10888    ["Offset of field: _cef_print_dialog_callback_t::cont"]
10889        [::std::mem::offset_of!(_cef_print_dialog_callback_t, cont) - 40usize];
10890    ["Offset of field: _cef_print_dialog_callback_t::cancel"]
10891        [::std::mem::offset_of!(_cef_print_dialog_callback_t, cancel) - 48usize];
10892};
10893#[doc = "\n Callback structure for asynchronous continuation of print dialog requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10894pub type cef_print_dialog_callback_t = _cef_print_dialog_callback_t;
10895#[doc = "\n Callback structure for asynchronous continuation of print job requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10896#[repr(C)]
10897#[derive(Debug, Copy, Clone)]
10898pub struct _cef_print_job_callback_t {
10899    #[doc = "\n Base structure.\n"]
10900    pub base: cef_base_ref_counted_t,
10901    #[doc = "\n Indicate completion of the print job.\n"]
10902    pub cont: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_print_job_callback_t)>,
10903}
10904#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10905const _: () = {
10906    ["Size of _cef_print_job_callback_t"]
10907        [::std::mem::size_of::<_cef_print_job_callback_t>() - 48usize];
10908    ["Alignment of _cef_print_job_callback_t"]
10909        [::std::mem::align_of::<_cef_print_job_callback_t>() - 8usize];
10910    ["Offset of field: _cef_print_job_callback_t::base"]
10911        [::std::mem::offset_of!(_cef_print_job_callback_t, base) - 0usize];
10912    ["Offset of field: _cef_print_job_callback_t::cont"]
10913        [::std::mem::offset_of!(_cef_print_job_callback_t, cont) - 40usize];
10914};
10915#[doc = "\n Callback structure for asynchronous continuation of print job requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
10916pub type cef_print_job_callback_t = _cef_print_job_callback_t;
10917#[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"]
10918#[repr(C)]
10919#[derive(Debug, Copy, Clone)]
10920pub struct _cef_print_handler_t {
10921    #[doc = "\n Base structure.\n"]
10922    pub base: cef_base_ref_counted_t,
10923    #[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"]
10924    pub on_print_start: ::std::option::Option<
10925        unsafe extern "C" fn(self_: *mut _cef_print_handler_t, browser: *mut _cef_browser_t),
10926    >,
10927    #[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"]
10928    pub on_print_settings: ::std::option::Option<
10929        unsafe extern "C" fn(
10930            self_: *mut _cef_print_handler_t,
10931            browser: *mut _cef_browser_t,
10932            settings: *mut _cef_print_settings_t,
10933            get_defaults: ::std::os::raw::c_int,
10934        ),
10935    >,
10936    #[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"]
10937    pub on_print_dialog: ::std::option::Option<
10938        unsafe extern "C" fn(
10939            self_: *mut _cef_print_handler_t,
10940            browser: *mut _cef_browser_t,
10941            has_selection: ::std::os::raw::c_int,
10942            callback: *mut _cef_print_dialog_callback_t,
10943        ) -> ::std::os::raw::c_int,
10944    >,
10945    #[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"]
10946    pub on_print_job: ::std::option::Option<
10947        unsafe extern "C" fn(
10948            self_: *mut _cef_print_handler_t,
10949            browser: *mut _cef_browser_t,
10950            document_name: *const cef_string_t,
10951            pdf_file_path: *const cef_string_t,
10952            callback: *mut _cef_print_job_callback_t,
10953        ) -> ::std::os::raw::c_int,
10954    >,
10955    #[doc = "\n Reset client state related to printing.\n"]
10956    pub on_print_reset: ::std::option::Option<
10957        unsafe extern "C" fn(self_: *mut _cef_print_handler_t, browser: *mut _cef_browser_t),
10958    >,
10959    #[doc = "\n Return the PDF paper size in device units. Used in combination with\n cef_browser_host_t::print_to_pdf().\n"]
10960    pub get_pdf_paper_size: ::std::option::Option<
10961        unsafe extern "C" fn(
10962            self_: *mut _cef_print_handler_t,
10963            browser: *mut _cef_browser_t,
10964            device_units_per_inch: ::std::os::raw::c_int,
10965        ) -> cef_size_t,
10966    >,
10967}
10968#[allow(clippy::unnecessary_operation, clippy::identity_op)]
10969const _: () = {
10970    ["Size of _cef_print_handler_t"][::std::mem::size_of::<_cef_print_handler_t>() - 88usize];
10971    ["Alignment of _cef_print_handler_t"][::std::mem::align_of::<_cef_print_handler_t>() - 8usize];
10972    ["Offset of field: _cef_print_handler_t::base"]
10973        [::std::mem::offset_of!(_cef_print_handler_t, base) - 0usize];
10974    ["Offset of field: _cef_print_handler_t::on_print_start"]
10975        [::std::mem::offset_of!(_cef_print_handler_t, on_print_start) - 40usize];
10976    ["Offset of field: _cef_print_handler_t::on_print_settings"]
10977        [::std::mem::offset_of!(_cef_print_handler_t, on_print_settings) - 48usize];
10978    ["Offset of field: _cef_print_handler_t::on_print_dialog"]
10979        [::std::mem::offset_of!(_cef_print_handler_t, on_print_dialog) - 56usize];
10980    ["Offset of field: _cef_print_handler_t::on_print_job"]
10981        [::std::mem::offset_of!(_cef_print_handler_t, on_print_job) - 64usize];
10982    ["Offset of field: _cef_print_handler_t::on_print_reset"]
10983        [::std::mem::offset_of!(_cef_print_handler_t, on_print_reset) - 72usize];
10984    ["Offset of field: _cef_print_handler_t::get_pdf_paper_size"]
10985        [::std::mem::offset_of!(_cef_print_handler_t, get_pdf_paper_size) - 80usize];
10986};
10987#[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"]
10988pub type cef_print_handler_t = _cef_print_handler_t;
10989#[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"]
10990#[repr(C)]
10991#[derive(Debug, Copy, Clone)]
10992pub struct _cef_accessibility_handler_t {
10993    #[doc = "\n Base structure.\n"]
10994    pub base: cef_base_ref_counted_t,
10995    #[doc = "\n Called after renderer process sends accessibility tree changes to the\n browser process.\n"]
10996    pub on_accessibility_tree_change: ::std::option::Option<
10997        unsafe extern "C" fn(self_: *mut _cef_accessibility_handler_t, value: *mut _cef_value_t),
10998    >,
10999    #[doc = "\n Called after renderer process sends accessibility location changes to the\n browser process.\n"]
11000    pub on_accessibility_location_change: ::std::option::Option<
11001        unsafe extern "C" fn(self_: *mut _cef_accessibility_handler_t, value: *mut _cef_value_t),
11002    >,
11003}
11004#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11005const _: () = {
11006    ["Size of _cef_accessibility_handler_t"]
11007        [::std::mem::size_of::<_cef_accessibility_handler_t>() - 56usize];
11008    ["Alignment of _cef_accessibility_handler_t"]
11009        [::std::mem::align_of::<_cef_accessibility_handler_t>() - 8usize];
11010    ["Offset of field: _cef_accessibility_handler_t::base"]
11011        [::std::mem::offset_of!(_cef_accessibility_handler_t, base) - 0usize];
11012    ["Offset of field: _cef_accessibility_handler_t::on_accessibility_tree_change"][::std::mem::offset_of!(
11013        _cef_accessibility_handler_t,
11014        on_accessibility_tree_change
11015    ) - 40usize];
11016    ["Offset of field: _cef_accessibility_handler_t::on_accessibility_location_change"][::std::mem::offset_of!(
11017        _cef_accessibility_handler_t,
11018        on_accessibility_location_change
11019    )
11020        - 48usize];
11021};
11022#[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"]
11023pub type cef_accessibility_handler_t = _cef_accessibility_handler_t;
11024#[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"]
11025#[repr(C)]
11026#[derive(Debug, Copy, Clone)]
11027pub struct _cef_render_handler_t {
11028    #[doc = "\n Base structure.\n"]
11029    pub base: cef_base_ref_counted_t,
11030    #[doc = "\n Return the handler for accessibility notifications. If no handler is\n provided the default implementation will be used.\n"]
11031    pub get_accessibility_handler: ::std::option::Option<
11032        unsafe extern "C" fn(
11033            self_: *mut _cef_render_handler_t,
11034        ) -> *mut _cef_accessibility_handler_t,
11035    >,
11036    #[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"]
11037    pub get_root_screen_rect: ::std::option::Option<
11038        unsafe extern "C" fn(
11039            self_: *mut _cef_render_handler_t,
11040            browser: *mut _cef_browser_t,
11041            rect: *mut cef_rect_t,
11042        ) -> ::std::os::raw::c_int,
11043    >,
11044    #[doc = "\n Called to retrieve the view rectangle in screen DIP coordinates. This\n function must always provide a non-NULL rectangle.\n"]
11045    pub get_view_rect: ::std::option::Option<
11046        unsafe extern "C" fn(
11047            self_: *mut _cef_render_handler_t,
11048            browser: *mut _cef_browser_t,
11049            rect: *mut cef_rect_t,
11050        ),
11051    >,
11052    #[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"]
11053    pub get_screen_point: ::std::option::Option<
11054        unsafe extern "C" fn(
11055            self_: *mut _cef_render_handler_t,
11056            browser: *mut _cef_browser_t,
11057            viewX: ::std::os::raw::c_int,
11058            viewY: ::std::os::raw::c_int,
11059            screenX: *mut ::std::os::raw::c_int,
11060            screenY: *mut ::std::os::raw::c_int,
11061        ) -> ::std::os::raw::c_int,
11062    >,
11063    #[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"]
11064    pub get_screen_info: ::std::option::Option<
11065        unsafe extern "C" fn(
11066            self_: *mut _cef_render_handler_t,
11067            browser: *mut _cef_browser_t,
11068            screen_info: *mut cef_screen_info_t,
11069        ) -> ::std::os::raw::c_int,
11070    >,
11071    #[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"]
11072    pub on_popup_show: ::std::option::Option<
11073        unsafe extern "C" fn(
11074            self_: *mut _cef_render_handler_t,
11075            browser: *mut _cef_browser_t,
11076            show: ::std::os::raw::c_int,
11077        ),
11078    >,
11079    #[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"]
11080    pub on_popup_size: ::std::option::Option<
11081        unsafe extern "C" fn(
11082            self_: *mut _cef_render_handler_t,
11083            browser: *mut _cef_browser_t,
11084            rect: *const cef_rect_t,
11085        ),
11086    >,
11087    #[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"]
11088    pub on_paint: ::std::option::Option<
11089        unsafe extern "C" fn(
11090            self_: *mut _cef_render_handler_t,
11091            browser: *mut _cef_browser_t,
11092            type_: cef_paint_element_type_t,
11093            dirtyRectsCount: usize,
11094            dirtyRects: *const cef_rect_t,
11095            buffer: *const ::std::os::raw::c_void,
11096            width: ::std::os::raw::c_int,
11097            height: ::std::os::raw::c_int,
11098        ),
11099    >,
11100    #[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 OpenSharedResource, on\n macOS it is an IOSurface pointer that can be opened with Metal or OpenGL,\n and on Linux it contains several planes, each with an fd to the underlying\n 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"]
11101    pub on_accelerated_paint: ::std::option::Option<
11102        unsafe extern "C" fn(
11103            self_: *mut _cef_render_handler_t,
11104            browser: *mut _cef_browser_t,
11105            type_: cef_paint_element_type_t,
11106            dirtyRectsCount: usize,
11107            dirtyRects: *const cef_rect_t,
11108            info: *const cef_accelerated_paint_info_t,
11109        ),
11110    >,
11111    #[doc = "\n Called to retrieve the size of the touch handle for the specified\n |orientation|.\n"]
11112    pub get_touch_handle_size: ::std::option::Option<
11113        unsafe extern "C" fn(
11114            self_: *mut _cef_render_handler_t,
11115            browser: *mut _cef_browser_t,
11116            orientation: cef_horizontal_alignment_t,
11117            size: *mut cef_size_t,
11118        ),
11119    >,
11120    #[doc = "\n Called when touch handle state is updated. The client is responsible for\n rendering the touch handles.\n"]
11121    pub on_touch_handle_state_changed: ::std::option::Option<
11122        unsafe extern "C" fn(
11123            self_: *mut _cef_render_handler_t,
11124            browser: *mut _cef_browser_t,
11125            state: *const cef_touch_handle_state_t,
11126        ),
11127    >,
11128    #[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"]
11129    pub start_dragging: ::std::option::Option<
11130        unsafe extern "C" fn(
11131            self_: *mut _cef_render_handler_t,
11132            browser: *mut _cef_browser_t,
11133            drag_data: *mut _cef_drag_data_t,
11134            allowed_ops: cef_drag_operations_mask_t,
11135            x: ::std::os::raw::c_int,
11136            y: ::std::os::raw::c_int,
11137        ) -> ::std::os::raw::c_int,
11138    >,
11139    #[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"]
11140    pub update_drag_cursor: ::std::option::Option<
11141        unsafe extern "C" fn(
11142            self_: *mut _cef_render_handler_t,
11143            browser: *mut _cef_browser_t,
11144            operation: cef_drag_operations_mask_t,
11145        ),
11146    >,
11147    #[doc = "\n Called when the scroll offset has changed.\n"]
11148    pub on_scroll_offset_changed: ::std::option::Option<
11149        unsafe extern "C" fn(
11150            self_: *mut _cef_render_handler_t,
11151            browser: *mut _cef_browser_t,
11152            x: f64,
11153            y: f64,
11154        ),
11155    >,
11156    #[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"]
11157    pub on_ime_composition_range_changed: ::std::option::Option<
11158        unsafe extern "C" fn(
11159            self_: *mut _cef_render_handler_t,
11160            browser: *mut _cef_browser_t,
11161            selected_range: *const cef_range_t,
11162            character_boundsCount: usize,
11163            character_bounds: *const cef_rect_t,
11164        ),
11165    >,
11166    #[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"]
11167    pub on_text_selection_changed: ::std::option::Option<
11168        unsafe extern "C" fn(
11169            self_: *mut _cef_render_handler_t,
11170            browser: *mut _cef_browser_t,
11171            selected_text: *const cef_string_t,
11172            selected_range: *const cef_range_t,
11173        ),
11174    >,
11175    #[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"]
11176    pub on_virtual_keyboard_requested: ::std::option::Option<
11177        unsafe extern "C" fn(
11178            self_: *mut _cef_render_handler_t,
11179            browser: *mut _cef_browser_t,
11180            input_mode: cef_text_input_mode_t,
11181        ),
11182    >,
11183}
11184#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11185const _: () = {
11186    ["Size of _cef_render_handler_t"][::std::mem::size_of::<_cef_render_handler_t>() - 176usize];
11187    ["Alignment of _cef_render_handler_t"]
11188        [::std::mem::align_of::<_cef_render_handler_t>() - 8usize];
11189    ["Offset of field: _cef_render_handler_t::base"]
11190        [::std::mem::offset_of!(_cef_render_handler_t, base) - 0usize];
11191    ["Offset of field: _cef_render_handler_t::get_accessibility_handler"]
11192        [::std::mem::offset_of!(_cef_render_handler_t, get_accessibility_handler) - 40usize];
11193    ["Offset of field: _cef_render_handler_t::get_root_screen_rect"]
11194        [::std::mem::offset_of!(_cef_render_handler_t, get_root_screen_rect) - 48usize];
11195    ["Offset of field: _cef_render_handler_t::get_view_rect"]
11196        [::std::mem::offset_of!(_cef_render_handler_t, get_view_rect) - 56usize];
11197    ["Offset of field: _cef_render_handler_t::get_screen_point"]
11198        [::std::mem::offset_of!(_cef_render_handler_t, get_screen_point) - 64usize];
11199    ["Offset of field: _cef_render_handler_t::get_screen_info"]
11200        [::std::mem::offset_of!(_cef_render_handler_t, get_screen_info) - 72usize];
11201    ["Offset of field: _cef_render_handler_t::on_popup_show"]
11202        [::std::mem::offset_of!(_cef_render_handler_t, on_popup_show) - 80usize];
11203    ["Offset of field: _cef_render_handler_t::on_popup_size"]
11204        [::std::mem::offset_of!(_cef_render_handler_t, on_popup_size) - 88usize];
11205    ["Offset of field: _cef_render_handler_t::on_paint"]
11206        [::std::mem::offset_of!(_cef_render_handler_t, on_paint) - 96usize];
11207    ["Offset of field: _cef_render_handler_t::on_accelerated_paint"]
11208        [::std::mem::offset_of!(_cef_render_handler_t, on_accelerated_paint) - 104usize];
11209    ["Offset of field: _cef_render_handler_t::get_touch_handle_size"]
11210        [::std::mem::offset_of!(_cef_render_handler_t, get_touch_handle_size) - 112usize];
11211    ["Offset of field: _cef_render_handler_t::on_touch_handle_state_changed"]
11212        [::std::mem::offset_of!(_cef_render_handler_t, on_touch_handle_state_changed) - 120usize];
11213    ["Offset of field: _cef_render_handler_t::start_dragging"]
11214        [::std::mem::offset_of!(_cef_render_handler_t, start_dragging) - 128usize];
11215    ["Offset of field: _cef_render_handler_t::update_drag_cursor"]
11216        [::std::mem::offset_of!(_cef_render_handler_t, update_drag_cursor) - 136usize];
11217    ["Offset of field: _cef_render_handler_t::on_scroll_offset_changed"]
11218        [::std::mem::offset_of!(_cef_render_handler_t, on_scroll_offset_changed) - 144usize];
11219    ["Offset of field: _cef_render_handler_t::on_ime_composition_range_changed"][::std::mem::offset_of!(
11220        _cef_render_handler_t,
11221        on_ime_composition_range_changed
11222    ) - 152usize];
11223    ["Offset of field: _cef_render_handler_t::on_text_selection_changed"]
11224        [::std::mem::offset_of!(_cef_render_handler_t, on_text_selection_changed) - 160usize];
11225    ["Offset of field: _cef_render_handler_t::on_virtual_keyboard_requested"]
11226        [::std::mem::offset_of!(_cef_render_handler_t, on_virtual_keyboard_requested) - 168usize];
11227};
11228#[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"]
11229pub type cef_render_handler_t = _cef_render_handler_t;
11230#[doc = "\n Callback structure used for asynchronous continuation of authentication\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11231#[repr(C)]
11232#[derive(Debug, Copy, Clone)]
11233pub struct _cef_auth_callback_t {
11234    #[doc = "\n Base structure.\n"]
11235    pub base: cef_base_ref_counted_t,
11236    #[doc = "\n Continue the authentication request.\n"]
11237    pub cont: ::std::option::Option<
11238        unsafe extern "C" fn(
11239            self_: *mut _cef_auth_callback_t,
11240            username: *const cef_string_t,
11241            password: *const cef_string_t,
11242        ),
11243    >,
11244    #[doc = "\n Cancel the authentication request.\n"]
11245    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_auth_callback_t)>,
11246}
11247#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11248const _: () = {
11249    ["Size of _cef_auth_callback_t"][::std::mem::size_of::<_cef_auth_callback_t>() - 56usize];
11250    ["Alignment of _cef_auth_callback_t"][::std::mem::align_of::<_cef_auth_callback_t>() - 8usize];
11251    ["Offset of field: _cef_auth_callback_t::base"]
11252        [::std::mem::offset_of!(_cef_auth_callback_t, base) - 0usize];
11253    ["Offset of field: _cef_auth_callback_t::cont"]
11254        [::std::mem::offset_of!(_cef_auth_callback_t, cont) - 40usize];
11255    ["Offset of field: _cef_auth_callback_t::cancel"]
11256        [::std::mem::offset_of!(_cef_auth_callback_t, cancel) - 48usize];
11257};
11258#[doc = "\n Callback structure used for asynchronous continuation of authentication\n requests.\n\n NOTE: This struct is allocated DLL-side.\n"]
11259pub type cef_auth_callback_t = _cef_auth_callback_t;
11260#[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"]
11261#[repr(C)]
11262#[derive(Debug, Copy, Clone)]
11263pub struct _cef_response_t {
11264    #[doc = "\n Base structure.\n"]
11265    pub base: cef_base_ref_counted_t,
11266    #[doc = "\n Returns true (1) if this object is read-only.\n"]
11267    pub is_read_only: ::std::option::Option<
11268        unsafe extern "C" fn(self_: *mut _cef_response_t) -> ::std::os::raw::c_int,
11269    >,
11270    #[doc = "\n Get the response error code. Returns ERR_NONE if there was no error.\n"]
11271    pub get_error:
11272        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_errorcode_t>,
11273    #[doc = "\n Set the response error code. This can be used by custom scheme handlers to\n return errors during initial request processing.\n"]
11274    pub set_error: ::std::option::Option<
11275        unsafe extern "C" fn(self_: *mut _cef_response_t, error: cef_errorcode_t),
11276    >,
11277    #[doc = "\n Get the response status code.\n"]
11278    pub get_status: ::std::option::Option<
11279        unsafe extern "C" fn(self_: *mut _cef_response_t) -> ::std::os::raw::c_int,
11280    >,
11281    #[doc = "\n Set the response status code.\n"]
11282    pub set_status: ::std::option::Option<
11283        unsafe extern "C" fn(self_: *mut _cef_response_t, status: ::std::os::raw::c_int),
11284    >,
11285    #[doc = "\n Get the response status text.\n"]
11286    pub get_status_text: ::std::option::Option<
11287        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11288    >,
11289    #[doc = "\n Set the response status text.\n"]
11290    pub set_status_text: ::std::option::Option<
11291        unsafe extern "C" fn(self_: *mut _cef_response_t, statusText: *const cef_string_t),
11292    >,
11293    #[doc = "\n Get the response mime type.\n"]
11294    pub get_mime_type: ::std::option::Option<
11295        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11296    >,
11297    #[doc = "\n Set the response mime type.\n"]
11298    pub set_mime_type: ::std::option::Option<
11299        unsafe extern "C" fn(self_: *mut _cef_response_t, mimeType: *const cef_string_t),
11300    >,
11301    #[doc = "\n Get the response charset.\n"]
11302    pub get_charset: ::std::option::Option<
11303        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11304    >,
11305    #[doc = "\n Set the response charset.\n"]
11306    pub set_charset: ::std::option::Option<
11307        unsafe extern "C" fn(self_: *mut _cef_response_t, charset: *const cef_string_t),
11308    >,
11309    #[doc = "\n Get the value for the specified response header field.\n"]
11310    pub get_header_by_name: ::std::option::Option<
11311        unsafe extern "C" fn(
11312            self_: *mut _cef_response_t,
11313            name: *const cef_string_t,
11314        ) -> cef_string_userfree_t,
11315    >,
11316    #[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"]
11317    pub set_header_by_name: ::std::option::Option<
11318        unsafe extern "C" fn(
11319            self_: *mut _cef_response_t,
11320            name: *const cef_string_t,
11321            value: *const cef_string_t,
11322            overwrite: ::std::os::raw::c_int,
11323        ),
11324    >,
11325    #[doc = "\n Get all response header fields.\n"]
11326    pub get_header_map: ::std::option::Option<
11327        unsafe extern "C" fn(self_: *mut _cef_response_t, headerMap: cef_string_multimap_t),
11328    >,
11329    #[doc = "\n Set all response header fields.\n"]
11330    pub set_header_map: ::std::option::Option<
11331        unsafe extern "C" fn(self_: *mut _cef_response_t, headerMap: cef_string_multimap_t),
11332    >,
11333    #[doc = "\n Get the resolved URL after redirects or changed as a result of HSTS.\n"]
11334    pub get_url: ::std::option::Option<
11335        unsafe extern "C" fn(self_: *mut _cef_response_t) -> cef_string_userfree_t,
11336    >,
11337    #[doc = "\n Set the resolved URL after redirects or changed as a result of HSTS.\n"]
11338    pub set_url: ::std::option::Option<
11339        unsafe extern "C" fn(self_: *mut _cef_response_t, url: *const cef_string_t),
11340    >,
11341}
11342#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11343const _: () = {
11344    ["Size of _cef_response_t"][::std::mem::size_of::<_cef_response_t>() - 176usize];
11345    ["Alignment of _cef_response_t"][::std::mem::align_of::<_cef_response_t>() - 8usize];
11346    ["Offset of field: _cef_response_t::base"]
11347        [::std::mem::offset_of!(_cef_response_t, base) - 0usize];
11348    ["Offset of field: _cef_response_t::is_read_only"]
11349        [::std::mem::offset_of!(_cef_response_t, is_read_only) - 40usize];
11350    ["Offset of field: _cef_response_t::get_error"]
11351        [::std::mem::offset_of!(_cef_response_t, get_error) - 48usize];
11352    ["Offset of field: _cef_response_t::set_error"]
11353        [::std::mem::offset_of!(_cef_response_t, set_error) - 56usize];
11354    ["Offset of field: _cef_response_t::get_status"]
11355        [::std::mem::offset_of!(_cef_response_t, get_status) - 64usize];
11356    ["Offset of field: _cef_response_t::set_status"]
11357        [::std::mem::offset_of!(_cef_response_t, set_status) - 72usize];
11358    ["Offset of field: _cef_response_t::get_status_text"]
11359        [::std::mem::offset_of!(_cef_response_t, get_status_text) - 80usize];
11360    ["Offset of field: _cef_response_t::set_status_text"]
11361        [::std::mem::offset_of!(_cef_response_t, set_status_text) - 88usize];
11362    ["Offset of field: _cef_response_t::get_mime_type"]
11363        [::std::mem::offset_of!(_cef_response_t, get_mime_type) - 96usize];
11364    ["Offset of field: _cef_response_t::set_mime_type"]
11365        [::std::mem::offset_of!(_cef_response_t, set_mime_type) - 104usize];
11366    ["Offset of field: _cef_response_t::get_charset"]
11367        [::std::mem::offset_of!(_cef_response_t, get_charset) - 112usize];
11368    ["Offset of field: _cef_response_t::set_charset"]
11369        [::std::mem::offset_of!(_cef_response_t, set_charset) - 120usize];
11370    ["Offset of field: _cef_response_t::get_header_by_name"]
11371        [::std::mem::offset_of!(_cef_response_t, get_header_by_name) - 128usize];
11372    ["Offset of field: _cef_response_t::set_header_by_name"]
11373        [::std::mem::offset_of!(_cef_response_t, set_header_by_name) - 136usize];
11374    ["Offset of field: _cef_response_t::get_header_map"]
11375        [::std::mem::offset_of!(_cef_response_t, get_header_map) - 144usize];
11376    ["Offset of field: _cef_response_t::set_header_map"]
11377        [::std::mem::offset_of!(_cef_response_t, set_header_map) - 152usize];
11378    ["Offset of field: _cef_response_t::get_url"]
11379        [::std::mem::offset_of!(_cef_response_t, get_url) - 160usize];
11380    ["Offset of field: _cef_response_t::set_url"]
11381        [::std::mem::offset_of!(_cef_response_t, set_url) - 168usize];
11382};
11383#[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"]
11384pub type cef_response_t = _cef_response_t;
11385unsafe extern "C" {
11386    #[doc = "\n Create a new cef_response_t object.\n"]
11387    pub fn cef_response_create() -> *mut cef_response_t;
11388}
11389#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::skip().\n\n NOTE: This struct is allocated DLL-side.\n"]
11390#[repr(C)]
11391#[derive(Debug, Copy, Clone)]
11392pub struct _cef_resource_skip_callback_t {
11393    #[doc = "\n Base structure.\n"]
11394    pub base: cef_base_ref_counted_t,
11395    #[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"]
11396    pub cont: ::std::option::Option<
11397        unsafe extern "C" fn(self_: *mut _cef_resource_skip_callback_t, bytes_skipped: i64),
11398    >,
11399}
11400#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11401const _: () = {
11402    ["Size of _cef_resource_skip_callback_t"]
11403        [::std::mem::size_of::<_cef_resource_skip_callback_t>() - 48usize];
11404    ["Alignment of _cef_resource_skip_callback_t"]
11405        [::std::mem::align_of::<_cef_resource_skip_callback_t>() - 8usize];
11406    ["Offset of field: _cef_resource_skip_callback_t::base"]
11407        [::std::mem::offset_of!(_cef_resource_skip_callback_t, base) - 0usize];
11408    ["Offset of field: _cef_resource_skip_callback_t::cont"]
11409        [::std::mem::offset_of!(_cef_resource_skip_callback_t, cont) - 40usize];
11410};
11411#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::skip().\n\n NOTE: This struct is allocated DLL-side.\n"]
11412pub type cef_resource_skip_callback_t = _cef_resource_skip_callback_t;
11413#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::read().\n\n NOTE: This struct is allocated DLL-side.\n"]
11414#[repr(C)]
11415#[derive(Debug, Copy, Clone)]
11416pub struct _cef_resource_read_callback_t {
11417    #[doc = "\n Base structure.\n"]
11418    pub base: cef_base_ref_counted_t,
11419    #[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"]
11420    pub cont: ::std::option::Option<
11421        unsafe extern "C" fn(
11422            self_: *mut _cef_resource_read_callback_t,
11423            bytes_read: ::std::os::raw::c_int,
11424        ),
11425    >,
11426}
11427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11428const _: () = {
11429    ["Size of _cef_resource_read_callback_t"]
11430        [::std::mem::size_of::<_cef_resource_read_callback_t>() - 48usize];
11431    ["Alignment of _cef_resource_read_callback_t"]
11432        [::std::mem::align_of::<_cef_resource_read_callback_t>() - 8usize];
11433    ["Offset of field: _cef_resource_read_callback_t::base"]
11434        [::std::mem::offset_of!(_cef_resource_read_callback_t, base) - 0usize];
11435    ["Offset of field: _cef_resource_read_callback_t::cont"]
11436        [::std::mem::offset_of!(_cef_resource_read_callback_t, cont) - 40usize];
11437};
11438#[doc = "\n Callback for asynchronous continuation of cef_resource_handler_t::read().\n\n NOTE: This struct is allocated DLL-side.\n"]
11439pub type cef_resource_read_callback_t = _cef_resource_read_callback_t;
11440#[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"]
11441#[repr(C)]
11442#[derive(Debug, Copy, Clone)]
11443pub struct _cef_resource_handler_t {
11444    #[doc = "\n Base structure.\n"]
11445    pub base: cef_base_ref_counted_t,
11446    #[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"]
11447    pub open: ::std::option::Option<
11448        unsafe extern "C" fn(
11449            self_: *mut _cef_resource_handler_t,
11450            request: *mut _cef_request_t,
11451            handle_request: *mut ::std::os::raw::c_int,
11452            callback: *mut _cef_callback_t,
11453        ) -> ::std::os::raw::c_int,
11454    >,
11455    #[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"]
11456    pub process_request: ::std::option::Option<
11457        unsafe extern "C" fn(
11458            self_: *mut _cef_resource_handler_t,
11459            request: *mut _cef_request_t,
11460            callback: *mut _cef_callback_t,
11461        ) -> ::std::os::raw::c_int,
11462    >,
11463    #[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"]
11464    pub get_response_headers: ::std::option::Option<
11465        unsafe extern "C" fn(
11466            self_: *mut _cef_resource_handler_t,
11467            response: *mut _cef_response_t,
11468            response_length: *mut i64,
11469            redirectUrl: *mut cef_string_t,
11470        ),
11471    >,
11472    #[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"]
11473    pub skip: ::std::option::Option<
11474        unsafe extern "C" fn(
11475            self_: *mut _cef_resource_handler_t,
11476            bytes_to_skip: i64,
11477            bytes_skipped: *mut i64,
11478            callback: *mut _cef_resource_skip_callback_t,
11479        ) -> ::std::os::raw::c_int,
11480    >,
11481    #[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"]
11482    pub read: ::std::option::Option<
11483        unsafe extern "C" fn(
11484            self_: *mut _cef_resource_handler_t,
11485            data_out: *mut ::std::os::raw::c_void,
11486            bytes_to_read: ::std::os::raw::c_int,
11487            bytes_read: *mut ::std::os::raw::c_int,
11488            callback: *mut _cef_resource_read_callback_t,
11489        ) -> ::std::os::raw::c_int,
11490    >,
11491    #[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"]
11492    pub read_response: ::std::option::Option<
11493        unsafe extern "C" fn(
11494            self_: *mut _cef_resource_handler_t,
11495            data_out: *mut ::std::os::raw::c_void,
11496            bytes_to_read: ::std::os::raw::c_int,
11497            bytes_read: *mut ::std::os::raw::c_int,
11498            callback: *mut _cef_callback_t,
11499        ) -> ::std::os::raw::c_int,
11500    >,
11501    #[doc = "\n Request processing has been canceled.\n"]
11502    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_resource_handler_t)>,
11503}
11504#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11505const _: () = {
11506    ["Size of _cef_resource_handler_t"][::std::mem::size_of::<_cef_resource_handler_t>() - 96usize];
11507    ["Alignment of _cef_resource_handler_t"]
11508        [::std::mem::align_of::<_cef_resource_handler_t>() - 8usize];
11509    ["Offset of field: _cef_resource_handler_t::base"]
11510        [::std::mem::offset_of!(_cef_resource_handler_t, base) - 0usize];
11511    ["Offset of field: _cef_resource_handler_t::open"]
11512        [::std::mem::offset_of!(_cef_resource_handler_t, open) - 40usize];
11513    ["Offset of field: _cef_resource_handler_t::process_request"]
11514        [::std::mem::offset_of!(_cef_resource_handler_t, process_request) - 48usize];
11515    ["Offset of field: _cef_resource_handler_t::get_response_headers"]
11516        [::std::mem::offset_of!(_cef_resource_handler_t, get_response_headers) - 56usize];
11517    ["Offset of field: _cef_resource_handler_t::skip"]
11518        [::std::mem::offset_of!(_cef_resource_handler_t, skip) - 64usize];
11519    ["Offset of field: _cef_resource_handler_t::read"]
11520        [::std::mem::offset_of!(_cef_resource_handler_t, read) - 72usize];
11521    ["Offset of field: _cef_resource_handler_t::read_response"]
11522        [::std::mem::offset_of!(_cef_resource_handler_t, read_response) - 80usize];
11523    ["Offset of field: _cef_resource_handler_t::cancel"]
11524        [::std::mem::offset_of!(_cef_resource_handler_t, cancel) - 88usize];
11525};
11526#[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"]
11527pub type cef_resource_handler_t = _cef_resource_handler_t;
11528#[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"]
11529#[repr(C)]
11530#[derive(Debug, Copy, Clone)]
11531pub struct _cef_response_filter_t {
11532    #[doc = "\n Base structure.\n"]
11533    pub base: cef_base_ref_counted_t,
11534    #[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"]
11535    pub init_filter: ::std::option::Option<
11536        unsafe extern "C" fn(self_: *mut _cef_response_filter_t) -> ::std::os::raw::c_int,
11537    >,
11538    #[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"]
11539    pub filter: ::std::option::Option<
11540        unsafe extern "C" fn(
11541            self_: *mut _cef_response_filter_t,
11542            data_in: *mut ::std::os::raw::c_void,
11543            data_in_size: usize,
11544            data_in_read: *mut usize,
11545            data_out: *mut ::std::os::raw::c_void,
11546            data_out_size: usize,
11547            data_out_written: *mut usize,
11548        ) -> cef_response_filter_status_t,
11549    >,
11550}
11551#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11552const _: () = {
11553    ["Size of _cef_response_filter_t"][::std::mem::size_of::<_cef_response_filter_t>() - 56usize];
11554    ["Alignment of _cef_response_filter_t"]
11555        [::std::mem::align_of::<_cef_response_filter_t>() - 8usize];
11556    ["Offset of field: _cef_response_filter_t::base"]
11557        [::std::mem::offset_of!(_cef_response_filter_t, base) - 0usize];
11558    ["Offset of field: _cef_response_filter_t::init_filter"]
11559        [::std::mem::offset_of!(_cef_response_filter_t, init_filter) - 40usize];
11560    ["Offset of field: _cef_response_filter_t::filter"]
11561        [::std::mem::offset_of!(_cef_response_filter_t, filter) - 48usize];
11562};
11563#[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"]
11564pub type cef_response_filter_t = _cef_response_filter_t;
11565#[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"]
11566#[repr(C)]
11567#[derive(Debug, Copy, Clone)]
11568pub struct _cef_resource_request_handler_t {
11569    #[doc = "\n Base structure.\n"]
11570    pub base: cef_base_ref_counted_t,
11571    #[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"]
11572    pub get_cookie_access_filter: ::std::option::Option<
11573        unsafe extern "C" fn(
11574            self_: *mut _cef_resource_request_handler_t,
11575            browser: *mut _cef_browser_t,
11576            frame: *mut _cef_frame_t,
11577            request: *mut _cef_request_t,
11578        ) -> *mut _cef_cookie_access_filter_t,
11579    >,
11580    #[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"]
11581    pub on_before_resource_load: ::std::option::Option<
11582        unsafe extern "C" fn(
11583            self_: *mut _cef_resource_request_handler_t,
11584            browser: *mut _cef_browser_t,
11585            frame: *mut _cef_frame_t,
11586            request: *mut _cef_request_t,
11587            callback: *mut _cef_callback_t,
11588        ) -> cef_return_value_t,
11589    >,
11590    #[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"]
11591    pub get_resource_handler: ::std::option::Option<
11592        unsafe extern "C" fn(
11593            self_: *mut _cef_resource_request_handler_t,
11594            browser: *mut _cef_browser_t,
11595            frame: *mut _cef_frame_t,
11596            request: *mut _cef_request_t,
11597        ) -> *mut _cef_resource_handler_t,
11598    >,
11599    #[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"]
11600    pub on_resource_redirect: ::std::option::Option<
11601        unsafe extern "C" fn(
11602            self_: *mut _cef_resource_request_handler_t,
11603            browser: *mut _cef_browser_t,
11604            frame: *mut _cef_frame_t,
11605            request: *mut _cef_request_t,
11606            response: *mut _cef_response_t,
11607            new_url: *mut cef_string_t,
11608        ),
11609    >,
11610    #[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"]
11611    pub on_resource_response: ::std::option::Option<
11612        unsafe extern "C" fn(
11613            self_: *mut _cef_resource_request_handler_t,
11614            browser: *mut _cef_browser_t,
11615            frame: *mut _cef_frame_t,
11616            request: *mut _cef_request_t,
11617            response: *mut _cef_response_t,
11618        ) -> ::std::os::raw::c_int,
11619    >,
11620    #[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"]
11621    pub get_resource_response_filter: ::std::option::Option<
11622        unsafe extern "C" fn(
11623            self_: *mut _cef_resource_request_handler_t,
11624            browser: *mut _cef_browser_t,
11625            frame: *mut _cef_frame_t,
11626            request: *mut _cef_request_t,
11627            response: *mut _cef_response_t,
11628        ) -> *mut _cef_response_filter_t,
11629    >,
11630    #[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"]
11631    pub on_resource_load_complete: ::std::option::Option<
11632        unsafe extern "C" fn(
11633            self_: *mut _cef_resource_request_handler_t,
11634            browser: *mut _cef_browser_t,
11635            frame: *mut _cef_frame_t,
11636            request: *mut _cef_request_t,
11637            response: *mut _cef_response_t,
11638            status: cef_urlrequest_status_t,
11639            received_content_length: i64,
11640        ),
11641    >,
11642    #[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"]
11643    pub on_protocol_execution: ::std::option::Option<
11644        unsafe extern "C" fn(
11645            self_: *mut _cef_resource_request_handler_t,
11646            browser: *mut _cef_browser_t,
11647            frame: *mut _cef_frame_t,
11648            request: *mut _cef_request_t,
11649            allow_os_execution: *mut ::std::os::raw::c_int,
11650        ),
11651    >,
11652}
11653#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11654const _: () = {
11655    ["Size of _cef_resource_request_handler_t"]
11656        [::std::mem::size_of::<_cef_resource_request_handler_t>() - 104usize];
11657    ["Alignment of _cef_resource_request_handler_t"]
11658        [::std::mem::align_of::<_cef_resource_request_handler_t>() - 8usize];
11659    ["Offset of field: _cef_resource_request_handler_t::base"]
11660        [::std::mem::offset_of!(_cef_resource_request_handler_t, base) - 0usize];
11661    ["Offset of field: _cef_resource_request_handler_t::get_cookie_access_filter"][::std::mem::offset_of!(
11662        _cef_resource_request_handler_t,
11663        get_cookie_access_filter
11664    ) - 40usize];
11665    ["Offset of field: _cef_resource_request_handler_t::on_before_resource_load"][::std::mem::offset_of!(
11666        _cef_resource_request_handler_t,
11667        on_before_resource_load
11668    ) - 48usize];
11669    ["Offset of field: _cef_resource_request_handler_t::get_resource_handler"]
11670        [::std::mem::offset_of!(_cef_resource_request_handler_t, get_resource_handler) - 56usize];
11671    ["Offset of field: _cef_resource_request_handler_t::on_resource_redirect"]
11672        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_resource_redirect) - 64usize];
11673    ["Offset of field: _cef_resource_request_handler_t::on_resource_response"]
11674        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_resource_response) - 72usize];
11675    ["Offset of field: _cef_resource_request_handler_t::get_resource_response_filter"][::std::mem::offset_of!(
11676        _cef_resource_request_handler_t,
11677        get_resource_response_filter
11678    ) - 80usize];
11679    ["Offset of field: _cef_resource_request_handler_t::on_resource_load_complete"][::std::mem::offset_of!(
11680        _cef_resource_request_handler_t,
11681        on_resource_load_complete
11682    ) - 88usize];
11683    ["Offset of field: _cef_resource_request_handler_t::on_protocol_execution"]
11684        [::std::mem::offset_of!(_cef_resource_request_handler_t, on_protocol_execution) - 96usize];
11685};
11686#[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"]
11687pub type cef_resource_request_handler_t = _cef_resource_request_handler_t;
11688#[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"]
11689#[repr(C)]
11690#[derive(Debug, Copy, Clone)]
11691pub struct _cef_cookie_access_filter_t {
11692    #[doc = "\n Base structure.\n"]
11693    pub base: cef_base_ref_counted_t,
11694    #[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"]
11695    pub can_send_cookie: ::std::option::Option<
11696        unsafe extern "C" fn(
11697            self_: *mut _cef_cookie_access_filter_t,
11698            browser: *mut _cef_browser_t,
11699            frame: *mut _cef_frame_t,
11700            request: *mut _cef_request_t,
11701            cookie: *const _cef_cookie_t,
11702        ) -> ::std::os::raw::c_int,
11703    >,
11704    #[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"]
11705    pub can_save_cookie: ::std::option::Option<
11706        unsafe extern "C" fn(
11707            self_: *mut _cef_cookie_access_filter_t,
11708            browser: *mut _cef_browser_t,
11709            frame: *mut _cef_frame_t,
11710            request: *mut _cef_request_t,
11711            response: *mut _cef_response_t,
11712            cookie: *const _cef_cookie_t,
11713        ) -> ::std::os::raw::c_int,
11714    >,
11715}
11716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11717const _: () = {
11718    ["Size of _cef_cookie_access_filter_t"]
11719        [::std::mem::size_of::<_cef_cookie_access_filter_t>() - 56usize];
11720    ["Alignment of _cef_cookie_access_filter_t"]
11721        [::std::mem::align_of::<_cef_cookie_access_filter_t>() - 8usize];
11722    ["Offset of field: _cef_cookie_access_filter_t::base"]
11723        [::std::mem::offset_of!(_cef_cookie_access_filter_t, base) - 0usize];
11724    ["Offset of field: _cef_cookie_access_filter_t::can_send_cookie"]
11725        [::std::mem::offset_of!(_cef_cookie_access_filter_t, can_send_cookie) - 40usize];
11726    ["Offset of field: _cef_cookie_access_filter_t::can_save_cookie"]
11727        [::std::mem::offset_of!(_cef_cookie_access_filter_t, can_save_cookie) - 48usize];
11728};
11729#[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"]
11730pub type cef_cookie_access_filter_t = _cef_cookie_access_filter_t;
11731#[doc = "\n Structure representing SSL information.\n\n NOTE: This struct is allocated DLL-side.\n"]
11732#[repr(C)]
11733#[derive(Debug, Copy, Clone)]
11734pub struct _cef_sslinfo_t {
11735    #[doc = "\n Base structure.\n"]
11736    pub base: cef_base_ref_counted_t,
11737    #[doc = "\n Returns a bitmask containing any and all problems verifying the server\n certificate.\n"]
11738    pub get_cert_status: ::std::option::Option<
11739        unsafe extern "C" fn(self_: *mut _cef_sslinfo_t) -> cef_cert_status_t,
11740    >,
11741    #[doc = "\n Returns the X.509 certificate.\n"]
11742    pub get_x509_certificate: ::std::option::Option<
11743        unsafe extern "C" fn(self_: *mut _cef_sslinfo_t) -> *mut _cef_x509_certificate_t,
11744    >,
11745}
11746#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11747const _: () = {
11748    ["Size of _cef_sslinfo_t"][::std::mem::size_of::<_cef_sslinfo_t>() - 56usize];
11749    ["Alignment of _cef_sslinfo_t"][::std::mem::align_of::<_cef_sslinfo_t>() - 8usize];
11750    ["Offset of field: _cef_sslinfo_t::base"]
11751        [::std::mem::offset_of!(_cef_sslinfo_t, base) - 0usize];
11752    ["Offset of field: _cef_sslinfo_t::get_cert_status"]
11753        [::std::mem::offset_of!(_cef_sslinfo_t, get_cert_status) - 40usize];
11754    ["Offset of field: _cef_sslinfo_t::get_x509_certificate"]
11755        [::std::mem::offset_of!(_cef_sslinfo_t, get_x509_certificate) - 48usize];
11756};
11757#[doc = "\n Structure representing SSL information.\n\n NOTE: This struct is allocated DLL-side.\n"]
11758pub type cef_sslinfo_t = _cef_sslinfo_t;
11759unsafe extern "C" {
11760    #[doc = "\n Returns true (1) if the certificate status represents an error.\n"]
11761    pub fn cef_is_cert_status_error(status: cef_cert_status_t) -> ::std::os::raw::c_int;
11762}
11763#[doc = "\n Callback structure for asynchronous handling of an unresponsive process.\n\n NOTE: This struct is allocated DLL-side.\n"]
11764#[repr(C)]
11765#[derive(Debug, Copy, Clone)]
11766pub struct _cef_unresponsive_process_callback_t {
11767    #[doc = "\n Base structure.\n"]
11768    pub base: cef_base_ref_counted_t,
11769    #[doc = "\n Reset the timeout for the unresponsive process.\n"]
11770    pub wait: ::std::option::Option<
11771        unsafe extern "C" fn(self_: *mut _cef_unresponsive_process_callback_t),
11772    >,
11773    #[doc = "\n Terminate the unresponsive process.\n"]
11774    pub terminate: ::std::option::Option<
11775        unsafe extern "C" fn(self_: *mut _cef_unresponsive_process_callback_t),
11776    >,
11777}
11778#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11779const _: () = {
11780    ["Size of _cef_unresponsive_process_callback_t"]
11781        [::std::mem::size_of::<_cef_unresponsive_process_callback_t>() - 56usize];
11782    ["Alignment of _cef_unresponsive_process_callback_t"]
11783        [::std::mem::align_of::<_cef_unresponsive_process_callback_t>() - 8usize];
11784    ["Offset of field: _cef_unresponsive_process_callback_t::base"]
11785        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, base) - 0usize];
11786    ["Offset of field: _cef_unresponsive_process_callback_t::wait"]
11787        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, wait) - 40usize];
11788    ["Offset of field: _cef_unresponsive_process_callback_t::terminate"]
11789        [::std::mem::offset_of!(_cef_unresponsive_process_callback_t, terminate) - 48usize];
11790};
11791#[doc = "\n Callback structure for asynchronous handling of an unresponsive process.\n\n NOTE: This struct is allocated DLL-side.\n"]
11792pub type cef_unresponsive_process_callback_t = _cef_unresponsive_process_callback_t;
11793#[doc = "\n Callback structure used to select a client certificate for authentication.\n\n NOTE: This struct is allocated DLL-side.\n"]
11794#[repr(C)]
11795#[derive(Debug, Copy, Clone)]
11796pub struct _cef_select_client_certificate_callback_t {
11797    #[doc = "\n Base structure.\n"]
11798    pub base: cef_base_ref_counted_t,
11799    #[doc = "\n Chooses the specified certificate for client certificate authentication.\n NULL value means that no client certificate should be used.\n"]
11800    pub select: ::std::option::Option<
11801        unsafe extern "C" fn(
11802            self_: *mut _cef_select_client_certificate_callback_t,
11803            cert: *mut _cef_x509_certificate_t,
11804        ),
11805    >,
11806}
11807#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11808const _: () = {
11809    ["Size of _cef_select_client_certificate_callback_t"]
11810        [::std::mem::size_of::<_cef_select_client_certificate_callback_t>() - 48usize];
11811    ["Alignment of _cef_select_client_certificate_callback_t"]
11812        [::std::mem::align_of::<_cef_select_client_certificate_callback_t>() - 8usize];
11813    ["Offset of field: _cef_select_client_certificate_callback_t::base"]
11814        [::std::mem::offset_of!(_cef_select_client_certificate_callback_t, base) - 0usize];
11815    ["Offset of field: _cef_select_client_certificate_callback_t::select"]
11816        [::std::mem::offset_of!(_cef_select_client_certificate_callback_t, select) - 40usize];
11817};
11818#[doc = "\n Callback structure used to select a client certificate for authentication.\n\n NOTE: This struct is allocated DLL-side.\n"]
11819pub type cef_select_client_certificate_callback_t = _cef_select_client_certificate_callback_t;
11820#[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"]
11821#[repr(C)]
11822#[derive(Debug, Copy, Clone)]
11823pub struct _cef_request_handler_t {
11824    #[doc = "\n Base structure.\n"]
11825    pub base: cef_base_ref_counted_t,
11826    #[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"]
11827    pub on_before_browse: ::std::option::Option<
11828        unsafe extern "C" fn(
11829            self_: *mut _cef_request_handler_t,
11830            browser: *mut _cef_browser_t,
11831            frame: *mut _cef_frame_t,
11832            request: *mut _cef_request_t,
11833            user_gesture: ::std::os::raw::c_int,
11834            is_redirect: ::std::os::raw::c_int,
11835        ) -> ::std::os::raw::c_int,
11836    >,
11837    #[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"]
11838    pub on_open_urlfrom_tab: ::std::option::Option<
11839        unsafe extern "C" fn(
11840            self_: *mut _cef_request_handler_t,
11841            browser: *mut _cef_browser_t,
11842            frame: *mut _cef_frame_t,
11843            target_url: *const cef_string_t,
11844            target_disposition: cef_window_open_disposition_t,
11845            user_gesture: ::std::os::raw::c_int,
11846        ) -> ::std::os::raw::c_int,
11847    >,
11848    #[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"]
11849    pub get_resource_request_handler: ::std::option::Option<
11850        unsafe extern "C" fn(
11851            self_: *mut _cef_request_handler_t,
11852            browser: *mut _cef_browser_t,
11853            frame: *mut _cef_frame_t,
11854            request: *mut _cef_request_t,
11855            is_navigation: ::std::os::raw::c_int,
11856            is_download: ::std::os::raw::c_int,
11857            request_initiator: *const cef_string_t,
11858            disable_default_handling: *mut ::std::os::raw::c_int,
11859        ) -> *mut _cef_resource_request_handler_t,
11860    >,
11861    #[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"]
11862    pub get_auth_credentials: ::std::option::Option<
11863        unsafe extern "C" fn(
11864            self_: *mut _cef_request_handler_t,
11865            browser: *mut _cef_browser_t,
11866            origin_url: *const cef_string_t,
11867            isProxy: ::std::os::raw::c_int,
11868            host: *const cef_string_t,
11869            port: ::std::os::raw::c_int,
11870            realm: *const cef_string_t,
11871            scheme: *const cef_string_t,
11872            callback: *mut _cef_auth_callback_t,
11873        ) -> ::std::os::raw::c_int,
11874    >,
11875    #[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"]
11876    pub on_certificate_error: ::std::option::Option<
11877        unsafe extern "C" fn(
11878            self_: *mut _cef_request_handler_t,
11879            browser: *mut _cef_browser_t,
11880            cert_error: cef_errorcode_t,
11881            request_url: *const cef_string_t,
11882            ssl_info: *mut _cef_sslinfo_t,
11883            callback: *mut _cef_callback_t,
11884        ) -> ::std::os::raw::c_int,
11885    >,
11886    #[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"]
11887    pub on_select_client_certificate: ::std::option::Option<
11888        unsafe extern "C" fn(
11889            self_: *mut _cef_request_handler_t,
11890            browser: *mut _cef_browser_t,
11891            isProxy: ::std::os::raw::c_int,
11892            host: *const cef_string_t,
11893            port: ::std::os::raw::c_int,
11894            certificatesCount: usize,
11895            certificates: *const *mut _cef_x509_certificate_t,
11896            callback: *mut _cef_select_client_certificate_callback_t,
11897        ) -> ::std::os::raw::c_int,
11898    >,
11899    #[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"]
11900    pub on_render_view_ready: ::std::option::Option<
11901        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
11902    >,
11903    #[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 an\n indefinite wait with Alloy style or display of the \"Page unresponsive\"\n dialog with Chrome style. Return true (1) and don't execute the callback\n for an indefinite wait without display of the Chrome style dialog. Return\n true (1) and call cef_unresponsive_process_callback_t::Wait either in this\n function or at a later time to reset the wait timer, potentially\n triggering 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"]
11904    pub on_render_process_unresponsive: ::std::option::Option<
11905        unsafe extern "C" fn(
11906            self_: *mut _cef_request_handler_t,
11907            browser: *mut _cef_browser_t,
11908            callback: *mut _cef_unresponsive_process_callback_t,
11909        ) -> ::std::os::raw::c_int,
11910    >,
11911    #[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"]
11912    pub on_render_process_responsive: ::std::option::Option<
11913        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
11914    >,
11915    #[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"]
11916    pub on_render_process_terminated: ::std::option::Option<
11917        unsafe extern "C" fn(
11918            self_: *mut _cef_request_handler_t,
11919            browser: *mut _cef_browser_t,
11920            status: cef_termination_status_t,
11921            error_code: ::std::os::raw::c_int,
11922            error_string: *const cef_string_t,
11923        ),
11924    >,
11925    #[doc = "\n Called on the browser process UI thread when the window.document object of\n the main frame has been created.\n"]
11926    pub on_document_available_in_main_frame: ::std::option::Option<
11927        unsafe extern "C" fn(self_: *mut _cef_request_handler_t, browser: *mut _cef_browser_t),
11928    >,
11929}
11930#[allow(clippy::unnecessary_operation, clippy::identity_op)]
11931const _: () = {
11932    ["Size of _cef_request_handler_t"][::std::mem::size_of::<_cef_request_handler_t>() - 128usize];
11933    ["Alignment of _cef_request_handler_t"]
11934        [::std::mem::align_of::<_cef_request_handler_t>() - 8usize];
11935    ["Offset of field: _cef_request_handler_t::base"]
11936        [::std::mem::offset_of!(_cef_request_handler_t, base) - 0usize];
11937    ["Offset of field: _cef_request_handler_t::on_before_browse"]
11938        [::std::mem::offset_of!(_cef_request_handler_t, on_before_browse) - 40usize];
11939    ["Offset of field: _cef_request_handler_t::on_open_urlfrom_tab"]
11940        [::std::mem::offset_of!(_cef_request_handler_t, on_open_urlfrom_tab) - 48usize];
11941    ["Offset of field: _cef_request_handler_t::get_resource_request_handler"]
11942        [::std::mem::offset_of!(_cef_request_handler_t, get_resource_request_handler) - 56usize];
11943    ["Offset of field: _cef_request_handler_t::get_auth_credentials"]
11944        [::std::mem::offset_of!(_cef_request_handler_t, get_auth_credentials) - 64usize];
11945    ["Offset of field: _cef_request_handler_t::on_certificate_error"]
11946        [::std::mem::offset_of!(_cef_request_handler_t, on_certificate_error) - 72usize];
11947    ["Offset of field: _cef_request_handler_t::on_select_client_certificate"]
11948        [::std::mem::offset_of!(_cef_request_handler_t, on_select_client_certificate) - 80usize];
11949    ["Offset of field: _cef_request_handler_t::on_render_view_ready"]
11950        [::std::mem::offset_of!(_cef_request_handler_t, on_render_view_ready) - 88usize];
11951    ["Offset of field: _cef_request_handler_t::on_render_process_unresponsive"]
11952        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_unresponsive) - 96usize];
11953    ["Offset of field: _cef_request_handler_t::on_render_process_responsive"]
11954        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_responsive) - 104usize];
11955    ["Offset of field: _cef_request_handler_t::on_render_process_terminated"]
11956        [::std::mem::offset_of!(_cef_request_handler_t, on_render_process_terminated) - 112usize];
11957    ["Offset of field: _cef_request_handler_t::on_document_available_in_main_frame"][::std::mem::offset_of!(
11958        _cef_request_handler_t,
11959        on_document_available_in_main_frame
11960    ) - 120usize];
11961};
11962#[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"]
11963pub type cef_request_handler_t = _cef_request_handler_t;
11964#[doc = "\n Implement this structure to provide handler implementations.\n\n NOTE: This struct is allocated client-side.\n"]
11965#[repr(C)]
11966#[derive(Debug, Copy, Clone)]
11967pub struct _cef_client_t {
11968    #[doc = "\n Base structure.\n"]
11969    pub base: cef_base_ref_counted_t,
11970    #[doc = "\n Return the handler for audio rendering events.\n"]
11971    pub get_audio_handler: ::std::option::Option<
11972        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_audio_handler_t,
11973    >,
11974    #[doc = "\n Return the handler for commands. If no handler is provided the default\n implementation will be used.\n"]
11975    pub get_command_handler: ::std::option::Option<
11976        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_command_handler_t,
11977    >,
11978    #[doc = "\n Return the handler for context menus. If no handler is provided the\n default implementation will be used.\n"]
11979    pub get_context_menu_handler: ::std::option::Option<
11980        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_context_menu_handler_t,
11981    >,
11982    #[doc = "\n Return the handler for dialogs. If no handler is provided the default\n implementation will be used.\n"]
11983    pub get_dialog_handler: ::std::option::Option<
11984        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_dialog_handler_t,
11985    >,
11986    #[doc = "\n Return the handler for browser display state events.\n"]
11987    pub get_display_handler: ::std::option::Option<
11988        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_display_handler_t,
11989    >,
11990    #[doc = "\n Return the handler for download events. If no handler is returned\n downloads will not be allowed.\n"]
11991    pub get_download_handler: ::std::option::Option<
11992        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_download_handler_t,
11993    >,
11994    #[doc = "\n Return the handler for drag events.\n"]
11995    pub get_drag_handler: ::std::option::Option<
11996        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_drag_handler_t,
11997    >,
11998    #[doc = "\n Return the handler for find result events.\n"]
11999    pub get_find_handler: ::std::option::Option<
12000        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_find_handler_t,
12001    >,
12002    #[doc = "\n Return the handler for focus events.\n"]
12003    pub get_focus_handler: ::std::option::Option<
12004        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_focus_handler_t,
12005    >,
12006    #[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"]
12007    pub get_frame_handler: ::std::option::Option<
12008        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_frame_handler_t,
12009    >,
12010    #[doc = "\n Return the handler for permission requests.\n"]
12011    pub get_permission_handler: ::std::option::Option<
12012        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_permission_handler_t,
12013    >,
12014    #[doc = "\n Return the handler for JavaScript dialogs. If no handler is provided the\n default implementation will be used.\n"]
12015    pub get_jsdialog_handler: ::std::option::Option<
12016        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_jsdialog_handler_t,
12017    >,
12018    #[doc = "\n Return the handler for keyboard events.\n"]
12019    pub get_keyboard_handler: ::std::option::Option<
12020        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_keyboard_handler_t,
12021    >,
12022    #[doc = "\n Return the handler for browser life span events.\n"]
12023    pub get_life_span_handler: ::std::option::Option<
12024        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_life_span_handler_t,
12025    >,
12026    #[doc = "\n Return the handler for browser load status events.\n"]
12027    pub get_load_handler: ::std::option::Option<
12028        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_load_handler_t,
12029    >,
12030    #[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"]
12031    pub get_print_handler: ::std::option::Option<
12032        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_print_handler_t,
12033    >,
12034    #[doc = "\n Return the handler for off-screen rendering events.\n"]
12035    pub get_render_handler: ::std::option::Option<
12036        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_render_handler_t,
12037    >,
12038    #[doc = "\n Return the handler for browser request events.\n"]
12039    pub get_request_handler: ::std::option::Option<
12040        unsafe extern "C" fn(self_: *mut _cef_client_t) -> *mut _cef_request_handler_t,
12041    >,
12042    #[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"]
12043    pub on_process_message_received: ::std::option::Option<
12044        unsafe extern "C" fn(
12045            self_: *mut _cef_client_t,
12046            browser: *mut _cef_browser_t,
12047            frame: *mut _cef_frame_t,
12048            source_process: cef_process_id_t,
12049            message: *mut _cef_process_message_t,
12050        ) -> ::std::os::raw::c_int,
12051    >,
12052}
12053#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12054const _: () = {
12055    ["Size of _cef_client_t"][::std::mem::size_of::<_cef_client_t>() - 192usize];
12056    ["Alignment of _cef_client_t"][::std::mem::align_of::<_cef_client_t>() - 8usize];
12057    ["Offset of field: _cef_client_t::base"][::std::mem::offset_of!(_cef_client_t, base) - 0usize];
12058    ["Offset of field: _cef_client_t::get_audio_handler"]
12059        [::std::mem::offset_of!(_cef_client_t, get_audio_handler) - 40usize];
12060    ["Offset of field: _cef_client_t::get_command_handler"]
12061        [::std::mem::offset_of!(_cef_client_t, get_command_handler) - 48usize];
12062    ["Offset of field: _cef_client_t::get_context_menu_handler"]
12063        [::std::mem::offset_of!(_cef_client_t, get_context_menu_handler) - 56usize];
12064    ["Offset of field: _cef_client_t::get_dialog_handler"]
12065        [::std::mem::offset_of!(_cef_client_t, get_dialog_handler) - 64usize];
12066    ["Offset of field: _cef_client_t::get_display_handler"]
12067        [::std::mem::offset_of!(_cef_client_t, get_display_handler) - 72usize];
12068    ["Offset of field: _cef_client_t::get_download_handler"]
12069        [::std::mem::offset_of!(_cef_client_t, get_download_handler) - 80usize];
12070    ["Offset of field: _cef_client_t::get_drag_handler"]
12071        [::std::mem::offset_of!(_cef_client_t, get_drag_handler) - 88usize];
12072    ["Offset of field: _cef_client_t::get_find_handler"]
12073        [::std::mem::offset_of!(_cef_client_t, get_find_handler) - 96usize];
12074    ["Offset of field: _cef_client_t::get_focus_handler"]
12075        [::std::mem::offset_of!(_cef_client_t, get_focus_handler) - 104usize];
12076    ["Offset of field: _cef_client_t::get_frame_handler"]
12077        [::std::mem::offset_of!(_cef_client_t, get_frame_handler) - 112usize];
12078    ["Offset of field: _cef_client_t::get_permission_handler"]
12079        [::std::mem::offset_of!(_cef_client_t, get_permission_handler) - 120usize];
12080    ["Offset of field: _cef_client_t::get_jsdialog_handler"]
12081        [::std::mem::offset_of!(_cef_client_t, get_jsdialog_handler) - 128usize];
12082    ["Offset of field: _cef_client_t::get_keyboard_handler"]
12083        [::std::mem::offset_of!(_cef_client_t, get_keyboard_handler) - 136usize];
12084    ["Offset of field: _cef_client_t::get_life_span_handler"]
12085        [::std::mem::offset_of!(_cef_client_t, get_life_span_handler) - 144usize];
12086    ["Offset of field: _cef_client_t::get_load_handler"]
12087        [::std::mem::offset_of!(_cef_client_t, get_load_handler) - 152usize];
12088    ["Offset of field: _cef_client_t::get_print_handler"]
12089        [::std::mem::offset_of!(_cef_client_t, get_print_handler) - 160usize];
12090    ["Offset of field: _cef_client_t::get_render_handler"]
12091        [::std::mem::offset_of!(_cef_client_t, get_render_handler) - 168usize];
12092    ["Offset of field: _cef_client_t::get_request_handler"]
12093        [::std::mem::offset_of!(_cef_client_t, get_request_handler) - 176usize];
12094    ["Offset of field: _cef_client_t::on_process_message_received"]
12095        [::std::mem::offset_of!(_cef_client_t, on_process_message_received) - 184usize];
12096};
12097#[doc = "\n Implement this structure to provide handler implementations.\n\n NOTE: This struct is allocated client-side.\n"]
12098pub type cef_client_t = _cef_client_t;
12099#[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"]
12100#[repr(C)]
12101#[derive(Debug, Copy, Clone)]
12102pub struct _cef_command_line_t {
12103    #[doc = "\n Base structure.\n"]
12104    pub base: cef_base_ref_counted_t,
12105    #[doc = "\n Returns true (1) if this object is valid. Do not call any other functions\n if this function returns false (0).\n"]
12106    pub is_valid: ::std::option::Option<
12107        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12108    >,
12109    #[doc = "\n Returns true (1) if the values of this object are read-only. Some APIs may\n expose read-only objects.\n"]
12110    pub is_read_only: ::std::option::Option<
12111        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12112    >,
12113    #[doc = "\n Returns a writable copy of this object.\n"]
12114    pub copy: ::std::option::Option<
12115        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> *mut _cef_command_line_t,
12116    >,
12117    #[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"]
12118    pub init_from_argv: ::std::option::Option<
12119        unsafe extern "C" fn(
12120            self_: *mut _cef_command_line_t,
12121            argc: ::std::os::raw::c_int,
12122            argv: *const *const ::std::os::raw::c_char,
12123        ),
12124    >,
12125    #[doc = "\n Initialize the command line with the string returned by calling\n GetCommandLineW(). This function is only supported on Windows.\n"]
12126    pub init_from_string: ::std::option::Option<
12127        unsafe extern "C" fn(self_: *mut _cef_command_line_t, command_line: *const cef_string_t),
12128    >,
12129    #[doc = "\n Reset the command-line switches and arguments but leave the program\n component unchanged.\n"]
12130    pub reset: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_command_line_t)>,
12131    #[doc = "\n Retrieve the original command line string as a vector of strings. The argv\n array: `{ program, [(--|-|/)switch[=value]]*, [--], [argument]* }`\n"]
12132    pub get_argv: ::std::option::Option<
12133        unsafe extern "C" fn(self_: *mut _cef_command_line_t, argv: cef_string_list_t),
12134    >,
12135    #[doc = "\n Constructs and returns the represented command line string. Use this\n function cautiously because quoting behavior is unclear.\n"]
12136    pub get_command_line_string: ::std::option::Option<
12137        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> cef_string_userfree_t,
12138    >,
12139    #[doc = "\n Get the program part of the command line string (the first item).\n"]
12140    pub get_program: ::std::option::Option<
12141        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> cef_string_userfree_t,
12142    >,
12143    #[doc = "\n Set the program part of the command line string (the first item).\n"]
12144    pub set_program: ::std::option::Option<
12145        unsafe extern "C" fn(self_: *mut _cef_command_line_t, program: *const cef_string_t),
12146    >,
12147    #[doc = "\n Returns true (1) if the command line has switches.\n"]
12148    pub has_switches: ::std::option::Option<
12149        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12150    >,
12151    #[doc = "\n Returns true (1) if the command line contains the given switch.\n"]
12152    pub has_switch: ::std::option::Option<
12153        unsafe extern "C" fn(
12154            self_: *mut _cef_command_line_t,
12155            name: *const cef_string_t,
12156        ) -> ::std::os::raw::c_int,
12157    >,
12158    #[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"]
12159    pub get_switch_value: ::std::option::Option<
12160        unsafe extern "C" fn(
12161            self_: *mut _cef_command_line_t,
12162            name: *const cef_string_t,
12163        ) -> cef_string_userfree_t,
12164    >,
12165    #[doc = "\n Returns the map of switch names and values. If a switch has no value an\n NULL string is returned.\n"]
12166    pub get_switches: ::std::option::Option<
12167        unsafe extern "C" fn(self_: *mut _cef_command_line_t, switches: cef_string_map_t),
12168    >,
12169    #[doc = "\n Add a switch to the end of the command line.\n"]
12170    pub append_switch: ::std::option::Option<
12171        unsafe extern "C" fn(self_: *mut _cef_command_line_t, name: *const cef_string_t),
12172    >,
12173    #[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"]
12174    pub append_switch_with_value: ::std::option::Option<
12175        unsafe extern "C" fn(
12176            self_: *mut _cef_command_line_t,
12177            name: *const cef_string_t,
12178            value: *const cef_string_t,
12179        ),
12180    >,
12181    #[doc = "\n True if there are remaining command line arguments.\n"]
12182    pub has_arguments: ::std::option::Option<
12183        unsafe extern "C" fn(self_: *mut _cef_command_line_t) -> ::std::os::raw::c_int,
12184    >,
12185    #[doc = "\n Get the remaining command line arguments.\n"]
12186    pub get_arguments: ::std::option::Option<
12187        unsafe extern "C" fn(self_: *mut _cef_command_line_t, arguments: cef_string_list_t),
12188    >,
12189    #[doc = "\n Add an argument to the end of the command line.\n"]
12190    pub append_argument: ::std::option::Option<
12191        unsafe extern "C" fn(self_: *mut _cef_command_line_t, argument: *const cef_string_t),
12192    >,
12193    #[doc = "\n Insert a command before the current command. Common for debuggers, like\n \"valgrind\" or \"gdb --args\".\n"]
12194    pub prepend_wrapper: ::std::option::Option<
12195        unsafe extern "C" fn(self_: *mut _cef_command_line_t, wrapper: *const cef_string_t),
12196    >,
12197}
12198#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12199const _: () = {
12200    ["Size of _cef_command_line_t"][::std::mem::size_of::<_cef_command_line_t>() - 200usize];
12201    ["Alignment of _cef_command_line_t"][::std::mem::align_of::<_cef_command_line_t>() - 8usize];
12202    ["Offset of field: _cef_command_line_t::base"]
12203        [::std::mem::offset_of!(_cef_command_line_t, base) - 0usize];
12204    ["Offset of field: _cef_command_line_t::is_valid"]
12205        [::std::mem::offset_of!(_cef_command_line_t, is_valid) - 40usize];
12206    ["Offset of field: _cef_command_line_t::is_read_only"]
12207        [::std::mem::offset_of!(_cef_command_line_t, is_read_only) - 48usize];
12208    ["Offset of field: _cef_command_line_t::copy"]
12209        [::std::mem::offset_of!(_cef_command_line_t, copy) - 56usize];
12210    ["Offset of field: _cef_command_line_t::init_from_argv"]
12211        [::std::mem::offset_of!(_cef_command_line_t, init_from_argv) - 64usize];
12212    ["Offset of field: _cef_command_line_t::init_from_string"]
12213        [::std::mem::offset_of!(_cef_command_line_t, init_from_string) - 72usize];
12214    ["Offset of field: _cef_command_line_t::reset"]
12215        [::std::mem::offset_of!(_cef_command_line_t, reset) - 80usize];
12216    ["Offset of field: _cef_command_line_t::get_argv"]
12217        [::std::mem::offset_of!(_cef_command_line_t, get_argv) - 88usize];
12218    ["Offset of field: _cef_command_line_t::get_command_line_string"]
12219        [::std::mem::offset_of!(_cef_command_line_t, get_command_line_string) - 96usize];
12220    ["Offset of field: _cef_command_line_t::get_program"]
12221        [::std::mem::offset_of!(_cef_command_line_t, get_program) - 104usize];
12222    ["Offset of field: _cef_command_line_t::set_program"]
12223        [::std::mem::offset_of!(_cef_command_line_t, set_program) - 112usize];
12224    ["Offset of field: _cef_command_line_t::has_switches"]
12225        [::std::mem::offset_of!(_cef_command_line_t, has_switches) - 120usize];
12226    ["Offset of field: _cef_command_line_t::has_switch"]
12227        [::std::mem::offset_of!(_cef_command_line_t, has_switch) - 128usize];
12228    ["Offset of field: _cef_command_line_t::get_switch_value"]
12229        [::std::mem::offset_of!(_cef_command_line_t, get_switch_value) - 136usize];
12230    ["Offset of field: _cef_command_line_t::get_switches"]
12231        [::std::mem::offset_of!(_cef_command_line_t, get_switches) - 144usize];
12232    ["Offset of field: _cef_command_line_t::append_switch"]
12233        [::std::mem::offset_of!(_cef_command_line_t, append_switch) - 152usize];
12234    ["Offset of field: _cef_command_line_t::append_switch_with_value"]
12235        [::std::mem::offset_of!(_cef_command_line_t, append_switch_with_value) - 160usize];
12236    ["Offset of field: _cef_command_line_t::has_arguments"]
12237        [::std::mem::offset_of!(_cef_command_line_t, has_arguments) - 168usize];
12238    ["Offset of field: _cef_command_line_t::get_arguments"]
12239        [::std::mem::offset_of!(_cef_command_line_t, get_arguments) - 176usize];
12240    ["Offset of field: _cef_command_line_t::append_argument"]
12241        [::std::mem::offset_of!(_cef_command_line_t, append_argument) - 184usize];
12242    ["Offset of field: _cef_command_line_t::prepend_wrapper"]
12243        [::std::mem::offset_of!(_cef_command_line_t, prepend_wrapper) - 192usize];
12244};
12245#[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"]
12246pub type cef_command_line_t = _cef_command_line_t;
12247unsafe extern "C" {
12248    #[doc = "\n Create a new cef_command_line_t instance.\n"]
12249    pub fn cef_command_line_create() -> *mut cef_command_line_t;
12250}
12251unsafe extern "C" {
12252    #[doc = "\n Returns the singleton global cef_command_line_t object. The returned object\n will be read-only.\n"]
12253    pub fn cef_command_line_get_global() -> *mut cef_command_line_t;
12254}
12255#[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"]
12256#[repr(C)]
12257#[derive(Debug, Copy, Clone)]
12258pub struct _cef_request_context_handler_t {
12259    #[doc = "\n Base structure.\n"]
12260    pub base: cef_base_ref_counted_t,
12261    #[doc = "\n Called on the browser process UI thread immediately after the request\n context has been initialized.\n"]
12262    pub on_request_context_initialized: ::std::option::Option<
12263        unsafe extern "C" fn(
12264            self_: *mut _cef_request_context_handler_t,
12265            request_context: *mut _cef_request_context_t,
12266        ),
12267    >,
12268    #[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"]
12269    pub get_resource_request_handler: ::std::option::Option<
12270        unsafe extern "C" fn(
12271            self_: *mut _cef_request_context_handler_t,
12272            browser: *mut _cef_browser_t,
12273            frame: *mut _cef_frame_t,
12274            request: *mut _cef_request_t,
12275            is_navigation: ::std::os::raw::c_int,
12276            is_download: ::std::os::raw::c_int,
12277            request_initiator: *const cef_string_t,
12278            disable_default_handling: *mut ::std::os::raw::c_int,
12279        ) -> *mut _cef_resource_request_handler_t,
12280    >,
12281}
12282#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12283const _: () = {
12284    ["Size of _cef_request_context_handler_t"]
12285        [::std::mem::size_of::<_cef_request_context_handler_t>() - 56usize];
12286    ["Alignment of _cef_request_context_handler_t"]
12287        [::std::mem::align_of::<_cef_request_context_handler_t>() - 8usize];
12288    ["Offset of field: _cef_request_context_handler_t::base"]
12289        [::std::mem::offset_of!(_cef_request_context_handler_t, base) - 0usize];
12290    ["Offset of field: _cef_request_context_handler_t::on_request_context_initialized"][::std::mem::offset_of!(
12291        _cef_request_context_handler_t,
12292        on_request_context_initialized
12293    )
12294        - 40usize];
12295    ["Offset of field: _cef_request_context_handler_t::get_resource_request_handler"][::std::mem::offset_of!(
12296        _cef_request_context_handler_t,
12297        get_resource_request_handler
12298    ) - 48usize];
12299};
12300#[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"]
12301pub type cef_request_context_handler_t = _cef_request_context_handler_t;
12302#[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"]
12303#[repr(C)]
12304#[derive(Debug, Copy, Clone)]
12305pub struct _cef_browser_process_handler_t {
12306    #[doc = "\n Base structure.\n"]
12307    pub base: cef_base_ref_counted_t,
12308    #[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"]
12309    pub on_register_custom_preferences: ::std::option::Option<
12310        unsafe extern "C" fn(
12311            self_: *mut _cef_browser_process_handler_t,
12312            type_: cef_preferences_type_t,
12313            registrar: *mut _cef_preference_registrar_t,
12314        ),
12315    >,
12316    #[doc = "\n Called on the browser process UI thread immediately after the CEF context\n has been initialized.\n"]
12317    pub on_context_initialized:
12318        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t)>,
12319    #[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"]
12320    pub on_before_child_process_launch: ::std::option::Option<
12321        unsafe extern "C" fn(
12322            self_: *mut _cef_browser_process_handler_t,
12323            command_line: *mut _cef_command_line_t,
12324        ),
12325    >,
12326    #[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"]
12327    pub on_already_running_app_relaunch: ::std::option::Option<
12328        unsafe extern "C" fn(
12329            self_: *mut _cef_browser_process_handler_t,
12330            command_line: *mut _cef_command_line_t,
12331            current_directory: *const cef_string_t,
12332        ) -> ::std::os::raw::c_int,
12333    >,
12334    #[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"]
12335    pub on_schedule_message_pump_work: ::std::option::Option<
12336        unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t, delay_ms: i64),
12337    >,
12338    #[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"]
12339    pub get_default_client: ::std::option::Option<
12340        unsafe extern "C" fn(self_: *mut _cef_browser_process_handler_t) -> *mut _cef_client_t,
12341    >,
12342    #[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"]
12343    pub get_default_request_context_handler: ::std::option::Option<
12344        unsafe extern "C" fn(
12345            self_: *mut _cef_browser_process_handler_t,
12346        ) -> *mut _cef_request_context_handler_t,
12347    >,
12348}
12349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12350const _: () = {
12351    ["Size of _cef_browser_process_handler_t"]
12352        [::std::mem::size_of::<_cef_browser_process_handler_t>() - 96usize];
12353    ["Alignment of _cef_browser_process_handler_t"]
12354        [::std::mem::align_of::<_cef_browser_process_handler_t>() - 8usize];
12355    ["Offset of field: _cef_browser_process_handler_t::base"]
12356        [::std::mem::offset_of!(_cef_browser_process_handler_t, base) - 0usize];
12357    ["Offset of field: _cef_browser_process_handler_t::on_register_custom_preferences"][::std::mem::offset_of!(
12358        _cef_browser_process_handler_t,
12359        on_register_custom_preferences
12360    )
12361        - 40usize];
12362    ["Offset of field: _cef_browser_process_handler_t::on_context_initialized"]
12363        [::std::mem::offset_of!(_cef_browser_process_handler_t, on_context_initialized) - 48usize];
12364    ["Offset of field: _cef_browser_process_handler_t::on_before_child_process_launch"][::std::mem::offset_of!(
12365        _cef_browser_process_handler_t,
12366        on_before_child_process_launch
12367    )
12368        - 56usize];
12369    ["Offset of field: _cef_browser_process_handler_t::on_already_running_app_relaunch"][::std::mem::offset_of!(
12370        _cef_browser_process_handler_t,
12371        on_already_running_app_relaunch
12372    )
12373        - 64usize];
12374    ["Offset of field: _cef_browser_process_handler_t::on_schedule_message_pump_work"][::std::mem::offset_of!(
12375        _cef_browser_process_handler_t,
12376        on_schedule_message_pump_work
12377    ) - 72usize];
12378    ["Offset of field: _cef_browser_process_handler_t::get_default_client"]
12379        [::std::mem::offset_of!(_cef_browser_process_handler_t, get_default_client) - 80usize];
12380    ["Offset of field: _cef_browser_process_handler_t::get_default_request_context_handler"][::std::mem::offset_of!(
12381        _cef_browser_process_handler_t,
12382        get_default_request_context_handler
12383    )
12384        - 88usize];
12385};
12386#[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"]
12387pub type cef_browser_process_handler_t = _cef_browser_process_handler_t;
12388#[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"]
12389#[repr(C)]
12390#[derive(Debug, Copy, Clone)]
12391pub struct _cef_task_t {
12392    #[doc = "\n Base structure.\n"]
12393    pub base: cef_base_ref_counted_t,
12394    #[doc = "\n Method that will be executed on the target thread.\n"]
12395    pub execute: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_task_t)>,
12396}
12397#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12398const _: () = {
12399    ["Size of _cef_task_t"][::std::mem::size_of::<_cef_task_t>() - 48usize];
12400    ["Alignment of _cef_task_t"][::std::mem::align_of::<_cef_task_t>() - 8usize];
12401    ["Offset of field: _cef_task_t::base"][::std::mem::offset_of!(_cef_task_t, base) - 0usize];
12402    ["Offset of field: _cef_task_t::execute"]
12403        [::std::mem::offset_of!(_cef_task_t, execute) - 40usize];
12404};
12405#[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"]
12406pub type cef_task_t = _cef_task_t;
12407#[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"]
12408#[repr(C)]
12409#[derive(Debug, Copy, Clone)]
12410pub struct _cef_task_runner_t {
12411    #[doc = "\n Base structure.\n"]
12412    pub base: cef_base_ref_counted_t,
12413    #[doc = "\n Returns true (1) if this object is pointing to the same task runner as\n |that| object.\n"]
12414    pub is_same: ::std::option::Option<
12415        unsafe extern "C" fn(
12416            self_: *mut _cef_task_runner_t,
12417            that: *mut _cef_task_runner_t,
12418        ) -> ::std::os::raw::c_int,
12419    >,
12420    #[doc = "\n Returns true (1) if this task runner belongs to the current thread.\n"]
12421    pub belongs_to_current_thread: ::std::option::Option<
12422        unsafe extern "C" fn(self_: *mut _cef_task_runner_t) -> ::std::os::raw::c_int,
12423    >,
12424    #[doc = "\n Returns true (1) if this task runner is for the specified CEF thread.\n"]
12425    pub belongs_to_thread: ::std::option::Option<
12426        unsafe extern "C" fn(
12427            self_: *mut _cef_task_runner_t,
12428            threadId: cef_thread_id_t,
12429        ) -> ::std::os::raw::c_int,
12430    >,
12431    #[doc = "\n Post a task for execution on the thread associated with this task runner.\n Execution will occur asynchronously.\n"]
12432    pub post_task: ::std::option::Option<
12433        unsafe extern "C" fn(
12434            self_: *mut _cef_task_runner_t,
12435            task: *mut _cef_task_t,
12436        ) -> ::std::os::raw::c_int,
12437    >,
12438    #[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"]
12439    pub post_delayed_task: ::std::option::Option<
12440        unsafe extern "C" fn(
12441            self_: *mut _cef_task_runner_t,
12442            task: *mut _cef_task_t,
12443            delay_ms: i64,
12444        ) -> ::std::os::raw::c_int,
12445    >,
12446}
12447#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12448const _: () = {
12449    ["Size of _cef_task_runner_t"][::std::mem::size_of::<_cef_task_runner_t>() - 80usize];
12450    ["Alignment of _cef_task_runner_t"][::std::mem::align_of::<_cef_task_runner_t>() - 8usize];
12451    ["Offset of field: _cef_task_runner_t::base"]
12452        [::std::mem::offset_of!(_cef_task_runner_t, base) - 0usize];
12453    ["Offset of field: _cef_task_runner_t::is_same"]
12454        [::std::mem::offset_of!(_cef_task_runner_t, is_same) - 40usize];
12455    ["Offset of field: _cef_task_runner_t::belongs_to_current_thread"]
12456        [::std::mem::offset_of!(_cef_task_runner_t, belongs_to_current_thread) - 48usize];
12457    ["Offset of field: _cef_task_runner_t::belongs_to_thread"]
12458        [::std::mem::offset_of!(_cef_task_runner_t, belongs_to_thread) - 56usize];
12459    ["Offset of field: _cef_task_runner_t::post_task"]
12460        [::std::mem::offset_of!(_cef_task_runner_t, post_task) - 64usize];
12461    ["Offset of field: _cef_task_runner_t::post_delayed_task"]
12462        [::std::mem::offset_of!(_cef_task_runner_t, post_delayed_task) - 72usize];
12463};
12464#[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"]
12465pub type cef_task_runner_t = _cef_task_runner_t;
12466unsafe extern "C" {
12467    #[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"]
12468    pub fn cef_task_runner_get_for_current_thread() -> *mut cef_task_runner_t;
12469}
12470unsafe extern "C" {
12471    #[doc = "\n Returns the task runner for the specified CEF thread.\n"]
12472    pub fn cef_task_runner_get_for_thread(threadId: cef_thread_id_t) -> *mut cef_task_runner_t;
12473}
12474unsafe extern "C" {
12475    #[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"]
12476    pub fn cef_currently_on(threadId: cef_thread_id_t) -> ::std::os::raw::c_int;
12477}
12478unsafe extern "C" {
12479    #[doc = "\n Post a task for execution on the specified thread. Equivalent to using\n cef_task_runner_t::GetForThread(threadId)->PostTask(task).\n"]
12480    pub fn cef_post_task(threadId: cef_thread_id_t, task: *mut cef_task_t)
12481        -> ::std::os::raw::c_int;
12482}
12483unsafe extern "C" {
12484    #[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"]
12485    pub fn cef_post_delayed_task(
12486        threadId: cef_thread_id_t,
12487        task: *mut cef_task_t,
12488        delay_ms: i64,
12489    ) -> ::std::os::raw::c_int;
12490}
12491#[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"]
12492#[repr(C)]
12493#[derive(Debug, Copy, Clone)]
12494pub struct _cef_v8_context_t {
12495    #[doc = "\n Base structure.\n"]
12496    pub base: cef_base_ref_counted_t,
12497    #[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"]
12498    pub get_task_runner: ::std::option::Option<
12499        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_task_runner_t,
12500    >,
12501    #[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"]
12502    pub is_valid: ::std::option::Option<
12503        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12504    >,
12505    #[doc = "\n Returns the browser for this context. This function will return an NULL\n reference for WebWorker contexts.\n"]
12506    pub get_browser: ::std::option::Option<
12507        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_browser_t,
12508    >,
12509    #[doc = "\n Returns the frame for this context. This function will return an NULL\n reference for WebWorker contexts.\n"]
12510    pub get_frame: ::std::option::Option<
12511        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_frame_t,
12512    >,
12513    #[doc = "\n Returns the global object for this context. The context must be entered\n before calling this function.\n"]
12514    pub get_global: ::std::option::Option<
12515        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> *mut _cef_v8_value_t,
12516    >,
12517    #[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"]
12518    pub enter: ::std::option::Option<
12519        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12520    >,
12521    #[doc = "\n Exit this context. Call this function only after calling enter(). Returns\n true (1) if the scope was exited successfully.\n"]
12522    pub exit: ::std::option::Option<
12523        unsafe extern "C" fn(self_: *mut _cef_v8_context_t) -> ::std::os::raw::c_int,
12524    >,
12525    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
12526    pub is_same: ::std::option::Option<
12527        unsafe extern "C" fn(
12528            self_: *mut _cef_v8_context_t,
12529            that: *mut _cef_v8_context_t,
12530        ) -> ::std::os::raw::c_int,
12531    >,
12532    #[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"]
12533    pub eval: ::std::option::Option<
12534        unsafe extern "C" fn(
12535            self_: *mut _cef_v8_context_t,
12536            code: *const cef_string_t,
12537            script_url: *const cef_string_t,
12538            start_line: ::std::os::raw::c_int,
12539            retval: *mut *mut _cef_v8_value_t,
12540            exception: *mut *mut _cef_v8_exception_t,
12541        ) -> ::std::os::raw::c_int,
12542    >,
12543}
12544#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12545const _: () = {
12546    ["Size of _cef_v8_context_t"][::std::mem::size_of::<_cef_v8_context_t>() - 112usize];
12547    ["Alignment of _cef_v8_context_t"][::std::mem::align_of::<_cef_v8_context_t>() - 8usize];
12548    ["Offset of field: _cef_v8_context_t::base"]
12549        [::std::mem::offset_of!(_cef_v8_context_t, base) - 0usize];
12550    ["Offset of field: _cef_v8_context_t::get_task_runner"]
12551        [::std::mem::offset_of!(_cef_v8_context_t, get_task_runner) - 40usize];
12552    ["Offset of field: _cef_v8_context_t::is_valid"]
12553        [::std::mem::offset_of!(_cef_v8_context_t, is_valid) - 48usize];
12554    ["Offset of field: _cef_v8_context_t::get_browser"]
12555        [::std::mem::offset_of!(_cef_v8_context_t, get_browser) - 56usize];
12556    ["Offset of field: _cef_v8_context_t::get_frame"]
12557        [::std::mem::offset_of!(_cef_v8_context_t, get_frame) - 64usize];
12558    ["Offset of field: _cef_v8_context_t::get_global"]
12559        [::std::mem::offset_of!(_cef_v8_context_t, get_global) - 72usize];
12560    ["Offset of field: _cef_v8_context_t::enter"]
12561        [::std::mem::offset_of!(_cef_v8_context_t, enter) - 80usize];
12562    ["Offset of field: _cef_v8_context_t::exit"]
12563        [::std::mem::offset_of!(_cef_v8_context_t, exit) - 88usize];
12564    ["Offset of field: _cef_v8_context_t::is_same"]
12565        [::std::mem::offset_of!(_cef_v8_context_t, is_same) - 96usize];
12566    ["Offset of field: _cef_v8_context_t::eval"]
12567        [::std::mem::offset_of!(_cef_v8_context_t, eval) - 104usize];
12568};
12569#[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"]
12570pub type cef_v8_context_t = _cef_v8_context_t;
12571unsafe extern "C" {
12572    #[doc = "\n Returns the current (top) context object in the V8 context stack.\n"]
12573    pub fn cef_v8_context_get_current_context() -> *mut cef_v8_context_t;
12574}
12575unsafe extern "C" {
12576    #[doc = "\n Returns the entered (bottom) context object in the V8 context stack.\n"]
12577    pub fn cef_v8_context_get_entered_context() -> *mut cef_v8_context_t;
12578}
12579unsafe extern "C" {
12580    #[doc = "\n Returns true (1) if V8 is currently inside a context.\n"]
12581    pub fn cef_v8_context_in_context() -> ::std::os::raw::c_int;
12582}
12583#[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"]
12584#[repr(C)]
12585#[derive(Debug, Copy, Clone)]
12586pub struct _cef_v8_handler_t {
12587    #[doc = "\n Base structure.\n"]
12588    pub base: cef_base_ref_counted_t,
12589    #[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"]
12590    pub execute: ::std::option::Option<
12591        unsafe extern "C" fn(
12592            self_: *mut _cef_v8_handler_t,
12593            name: *const cef_string_t,
12594            object: *mut _cef_v8_value_t,
12595            argumentsCount: usize,
12596            arguments: *const *mut _cef_v8_value_t,
12597            retval: *mut *mut _cef_v8_value_t,
12598            exception: *mut cef_string_t,
12599        ) -> ::std::os::raw::c_int,
12600    >,
12601}
12602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12603const _: () = {
12604    ["Size of _cef_v8_handler_t"][::std::mem::size_of::<_cef_v8_handler_t>() - 48usize];
12605    ["Alignment of _cef_v8_handler_t"][::std::mem::align_of::<_cef_v8_handler_t>() - 8usize];
12606    ["Offset of field: _cef_v8_handler_t::base"]
12607        [::std::mem::offset_of!(_cef_v8_handler_t, base) - 0usize];
12608    ["Offset of field: _cef_v8_handler_t::execute"]
12609        [::std::mem::offset_of!(_cef_v8_handler_t, execute) - 40usize];
12610};
12611#[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"]
12612pub type cef_v8_handler_t = _cef_v8_handler_t;
12613#[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"]
12614#[repr(C)]
12615#[derive(Debug, Copy, Clone)]
12616pub struct _cef_v8_accessor_t {
12617    #[doc = "\n Base structure.\n"]
12618    pub base: cef_base_ref_counted_t,
12619    #[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"]
12620    pub get: ::std::option::Option<
12621        unsafe extern "C" fn(
12622            self_: *mut _cef_v8_accessor_t,
12623            name: *const cef_string_t,
12624            object: *mut _cef_v8_value_t,
12625            retval: *mut *mut _cef_v8_value_t,
12626            exception: *mut cef_string_t,
12627        ) -> ::std::os::raw::c_int,
12628    >,
12629    #[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"]
12630    pub set: ::std::option::Option<
12631        unsafe extern "C" fn(
12632            self_: *mut _cef_v8_accessor_t,
12633            name: *const cef_string_t,
12634            object: *mut _cef_v8_value_t,
12635            value: *mut _cef_v8_value_t,
12636            exception: *mut cef_string_t,
12637        ) -> ::std::os::raw::c_int,
12638    >,
12639}
12640#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12641const _: () = {
12642    ["Size of _cef_v8_accessor_t"][::std::mem::size_of::<_cef_v8_accessor_t>() - 56usize];
12643    ["Alignment of _cef_v8_accessor_t"][::std::mem::align_of::<_cef_v8_accessor_t>() - 8usize];
12644    ["Offset of field: _cef_v8_accessor_t::base"]
12645        [::std::mem::offset_of!(_cef_v8_accessor_t, base) - 0usize];
12646    ["Offset of field: _cef_v8_accessor_t::get"]
12647        [::std::mem::offset_of!(_cef_v8_accessor_t, get) - 40usize];
12648    ["Offset of field: _cef_v8_accessor_t::set"]
12649        [::std::mem::offset_of!(_cef_v8_accessor_t, set) - 48usize];
12650};
12651#[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"]
12652pub type cef_v8_accessor_t = _cef_v8_accessor_t;
12653#[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"]
12654#[repr(C)]
12655#[derive(Debug, Copy, Clone)]
12656pub struct _cef_v8_interceptor_t {
12657    #[doc = "\n Base structure.\n"]
12658    pub base: cef_base_ref_counted_t,
12659    #[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"]
12660    pub get_byname: ::std::option::Option<
12661        unsafe extern "C" fn(
12662            self_: *mut _cef_v8_interceptor_t,
12663            name: *const cef_string_t,
12664            object: *mut _cef_v8_value_t,
12665            retval: *mut *mut _cef_v8_value_t,
12666            exception: *mut cef_string_t,
12667        ) -> ::std::os::raw::c_int,
12668    >,
12669    #[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"]
12670    pub get_byindex: ::std::option::Option<
12671        unsafe extern "C" fn(
12672            self_: *mut _cef_v8_interceptor_t,
12673            index: ::std::os::raw::c_int,
12674            object: *mut _cef_v8_value_t,
12675            retval: *mut *mut _cef_v8_value_t,
12676            exception: *mut cef_string_t,
12677        ) -> ::std::os::raw::c_int,
12678    >,
12679    #[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"]
12680    pub set_byname: ::std::option::Option<
12681        unsafe extern "C" fn(
12682            self_: *mut _cef_v8_interceptor_t,
12683            name: *const cef_string_t,
12684            object: *mut _cef_v8_value_t,
12685            value: *mut _cef_v8_value_t,
12686            exception: *mut cef_string_t,
12687        ) -> ::std::os::raw::c_int,
12688    >,
12689    #[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"]
12690    pub set_byindex: ::std::option::Option<
12691        unsafe extern "C" fn(
12692            self_: *mut _cef_v8_interceptor_t,
12693            index: ::std::os::raw::c_int,
12694            object: *mut _cef_v8_value_t,
12695            value: *mut _cef_v8_value_t,
12696            exception: *mut cef_string_t,
12697        ) -> ::std::os::raw::c_int,
12698    >,
12699}
12700#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12701const _: () = {
12702    ["Size of _cef_v8_interceptor_t"][::std::mem::size_of::<_cef_v8_interceptor_t>() - 72usize];
12703    ["Alignment of _cef_v8_interceptor_t"]
12704        [::std::mem::align_of::<_cef_v8_interceptor_t>() - 8usize];
12705    ["Offset of field: _cef_v8_interceptor_t::base"]
12706        [::std::mem::offset_of!(_cef_v8_interceptor_t, base) - 0usize];
12707    ["Offset of field: _cef_v8_interceptor_t::get_byname"]
12708        [::std::mem::offset_of!(_cef_v8_interceptor_t, get_byname) - 40usize];
12709    ["Offset of field: _cef_v8_interceptor_t::get_byindex"]
12710        [::std::mem::offset_of!(_cef_v8_interceptor_t, get_byindex) - 48usize];
12711    ["Offset of field: _cef_v8_interceptor_t::set_byname"]
12712        [::std::mem::offset_of!(_cef_v8_interceptor_t, set_byname) - 56usize];
12713    ["Offset of field: _cef_v8_interceptor_t::set_byindex"]
12714        [::std::mem::offset_of!(_cef_v8_interceptor_t, set_byindex) - 64usize];
12715};
12716#[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"]
12717pub type cef_v8_interceptor_t = _cef_v8_interceptor_t;
12718#[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"]
12719#[repr(C)]
12720#[derive(Debug, Copy, Clone)]
12721pub struct _cef_v8_exception_t {
12722    #[doc = "\n Base structure.\n"]
12723    pub base: cef_base_ref_counted_t,
12724    #[doc = "\n Returns the exception message.\n"]
12725    pub get_message: ::std::option::Option<
12726        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
12727    >,
12728    #[doc = "\n Returns the line of source code that the exception occurred within.\n"]
12729    pub get_source_line: ::std::option::Option<
12730        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
12731    >,
12732    #[doc = "\n Returns the resource name for the script from where the function causing\n the error originates.\n"]
12733    pub get_script_resource_name: ::std::option::Option<
12734        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> cef_string_userfree_t,
12735    >,
12736    #[doc = "\n Returns the 1-based number of the line where the error occurred or 0 if\n the line number is unknown.\n"]
12737    pub get_line_number: ::std::option::Option<
12738        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
12739    >,
12740    #[doc = "\n Returns the index within the script of the first character where the error\n occurred.\n"]
12741    pub get_start_position: ::std::option::Option<
12742        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
12743    >,
12744    #[doc = "\n Returns the index within the script of the last character where the error\n occurred.\n"]
12745    pub get_end_position: ::std::option::Option<
12746        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
12747    >,
12748    #[doc = "\n Returns the index within the line of the first character where the error\n occurred.\n"]
12749    pub get_start_column: ::std::option::Option<
12750        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
12751    >,
12752    #[doc = "\n Returns the index within the line of the last character where the error\n occurred.\n"]
12753    pub get_end_column: ::std::option::Option<
12754        unsafe extern "C" fn(self_: *mut _cef_v8_exception_t) -> ::std::os::raw::c_int,
12755    >,
12756}
12757#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12758const _: () = {
12759    ["Size of _cef_v8_exception_t"][::std::mem::size_of::<_cef_v8_exception_t>() - 104usize];
12760    ["Alignment of _cef_v8_exception_t"][::std::mem::align_of::<_cef_v8_exception_t>() - 8usize];
12761    ["Offset of field: _cef_v8_exception_t::base"]
12762        [::std::mem::offset_of!(_cef_v8_exception_t, base) - 0usize];
12763    ["Offset of field: _cef_v8_exception_t::get_message"]
12764        [::std::mem::offset_of!(_cef_v8_exception_t, get_message) - 40usize];
12765    ["Offset of field: _cef_v8_exception_t::get_source_line"]
12766        [::std::mem::offset_of!(_cef_v8_exception_t, get_source_line) - 48usize];
12767    ["Offset of field: _cef_v8_exception_t::get_script_resource_name"]
12768        [::std::mem::offset_of!(_cef_v8_exception_t, get_script_resource_name) - 56usize];
12769    ["Offset of field: _cef_v8_exception_t::get_line_number"]
12770        [::std::mem::offset_of!(_cef_v8_exception_t, get_line_number) - 64usize];
12771    ["Offset of field: _cef_v8_exception_t::get_start_position"]
12772        [::std::mem::offset_of!(_cef_v8_exception_t, get_start_position) - 72usize];
12773    ["Offset of field: _cef_v8_exception_t::get_end_position"]
12774        [::std::mem::offset_of!(_cef_v8_exception_t, get_end_position) - 80usize];
12775    ["Offset of field: _cef_v8_exception_t::get_start_column"]
12776        [::std::mem::offset_of!(_cef_v8_exception_t, get_start_column) - 88usize];
12777    ["Offset of field: _cef_v8_exception_t::get_end_column"]
12778        [::std::mem::offset_of!(_cef_v8_exception_t, get_end_column) - 96usize];
12779};
12780#[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"]
12781pub type cef_v8_exception_t = _cef_v8_exception_t;
12782#[doc = "\n Callback structure that is passed to cef_v8_value_t::CreateArrayBuffer.\n\n NOTE: This struct is allocated client-side.\n"]
12783#[repr(C)]
12784#[derive(Debug, Copy, Clone)]
12785pub struct _cef_v8_array_buffer_release_callback_t {
12786    #[doc = "\n Base structure.\n"]
12787    pub base: cef_base_ref_counted_t,
12788    #[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"]
12789    pub release_buffer: ::std::option::Option<
12790        unsafe extern "C" fn(
12791            self_: *mut _cef_v8_array_buffer_release_callback_t,
12792            buffer: *mut ::std::os::raw::c_void,
12793        ),
12794    >,
12795}
12796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
12797const _: () = {
12798    ["Size of _cef_v8_array_buffer_release_callback_t"]
12799        [::std::mem::size_of::<_cef_v8_array_buffer_release_callback_t>() - 48usize];
12800    ["Alignment of _cef_v8_array_buffer_release_callback_t"]
12801        [::std::mem::align_of::<_cef_v8_array_buffer_release_callback_t>() - 8usize];
12802    ["Offset of field: _cef_v8_array_buffer_release_callback_t::base"]
12803        [::std::mem::offset_of!(_cef_v8_array_buffer_release_callback_t, base) - 0usize];
12804    ["Offset of field: _cef_v8_array_buffer_release_callback_t::release_buffer"]
12805        [::std::mem::offset_of!(_cef_v8_array_buffer_release_callback_t, release_buffer) - 40usize];
12806};
12807#[doc = "\n Callback structure that is passed to cef_v8_value_t::CreateArrayBuffer.\n\n NOTE: This struct is allocated client-side.\n"]
12808pub type cef_v8_array_buffer_release_callback_t = _cef_v8_array_buffer_release_callback_t;
12809#[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"]
12810#[repr(C)]
12811#[derive(Debug, Copy, Clone)]
12812pub struct _cef_v8_value_t {
12813    #[doc = "\n Base structure.\n"]
12814    pub base: cef_base_ref_counted_t,
12815    #[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"]
12816    pub is_valid: ::std::option::Option<
12817        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12818    >,
12819    #[doc = "\n True if the value type is undefined.\n"]
12820    pub is_undefined: ::std::option::Option<
12821        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12822    >,
12823    #[doc = "\n True if the value type is null.\n"]
12824    pub is_null: ::std::option::Option<
12825        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12826    >,
12827    #[doc = "\n True if the value type is bool.\n"]
12828    pub is_bool: ::std::option::Option<
12829        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12830    >,
12831    #[doc = "\n True if the value type is int.\n"]
12832    pub is_int: ::std::option::Option<
12833        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12834    >,
12835    #[doc = "\n True if the value type is unsigned int.\n"]
12836    pub is_uint: ::std::option::Option<
12837        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12838    >,
12839    #[doc = "\n True if the value type is double.\n"]
12840    pub is_double: ::std::option::Option<
12841        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12842    >,
12843    #[doc = "\n True if the value type is Date.\n"]
12844    pub is_date: ::std::option::Option<
12845        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12846    >,
12847    #[doc = "\n True if the value type is string.\n"]
12848    pub is_string: ::std::option::Option<
12849        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12850    >,
12851    #[doc = "\n True if the value type is object.\n"]
12852    pub is_object: ::std::option::Option<
12853        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12854    >,
12855    #[doc = "\n True if the value type is array.\n"]
12856    pub is_array: ::std::option::Option<
12857        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12858    >,
12859    #[doc = "\n True if the value type is an ArrayBuffer.\n"]
12860    pub is_array_buffer: ::std::option::Option<
12861        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12862    >,
12863    #[doc = "\n True if the value type is function.\n"]
12864    pub is_function: ::std::option::Option<
12865        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12866    >,
12867    #[doc = "\n True if the value type is a Promise.\n"]
12868    pub is_promise: ::std::option::Option<
12869        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12870    >,
12871    #[doc = "\n Returns true (1) if this object is pointing to the same handle as |that|\n object.\n"]
12872    pub is_same: ::std::option::Option<
12873        unsafe extern "C" fn(
12874            self_: *mut _cef_v8_value_t,
12875            that: *mut _cef_v8_value_t,
12876        ) -> ::std::os::raw::c_int,
12877    >,
12878    #[doc = "\n Return a bool value.\n"]
12879    pub get_bool_value: ::std::option::Option<
12880        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12881    >,
12882    #[doc = "\n Return an int value.\n"]
12883    pub get_int_value:
12884        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> i32>,
12885    #[doc = "\n Return an unsigned int value.\n"]
12886    pub get_uint_value:
12887        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> u32>,
12888    #[doc = "\n Return a double value.\n"]
12889    pub get_double_value:
12890        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> f64>,
12891    #[doc = "\n Return a Date value.\n"]
12892    pub get_date_value:
12893        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_basetime_t>,
12894    #[doc = "\n Return a string value.\n"]
12895    pub get_string_value: ::std::option::Option<
12896        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_string_userfree_t,
12897    >,
12898    #[doc = "\n Returns true (1) if this is a user created object.\n"]
12899    pub is_user_created: ::std::option::Option<
12900        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12901    >,
12902    #[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"]
12903    pub has_exception: ::std::option::Option<
12904        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12905    >,
12906    #[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"]
12907    pub get_exception: ::std::option::Option<
12908        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_v8_exception_t,
12909    >,
12910    #[doc = "\n Clears the last exception and returns true (1) on success.\n"]
12911    pub clear_exception: ::std::option::Option<
12912        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12913    >,
12914    #[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"]
12915    pub will_rethrow_exceptions: ::std::option::Option<
12916        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
12917    >,
12918    #[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"]
12919    pub set_rethrow_exceptions: ::std::option::Option<
12920        unsafe extern "C" fn(
12921            self_: *mut _cef_v8_value_t,
12922            rethrow: ::std::os::raw::c_int,
12923        ) -> ::std::os::raw::c_int,
12924    >,
12925    #[doc = "\n Returns true (1) if the object has a value with the specified identifier.\n"]
12926    pub has_value_bykey: ::std::option::Option<
12927        unsafe extern "C" fn(
12928            self_: *mut _cef_v8_value_t,
12929            key: *const cef_string_t,
12930        ) -> ::std::os::raw::c_int,
12931    >,
12932    #[doc = "\n Returns true (1) if the object has a value with the specified identifier.\n"]
12933    pub has_value_byindex: ::std::option::Option<
12934        unsafe extern "C" fn(
12935            self_: *mut _cef_v8_value_t,
12936            index: ::std::os::raw::c_int,
12937        ) -> ::std::os::raw::c_int,
12938    >,
12939    #[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"]
12940    pub delete_value_bykey: ::std::option::Option<
12941        unsafe extern "C" fn(
12942            self_: *mut _cef_v8_value_t,
12943            key: *const cef_string_t,
12944        ) -> ::std::os::raw::c_int,
12945    >,
12946    #[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"]
12947    pub delete_value_byindex: ::std::option::Option<
12948        unsafe extern "C" fn(
12949            self_: *mut _cef_v8_value_t,
12950            index: ::std::os::raw::c_int,
12951        ) -> ::std::os::raw::c_int,
12952    >,
12953    #[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"]
12954    pub get_value_bykey: ::std::option::Option<
12955        unsafe extern "C" fn(
12956            self_: *mut _cef_v8_value_t,
12957            key: *const cef_string_t,
12958        ) -> *mut _cef_v8_value_t,
12959    >,
12960    #[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"]
12961    pub get_value_byindex: ::std::option::Option<
12962        unsafe extern "C" fn(
12963            self_: *mut _cef_v8_value_t,
12964            index: ::std::os::raw::c_int,
12965        ) -> *mut _cef_v8_value_t,
12966    >,
12967    #[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"]
12968    pub set_value_bykey: ::std::option::Option<
12969        unsafe extern "C" fn(
12970            self_: *mut _cef_v8_value_t,
12971            key: *const cef_string_t,
12972            value: *mut _cef_v8_value_t,
12973            attribute: cef_v8_propertyattribute_t,
12974        ) -> ::std::os::raw::c_int,
12975    >,
12976    #[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"]
12977    pub set_value_byindex: ::std::option::Option<
12978        unsafe extern "C" fn(
12979            self_: *mut _cef_v8_value_t,
12980            index: ::std::os::raw::c_int,
12981            value: *mut _cef_v8_value_t,
12982        ) -> ::std::os::raw::c_int,
12983    >,
12984    #[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"]
12985    pub set_value_byaccessor: ::std::option::Option<
12986        unsafe extern "C" fn(
12987            self_: *mut _cef_v8_value_t,
12988            key: *const cef_string_t,
12989            attribute: cef_v8_propertyattribute_t,
12990        ) -> ::std::os::raw::c_int,
12991    >,
12992    #[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"]
12993    pub get_keys: ::std::option::Option<
12994        unsafe extern "C" fn(
12995            self_: *mut _cef_v8_value_t,
12996            keys: cef_string_list_t,
12997        ) -> ::std::os::raw::c_int,
12998    >,
12999    #[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"]
13000    pub set_user_data: ::std::option::Option<
13001        unsafe extern "C" fn(
13002            self_: *mut _cef_v8_value_t,
13003            user_data: *mut _cef_base_ref_counted_t,
13004        ) -> ::std::os::raw::c_int,
13005    >,
13006    #[doc = "\n Returns the user data, if any, assigned to this object.\n"]
13007    pub get_user_data: ::std::option::Option<
13008        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_base_ref_counted_t,
13009    >,
13010    #[doc = "\n Returns the amount of externally allocated memory registered for the\n object.\n"]
13011    pub get_externally_allocated_memory: ::std::option::Option<
13012        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13013    >,
13014    #[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"]
13015    pub adjust_externally_allocated_memory: ::std::option::Option<
13016        unsafe extern "C" fn(
13017            self_: *mut _cef_v8_value_t,
13018            change_in_bytes: ::std::os::raw::c_int,
13019        ) -> ::std::os::raw::c_int,
13020    >,
13021    #[doc = "\n Returns the number of elements in the array.\n"]
13022    pub get_array_length: ::std::option::Option<
13023        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13024    >,
13025    #[doc = "\n Returns the ReleaseCallback object associated with the ArrayBuffer or NULL\n if the ArrayBuffer was not created with CreateArrayBuffer.\n"]
13026    pub get_array_buffer_release_callback: ::std::option::Option<
13027        unsafe extern "C" fn(
13028            self_: *mut _cef_v8_value_t,
13029        ) -> *mut _cef_v8_array_buffer_release_callback_t,
13030    >,
13031    #[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"]
13032    pub neuter_array_buffer: ::std::option::Option<
13033        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> ::std::os::raw::c_int,
13034    >,
13035    #[doc = "\n Returns the length (in bytes) of the ArrayBuffer.\n"]
13036    pub get_array_buffer_byte_length:
13037        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> usize>,
13038    #[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"]
13039    pub get_array_buffer_data: ::std::option::Option<
13040        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut ::std::os::raw::c_void,
13041    >,
13042    #[doc = "\n Returns the function name.\n"]
13043    pub get_function_name: ::std::option::Option<
13044        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> cef_string_userfree_t,
13045    >,
13046    #[doc = "\n Returns the function handler or NULL if not a CEF-created function.\n"]
13047    pub get_function_handler: ::std::option::Option<
13048        unsafe extern "C" fn(self_: *mut _cef_v8_value_t) -> *mut _cef_v8_handler_t,
13049    >,
13050    #[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"]
13051    pub execute_function: ::std::option::Option<
13052        unsafe extern "C" fn(
13053            self_: *mut _cef_v8_value_t,
13054            object: *mut _cef_v8_value_t,
13055            argumentsCount: usize,
13056            arguments: *const *mut _cef_v8_value_t,
13057        ) -> *mut _cef_v8_value_t,
13058    >,
13059    #[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"]
13060    pub execute_function_with_context: ::std::option::Option<
13061        unsafe extern "C" fn(
13062            self_: *mut _cef_v8_value_t,
13063            context: *mut _cef_v8_context_t,
13064            object: *mut _cef_v8_value_t,
13065            argumentsCount: usize,
13066            arguments: *const *mut _cef_v8_value_t,
13067        ) -> *mut _cef_v8_value_t,
13068    >,
13069    #[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"]
13070    pub resolve_promise: ::std::option::Option<
13071        unsafe extern "C" fn(
13072            self_: *mut _cef_v8_value_t,
13073            arg: *mut _cef_v8_value_t,
13074        ) -> ::std::os::raw::c_int,
13075    >,
13076    #[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"]
13077    pub reject_promise: ::std::option::Option<
13078        unsafe extern "C" fn(
13079            self_: *mut _cef_v8_value_t,
13080            errorMsg: *const cef_string_t,
13081        ) -> ::std::os::raw::c_int,
13082    >,
13083}
13084#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13085const _: () = {
13086    ["Size of _cef_v8_value_t"][::std::mem::size_of::<_cef_v8_value_t>() - 456usize];
13087    ["Alignment of _cef_v8_value_t"][::std::mem::align_of::<_cef_v8_value_t>() - 8usize];
13088    ["Offset of field: _cef_v8_value_t::base"]
13089        [::std::mem::offset_of!(_cef_v8_value_t, base) - 0usize];
13090    ["Offset of field: _cef_v8_value_t::is_valid"]
13091        [::std::mem::offset_of!(_cef_v8_value_t, is_valid) - 40usize];
13092    ["Offset of field: _cef_v8_value_t::is_undefined"]
13093        [::std::mem::offset_of!(_cef_v8_value_t, is_undefined) - 48usize];
13094    ["Offset of field: _cef_v8_value_t::is_null"]
13095        [::std::mem::offset_of!(_cef_v8_value_t, is_null) - 56usize];
13096    ["Offset of field: _cef_v8_value_t::is_bool"]
13097        [::std::mem::offset_of!(_cef_v8_value_t, is_bool) - 64usize];
13098    ["Offset of field: _cef_v8_value_t::is_int"]
13099        [::std::mem::offset_of!(_cef_v8_value_t, is_int) - 72usize];
13100    ["Offset of field: _cef_v8_value_t::is_uint"]
13101        [::std::mem::offset_of!(_cef_v8_value_t, is_uint) - 80usize];
13102    ["Offset of field: _cef_v8_value_t::is_double"]
13103        [::std::mem::offset_of!(_cef_v8_value_t, is_double) - 88usize];
13104    ["Offset of field: _cef_v8_value_t::is_date"]
13105        [::std::mem::offset_of!(_cef_v8_value_t, is_date) - 96usize];
13106    ["Offset of field: _cef_v8_value_t::is_string"]
13107        [::std::mem::offset_of!(_cef_v8_value_t, is_string) - 104usize];
13108    ["Offset of field: _cef_v8_value_t::is_object"]
13109        [::std::mem::offset_of!(_cef_v8_value_t, is_object) - 112usize];
13110    ["Offset of field: _cef_v8_value_t::is_array"]
13111        [::std::mem::offset_of!(_cef_v8_value_t, is_array) - 120usize];
13112    ["Offset of field: _cef_v8_value_t::is_array_buffer"]
13113        [::std::mem::offset_of!(_cef_v8_value_t, is_array_buffer) - 128usize];
13114    ["Offset of field: _cef_v8_value_t::is_function"]
13115        [::std::mem::offset_of!(_cef_v8_value_t, is_function) - 136usize];
13116    ["Offset of field: _cef_v8_value_t::is_promise"]
13117        [::std::mem::offset_of!(_cef_v8_value_t, is_promise) - 144usize];
13118    ["Offset of field: _cef_v8_value_t::is_same"]
13119        [::std::mem::offset_of!(_cef_v8_value_t, is_same) - 152usize];
13120    ["Offset of field: _cef_v8_value_t::get_bool_value"]
13121        [::std::mem::offset_of!(_cef_v8_value_t, get_bool_value) - 160usize];
13122    ["Offset of field: _cef_v8_value_t::get_int_value"]
13123        [::std::mem::offset_of!(_cef_v8_value_t, get_int_value) - 168usize];
13124    ["Offset of field: _cef_v8_value_t::get_uint_value"]
13125        [::std::mem::offset_of!(_cef_v8_value_t, get_uint_value) - 176usize];
13126    ["Offset of field: _cef_v8_value_t::get_double_value"]
13127        [::std::mem::offset_of!(_cef_v8_value_t, get_double_value) - 184usize];
13128    ["Offset of field: _cef_v8_value_t::get_date_value"]
13129        [::std::mem::offset_of!(_cef_v8_value_t, get_date_value) - 192usize];
13130    ["Offset of field: _cef_v8_value_t::get_string_value"]
13131        [::std::mem::offset_of!(_cef_v8_value_t, get_string_value) - 200usize];
13132    ["Offset of field: _cef_v8_value_t::is_user_created"]
13133        [::std::mem::offset_of!(_cef_v8_value_t, is_user_created) - 208usize];
13134    ["Offset of field: _cef_v8_value_t::has_exception"]
13135        [::std::mem::offset_of!(_cef_v8_value_t, has_exception) - 216usize];
13136    ["Offset of field: _cef_v8_value_t::get_exception"]
13137        [::std::mem::offset_of!(_cef_v8_value_t, get_exception) - 224usize];
13138    ["Offset of field: _cef_v8_value_t::clear_exception"]
13139        [::std::mem::offset_of!(_cef_v8_value_t, clear_exception) - 232usize];
13140    ["Offset of field: _cef_v8_value_t::will_rethrow_exceptions"]
13141        [::std::mem::offset_of!(_cef_v8_value_t, will_rethrow_exceptions) - 240usize];
13142    ["Offset of field: _cef_v8_value_t::set_rethrow_exceptions"]
13143        [::std::mem::offset_of!(_cef_v8_value_t, set_rethrow_exceptions) - 248usize];
13144    ["Offset of field: _cef_v8_value_t::has_value_bykey"]
13145        [::std::mem::offset_of!(_cef_v8_value_t, has_value_bykey) - 256usize];
13146    ["Offset of field: _cef_v8_value_t::has_value_byindex"]
13147        [::std::mem::offset_of!(_cef_v8_value_t, has_value_byindex) - 264usize];
13148    ["Offset of field: _cef_v8_value_t::delete_value_bykey"]
13149        [::std::mem::offset_of!(_cef_v8_value_t, delete_value_bykey) - 272usize];
13150    ["Offset of field: _cef_v8_value_t::delete_value_byindex"]
13151        [::std::mem::offset_of!(_cef_v8_value_t, delete_value_byindex) - 280usize];
13152    ["Offset of field: _cef_v8_value_t::get_value_bykey"]
13153        [::std::mem::offset_of!(_cef_v8_value_t, get_value_bykey) - 288usize];
13154    ["Offset of field: _cef_v8_value_t::get_value_byindex"]
13155        [::std::mem::offset_of!(_cef_v8_value_t, get_value_byindex) - 296usize];
13156    ["Offset of field: _cef_v8_value_t::set_value_bykey"]
13157        [::std::mem::offset_of!(_cef_v8_value_t, set_value_bykey) - 304usize];
13158    ["Offset of field: _cef_v8_value_t::set_value_byindex"]
13159        [::std::mem::offset_of!(_cef_v8_value_t, set_value_byindex) - 312usize];
13160    ["Offset of field: _cef_v8_value_t::set_value_byaccessor"]
13161        [::std::mem::offset_of!(_cef_v8_value_t, set_value_byaccessor) - 320usize];
13162    ["Offset of field: _cef_v8_value_t::get_keys"]
13163        [::std::mem::offset_of!(_cef_v8_value_t, get_keys) - 328usize];
13164    ["Offset of field: _cef_v8_value_t::set_user_data"]
13165        [::std::mem::offset_of!(_cef_v8_value_t, set_user_data) - 336usize];
13166    ["Offset of field: _cef_v8_value_t::get_user_data"]
13167        [::std::mem::offset_of!(_cef_v8_value_t, get_user_data) - 344usize];
13168    ["Offset of field: _cef_v8_value_t::get_externally_allocated_memory"]
13169        [::std::mem::offset_of!(_cef_v8_value_t, get_externally_allocated_memory) - 352usize];
13170    ["Offset of field: _cef_v8_value_t::adjust_externally_allocated_memory"]
13171        [::std::mem::offset_of!(_cef_v8_value_t, adjust_externally_allocated_memory) - 360usize];
13172    ["Offset of field: _cef_v8_value_t::get_array_length"]
13173        [::std::mem::offset_of!(_cef_v8_value_t, get_array_length) - 368usize];
13174    ["Offset of field: _cef_v8_value_t::get_array_buffer_release_callback"]
13175        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_release_callback) - 376usize];
13176    ["Offset of field: _cef_v8_value_t::neuter_array_buffer"]
13177        [::std::mem::offset_of!(_cef_v8_value_t, neuter_array_buffer) - 384usize];
13178    ["Offset of field: _cef_v8_value_t::get_array_buffer_byte_length"]
13179        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_byte_length) - 392usize];
13180    ["Offset of field: _cef_v8_value_t::get_array_buffer_data"]
13181        [::std::mem::offset_of!(_cef_v8_value_t, get_array_buffer_data) - 400usize];
13182    ["Offset of field: _cef_v8_value_t::get_function_name"]
13183        [::std::mem::offset_of!(_cef_v8_value_t, get_function_name) - 408usize];
13184    ["Offset of field: _cef_v8_value_t::get_function_handler"]
13185        [::std::mem::offset_of!(_cef_v8_value_t, get_function_handler) - 416usize];
13186    ["Offset of field: _cef_v8_value_t::execute_function"]
13187        [::std::mem::offset_of!(_cef_v8_value_t, execute_function) - 424usize];
13188    ["Offset of field: _cef_v8_value_t::execute_function_with_context"]
13189        [::std::mem::offset_of!(_cef_v8_value_t, execute_function_with_context) - 432usize];
13190    ["Offset of field: _cef_v8_value_t::resolve_promise"]
13191        [::std::mem::offset_of!(_cef_v8_value_t, resolve_promise) - 440usize];
13192    ["Offset of field: _cef_v8_value_t::reject_promise"]
13193        [::std::mem::offset_of!(_cef_v8_value_t, reject_promise) - 448usize];
13194};
13195#[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"]
13196pub type cef_v8_value_t = _cef_v8_value_t;
13197unsafe extern "C" {
13198    #[doc = "\n Create a new cef_v8_value_t object of type undefined.\n"]
13199    pub fn cef_v8_value_create_undefined() -> *mut cef_v8_value_t;
13200}
13201unsafe extern "C" {
13202    #[doc = "\n Create a new cef_v8_value_t object of type null.\n"]
13203    pub fn cef_v8_value_create_null() -> *mut cef_v8_value_t;
13204}
13205unsafe extern "C" {
13206    #[doc = "\n Create a new cef_v8_value_t object of type bool.\n"]
13207    pub fn cef_v8_value_create_bool(value: ::std::os::raw::c_int) -> *mut cef_v8_value_t;
13208}
13209unsafe extern "C" {
13210    #[doc = "\n Create a new cef_v8_value_t object of type int.\n"]
13211    pub fn cef_v8_value_create_int(value: i32) -> *mut cef_v8_value_t;
13212}
13213unsafe extern "C" {
13214    #[doc = "\n Create a new cef_v8_value_t object of type unsigned int.\n"]
13215    pub fn cef_v8_value_create_uint(value: u32) -> *mut cef_v8_value_t;
13216}
13217unsafe extern "C" {
13218    #[doc = "\n Create a new cef_v8_value_t object of type double.\n"]
13219    pub fn cef_v8_value_create_double(value: f64) -> *mut cef_v8_value_t;
13220}
13221unsafe extern "C" {
13222    #[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"]
13223    pub fn cef_v8_value_create_date(date: cef_basetime_t) -> *mut cef_v8_value_t;
13224}
13225unsafe extern "C" {
13226    #[doc = "\n Create a new cef_v8_value_t object of type string.\n"]
13227    pub fn cef_v8_value_create_string(value: *const cef_string_t) -> *mut cef_v8_value_t;
13228}
13229unsafe extern "C" {
13230    #[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"]
13231    pub fn cef_v8_value_create_object(
13232        accessor: *mut cef_v8_accessor_t,
13233        interceptor: *mut cef_v8_interceptor_t,
13234    ) -> *mut cef_v8_value_t;
13235}
13236unsafe extern "C" {
13237    #[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"]
13238    pub fn cef_v8_value_create_array(length: ::std::os::raw::c_int) -> *mut cef_v8_value_t;
13239}
13240unsafe extern "C" {
13241    #[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"]
13242    pub fn cef_v8_value_create_array_buffer(
13243        buffer: *mut ::std::os::raw::c_void,
13244        length: usize,
13245        release_callback: *mut cef_v8_array_buffer_release_callback_t,
13246    ) -> *mut cef_v8_value_t;
13247}
13248unsafe extern "C" {
13249    #[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"]
13250    pub fn cef_v8_value_create_array_buffer_with_copy(
13251        buffer: *mut ::std::os::raw::c_void,
13252        length: usize,
13253    ) -> *mut cef_v8_value_t;
13254}
13255unsafe extern "C" {
13256    #[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"]
13257    pub fn cef_v8_value_create_function(
13258        name: *const cef_string_t,
13259        handler: *mut cef_v8_handler_t,
13260    ) -> *mut cef_v8_value_t;
13261}
13262unsafe extern "C" {
13263    #[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"]
13264    pub fn cef_v8_value_create_promise() -> *mut cef_v8_value_t;
13265}
13266#[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"]
13267#[repr(C)]
13268#[derive(Debug, Copy, Clone)]
13269pub struct _cef_v8_stack_trace_t {
13270    #[doc = "\n Base structure.\n"]
13271    pub base: cef_base_ref_counted_t,
13272    #[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"]
13273    pub is_valid: ::std::option::Option<
13274        unsafe extern "C" fn(self_: *mut _cef_v8_stack_trace_t) -> ::std::os::raw::c_int,
13275    >,
13276    #[doc = "\n Returns the number of stack frames.\n"]
13277    pub get_frame_count: ::std::option::Option<
13278        unsafe extern "C" fn(self_: *mut _cef_v8_stack_trace_t) -> ::std::os::raw::c_int,
13279    >,
13280    #[doc = "\n Returns the stack frame at the specified 0-based index.\n"]
13281    pub get_frame: ::std::option::Option<
13282        unsafe extern "C" fn(
13283            self_: *mut _cef_v8_stack_trace_t,
13284            index: ::std::os::raw::c_int,
13285        ) -> *mut _cef_v8_stack_frame_t,
13286    >,
13287}
13288#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13289const _: () = {
13290    ["Size of _cef_v8_stack_trace_t"][::std::mem::size_of::<_cef_v8_stack_trace_t>() - 64usize];
13291    ["Alignment of _cef_v8_stack_trace_t"]
13292        [::std::mem::align_of::<_cef_v8_stack_trace_t>() - 8usize];
13293    ["Offset of field: _cef_v8_stack_trace_t::base"]
13294        [::std::mem::offset_of!(_cef_v8_stack_trace_t, base) - 0usize];
13295    ["Offset of field: _cef_v8_stack_trace_t::is_valid"]
13296        [::std::mem::offset_of!(_cef_v8_stack_trace_t, is_valid) - 40usize];
13297    ["Offset of field: _cef_v8_stack_trace_t::get_frame_count"]
13298        [::std::mem::offset_of!(_cef_v8_stack_trace_t, get_frame_count) - 48usize];
13299    ["Offset of field: _cef_v8_stack_trace_t::get_frame"]
13300        [::std::mem::offset_of!(_cef_v8_stack_trace_t, get_frame) - 56usize];
13301};
13302#[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"]
13303pub type cef_v8_stack_trace_t = _cef_v8_stack_trace_t;
13304unsafe extern "C" {
13305    #[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"]
13306    pub fn cef_v8_stack_trace_get_current(
13307        frame_limit: ::std::os::raw::c_int,
13308    ) -> *mut cef_v8_stack_trace_t;
13309}
13310#[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"]
13311#[repr(C)]
13312#[derive(Debug, Copy, Clone)]
13313pub struct _cef_v8_stack_frame_t {
13314    #[doc = "\n Base structure.\n"]
13315    pub base: cef_base_ref_counted_t,
13316    #[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"]
13317    pub is_valid: ::std::option::Option<
13318        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13319    >,
13320    #[doc = "\n Returns the name of the resource script that contains the function.\n"]
13321    pub get_script_name: ::std::option::Option<
13322        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13323    >,
13324    #[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"]
13325    pub get_script_name_or_source_url: ::std::option::Option<
13326        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13327    >,
13328    #[doc = "\n Returns the name of the function.\n"]
13329    pub get_function_name: ::std::option::Option<
13330        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> cef_string_userfree_t,
13331    >,
13332    #[doc = "\n Returns the 1-based line number for the function call or 0 if unknown.\n"]
13333    pub get_line_number: ::std::option::Option<
13334        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13335    >,
13336    #[doc = "\n Returns the 1-based column offset on the line for the function call or 0\n if unknown.\n"]
13337    pub get_column: ::std::option::Option<
13338        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13339    >,
13340    #[doc = "\n Returns true (1) if the function was compiled using eval().\n"]
13341    pub is_eval: ::std::option::Option<
13342        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13343    >,
13344    #[doc = "\n Returns true (1) if the function was called as a constructor via \"new\".\n"]
13345    pub is_constructor: ::std::option::Option<
13346        unsafe extern "C" fn(self_: *mut _cef_v8_stack_frame_t) -> ::std::os::raw::c_int,
13347    >,
13348}
13349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13350const _: () = {
13351    ["Size of _cef_v8_stack_frame_t"][::std::mem::size_of::<_cef_v8_stack_frame_t>() - 104usize];
13352    ["Alignment of _cef_v8_stack_frame_t"]
13353        [::std::mem::align_of::<_cef_v8_stack_frame_t>() - 8usize];
13354    ["Offset of field: _cef_v8_stack_frame_t::base"]
13355        [::std::mem::offset_of!(_cef_v8_stack_frame_t, base) - 0usize];
13356    ["Offset of field: _cef_v8_stack_frame_t::is_valid"]
13357        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_valid) - 40usize];
13358    ["Offset of field: _cef_v8_stack_frame_t::get_script_name"]
13359        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_script_name) - 48usize];
13360    ["Offset of field: _cef_v8_stack_frame_t::get_script_name_or_source_url"]
13361        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_script_name_or_source_url) - 56usize];
13362    ["Offset of field: _cef_v8_stack_frame_t::get_function_name"]
13363        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_function_name) - 64usize];
13364    ["Offset of field: _cef_v8_stack_frame_t::get_line_number"]
13365        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_line_number) - 72usize];
13366    ["Offset of field: _cef_v8_stack_frame_t::get_column"]
13367        [::std::mem::offset_of!(_cef_v8_stack_frame_t, get_column) - 80usize];
13368    ["Offset of field: _cef_v8_stack_frame_t::is_eval"]
13369        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_eval) - 88usize];
13370    ["Offset of field: _cef_v8_stack_frame_t::is_constructor"]
13371        [::std::mem::offset_of!(_cef_v8_stack_frame_t, is_constructor) - 96usize];
13372};
13373#[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"]
13374pub type cef_v8_stack_frame_t = _cef_v8_stack_frame_t;
13375unsafe extern "C" {
13376    #[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"]
13377    pub fn cef_register_extension(
13378        extension_name: *const cef_string_t,
13379        javascript_code: *const cef_string_t,
13380        handler: *mut cef_v8_handler_t,
13381    ) -> ::std::os::raw::c_int;
13382}
13383#[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"]
13384#[repr(C)]
13385#[derive(Debug, Copy, Clone)]
13386pub struct _cef_render_process_handler_t {
13387    #[doc = "\n Base structure.\n"]
13388    pub base: cef_base_ref_counted_t,
13389    #[doc = "\n Called after WebKit has been initialized.\n"]
13390    pub on_web_kit_initialized:
13391        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_render_process_handler_t)>,
13392    #[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"]
13393    pub on_browser_created: ::std::option::Option<
13394        unsafe extern "C" fn(
13395            self_: *mut _cef_render_process_handler_t,
13396            browser: *mut _cef_browser_t,
13397            extra_info: *mut _cef_dictionary_value_t,
13398        ),
13399    >,
13400    #[doc = "\n Called before a browser is destroyed.\n"]
13401    pub on_browser_destroyed: ::std::option::Option<
13402        unsafe extern "C" fn(
13403            self_: *mut _cef_render_process_handler_t,
13404            browser: *mut _cef_browser_t,
13405        ),
13406    >,
13407    #[doc = "\n Return the handler for browser load status events.\n"]
13408    pub get_load_handler: ::std::option::Option<
13409        unsafe extern "C" fn(self_: *mut _cef_render_process_handler_t) -> *mut _cef_load_handler_t,
13410    >,
13411    #[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"]
13412    pub on_context_created: ::std::option::Option<
13413        unsafe extern "C" fn(
13414            self_: *mut _cef_render_process_handler_t,
13415            browser: *mut _cef_browser_t,
13416            frame: *mut _cef_frame_t,
13417            context: *mut _cef_v8_context_t,
13418        ),
13419    >,
13420    #[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"]
13421    pub on_context_released: ::std::option::Option<
13422        unsafe extern "C" fn(
13423            self_: *mut _cef_render_process_handler_t,
13424            browser: *mut _cef_browser_t,
13425            frame: *mut _cef_frame_t,
13426            context: *mut _cef_v8_context_t,
13427        ),
13428    >,
13429    #[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"]
13430    pub on_uncaught_exception: ::std::option::Option<
13431        unsafe extern "C" fn(
13432            self_: *mut _cef_render_process_handler_t,
13433            browser: *mut _cef_browser_t,
13434            frame: *mut _cef_frame_t,
13435            context: *mut _cef_v8_context_t,
13436            exception: *mut _cef_v8_exception_t,
13437            stackTrace: *mut _cef_v8_stack_trace_t,
13438        ),
13439    >,
13440    #[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"]
13441    pub on_focused_node_changed: ::std::option::Option<
13442        unsafe extern "C" fn(
13443            self_: *mut _cef_render_process_handler_t,
13444            browser: *mut _cef_browser_t,
13445            frame: *mut _cef_frame_t,
13446            node: *mut _cef_domnode_t,
13447        ),
13448    >,
13449    #[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"]
13450    pub on_process_message_received: ::std::option::Option<
13451        unsafe extern "C" fn(
13452            self_: *mut _cef_render_process_handler_t,
13453            browser: *mut _cef_browser_t,
13454            frame: *mut _cef_frame_t,
13455            source_process: cef_process_id_t,
13456            message: *mut _cef_process_message_t,
13457        ) -> ::std::os::raw::c_int,
13458    >,
13459}
13460#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13461const _: () = {
13462    ["Size of _cef_render_process_handler_t"]
13463        [::std::mem::size_of::<_cef_render_process_handler_t>() - 112usize];
13464    ["Alignment of _cef_render_process_handler_t"]
13465        [::std::mem::align_of::<_cef_render_process_handler_t>() - 8usize];
13466    ["Offset of field: _cef_render_process_handler_t::base"]
13467        [::std::mem::offset_of!(_cef_render_process_handler_t, base) - 0usize];
13468    ["Offset of field: _cef_render_process_handler_t::on_web_kit_initialized"]
13469        [::std::mem::offset_of!(_cef_render_process_handler_t, on_web_kit_initialized) - 40usize];
13470    ["Offset of field: _cef_render_process_handler_t::on_browser_created"]
13471        [::std::mem::offset_of!(_cef_render_process_handler_t, on_browser_created) - 48usize];
13472    ["Offset of field: _cef_render_process_handler_t::on_browser_destroyed"]
13473        [::std::mem::offset_of!(_cef_render_process_handler_t, on_browser_destroyed) - 56usize];
13474    ["Offset of field: _cef_render_process_handler_t::get_load_handler"]
13475        [::std::mem::offset_of!(_cef_render_process_handler_t, get_load_handler) - 64usize];
13476    ["Offset of field: _cef_render_process_handler_t::on_context_created"]
13477        [::std::mem::offset_of!(_cef_render_process_handler_t, on_context_created) - 72usize];
13478    ["Offset of field: _cef_render_process_handler_t::on_context_released"]
13479        [::std::mem::offset_of!(_cef_render_process_handler_t, on_context_released) - 80usize];
13480    ["Offset of field: _cef_render_process_handler_t::on_uncaught_exception"]
13481        [::std::mem::offset_of!(_cef_render_process_handler_t, on_uncaught_exception) - 88usize];
13482    ["Offset of field: _cef_render_process_handler_t::on_focused_node_changed"]
13483        [::std::mem::offset_of!(_cef_render_process_handler_t, on_focused_node_changed) - 96usize];
13484    ["Offset of field: _cef_render_process_handler_t::on_process_message_received"][::std::mem::offset_of!(
13485        _cef_render_process_handler_t,
13486        on_process_message_received
13487    ) - 104usize];
13488};
13489#[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"]
13490pub type cef_render_process_handler_t = _cef_render_process_handler_t;
13491#[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"]
13492#[repr(C)]
13493#[derive(Debug, Copy, Clone)]
13494pub struct _cef_resource_bundle_handler_t {
13495    #[doc = "\n Base structure.\n"]
13496    pub base: cef_base_ref_counted_t,
13497    #[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"]
13498    pub get_localized_string: ::std::option::Option<
13499        unsafe extern "C" fn(
13500            self_: *mut _cef_resource_bundle_handler_t,
13501            string_id: ::std::os::raw::c_int,
13502            string: *mut cef_string_t,
13503        ) -> ::std::os::raw::c_int,
13504    >,
13505    #[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"]
13506    pub get_data_resource: ::std::option::Option<
13507        unsafe extern "C" fn(
13508            self_: *mut _cef_resource_bundle_handler_t,
13509            resource_id: ::std::os::raw::c_int,
13510            data: *mut *mut ::std::os::raw::c_void,
13511            data_size: *mut usize,
13512        ) -> ::std::os::raw::c_int,
13513    >,
13514    #[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"]
13515    pub get_data_resource_for_scale: ::std::option::Option<
13516        unsafe extern "C" fn(
13517            self_: *mut _cef_resource_bundle_handler_t,
13518            resource_id: ::std::os::raw::c_int,
13519            scale_factor: cef_scale_factor_t,
13520            data: *mut *mut ::std::os::raw::c_void,
13521            data_size: *mut usize,
13522        ) -> ::std::os::raw::c_int,
13523    >,
13524}
13525#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13526const _: () = {
13527    ["Size of _cef_resource_bundle_handler_t"]
13528        [::std::mem::size_of::<_cef_resource_bundle_handler_t>() - 64usize];
13529    ["Alignment of _cef_resource_bundle_handler_t"]
13530        [::std::mem::align_of::<_cef_resource_bundle_handler_t>() - 8usize];
13531    ["Offset of field: _cef_resource_bundle_handler_t::base"]
13532        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, base) - 0usize];
13533    ["Offset of field: _cef_resource_bundle_handler_t::get_localized_string"]
13534        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, get_localized_string) - 40usize];
13535    ["Offset of field: _cef_resource_bundle_handler_t::get_data_resource"]
13536        [::std::mem::offset_of!(_cef_resource_bundle_handler_t, get_data_resource) - 48usize];
13537    ["Offset of field: _cef_resource_bundle_handler_t::get_data_resource_for_scale"][::std::mem::offset_of!(
13538        _cef_resource_bundle_handler_t,
13539        get_data_resource_for_scale
13540    ) - 56usize];
13541};
13542#[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"]
13543pub type cef_resource_bundle_handler_t = _cef_resource_bundle_handler_t;
13544#[doc = "\n Structure that manages custom scheme registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
13545#[repr(C)]
13546#[derive(Debug, Copy, Clone)]
13547pub struct _cef_scheme_registrar_t {
13548    #[doc = "\n Base structure.\n"]
13549    pub base: cef_base_scoped_t,
13550    #[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"]
13551    pub add_custom_scheme: ::std::option::Option<
13552        unsafe extern "C" fn(
13553            self_: *mut _cef_scheme_registrar_t,
13554            scheme_name: *const cef_string_t,
13555            options: ::std::os::raw::c_int,
13556        ) -> ::std::os::raw::c_int,
13557    >,
13558}
13559#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13560const _: () = {
13561    ["Size of _cef_scheme_registrar_t"][::std::mem::size_of::<_cef_scheme_registrar_t>() - 24usize];
13562    ["Alignment of _cef_scheme_registrar_t"]
13563        [::std::mem::align_of::<_cef_scheme_registrar_t>() - 8usize];
13564    ["Offset of field: _cef_scheme_registrar_t::base"]
13565        [::std::mem::offset_of!(_cef_scheme_registrar_t, base) - 0usize];
13566    ["Offset of field: _cef_scheme_registrar_t::add_custom_scheme"]
13567        [::std::mem::offset_of!(_cef_scheme_registrar_t, add_custom_scheme) - 16usize];
13568};
13569#[doc = "\n Structure that manages custom scheme registrations.\n\n NOTE: This struct is allocated DLL-side.\n"]
13570pub type cef_scheme_registrar_t = _cef_scheme_registrar_t;
13571#[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"]
13572#[repr(C)]
13573#[derive(Debug, Copy, Clone)]
13574pub struct _cef_scheme_handler_factory_t {
13575    #[doc = "\n Base structure.\n"]
13576    pub base: cef_base_ref_counted_t,
13577    #[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"]
13578    pub create: ::std::option::Option<
13579        unsafe extern "C" fn(
13580            self_: *mut _cef_scheme_handler_factory_t,
13581            browser: *mut _cef_browser_t,
13582            frame: *mut _cef_frame_t,
13583            scheme_name: *const cef_string_t,
13584            request: *mut _cef_request_t,
13585        ) -> *mut _cef_resource_handler_t,
13586    >,
13587}
13588#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13589const _: () = {
13590    ["Size of _cef_scheme_handler_factory_t"]
13591        [::std::mem::size_of::<_cef_scheme_handler_factory_t>() - 48usize];
13592    ["Alignment of _cef_scheme_handler_factory_t"]
13593        [::std::mem::align_of::<_cef_scheme_handler_factory_t>() - 8usize];
13594    ["Offset of field: _cef_scheme_handler_factory_t::base"]
13595        [::std::mem::offset_of!(_cef_scheme_handler_factory_t, base) - 0usize];
13596    ["Offset of field: _cef_scheme_handler_factory_t::create"]
13597        [::std::mem::offset_of!(_cef_scheme_handler_factory_t, create) - 40usize];
13598};
13599#[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"]
13600pub type cef_scheme_handler_factory_t = _cef_scheme_handler_factory_t;
13601unsafe extern "C" {
13602    #[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()->register_scheme_handl\n er_factory().\n"]
13603    pub fn cef_register_scheme_handler_factory(
13604        scheme_name: *const cef_string_t,
13605        domain_name: *const cef_string_t,
13606        factory: *mut cef_scheme_handler_factory_t,
13607    ) -> ::std::os::raw::c_int;
13608}
13609unsafe extern "C" {
13610    #[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()->clear_schem\n e_handler_factories().\n"]
13611    pub fn cef_clear_scheme_handler_factories() -> ::std::os::raw::c_int;
13612}
13613#[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"]
13614#[repr(C)]
13615#[derive(Debug, Copy, Clone)]
13616pub struct _cef_app_t {
13617    #[doc = "\n Base structure.\n"]
13618    pub base: cef_base_ref_counted_t,
13619    #[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"]
13620    pub on_before_command_line_processing: ::std::option::Option<
13621        unsafe extern "C" fn(
13622            self_: *mut _cef_app_t,
13623            process_type: *const cef_string_t,
13624            command_line: *mut _cef_command_line_t,
13625        ),
13626    >,
13627    #[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"]
13628    pub on_register_custom_schemes: ::std::option::Option<
13629        unsafe extern "C" fn(self_: *mut _cef_app_t, registrar: *mut _cef_scheme_registrar_t),
13630    >,
13631    #[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"]
13632    pub get_resource_bundle_handler: ::std::option::Option<
13633        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_resource_bundle_handler_t,
13634    >,
13635    #[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"]
13636    pub get_browser_process_handler: ::std::option::Option<
13637        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_browser_process_handler_t,
13638    >,
13639    #[doc = "\n Return the handler for functionality specific to the render process. This\n function is called on the render process main thread.\n"]
13640    pub get_render_process_handler: ::std::option::Option<
13641        unsafe extern "C" fn(self_: *mut _cef_app_t) -> *mut _cef_render_process_handler_t,
13642    >,
13643}
13644#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13645const _: () = {
13646    ["Size of _cef_app_t"][::std::mem::size_of::<_cef_app_t>() - 80usize];
13647    ["Alignment of _cef_app_t"][::std::mem::align_of::<_cef_app_t>() - 8usize];
13648    ["Offset of field: _cef_app_t::base"][::std::mem::offset_of!(_cef_app_t, base) - 0usize];
13649    ["Offset of field: _cef_app_t::on_before_command_line_processing"]
13650        [::std::mem::offset_of!(_cef_app_t, on_before_command_line_processing) - 40usize];
13651    ["Offset of field: _cef_app_t::on_register_custom_schemes"]
13652        [::std::mem::offset_of!(_cef_app_t, on_register_custom_schemes) - 48usize];
13653    ["Offset of field: _cef_app_t::get_resource_bundle_handler"]
13654        [::std::mem::offset_of!(_cef_app_t, get_resource_bundle_handler) - 56usize];
13655    ["Offset of field: _cef_app_t::get_browser_process_handler"]
13656        [::std::mem::offset_of!(_cef_app_t, get_browser_process_handler) - 64usize];
13657    ["Offset of field: _cef_app_t::get_render_process_handler"]
13658        [::std::mem::offset_of!(_cef_app_t, get_render_process_handler) - 72usize];
13659};
13660#[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"]
13661pub type cef_app_t = _cef_app_t;
13662unsafe extern "C" {
13663    #[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"]
13664    pub fn cef_execute_process(
13665        args: *const cef_main_args_t,
13666        application: *mut cef_app_t,
13667        windows_sandbox_info: *mut ::std::os::raw::c_void,
13668    ) -> ::std::os::raw::c_int;
13669}
13670unsafe extern "C" {
13671    #[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, CefGetErrorCode. The |windows_sandbox_info| parameter is only\n used on Windows and may be NULL (see cef_sandbox_win.h for details).\n"]
13672    pub fn cef_initialize(
13673        args: *const cef_main_args_t,
13674        settings: *const _cef_settings_t,
13675        application: *mut cef_app_t,
13676        windows_sandbox_info: *mut ::std::os::raw::c_void,
13677    ) -> ::std::os::raw::c_int;
13678}
13679unsafe extern "C" {
13680    #[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"]
13681    pub fn cef_get_exit_code() -> ::std::os::raw::c_int;
13682}
13683unsafe extern "C" {
13684    #[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"]
13685    pub fn cef_shutdown();
13686}
13687unsafe extern "C" {
13688    #[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"]
13689    pub fn cef_do_message_loop_work();
13690}
13691unsafe extern "C" {
13692    #[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"]
13693    pub fn cef_run_message_loop();
13694}
13695unsafe extern "C" {
13696    #[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"]
13697    pub fn cef_quit_message_loop();
13698}
13699#[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"]
13700#[repr(C)]
13701#[derive(Debug, Copy, Clone)]
13702pub struct _cef_urlrequest_t {
13703    #[doc = "\n Base structure.\n"]
13704    pub base: cef_base_ref_counted_t,
13705    #[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"]
13706    pub get_request: ::std::option::Option<
13707        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_request_t,
13708    >,
13709    #[doc = "\n Returns the client.\n"]
13710    pub get_client: ::std::option::Option<
13711        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_urlrequest_client_t,
13712    >,
13713    #[doc = "\n Returns the request status.\n"]
13714    pub get_request_status: ::std::option::Option<
13715        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> cef_urlrequest_status_t,
13716    >,
13717    #[doc = "\n Returns the request error if status is UR_CANCELED or UR_FAILED, or 0\n otherwise.\n"]
13718    pub get_request_error: ::std::option::Option<
13719        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> cef_errorcode_t,
13720    >,
13721    #[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"]
13722    pub get_response: ::std::option::Option<
13723        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> *mut _cef_response_t,
13724    >,
13725    #[doc = "\n Returns true (1) if the response body was served from the cache. This\n includes responses for which revalidation was required.\n"]
13726    pub response_was_cached: ::std::option::Option<
13727        unsafe extern "C" fn(self_: *mut _cef_urlrequest_t) -> ::std::os::raw::c_int,
13728    >,
13729    #[doc = "\n Cancel the request.\n"]
13730    pub cancel: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_urlrequest_t)>,
13731}
13732#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13733const _: () = {
13734    ["Size of _cef_urlrequest_t"][::std::mem::size_of::<_cef_urlrequest_t>() - 96usize];
13735    ["Alignment of _cef_urlrequest_t"][::std::mem::align_of::<_cef_urlrequest_t>() - 8usize];
13736    ["Offset of field: _cef_urlrequest_t::base"]
13737        [::std::mem::offset_of!(_cef_urlrequest_t, base) - 0usize];
13738    ["Offset of field: _cef_urlrequest_t::get_request"]
13739        [::std::mem::offset_of!(_cef_urlrequest_t, get_request) - 40usize];
13740    ["Offset of field: _cef_urlrequest_t::get_client"]
13741        [::std::mem::offset_of!(_cef_urlrequest_t, get_client) - 48usize];
13742    ["Offset of field: _cef_urlrequest_t::get_request_status"]
13743        [::std::mem::offset_of!(_cef_urlrequest_t, get_request_status) - 56usize];
13744    ["Offset of field: _cef_urlrequest_t::get_request_error"]
13745        [::std::mem::offset_of!(_cef_urlrequest_t, get_request_error) - 64usize];
13746    ["Offset of field: _cef_urlrequest_t::get_response"]
13747        [::std::mem::offset_of!(_cef_urlrequest_t, get_response) - 72usize];
13748    ["Offset of field: _cef_urlrequest_t::response_was_cached"]
13749        [::std::mem::offset_of!(_cef_urlrequest_t, response_was_cached) - 80usize];
13750    ["Offset of field: _cef_urlrequest_t::cancel"]
13751        [::std::mem::offset_of!(_cef_urlrequest_t, cancel) - 88usize];
13752};
13753#[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"]
13754pub type cef_urlrequest_t = _cef_urlrequest_t;
13755unsafe extern "C" {
13756    #[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"]
13757    pub fn cef_urlrequest_create(
13758        request: *mut _cef_request_t,
13759        client: *mut _cef_urlrequest_client_t,
13760        request_context: *mut _cef_request_context_t,
13761    ) -> *mut cef_urlrequest_t;
13762}
13763#[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"]
13764#[repr(C)]
13765#[derive(Debug, Copy, Clone)]
13766pub struct _cef_urlrequest_client_t {
13767    #[doc = "\n Base structure.\n"]
13768    pub base: cef_base_ref_counted_t,
13769    #[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"]
13770    pub on_request_complete: ::std::option::Option<
13771        unsafe extern "C" fn(self_: *mut _cef_urlrequest_client_t, request: *mut _cef_urlrequest_t),
13772    >,
13773    #[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"]
13774    pub on_upload_progress: ::std::option::Option<
13775        unsafe extern "C" fn(
13776            self_: *mut _cef_urlrequest_client_t,
13777            request: *mut _cef_urlrequest_t,
13778            current: i64,
13779            total: i64,
13780        ),
13781    >,
13782    #[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"]
13783    pub on_download_progress: ::std::option::Option<
13784        unsafe extern "C" fn(
13785            self_: *mut _cef_urlrequest_client_t,
13786            request: *mut _cef_urlrequest_t,
13787            current: i64,
13788            total: i64,
13789        ),
13790    >,
13791    #[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"]
13792    pub on_download_data: ::std::option::Option<
13793        unsafe extern "C" fn(
13794            self_: *mut _cef_urlrequest_client_t,
13795            request: *mut _cef_urlrequest_t,
13796            data: *const ::std::os::raw::c_void,
13797            data_length: usize,
13798        ),
13799    >,
13800    #[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"]
13801    pub get_auth_credentials: ::std::option::Option<
13802        unsafe extern "C" fn(
13803            self_: *mut _cef_urlrequest_client_t,
13804            isProxy: ::std::os::raw::c_int,
13805            host: *const cef_string_t,
13806            port: ::std::os::raw::c_int,
13807            realm: *const cef_string_t,
13808            scheme: *const cef_string_t,
13809            callback: *mut _cef_auth_callback_t,
13810        ) -> ::std::os::raw::c_int,
13811    >,
13812}
13813#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13814const _: () = {
13815    ["Size of _cef_urlrequest_client_t"]
13816        [::std::mem::size_of::<_cef_urlrequest_client_t>() - 80usize];
13817    ["Alignment of _cef_urlrequest_client_t"]
13818        [::std::mem::align_of::<_cef_urlrequest_client_t>() - 8usize];
13819    ["Offset of field: _cef_urlrequest_client_t::base"]
13820        [::std::mem::offset_of!(_cef_urlrequest_client_t, base) - 0usize];
13821    ["Offset of field: _cef_urlrequest_client_t::on_request_complete"]
13822        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_request_complete) - 40usize];
13823    ["Offset of field: _cef_urlrequest_client_t::on_upload_progress"]
13824        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_upload_progress) - 48usize];
13825    ["Offset of field: _cef_urlrequest_client_t::on_download_progress"]
13826        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_download_progress) - 56usize];
13827    ["Offset of field: _cef_urlrequest_client_t::on_download_data"]
13828        [::std::mem::offset_of!(_cef_urlrequest_client_t, on_download_data) - 64usize];
13829    ["Offset of field: _cef_urlrequest_client_t::get_auth_credentials"]
13830        [::std::mem::offset_of!(_cef_urlrequest_client_t, get_auth_credentials) - 72usize];
13831};
13832#[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"]
13833pub type cef_urlrequest_client_t = _cef_urlrequest_client_t;
13834#[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"]
13835#[repr(C)]
13836#[derive(Debug, Copy, Clone)]
13837pub struct _cef_layout_t {
13838    #[doc = "\n Base structure.\n"]
13839    pub base: cef_base_ref_counted_t,
13840    #[doc = "\n Returns this Layout as a BoxLayout or NULL if this is not a BoxLayout.\n"]
13841    pub as_box_layout: ::std::option::Option<
13842        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> *mut _cef_box_layout_t,
13843    >,
13844    #[doc = "\n Returns this Layout as a FillLayout or NULL if this is not a FillLayout.\n"]
13845    pub as_fill_layout: ::std::option::Option<
13846        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> *mut _cef_fill_layout_t,
13847    >,
13848    #[doc = "\n Returns true (1) if this Layout is valid.\n"]
13849    pub is_valid: ::std::option::Option<
13850        unsafe extern "C" fn(self_: *mut _cef_layout_t) -> ::std::os::raw::c_int,
13851    >,
13852}
13853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13854const _: () = {
13855    ["Size of _cef_layout_t"][::std::mem::size_of::<_cef_layout_t>() - 64usize];
13856    ["Alignment of _cef_layout_t"][::std::mem::align_of::<_cef_layout_t>() - 8usize];
13857    ["Offset of field: _cef_layout_t::base"][::std::mem::offset_of!(_cef_layout_t, base) - 0usize];
13858    ["Offset of field: _cef_layout_t::as_box_layout"]
13859        [::std::mem::offset_of!(_cef_layout_t, as_box_layout) - 40usize];
13860    ["Offset of field: _cef_layout_t::as_fill_layout"]
13861        [::std::mem::offset_of!(_cef_layout_t, as_fill_layout) - 48usize];
13862    ["Offset of field: _cef_layout_t::is_valid"]
13863        [::std::mem::offset_of!(_cef_layout_t, is_valid) - 56usize];
13864};
13865#[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"]
13866pub type cef_layout_t = _cef_layout_t;
13867#[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"]
13868#[repr(C)]
13869#[derive(Debug, Copy, Clone)]
13870pub struct _cef_box_layout_t {
13871    #[doc = "\n Base structure.\n"]
13872    pub base: cef_layout_t,
13873    #[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"]
13874    pub set_flex_for_view: ::std::option::Option<
13875        unsafe extern "C" fn(
13876            self_: *mut _cef_box_layout_t,
13877            view: *mut _cef_view_t,
13878            flex: ::std::os::raw::c_int,
13879        ),
13880    >,
13881    #[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"]
13882    pub clear_flex_for_view: ::std::option::Option<
13883        unsafe extern "C" fn(self_: *mut _cef_box_layout_t, view: *mut _cef_view_t),
13884    >,
13885}
13886#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13887const _: () = {
13888    ["Size of _cef_box_layout_t"][::std::mem::size_of::<_cef_box_layout_t>() - 80usize];
13889    ["Alignment of _cef_box_layout_t"][::std::mem::align_of::<_cef_box_layout_t>() - 8usize];
13890    ["Offset of field: _cef_box_layout_t::base"]
13891        [::std::mem::offset_of!(_cef_box_layout_t, base) - 0usize];
13892    ["Offset of field: _cef_box_layout_t::set_flex_for_view"]
13893        [::std::mem::offset_of!(_cef_box_layout_t, set_flex_for_view) - 64usize];
13894    ["Offset of field: _cef_box_layout_t::clear_flex_for_view"]
13895        [::std::mem::offset_of!(_cef_box_layout_t, clear_flex_for_view) - 72usize];
13896};
13897#[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"]
13898pub type cef_box_layout_t = _cef_box_layout_t;
13899#[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"]
13900#[repr(C)]
13901#[derive(Debug, Copy, Clone)]
13902pub struct _cef_fill_layout_t {
13903    #[doc = "\n Base structure.\n"]
13904    pub base: cef_layout_t,
13905}
13906#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13907const _: () = {
13908    ["Size of _cef_fill_layout_t"][::std::mem::size_of::<_cef_fill_layout_t>() - 64usize];
13909    ["Alignment of _cef_fill_layout_t"][::std::mem::align_of::<_cef_fill_layout_t>() - 8usize];
13910    ["Offset of field: _cef_fill_layout_t::base"]
13911        [::std::mem::offset_of!(_cef_fill_layout_t, base) - 0usize];
13912};
13913#[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"]
13914pub type cef_fill_layout_t = _cef_fill_layout_t;
13915#[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"]
13916#[repr(C)]
13917#[derive(Debug, Copy, Clone)]
13918pub struct _cef_view_delegate_t {
13919    #[doc = "\n Base structure.\n"]
13920    pub base: cef_base_ref_counted_t,
13921    #[doc = "\n Return the preferred size for |view|. The Layout will use this information\n to determine the display size.\n"]
13922    pub get_preferred_size: ::std::option::Option<
13923        unsafe extern "C" fn(
13924            self_: *mut _cef_view_delegate_t,
13925            view: *mut _cef_view_t,
13926        ) -> cef_size_t,
13927    >,
13928    #[doc = "\n Return the minimum size for |view|.\n"]
13929    pub get_minimum_size: ::std::option::Option<
13930        unsafe extern "C" fn(
13931            self_: *mut _cef_view_delegate_t,
13932            view: *mut _cef_view_t,
13933        ) -> cef_size_t,
13934    >,
13935    #[doc = "\n Return the maximum size for |view|.\n"]
13936    pub get_maximum_size: ::std::option::Option<
13937        unsafe extern "C" fn(
13938            self_: *mut _cef_view_delegate_t,
13939            view: *mut _cef_view_t,
13940        ) -> cef_size_t,
13941    >,
13942    #[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"]
13943    pub get_height_for_width: ::std::option::Option<
13944        unsafe extern "C" fn(
13945            self_: *mut _cef_view_delegate_t,
13946            view: *mut _cef_view_t,
13947            width: ::std::os::raw::c_int,
13948        ) -> ::std::os::raw::c_int,
13949    >,
13950    #[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"]
13951    pub on_parent_view_changed: ::std::option::Option<
13952        unsafe extern "C" fn(
13953            self_: *mut _cef_view_delegate_t,
13954            view: *mut _cef_view_t,
13955            added: ::std::os::raw::c_int,
13956            parent: *mut _cef_view_t,
13957        ),
13958    >,
13959    #[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"]
13960    pub on_child_view_changed: ::std::option::Option<
13961        unsafe extern "C" fn(
13962            self_: *mut _cef_view_delegate_t,
13963            view: *mut _cef_view_t,
13964            added: ::std::os::raw::c_int,
13965            child: *mut _cef_view_t,
13966        ),
13967    >,
13968    #[doc = "\n Called when |view| is added or removed from the cef_window_t.\n"]
13969    pub on_window_changed: ::std::option::Option<
13970        unsafe extern "C" fn(
13971            self_: *mut _cef_view_delegate_t,
13972            view: *mut _cef_view_t,
13973            added: ::std::os::raw::c_int,
13974        ),
13975    >,
13976    #[doc = "\n Called when the layout of |view| has changed.\n"]
13977    pub on_layout_changed: ::std::option::Option<
13978        unsafe extern "C" fn(
13979            self_: *mut _cef_view_delegate_t,
13980            view: *mut _cef_view_t,
13981            new_bounds: *const cef_rect_t,
13982        ),
13983    >,
13984    #[doc = "\n Called when |view| gains focus.\n"]
13985    pub on_focus: ::std::option::Option<
13986        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
13987    >,
13988    #[doc = "\n Called when |view| loses focus.\n"]
13989    pub on_blur: ::std::option::Option<
13990        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
13991    >,
13992    #[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"]
13993    pub on_theme_changed: ::std::option::Option<
13994        unsafe extern "C" fn(self_: *mut _cef_view_delegate_t, view: *mut _cef_view_t),
13995    >,
13996}
13997#[allow(clippy::unnecessary_operation, clippy::identity_op)]
13998const _: () = {
13999    ["Size of _cef_view_delegate_t"][::std::mem::size_of::<_cef_view_delegate_t>() - 128usize];
14000    ["Alignment of _cef_view_delegate_t"][::std::mem::align_of::<_cef_view_delegate_t>() - 8usize];
14001    ["Offset of field: _cef_view_delegate_t::base"]
14002        [::std::mem::offset_of!(_cef_view_delegate_t, base) - 0usize];
14003    ["Offset of field: _cef_view_delegate_t::get_preferred_size"]
14004        [::std::mem::offset_of!(_cef_view_delegate_t, get_preferred_size) - 40usize];
14005    ["Offset of field: _cef_view_delegate_t::get_minimum_size"]
14006        [::std::mem::offset_of!(_cef_view_delegate_t, get_minimum_size) - 48usize];
14007    ["Offset of field: _cef_view_delegate_t::get_maximum_size"]
14008        [::std::mem::offset_of!(_cef_view_delegate_t, get_maximum_size) - 56usize];
14009    ["Offset of field: _cef_view_delegate_t::get_height_for_width"]
14010        [::std::mem::offset_of!(_cef_view_delegate_t, get_height_for_width) - 64usize];
14011    ["Offset of field: _cef_view_delegate_t::on_parent_view_changed"]
14012        [::std::mem::offset_of!(_cef_view_delegate_t, on_parent_view_changed) - 72usize];
14013    ["Offset of field: _cef_view_delegate_t::on_child_view_changed"]
14014        [::std::mem::offset_of!(_cef_view_delegate_t, on_child_view_changed) - 80usize];
14015    ["Offset of field: _cef_view_delegate_t::on_window_changed"]
14016        [::std::mem::offset_of!(_cef_view_delegate_t, on_window_changed) - 88usize];
14017    ["Offset of field: _cef_view_delegate_t::on_layout_changed"]
14018        [::std::mem::offset_of!(_cef_view_delegate_t, on_layout_changed) - 96usize];
14019    ["Offset of field: _cef_view_delegate_t::on_focus"]
14020        [::std::mem::offset_of!(_cef_view_delegate_t, on_focus) - 104usize];
14021    ["Offset of field: _cef_view_delegate_t::on_blur"]
14022        [::std::mem::offset_of!(_cef_view_delegate_t, on_blur) - 112usize];
14023    ["Offset of field: _cef_view_delegate_t::on_theme_changed"]
14024        [::std::mem::offset_of!(_cef_view_delegate_t, on_theme_changed) - 120usize];
14025};
14026#[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"]
14027pub type cef_view_delegate_t = _cef_view_delegate_t;
14028#[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"]
14029#[repr(C)]
14030#[derive(Debug, Copy, Clone)]
14031pub struct _cef_view_t {
14032    #[doc = "\n Base structure.\n"]
14033    pub base: cef_base_ref_counted_t,
14034    #[doc = "\n Returns this View as a BrowserView or NULL if this is not a BrowserView.\n"]
14035    pub as_browser_view: ::std::option::Option<
14036        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_browser_view_t,
14037    >,
14038    #[doc = "\n Returns this View as a Button or NULL if this is not a Button.\n"]
14039    pub as_button:
14040        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_button_t>,
14041    #[doc = "\n Returns this View as a Panel or NULL if this is not a Panel.\n"]
14042    pub as_panel:
14043        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_panel_t>,
14044    #[doc = "\n Returns this View as a ScrollView or NULL if this is not a ScrollView.\n"]
14045    pub as_scroll_view: ::std::option::Option<
14046        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_scroll_view_t,
14047    >,
14048    #[doc = "\n Returns this View as a Textfield or NULL if this is not a Textfield.\n"]
14049    pub as_textfield: ::std::option::Option<
14050        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_textfield_t,
14051    >,
14052    #[doc = "\n Returns the type of this View as a string. Used primarily for testing\n purposes.\n"]
14053    pub get_type_string: ::std::option::Option<
14054        unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_string_userfree_t,
14055    >,
14056    #[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"]
14057    pub to_string: ::std::option::Option<
14058        unsafe extern "C" fn(
14059            self_: *mut _cef_view_t,
14060            include_children: ::std::os::raw::c_int,
14061        ) -> cef_string_userfree_t,
14062    >,
14063    #[doc = "\n Returns true (1) if this View is valid.\n"]
14064    pub is_valid: ::std::option::Option<
14065        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14066    >,
14067    #[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"]
14068    pub is_attached: ::std::option::Option<
14069        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14070    >,
14071    #[doc = "\n Returns true (1) if this View is the same as |that| View.\n"]
14072    pub is_same: ::std::option::Option<
14073        unsafe extern "C" fn(
14074            self_: *mut _cef_view_t,
14075            that: *mut _cef_view_t,
14076        ) -> ::std::os::raw::c_int,
14077    >,
14078    #[doc = "\n Returns the delegate associated with this View, if any.\n"]
14079    pub get_delegate: ::std::option::Option<
14080        unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_view_delegate_t,
14081    >,
14082    #[doc = "\n Returns the top-level Window hosting this View, if any.\n"]
14083    pub get_window:
14084        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_window_t>,
14085    #[doc = "\n Returns the ID for this View.\n"]
14086    pub get_id: ::std::option::Option<
14087        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14088    >,
14089    #[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"]
14090    pub set_id: ::std::option::Option<
14091        unsafe extern "C" fn(self_: *mut _cef_view_t, id: ::std::os::raw::c_int),
14092    >,
14093    #[doc = "\n Returns the group id of this View, or -1 if not set.\n"]
14094    pub get_group_id: ::std::option::Option<
14095        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14096    >,
14097    #[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"]
14098    pub set_group_id: ::std::option::Option<
14099        unsafe extern "C" fn(self_: *mut _cef_view_t, group_id: ::std::os::raw::c_int),
14100    >,
14101    #[doc = "\n Returns the View that contains this View, if any.\n"]
14102    pub get_parent_view:
14103        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> *mut _cef_view_t>,
14104    #[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"]
14105    pub get_view_for_id: ::std::option::Option<
14106        unsafe extern "C" fn(
14107            self_: *mut _cef_view_t,
14108            id: ::std::os::raw::c_int,
14109        ) -> *mut _cef_view_t,
14110    >,
14111    #[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"]
14112    pub set_bounds: ::std::option::Option<
14113        unsafe extern "C" fn(self_: *mut _cef_view_t, bounds: *const cef_rect_t),
14114    >,
14115    #[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"]
14116    pub get_bounds:
14117        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_rect_t>,
14118    #[doc = "\n Returns the bounds (size and position) of this View in DIP screen\n coordinates.\n"]
14119    pub get_bounds_in_screen:
14120        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_rect_t>,
14121    #[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"]
14122    pub set_size: ::std::option::Option<
14123        unsafe extern "C" fn(self_: *mut _cef_view_t, size: *const cef_size_t),
14124    >,
14125    #[doc = "\n Returns the size of this View in parent coordinates, or DIP screen\n coordinates if there is no parent.\n"]
14126    pub get_size:
14127        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
14128    #[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"]
14129    pub set_position: ::std::option::Option<
14130        unsafe extern "C" fn(self_: *mut _cef_view_t, position: *const cef_point_t),
14131    >,
14132    #[doc = "\n Returns the position of this View. Position is in parent coordinates, or\n DIP screen coordinates if there is no parent.\n"]
14133    pub get_position:
14134        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_point_t>,
14135    #[doc = "\n Sets the insets for this View. |insets| is in parent coordinates, or DIP\n screen coordinates if there is no parent.\n"]
14136    pub set_insets: ::std::option::Option<
14137        unsafe extern "C" fn(self_: *mut _cef_view_t, insets: *const cef_insets_t),
14138    >,
14139    #[doc = "\n Returns the insets for this View in parent coordinates, or DIP screen\n coordinates if there is no parent.\n"]
14140    pub get_insets:
14141        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_insets_t>,
14142    #[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"]
14143    pub get_preferred_size:
14144        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
14145    #[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"]
14146    pub size_to_preferred_size:
14147        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
14148    #[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"]
14149    pub get_minimum_size:
14150        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
14151    #[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"]
14152    pub get_maximum_size:
14153        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_size_t>,
14154    #[doc = "\n Returns the height necessary to display this View with the provided width.\n"]
14155    pub get_height_for_width: ::std::option::Option<
14156        unsafe extern "C" fn(
14157            self_: *mut _cef_view_t,
14158            width: ::std::os::raw::c_int,
14159        ) -> ::std::os::raw::c_int,
14160    >,
14161    #[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"]
14162    pub invalidate_layout: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
14163    #[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"]
14164    pub set_visible: ::std::option::Option<
14165        unsafe extern "C" fn(self_: *mut _cef_view_t, visible: ::std::os::raw::c_int),
14166    >,
14167    #[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"]
14168    pub is_visible: ::std::option::Option<
14169        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14170    >,
14171    #[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"]
14172    pub is_drawn: ::std::option::Option<
14173        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14174    >,
14175    #[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"]
14176    pub set_enabled: ::std::option::Option<
14177        unsafe extern "C" fn(self_: *mut _cef_view_t, enabled: ::std::os::raw::c_int),
14178    >,
14179    #[doc = "\n Returns whether this View is enabled.\n"]
14180    pub is_enabled: ::std::option::Option<
14181        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14182    >,
14183    #[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"]
14184    pub set_focusable: ::std::option::Option<
14185        unsafe extern "C" fn(self_: *mut _cef_view_t, focusable: ::std::os::raw::c_int),
14186    >,
14187    #[doc = "\n Returns true (1) if this View is focusable, enabled and drawn.\n"]
14188    pub is_focusable: ::std::option::Option<
14189        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14190    >,
14191    #[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"]
14192    pub is_accessibility_focusable: ::std::option::Option<
14193        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14194    >,
14195    #[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"]
14196    pub has_focus: ::std::option::Option<
14197        unsafe extern "C" fn(self_: *mut _cef_view_t) -> ::std::os::raw::c_int,
14198    >,
14199    #[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"]
14200    pub request_focus: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t)>,
14201    #[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"]
14202    pub set_background_color:
14203        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t, color: cef_color_t)>,
14204    #[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"]
14205    pub get_background_color:
14206        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_view_t) -> cef_color_t>,
14207    #[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"]
14208    pub get_theme_color: ::std::option::Option<
14209        unsafe extern "C" fn(
14210            self_: *mut _cef_view_t,
14211            color_id: ::std::os::raw::c_int,
14212        ) -> cef_color_t,
14213    >,
14214    #[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"]
14215    pub convert_point_to_screen: ::std::option::Option<
14216        unsafe extern "C" fn(
14217            self_: *mut _cef_view_t,
14218            point: *mut cef_point_t,
14219        ) -> ::std::os::raw::c_int,
14220    >,
14221    #[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"]
14222    pub convert_point_from_screen: ::std::option::Option<
14223        unsafe extern "C" fn(
14224            self_: *mut _cef_view_t,
14225            point: *mut cef_point_t,
14226        ) -> ::std::os::raw::c_int,
14227    >,
14228    #[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"]
14229    pub convert_point_to_window: ::std::option::Option<
14230        unsafe extern "C" fn(
14231            self_: *mut _cef_view_t,
14232            point: *mut cef_point_t,
14233        ) -> ::std::os::raw::c_int,
14234    >,
14235    #[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"]
14236    pub convert_point_from_window: ::std::option::Option<
14237        unsafe extern "C" fn(
14238            self_: *mut _cef_view_t,
14239            point: *mut cef_point_t,
14240        ) -> ::std::os::raw::c_int,
14241    >,
14242    #[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"]
14243    pub convert_point_to_view: ::std::option::Option<
14244        unsafe extern "C" fn(
14245            self_: *mut _cef_view_t,
14246            view: *mut _cef_view_t,
14247            point: *mut cef_point_t,
14248        ) -> ::std::os::raw::c_int,
14249    >,
14250    #[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"]
14251    pub convert_point_from_view: ::std::option::Option<
14252        unsafe extern "C" fn(
14253            self_: *mut _cef_view_t,
14254            view: *mut _cef_view_t,
14255            point: *mut cef_point_t,
14256        ) -> ::std::os::raw::c_int,
14257    >,
14258}
14259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14260const _: () = {
14261    ["Size of _cef_view_t"][::std::mem::size_of::<_cef_view_t>() - 456usize];
14262    ["Alignment of _cef_view_t"][::std::mem::align_of::<_cef_view_t>() - 8usize];
14263    ["Offset of field: _cef_view_t::base"][::std::mem::offset_of!(_cef_view_t, base) - 0usize];
14264    ["Offset of field: _cef_view_t::as_browser_view"]
14265        [::std::mem::offset_of!(_cef_view_t, as_browser_view) - 40usize];
14266    ["Offset of field: _cef_view_t::as_button"]
14267        [::std::mem::offset_of!(_cef_view_t, as_button) - 48usize];
14268    ["Offset of field: _cef_view_t::as_panel"]
14269        [::std::mem::offset_of!(_cef_view_t, as_panel) - 56usize];
14270    ["Offset of field: _cef_view_t::as_scroll_view"]
14271        [::std::mem::offset_of!(_cef_view_t, as_scroll_view) - 64usize];
14272    ["Offset of field: _cef_view_t::as_textfield"]
14273        [::std::mem::offset_of!(_cef_view_t, as_textfield) - 72usize];
14274    ["Offset of field: _cef_view_t::get_type_string"]
14275        [::std::mem::offset_of!(_cef_view_t, get_type_string) - 80usize];
14276    ["Offset of field: _cef_view_t::to_string"]
14277        [::std::mem::offset_of!(_cef_view_t, to_string) - 88usize];
14278    ["Offset of field: _cef_view_t::is_valid"]
14279        [::std::mem::offset_of!(_cef_view_t, is_valid) - 96usize];
14280    ["Offset of field: _cef_view_t::is_attached"]
14281        [::std::mem::offset_of!(_cef_view_t, is_attached) - 104usize];
14282    ["Offset of field: _cef_view_t::is_same"]
14283        [::std::mem::offset_of!(_cef_view_t, is_same) - 112usize];
14284    ["Offset of field: _cef_view_t::get_delegate"]
14285        [::std::mem::offset_of!(_cef_view_t, get_delegate) - 120usize];
14286    ["Offset of field: _cef_view_t::get_window"]
14287        [::std::mem::offset_of!(_cef_view_t, get_window) - 128usize];
14288    ["Offset of field: _cef_view_t::get_id"]
14289        [::std::mem::offset_of!(_cef_view_t, get_id) - 136usize];
14290    ["Offset of field: _cef_view_t::set_id"]
14291        [::std::mem::offset_of!(_cef_view_t, set_id) - 144usize];
14292    ["Offset of field: _cef_view_t::get_group_id"]
14293        [::std::mem::offset_of!(_cef_view_t, get_group_id) - 152usize];
14294    ["Offset of field: _cef_view_t::set_group_id"]
14295        [::std::mem::offset_of!(_cef_view_t, set_group_id) - 160usize];
14296    ["Offset of field: _cef_view_t::get_parent_view"]
14297        [::std::mem::offset_of!(_cef_view_t, get_parent_view) - 168usize];
14298    ["Offset of field: _cef_view_t::get_view_for_id"]
14299        [::std::mem::offset_of!(_cef_view_t, get_view_for_id) - 176usize];
14300    ["Offset of field: _cef_view_t::set_bounds"]
14301        [::std::mem::offset_of!(_cef_view_t, set_bounds) - 184usize];
14302    ["Offset of field: _cef_view_t::get_bounds"]
14303        [::std::mem::offset_of!(_cef_view_t, get_bounds) - 192usize];
14304    ["Offset of field: _cef_view_t::get_bounds_in_screen"]
14305        [::std::mem::offset_of!(_cef_view_t, get_bounds_in_screen) - 200usize];
14306    ["Offset of field: _cef_view_t::set_size"]
14307        [::std::mem::offset_of!(_cef_view_t, set_size) - 208usize];
14308    ["Offset of field: _cef_view_t::get_size"]
14309        [::std::mem::offset_of!(_cef_view_t, get_size) - 216usize];
14310    ["Offset of field: _cef_view_t::set_position"]
14311        [::std::mem::offset_of!(_cef_view_t, set_position) - 224usize];
14312    ["Offset of field: _cef_view_t::get_position"]
14313        [::std::mem::offset_of!(_cef_view_t, get_position) - 232usize];
14314    ["Offset of field: _cef_view_t::set_insets"]
14315        [::std::mem::offset_of!(_cef_view_t, set_insets) - 240usize];
14316    ["Offset of field: _cef_view_t::get_insets"]
14317        [::std::mem::offset_of!(_cef_view_t, get_insets) - 248usize];
14318    ["Offset of field: _cef_view_t::get_preferred_size"]
14319        [::std::mem::offset_of!(_cef_view_t, get_preferred_size) - 256usize];
14320    ["Offset of field: _cef_view_t::size_to_preferred_size"]
14321        [::std::mem::offset_of!(_cef_view_t, size_to_preferred_size) - 264usize];
14322    ["Offset of field: _cef_view_t::get_minimum_size"]
14323        [::std::mem::offset_of!(_cef_view_t, get_minimum_size) - 272usize];
14324    ["Offset of field: _cef_view_t::get_maximum_size"]
14325        [::std::mem::offset_of!(_cef_view_t, get_maximum_size) - 280usize];
14326    ["Offset of field: _cef_view_t::get_height_for_width"]
14327        [::std::mem::offset_of!(_cef_view_t, get_height_for_width) - 288usize];
14328    ["Offset of field: _cef_view_t::invalidate_layout"]
14329        [::std::mem::offset_of!(_cef_view_t, invalidate_layout) - 296usize];
14330    ["Offset of field: _cef_view_t::set_visible"]
14331        [::std::mem::offset_of!(_cef_view_t, set_visible) - 304usize];
14332    ["Offset of field: _cef_view_t::is_visible"]
14333        [::std::mem::offset_of!(_cef_view_t, is_visible) - 312usize];
14334    ["Offset of field: _cef_view_t::is_drawn"]
14335        [::std::mem::offset_of!(_cef_view_t, is_drawn) - 320usize];
14336    ["Offset of field: _cef_view_t::set_enabled"]
14337        [::std::mem::offset_of!(_cef_view_t, set_enabled) - 328usize];
14338    ["Offset of field: _cef_view_t::is_enabled"]
14339        [::std::mem::offset_of!(_cef_view_t, is_enabled) - 336usize];
14340    ["Offset of field: _cef_view_t::set_focusable"]
14341        [::std::mem::offset_of!(_cef_view_t, set_focusable) - 344usize];
14342    ["Offset of field: _cef_view_t::is_focusable"]
14343        [::std::mem::offset_of!(_cef_view_t, is_focusable) - 352usize];
14344    ["Offset of field: _cef_view_t::is_accessibility_focusable"]
14345        [::std::mem::offset_of!(_cef_view_t, is_accessibility_focusable) - 360usize];
14346    ["Offset of field: _cef_view_t::has_focus"]
14347        [::std::mem::offset_of!(_cef_view_t, has_focus) - 368usize];
14348    ["Offset of field: _cef_view_t::request_focus"]
14349        [::std::mem::offset_of!(_cef_view_t, request_focus) - 376usize];
14350    ["Offset of field: _cef_view_t::set_background_color"]
14351        [::std::mem::offset_of!(_cef_view_t, set_background_color) - 384usize];
14352    ["Offset of field: _cef_view_t::get_background_color"]
14353        [::std::mem::offset_of!(_cef_view_t, get_background_color) - 392usize];
14354    ["Offset of field: _cef_view_t::get_theme_color"]
14355        [::std::mem::offset_of!(_cef_view_t, get_theme_color) - 400usize];
14356    ["Offset of field: _cef_view_t::convert_point_to_screen"]
14357        [::std::mem::offset_of!(_cef_view_t, convert_point_to_screen) - 408usize];
14358    ["Offset of field: _cef_view_t::convert_point_from_screen"]
14359        [::std::mem::offset_of!(_cef_view_t, convert_point_from_screen) - 416usize];
14360    ["Offset of field: _cef_view_t::convert_point_to_window"]
14361        [::std::mem::offset_of!(_cef_view_t, convert_point_to_window) - 424usize];
14362    ["Offset of field: _cef_view_t::convert_point_from_window"]
14363        [::std::mem::offset_of!(_cef_view_t, convert_point_from_window) - 432usize];
14364    ["Offset of field: _cef_view_t::convert_point_to_view"]
14365        [::std::mem::offset_of!(_cef_view_t, convert_point_to_view) - 440usize];
14366    ["Offset of field: _cef_view_t::convert_point_from_view"]
14367        [::std::mem::offset_of!(_cef_view_t, convert_point_from_view) - 448usize];
14368};
14369#[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"]
14370pub type cef_view_t = _cef_view_t;
14371#[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"]
14372#[repr(C)]
14373#[derive(Debug, Copy, Clone)]
14374pub struct _cef_button_t {
14375    #[doc = "\n Base structure.\n"]
14376    pub base: cef_view_t,
14377    #[doc = "\n Returns this Button as a LabelButton or NULL if this is not a LabelButton.\n"]
14378    pub as_label_button: ::std::option::Option<
14379        unsafe extern "C" fn(self_: *mut _cef_button_t) -> *mut _cef_label_button_t,
14380    >,
14381    #[doc = "\n Sets the current display state of the Button.\n"]
14382    pub set_state: ::std::option::Option<
14383        unsafe extern "C" fn(self_: *mut _cef_button_t, state: cef_button_state_t),
14384    >,
14385    #[doc = "\n Returns the current display state of the Button.\n"]
14386    pub get_state: ::std::option::Option<
14387        unsafe extern "C" fn(self_: *mut _cef_button_t) -> cef_button_state_t,
14388    >,
14389    #[doc = "\n Sets the Button will use an ink drop effect for displaying state changes.\n"]
14390    pub set_ink_drop_enabled: ::std::option::Option<
14391        unsafe extern "C" fn(self_: *mut _cef_button_t, enabled: ::std::os::raw::c_int),
14392    >,
14393    #[doc = "\n Sets the tooltip text that will be displayed when the user hovers the\n mouse cursor over the Button.\n"]
14394    pub set_tooltip_text: ::std::option::Option<
14395        unsafe extern "C" fn(self_: *mut _cef_button_t, tooltip_text: *const cef_string_t),
14396    >,
14397    #[doc = "\n Sets the accessible name that will be exposed to assistive technology\n (AT).\n"]
14398    pub set_accessible_name: ::std::option::Option<
14399        unsafe extern "C" fn(self_: *mut _cef_button_t, name: *const cef_string_t),
14400    >,
14401}
14402#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14403const _: () = {
14404    ["Size of _cef_button_t"][::std::mem::size_of::<_cef_button_t>() - 504usize];
14405    ["Alignment of _cef_button_t"][::std::mem::align_of::<_cef_button_t>() - 8usize];
14406    ["Offset of field: _cef_button_t::base"][::std::mem::offset_of!(_cef_button_t, base) - 0usize];
14407    ["Offset of field: _cef_button_t::as_label_button"]
14408        [::std::mem::offset_of!(_cef_button_t, as_label_button) - 456usize];
14409    ["Offset of field: _cef_button_t::set_state"]
14410        [::std::mem::offset_of!(_cef_button_t, set_state) - 464usize];
14411    ["Offset of field: _cef_button_t::get_state"]
14412        [::std::mem::offset_of!(_cef_button_t, get_state) - 472usize];
14413    ["Offset of field: _cef_button_t::set_ink_drop_enabled"]
14414        [::std::mem::offset_of!(_cef_button_t, set_ink_drop_enabled) - 480usize];
14415    ["Offset of field: _cef_button_t::set_tooltip_text"]
14416        [::std::mem::offset_of!(_cef_button_t, set_tooltip_text) - 488usize];
14417    ["Offset of field: _cef_button_t::set_accessible_name"]
14418        [::std::mem::offset_of!(_cef_button_t, set_accessible_name) - 496usize];
14419};
14420#[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"]
14421pub type cef_button_t = _cef_button_t;
14422#[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"]
14423#[repr(C)]
14424#[derive(Debug, Copy, Clone)]
14425pub struct _cef_button_delegate_t {
14426    #[doc = "\n Base structure.\n"]
14427    pub base: cef_view_delegate_t,
14428    #[doc = "\n Called when |button| is pressed.\n"]
14429    pub on_button_pressed: ::std::option::Option<
14430        unsafe extern "C" fn(self_: *mut _cef_button_delegate_t, button: *mut _cef_button_t),
14431    >,
14432    #[doc = "\n Called when the state of |button| changes.\n"]
14433    pub on_button_state_changed: ::std::option::Option<
14434        unsafe extern "C" fn(self_: *mut _cef_button_delegate_t, button: *mut _cef_button_t),
14435    >,
14436}
14437#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14438const _: () = {
14439    ["Size of _cef_button_delegate_t"][::std::mem::size_of::<_cef_button_delegate_t>() - 144usize];
14440    ["Alignment of _cef_button_delegate_t"]
14441        [::std::mem::align_of::<_cef_button_delegate_t>() - 8usize];
14442    ["Offset of field: _cef_button_delegate_t::base"]
14443        [::std::mem::offset_of!(_cef_button_delegate_t, base) - 0usize];
14444    ["Offset of field: _cef_button_delegate_t::on_button_pressed"]
14445        [::std::mem::offset_of!(_cef_button_delegate_t, on_button_pressed) - 128usize];
14446    ["Offset of field: _cef_button_delegate_t::on_button_state_changed"]
14447        [::std::mem::offset_of!(_cef_button_delegate_t, on_button_state_changed) - 136usize];
14448};
14449#[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"]
14450pub type cef_button_delegate_t = _cef_button_delegate_t;
14451#[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"]
14452#[repr(C)]
14453#[derive(Debug, Copy, Clone)]
14454pub struct _cef_label_button_t {
14455    #[doc = "\n Base structure.\n"]
14456    pub base: cef_button_t,
14457    #[doc = "\n Returns this LabelButton as a MenuButton or NULL if this is not a\n MenuButton.\n"]
14458    pub as_menu_button: ::std::option::Option<
14459        unsafe extern "C" fn(self_: *mut _cef_label_button_t) -> *mut _cef_menu_button_t,
14460    >,
14461    #[doc = "\n Sets the text shown on the LabelButton. By default |text| will also be\n used as the accessible name.\n"]
14462    pub set_text: ::std::option::Option<
14463        unsafe extern "C" fn(self_: *mut _cef_label_button_t, text: *const cef_string_t),
14464    >,
14465    #[doc = "\n Returns the text shown on the LabelButton.\n"]
14466    pub get_text: ::std::option::Option<
14467        unsafe extern "C" fn(self_: *mut _cef_label_button_t) -> cef_string_userfree_t,
14468    >,
14469    #[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"]
14470    pub set_image: ::std::option::Option<
14471        unsafe extern "C" fn(
14472            self_: *mut _cef_label_button_t,
14473            button_state: cef_button_state_t,
14474            image: *mut _cef_image_t,
14475        ),
14476    >,
14477    #[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"]
14478    pub get_image: ::std::option::Option<
14479        unsafe extern "C" fn(
14480            self_: *mut _cef_label_button_t,
14481            button_state: cef_button_state_t,
14482        ) -> *mut _cef_image_t,
14483    >,
14484    #[doc = "\n Sets the text color shown for the specified button |for_state| to |color|.\n"]
14485    pub set_text_color: ::std::option::Option<
14486        unsafe extern "C" fn(
14487            self_: *mut _cef_label_button_t,
14488            for_state: cef_button_state_t,
14489            color: cef_color_t,
14490        ),
14491    >,
14492    #[doc = "\n Sets the text colors shown for the non-disabled states to |color|.\n"]
14493    pub set_enabled_text_colors: ::std::option::Option<
14494        unsafe extern "C" fn(self_: *mut _cef_label_button_t, color: cef_color_t),
14495    >,
14496    #[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"]
14497    pub set_font_list: ::std::option::Option<
14498        unsafe extern "C" fn(self_: *mut _cef_label_button_t, font_list: *const cef_string_t),
14499    >,
14500    #[doc = "\n Sets the horizontal alignment; reversed in RTL. Default is\n CEF_HORIZONTAL_ALIGNMENT_CENTER.\n"]
14501    pub set_horizontal_alignment: ::std::option::Option<
14502        unsafe extern "C" fn(
14503            self_: *mut _cef_label_button_t,
14504            alignment: cef_horizontal_alignment_t,
14505        ),
14506    >,
14507    #[doc = "\n Reset the minimum size of this LabelButton to |size|.\n"]
14508    pub set_minimum_size: ::std::option::Option<
14509        unsafe extern "C" fn(self_: *mut _cef_label_button_t, size: *const cef_size_t),
14510    >,
14511    #[doc = "\n Reset the maximum size of this LabelButton to |size|.\n"]
14512    pub set_maximum_size: ::std::option::Option<
14513        unsafe extern "C" fn(self_: *mut _cef_label_button_t, size: *const cef_size_t),
14514    >,
14515}
14516#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14517const _: () = {
14518    ["Size of _cef_label_button_t"][::std::mem::size_of::<_cef_label_button_t>() - 592usize];
14519    ["Alignment of _cef_label_button_t"][::std::mem::align_of::<_cef_label_button_t>() - 8usize];
14520    ["Offset of field: _cef_label_button_t::base"]
14521        [::std::mem::offset_of!(_cef_label_button_t, base) - 0usize];
14522    ["Offset of field: _cef_label_button_t::as_menu_button"]
14523        [::std::mem::offset_of!(_cef_label_button_t, as_menu_button) - 504usize];
14524    ["Offset of field: _cef_label_button_t::set_text"]
14525        [::std::mem::offset_of!(_cef_label_button_t, set_text) - 512usize];
14526    ["Offset of field: _cef_label_button_t::get_text"]
14527        [::std::mem::offset_of!(_cef_label_button_t, get_text) - 520usize];
14528    ["Offset of field: _cef_label_button_t::set_image"]
14529        [::std::mem::offset_of!(_cef_label_button_t, set_image) - 528usize];
14530    ["Offset of field: _cef_label_button_t::get_image"]
14531        [::std::mem::offset_of!(_cef_label_button_t, get_image) - 536usize];
14532    ["Offset of field: _cef_label_button_t::set_text_color"]
14533        [::std::mem::offset_of!(_cef_label_button_t, set_text_color) - 544usize];
14534    ["Offset of field: _cef_label_button_t::set_enabled_text_colors"]
14535        [::std::mem::offset_of!(_cef_label_button_t, set_enabled_text_colors) - 552usize];
14536    ["Offset of field: _cef_label_button_t::set_font_list"]
14537        [::std::mem::offset_of!(_cef_label_button_t, set_font_list) - 560usize];
14538    ["Offset of field: _cef_label_button_t::set_horizontal_alignment"]
14539        [::std::mem::offset_of!(_cef_label_button_t, set_horizontal_alignment) - 568usize];
14540    ["Offset of field: _cef_label_button_t::set_minimum_size"]
14541        [::std::mem::offset_of!(_cef_label_button_t, set_minimum_size) - 576usize];
14542    ["Offset of field: _cef_label_button_t::set_maximum_size"]
14543        [::std::mem::offset_of!(_cef_label_button_t, set_maximum_size) - 584usize];
14544};
14545#[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"]
14546pub type cef_label_button_t = _cef_label_button_t;
14547unsafe extern "C" {
14548    #[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"]
14549    pub fn cef_label_button_create(
14550        delegate: *mut _cef_button_delegate_t,
14551        text: *const cef_string_t,
14552    ) -> *mut cef_label_button_t;
14553}
14554#[doc = "\n MenuButton pressed lock is released when this object is destroyed.\n\n NOTE: This struct is allocated DLL-side.\n"]
14555#[repr(C)]
14556#[derive(Debug, Copy, Clone)]
14557pub struct _cef_menu_button_pressed_lock_t {
14558    #[doc = "\n Base structure.\n"]
14559    pub base: cef_base_ref_counted_t,
14560}
14561#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14562const _: () = {
14563    ["Size of _cef_menu_button_pressed_lock_t"]
14564        [::std::mem::size_of::<_cef_menu_button_pressed_lock_t>() - 40usize];
14565    ["Alignment of _cef_menu_button_pressed_lock_t"]
14566        [::std::mem::align_of::<_cef_menu_button_pressed_lock_t>() - 8usize];
14567    ["Offset of field: _cef_menu_button_pressed_lock_t::base"]
14568        [::std::mem::offset_of!(_cef_menu_button_pressed_lock_t, base) - 0usize];
14569};
14570#[doc = "\n MenuButton pressed lock is released when this object is destroyed.\n\n NOTE: This struct is allocated DLL-side.\n"]
14571pub type cef_menu_button_pressed_lock_t = _cef_menu_button_pressed_lock_t;
14572#[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"]
14573#[repr(C)]
14574#[derive(Debug, Copy, Clone)]
14575pub struct _cef_menu_button_delegate_t {
14576    #[doc = "\n Base structure.\n"]
14577    pub base: cef_button_delegate_t,
14578    #[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"]
14579    pub on_menu_button_pressed: ::std::option::Option<
14580        unsafe extern "C" fn(
14581            self_: *mut _cef_menu_button_delegate_t,
14582            menu_button: *mut _cef_menu_button_t,
14583            screen_point: *const cef_point_t,
14584            button_pressed_lock: *mut _cef_menu_button_pressed_lock_t,
14585        ),
14586    >,
14587}
14588#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14589const _: () = {
14590    ["Size of _cef_menu_button_delegate_t"]
14591        [::std::mem::size_of::<_cef_menu_button_delegate_t>() - 152usize];
14592    ["Alignment of _cef_menu_button_delegate_t"]
14593        [::std::mem::align_of::<_cef_menu_button_delegate_t>() - 8usize];
14594    ["Offset of field: _cef_menu_button_delegate_t::base"]
14595        [::std::mem::offset_of!(_cef_menu_button_delegate_t, base) - 0usize];
14596    ["Offset of field: _cef_menu_button_delegate_t::on_menu_button_pressed"]
14597        [::std::mem::offset_of!(_cef_menu_button_delegate_t, on_menu_button_pressed) - 144usize];
14598};
14599#[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"]
14600pub type cef_menu_button_delegate_t = _cef_menu_button_delegate_t;
14601#[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"]
14602#[repr(C)]
14603#[derive(Debug, Copy, Clone)]
14604pub struct _cef_menu_button_t {
14605    #[doc = "\n Base structure.\n"]
14606    pub base: cef_label_button_t,
14607    #[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"]
14608    pub show_menu: ::std::option::Option<
14609        unsafe extern "C" fn(
14610            self_: *mut _cef_menu_button_t,
14611            menu_model: *mut _cef_menu_model_t,
14612            screen_point: *const cef_point_t,
14613            anchor_position: cef_menu_anchor_position_t,
14614        ),
14615    >,
14616    #[doc = "\n Show the menu for this button. Results in a call to\n cef_menu_button_delegate_t::on_menu_button_pressed().\n"]
14617    pub trigger_menu: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_menu_button_t)>,
14618}
14619#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14620const _: () = {
14621    ["Size of _cef_menu_button_t"][::std::mem::size_of::<_cef_menu_button_t>() - 608usize];
14622    ["Alignment of _cef_menu_button_t"][::std::mem::align_of::<_cef_menu_button_t>() - 8usize];
14623    ["Offset of field: _cef_menu_button_t::base"]
14624        [::std::mem::offset_of!(_cef_menu_button_t, base) - 0usize];
14625    ["Offset of field: _cef_menu_button_t::show_menu"]
14626        [::std::mem::offset_of!(_cef_menu_button_t, show_menu) - 592usize];
14627    ["Offset of field: _cef_menu_button_t::trigger_menu"]
14628        [::std::mem::offset_of!(_cef_menu_button_t, trigger_menu) - 600usize];
14629};
14630#[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"]
14631pub type cef_menu_button_t = _cef_menu_button_t;
14632unsafe extern "C" {
14633    #[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"]
14634    pub fn cef_menu_button_create(
14635        delegate: *mut _cef_menu_button_delegate_t,
14636        text: *const cef_string_t,
14637    ) -> *mut cef_menu_button_t;
14638}
14639#[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"]
14640#[repr(C)]
14641#[derive(Debug, Copy, Clone)]
14642pub struct _cef_textfield_delegate_t {
14643    #[doc = "\n Base structure.\n"]
14644    pub base: cef_view_delegate_t,
14645    #[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"]
14646    pub on_key_event: ::std::option::Option<
14647        unsafe extern "C" fn(
14648            self_: *mut _cef_textfield_delegate_t,
14649            textfield: *mut _cef_textfield_t,
14650            event: *const cef_key_event_t,
14651        ) -> ::std::os::raw::c_int,
14652    >,
14653    #[doc = "\n Called after performing a user action that may change |textfield|.\n"]
14654    pub on_after_user_action: ::std::option::Option<
14655        unsafe extern "C" fn(
14656            self_: *mut _cef_textfield_delegate_t,
14657            textfield: *mut _cef_textfield_t,
14658        ),
14659    >,
14660}
14661#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14662const _: () = {
14663    ["Size of _cef_textfield_delegate_t"]
14664        [::std::mem::size_of::<_cef_textfield_delegate_t>() - 144usize];
14665    ["Alignment of _cef_textfield_delegate_t"]
14666        [::std::mem::align_of::<_cef_textfield_delegate_t>() - 8usize];
14667    ["Offset of field: _cef_textfield_delegate_t::base"]
14668        [::std::mem::offset_of!(_cef_textfield_delegate_t, base) - 0usize];
14669    ["Offset of field: _cef_textfield_delegate_t::on_key_event"]
14670        [::std::mem::offset_of!(_cef_textfield_delegate_t, on_key_event) - 128usize];
14671    ["Offset of field: _cef_textfield_delegate_t::on_after_user_action"]
14672        [::std::mem::offset_of!(_cef_textfield_delegate_t, on_after_user_action) - 136usize];
14673};
14674#[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"]
14675pub type cef_textfield_delegate_t = _cef_textfield_delegate_t;
14676#[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"]
14677#[repr(C)]
14678#[derive(Debug, Copy, Clone)]
14679pub struct _cef_textfield_t {
14680    #[doc = "\n Base structure.\n"]
14681    pub base: cef_view_t,
14682    #[doc = "\n Sets whether the text will be displayed as asterisks.\n"]
14683    pub set_password_input: ::std::option::Option<
14684        unsafe extern "C" fn(self_: *mut _cef_textfield_t, password_input: ::std::os::raw::c_int),
14685    >,
14686    #[doc = "\n Returns true (1) if the text will be displayed as asterisks.\n"]
14687    pub is_password_input: ::std::option::Option<
14688        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
14689    >,
14690    #[doc = "\n Sets whether the text will read-only.\n"]
14691    pub set_read_only: ::std::option::Option<
14692        unsafe extern "C" fn(self_: *mut _cef_textfield_t, read_only: ::std::os::raw::c_int),
14693    >,
14694    #[doc = "\n Returns true (1) if the text is read-only.\n"]
14695    pub is_read_only: ::std::option::Option<
14696        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
14697    >,
14698    #[doc = "\n Returns the currently displayed text.\n"]
14699    pub get_text: ::std::option::Option<
14700        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
14701    >,
14702    #[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"]
14703    pub set_text: ::std::option::Option<
14704        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
14705    >,
14706    #[doc = "\n Appends |text| to the previously-existing text.\n"]
14707    pub append_text: ::std::option::Option<
14708        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
14709    >,
14710    #[doc = "\n Inserts |text| at the current cursor position replacing any selected text.\n"]
14711    pub insert_or_replace_text: ::std::option::Option<
14712        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
14713    >,
14714    #[doc = "\n Returns true (1) if there is any selected text.\n"]
14715    pub has_selection: ::std::option::Option<
14716        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> ::std::os::raw::c_int,
14717    >,
14718    #[doc = "\n Returns the currently selected text.\n"]
14719    pub get_selected_text: ::std::option::Option<
14720        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
14721    >,
14722    #[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"]
14723    pub select_all: ::std::option::Option<
14724        unsafe extern "C" fn(self_: *mut _cef_textfield_t, reversed: ::std::os::raw::c_int),
14725    >,
14726    #[doc = "\n Clears the text selection and sets the caret to the end.\n"]
14727    pub clear_selection: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t)>,
14728    #[doc = "\n Returns the selected logical text range.\n"]
14729    pub get_selected_range:
14730        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_range_t>,
14731    #[doc = "\n Selects the specified logical text range.\n"]
14732    pub select_range: ::std::option::Option<
14733        unsafe extern "C" fn(self_: *mut _cef_textfield_t, range: *const cef_range_t),
14734    >,
14735    #[doc = "\n Returns the current cursor position.\n"]
14736    pub get_cursor_position:
14737        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> usize>,
14738    #[doc = "\n Sets the text color.\n"]
14739    pub set_text_color: ::std::option::Option<
14740        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
14741    >,
14742    #[doc = "\n Returns the text color.\n"]
14743    pub get_text_color:
14744        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
14745    #[doc = "\n Sets the selection text color.\n"]
14746    pub set_selection_text_color: ::std::option::Option<
14747        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
14748    >,
14749    #[doc = "\n Returns the selection text color.\n"]
14750    pub get_selection_text_color:
14751        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
14752    #[doc = "\n Sets the selection background color.\n"]
14753    pub set_selection_background_color: ::std::option::Option<
14754        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
14755    >,
14756    #[doc = "\n Returns the selection background color.\n"]
14757    pub get_selection_background_color:
14758        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_color_t>,
14759    #[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"]
14760    pub set_font_list: ::std::option::Option<
14761        unsafe extern "C" fn(self_: *mut _cef_textfield_t, font_list: *const cef_string_t),
14762    >,
14763    #[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"]
14764    pub apply_text_color: ::std::option::Option<
14765        unsafe extern "C" fn(
14766            self_: *mut _cef_textfield_t,
14767            color: cef_color_t,
14768            range: *const cef_range_t,
14769        ),
14770    >,
14771    #[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"]
14772    pub apply_text_style: ::std::option::Option<
14773        unsafe extern "C" fn(
14774            self_: *mut _cef_textfield_t,
14775            style: cef_text_style_t,
14776            add: ::std::os::raw::c_int,
14777            range: *const cef_range_t,
14778        ),
14779    >,
14780    #[doc = "\n Returns true (1) if the action associated with the specified command id is\n enabled. See additional comments on execute_command().\n"]
14781    pub is_command_enabled: ::std::option::Option<
14782        unsafe extern "C" fn(
14783            self_: *mut _cef_textfield_t,
14784            command_id: cef_text_field_commands_t,
14785        ) -> ::std::os::raw::c_int,
14786    >,
14787    #[doc = "\n Performs the action associated with the specified command id.\n"]
14788    pub execute_command: ::std::option::Option<
14789        unsafe extern "C" fn(self_: *mut _cef_textfield_t, command_id: cef_text_field_commands_t),
14790    >,
14791    #[doc = "\n Clears Edit history.\n"]
14792    pub clear_edit_history:
14793        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_textfield_t)>,
14794    #[doc = "\n Sets the placeholder text that will be displayed when the Textfield is\n NULL.\n"]
14795    pub set_placeholder_text: ::std::option::Option<
14796        unsafe extern "C" fn(self_: *mut _cef_textfield_t, text: *const cef_string_t),
14797    >,
14798    #[doc = "\n Returns the placeholder text that will be displayed when the Textfield is\n NULL.\n"]
14799    pub get_placeholder_text: ::std::option::Option<
14800        unsafe extern "C" fn(self_: *mut _cef_textfield_t) -> cef_string_userfree_t,
14801    >,
14802    #[doc = "\n Sets the placeholder text color.\n"]
14803    pub set_placeholder_text_color: ::std::option::Option<
14804        unsafe extern "C" fn(self_: *mut _cef_textfield_t, color: cef_color_t),
14805    >,
14806    #[doc = "\n Set the accessible name that will be exposed to assistive technology (AT).\n"]
14807    pub set_accessible_name: ::std::option::Option<
14808        unsafe extern "C" fn(self_: *mut _cef_textfield_t, name: *const cef_string_t),
14809    >,
14810}
14811#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14812const _: () = {
14813    ["Size of _cef_textfield_t"][::std::mem::size_of::<_cef_textfield_t>() - 704usize];
14814    ["Alignment of _cef_textfield_t"][::std::mem::align_of::<_cef_textfield_t>() - 8usize];
14815    ["Offset of field: _cef_textfield_t::base"]
14816        [::std::mem::offset_of!(_cef_textfield_t, base) - 0usize];
14817    ["Offset of field: _cef_textfield_t::set_password_input"]
14818        [::std::mem::offset_of!(_cef_textfield_t, set_password_input) - 456usize];
14819    ["Offset of field: _cef_textfield_t::is_password_input"]
14820        [::std::mem::offset_of!(_cef_textfield_t, is_password_input) - 464usize];
14821    ["Offset of field: _cef_textfield_t::set_read_only"]
14822        [::std::mem::offset_of!(_cef_textfield_t, set_read_only) - 472usize];
14823    ["Offset of field: _cef_textfield_t::is_read_only"]
14824        [::std::mem::offset_of!(_cef_textfield_t, is_read_only) - 480usize];
14825    ["Offset of field: _cef_textfield_t::get_text"]
14826        [::std::mem::offset_of!(_cef_textfield_t, get_text) - 488usize];
14827    ["Offset of field: _cef_textfield_t::set_text"]
14828        [::std::mem::offset_of!(_cef_textfield_t, set_text) - 496usize];
14829    ["Offset of field: _cef_textfield_t::append_text"]
14830        [::std::mem::offset_of!(_cef_textfield_t, append_text) - 504usize];
14831    ["Offset of field: _cef_textfield_t::insert_or_replace_text"]
14832        [::std::mem::offset_of!(_cef_textfield_t, insert_or_replace_text) - 512usize];
14833    ["Offset of field: _cef_textfield_t::has_selection"]
14834        [::std::mem::offset_of!(_cef_textfield_t, has_selection) - 520usize];
14835    ["Offset of field: _cef_textfield_t::get_selected_text"]
14836        [::std::mem::offset_of!(_cef_textfield_t, get_selected_text) - 528usize];
14837    ["Offset of field: _cef_textfield_t::select_all"]
14838        [::std::mem::offset_of!(_cef_textfield_t, select_all) - 536usize];
14839    ["Offset of field: _cef_textfield_t::clear_selection"]
14840        [::std::mem::offset_of!(_cef_textfield_t, clear_selection) - 544usize];
14841    ["Offset of field: _cef_textfield_t::get_selected_range"]
14842        [::std::mem::offset_of!(_cef_textfield_t, get_selected_range) - 552usize];
14843    ["Offset of field: _cef_textfield_t::select_range"]
14844        [::std::mem::offset_of!(_cef_textfield_t, select_range) - 560usize];
14845    ["Offset of field: _cef_textfield_t::get_cursor_position"]
14846        [::std::mem::offset_of!(_cef_textfield_t, get_cursor_position) - 568usize];
14847    ["Offset of field: _cef_textfield_t::set_text_color"]
14848        [::std::mem::offset_of!(_cef_textfield_t, set_text_color) - 576usize];
14849    ["Offset of field: _cef_textfield_t::get_text_color"]
14850        [::std::mem::offset_of!(_cef_textfield_t, get_text_color) - 584usize];
14851    ["Offset of field: _cef_textfield_t::set_selection_text_color"]
14852        [::std::mem::offset_of!(_cef_textfield_t, set_selection_text_color) - 592usize];
14853    ["Offset of field: _cef_textfield_t::get_selection_text_color"]
14854        [::std::mem::offset_of!(_cef_textfield_t, get_selection_text_color) - 600usize];
14855    ["Offset of field: _cef_textfield_t::set_selection_background_color"]
14856        [::std::mem::offset_of!(_cef_textfield_t, set_selection_background_color) - 608usize];
14857    ["Offset of field: _cef_textfield_t::get_selection_background_color"]
14858        [::std::mem::offset_of!(_cef_textfield_t, get_selection_background_color) - 616usize];
14859    ["Offset of field: _cef_textfield_t::set_font_list"]
14860        [::std::mem::offset_of!(_cef_textfield_t, set_font_list) - 624usize];
14861    ["Offset of field: _cef_textfield_t::apply_text_color"]
14862        [::std::mem::offset_of!(_cef_textfield_t, apply_text_color) - 632usize];
14863    ["Offset of field: _cef_textfield_t::apply_text_style"]
14864        [::std::mem::offset_of!(_cef_textfield_t, apply_text_style) - 640usize];
14865    ["Offset of field: _cef_textfield_t::is_command_enabled"]
14866        [::std::mem::offset_of!(_cef_textfield_t, is_command_enabled) - 648usize];
14867    ["Offset of field: _cef_textfield_t::execute_command"]
14868        [::std::mem::offset_of!(_cef_textfield_t, execute_command) - 656usize];
14869    ["Offset of field: _cef_textfield_t::clear_edit_history"]
14870        [::std::mem::offset_of!(_cef_textfield_t, clear_edit_history) - 664usize];
14871    ["Offset of field: _cef_textfield_t::set_placeholder_text"]
14872        [::std::mem::offset_of!(_cef_textfield_t, set_placeholder_text) - 672usize];
14873    ["Offset of field: _cef_textfield_t::get_placeholder_text"]
14874        [::std::mem::offset_of!(_cef_textfield_t, get_placeholder_text) - 680usize];
14875    ["Offset of field: _cef_textfield_t::set_placeholder_text_color"]
14876        [::std::mem::offset_of!(_cef_textfield_t, set_placeholder_text_color) - 688usize];
14877    ["Offset of field: _cef_textfield_t::set_accessible_name"]
14878        [::std::mem::offset_of!(_cef_textfield_t, set_accessible_name) - 696usize];
14879};
14880#[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"]
14881pub type cef_textfield_t = _cef_textfield_t;
14882unsafe extern "C" {
14883    #[doc = "\n Create a new Textfield.\n"]
14884    pub fn cef_textfield_create(delegate: *mut _cef_textfield_delegate_t) -> *mut cef_textfield_t;
14885}
14886#[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"]
14887#[repr(C)]
14888#[derive(Debug, Copy, Clone)]
14889pub struct _cef_browser_view_delegate_t {
14890    #[doc = "\n Base structure.\n"]
14891    pub base: cef_view_delegate_t,
14892    #[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"]
14893    pub on_browser_created: ::std::option::Option<
14894        unsafe extern "C" fn(
14895            self_: *mut _cef_browser_view_delegate_t,
14896            browser_view: *mut _cef_browser_view_t,
14897            browser: *mut _cef_browser_t,
14898        ),
14899    >,
14900    #[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"]
14901    pub on_browser_destroyed: ::std::option::Option<
14902        unsafe extern "C" fn(
14903            self_: *mut _cef_browser_view_delegate_t,
14904            browser_view: *mut _cef_browser_view_t,
14905            browser: *mut _cef_browser_t,
14906        ),
14907    >,
14908    #[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"]
14909    pub get_delegate_for_popup_browser_view: ::std::option::Option<
14910        unsafe extern "C" fn(
14911            self_: *mut _cef_browser_view_delegate_t,
14912            browser_view: *mut _cef_browser_view_t,
14913            settings: *const _cef_browser_settings_t,
14914            client: *mut _cef_client_t,
14915            is_devtools: ::std::os::raw::c_int,
14916        ) -> *mut _cef_browser_view_delegate_t,
14917    >,
14918    #[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"]
14919    pub on_popup_browser_view_created: ::std::option::Option<
14920        unsafe extern "C" fn(
14921            self_: *mut _cef_browser_view_delegate_t,
14922            browser_view: *mut _cef_browser_view_t,
14923            popup_browser_view: *mut _cef_browser_view_t,
14924            is_devtools: ::std::os::raw::c_int,
14925        ) -> ::std::os::raw::c_int,
14926    >,
14927    #[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"]
14928    pub get_chrome_toolbar_type: ::std::option::Option<
14929        unsafe extern "C" fn(
14930            self_: *mut _cef_browser_view_delegate_t,
14931            browser_view: *mut _cef_browser_view_t,
14932        ) -> cef_chrome_toolbar_type_t,
14933    >,
14934    #[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"]
14935    pub use_frameless_window_for_picture_in_picture: ::std::option::Option<
14936        unsafe extern "C" fn(
14937            self_: *mut _cef_browser_view_delegate_t,
14938            browser_view: *mut _cef_browser_view_t,
14939        ) -> ::std::os::raw::c_int,
14940    >,
14941    #[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"]
14942    pub on_gesture_command: ::std::option::Option<
14943        unsafe extern "C" fn(
14944            self_: *mut _cef_browser_view_delegate_t,
14945            browser_view: *mut _cef_browser_view_t,
14946            gesture_command: cef_gesture_command_t,
14947        ) -> ::std::os::raw::c_int,
14948    >,
14949    #[doc = "\n Optionally change the runtime style for this BrowserView. See\n cef_runtime_style_t documentation for details.\n"]
14950    pub get_browser_runtime_style: ::std::option::Option<
14951        unsafe extern "C" fn(self_: *mut _cef_browser_view_delegate_t) -> cef_runtime_style_t,
14952    >,
14953}
14954#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14955const _: () = {
14956    ["Size of _cef_browser_view_delegate_t"]
14957        [::std::mem::size_of::<_cef_browser_view_delegate_t>() - 192usize];
14958    ["Alignment of _cef_browser_view_delegate_t"]
14959        [::std::mem::align_of::<_cef_browser_view_delegate_t>() - 8usize];
14960    ["Offset of field: _cef_browser_view_delegate_t::base"]
14961        [::std::mem::offset_of!(_cef_browser_view_delegate_t, base) - 0usize];
14962    ["Offset of field: _cef_browser_view_delegate_t::on_browser_created"]
14963        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_browser_created) - 128usize];
14964    ["Offset of field: _cef_browser_view_delegate_t::on_browser_destroyed"]
14965        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_browser_destroyed) - 136usize];
14966    ["Offset of field: _cef_browser_view_delegate_t::get_delegate_for_popup_browser_view"][::std::mem::offset_of!(
14967        _cef_browser_view_delegate_t,
14968        get_delegate_for_popup_browser_view
14969    )
14970        - 144usize];
14971    ["Offset of field: _cef_browser_view_delegate_t::on_popup_browser_view_created"][::std::mem::offset_of!(
14972        _cef_browser_view_delegate_t,
14973        on_popup_browser_view_created
14974    ) - 152usize];
14975    ["Offset of field: _cef_browser_view_delegate_t::get_chrome_toolbar_type"]
14976        [::std::mem::offset_of!(_cef_browser_view_delegate_t, get_chrome_toolbar_type) - 160usize];
14977    ["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] ;
14978    ["Offset of field: _cef_browser_view_delegate_t::on_gesture_command"]
14979        [::std::mem::offset_of!(_cef_browser_view_delegate_t, on_gesture_command) - 176usize];
14980    ["Offset of field: _cef_browser_view_delegate_t::get_browser_runtime_style"][::std::mem::offset_of!(
14981        _cef_browser_view_delegate_t,
14982        get_browser_runtime_style
14983    ) - 184usize];
14984};
14985#[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"]
14986pub type cef_browser_view_delegate_t = _cef_browser_view_delegate_t;
14987#[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"]
14988#[repr(C)]
14989#[derive(Debug, Copy, Clone)]
14990pub struct _cef_browser_view_t {
14991    #[doc = "\n Base structure.\n"]
14992    pub base: cef_view_t,
14993    #[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"]
14994    pub get_browser: ::std::option::Option<
14995        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> *mut _cef_browser_t,
14996    >,
14997    #[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"]
14998    pub get_chrome_toolbar: ::std::option::Option<
14999        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> *mut _cef_view_t,
15000    >,
15001    #[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"]
15002    pub set_prefer_accelerators: ::std::option::Option<
15003        unsafe extern "C" fn(
15004            self_: *mut _cef_browser_view_t,
15005            prefer_accelerators: ::std::os::raw::c_int,
15006        ),
15007    >,
15008    #[doc = "\n Returns the runtime style for this BrowserView (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
15009    pub get_runtime_style: ::std::option::Option<
15010        unsafe extern "C" fn(self_: *mut _cef_browser_view_t) -> cef_runtime_style_t,
15011    >,
15012}
15013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15014const _: () = {
15015    ["Size of _cef_browser_view_t"][::std::mem::size_of::<_cef_browser_view_t>() - 488usize];
15016    ["Alignment of _cef_browser_view_t"][::std::mem::align_of::<_cef_browser_view_t>() - 8usize];
15017    ["Offset of field: _cef_browser_view_t::base"]
15018        [::std::mem::offset_of!(_cef_browser_view_t, base) - 0usize];
15019    ["Offset of field: _cef_browser_view_t::get_browser"]
15020        [::std::mem::offset_of!(_cef_browser_view_t, get_browser) - 456usize];
15021    ["Offset of field: _cef_browser_view_t::get_chrome_toolbar"]
15022        [::std::mem::offset_of!(_cef_browser_view_t, get_chrome_toolbar) - 464usize];
15023    ["Offset of field: _cef_browser_view_t::set_prefer_accelerators"]
15024        [::std::mem::offset_of!(_cef_browser_view_t, set_prefer_accelerators) - 472usize];
15025    ["Offset of field: _cef_browser_view_t::get_runtime_style"]
15026        [::std::mem::offset_of!(_cef_browser_view_t, get_runtime_style) - 480usize];
15027};
15028#[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"]
15029pub type cef_browser_view_t = _cef_browser_view_t;
15030unsafe extern "C" {
15031    #[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"]
15032    pub fn cef_browser_view_create(
15033        client: *mut _cef_client_t,
15034        url: *const cef_string_t,
15035        settings: *const _cef_browser_settings_t,
15036        extra_info: *mut _cef_dictionary_value_t,
15037        request_context: *mut _cef_request_context_t,
15038        delegate: *mut _cef_browser_view_delegate_t,
15039    ) -> *mut cef_browser_view_t;
15040}
15041unsafe extern "C" {
15042    #[doc = "\n Returns the BrowserView associated with |browser|.\n"]
15043    pub fn cef_browser_view_get_for_browser(
15044        browser: *mut _cef_browser_t,
15045    ) -> *mut cef_browser_view_t;
15046}
15047#[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"]
15048#[repr(C)]
15049#[derive(Debug, Copy, Clone)]
15050pub struct _cef_scroll_view_t {
15051    #[doc = "\n Base structure.\n"]
15052    pub base: cef_view_t,
15053    #[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"]
15054    pub set_content_view: ::std::option::Option<
15055        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t, view: *mut _cef_view_t),
15056    >,
15057    #[doc = "\n Returns the content View.\n"]
15058    pub get_content_view: ::std::option::Option<
15059        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> *mut _cef_view_t,
15060    >,
15061    #[doc = "\n Returns the visible region of the content View.\n"]
15062    pub get_visible_content_rect:
15063        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> cef_rect_t>,
15064    #[doc = "\n Returns true (1) if the horizontal scrollbar is currently showing.\n"]
15065    pub has_horizontal_scrollbar: ::std::option::Option<
15066        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
15067    >,
15068    #[doc = "\n Returns the height of the horizontal scrollbar.\n"]
15069    pub get_horizontal_scrollbar_height: ::std::option::Option<
15070        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
15071    >,
15072    #[doc = "\n Returns true (1) if the vertical scrollbar is currently showing.\n"]
15073    pub has_vertical_scrollbar: ::std::option::Option<
15074        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
15075    >,
15076    #[doc = "\n Returns the width of the vertical scrollbar.\n"]
15077    pub get_vertical_scrollbar_width: ::std::option::Option<
15078        unsafe extern "C" fn(self_: *mut _cef_scroll_view_t) -> ::std::os::raw::c_int,
15079    >,
15080}
15081#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15082const _: () = {
15083    ["Size of _cef_scroll_view_t"][::std::mem::size_of::<_cef_scroll_view_t>() - 512usize];
15084    ["Alignment of _cef_scroll_view_t"][::std::mem::align_of::<_cef_scroll_view_t>() - 8usize];
15085    ["Offset of field: _cef_scroll_view_t::base"]
15086        [::std::mem::offset_of!(_cef_scroll_view_t, base) - 0usize];
15087    ["Offset of field: _cef_scroll_view_t::set_content_view"]
15088        [::std::mem::offset_of!(_cef_scroll_view_t, set_content_view) - 456usize];
15089    ["Offset of field: _cef_scroll_view_t::get_content_view"]
15090        [::std::mem::offset_of!(_cef_scroll_view_t, get_content_view) - 464usize];
15091    ["Offset of field: _cef_scroll_view_t::get_visible_content_rect"]
15092        [::std::mem::offset_of!(_cef_scroll_view_t, get_visible_content_rect) - 472usize];
15093    ["Offset of field: _cef_scroll_view_t::has_horizontal_scrollbar"]
15094        [::std::mem::offset_of!(_cef_scroll_view_t, has_horizontal_scrollbar) - 480usize];
15095    ["Offset of field: _cef_scroll_view_t::get_horizontal_scrollbar_height"]
15096        [::std::mem::offset_of!(_cef_scroll_view_t, get_horizontal_scrollbar_height) - 488usize];
15097    ["Offset of field: _cef_scroll_view_t::has_vertical_scrollbar"]
15098        [::std::mem::offset_of!(_cef_scroll_view_t, has_vertical_scrollbar) - 496usize];
15099    ["Offset of field: _cef_scroll_view_t::get_vertical_scrollbar_width"]
15100        [::std::mem::offset_of!(_cef_scroll_view_t, get_vertical_scrollbar_width) - 504usize];
15101};
15102#[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"]
15103pub type cef_scroll_view_t = _cef_scroll_view_t;
15104unsafe extern "C" {
15105    #[doc = "\n Create a new ScrollView.\n"]
15106    pub fn cef_scroll_view_create(delegate: *mut _cef_view_delegate_t) -> *mut cef_scroll_view_t;
15107}
15108#[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 NOTE: This struct is allocated DLL-side.\n"]
15109#[repr(C)]
15110#[derive(Debug, Copy, Clone)]
15111pub struct _cef_display_t {
15112    #[doc = "\n Base structure.\n"]
15113    pub base: cef_base_ref_counted_t,
15114    #[doc = "\n Returns the unique identifier for this Display.\n"]
15115    pub get_id: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> i64>,
15116    #[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.\n"]
15117    pub get_device_scale_factor:
15118        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> f32>,
15119    #[doc = "\n Convert |point| from DIP coordinates to pixel coordinates using this\n Display's device scale factor.\n"]
15120    pub convert_point_to_pixels: ::std::option::Option<
15121        unsafe extern "C" fn(self_: *mut _cef_display_t, point: *mut cef_point_t),
15122    >,
15123    #[doc = "\n Convert |point| from pixel coordinates to DIP coordinates using this\n Display's device scale factor.\n"]
15124    pub convert_point_from_pixels: ::std::option::Option<
15125        unsafe extern "C" fn(self_: *mut _cef_display_t, point: *mut cef_point_t),
15126    >,
15127    #[doc = "\n Returns this Display's bounds in DIP screen coordinates. This is the full\n size of the display.\n"]
15128    pub get_bounds:
15129        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> cef_rect_t>,
15130    #[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"]
15131    pub get_work_area:
15132        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_display_t) -> cef_rect_t>,
15133    #[doc = "\n Returns this Display's rotation in degrees.\n"]
15134    pub get_rotation: ::std::option::Option<
15135        unsafe extern "C" fn(self_: *mut _cef_display_t) -> ::std::os::raw::c_int,
15136    >,
15137}
15138#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15139const _: () = {
15140    ["Size of _cef_display_t"][::std::mem::size_of::<_cef_display_t>() - 96usize];
15141    ["Alignment of _cef_display_t"][::std::mem::align_of::<_cef_display_t>() - 8usize];
15142    ["Offset of field: _cef_display_t::base"]
15143        [::std::mem::offset_of!(_cef_display_t, base) - 0usize];
15144    ["Offset of field: _cef_display_t::get_id"]
15145        [::std::mem::offset_of!(_cef_display_t, get_id) - 40usize];
15146    ["Offset of field: _cef_display_t::get_device_scale_factor"]
15147        [::std::mem::offset_of!(_cef_display_t, get_device_scale_factor) - 48usize];
15148    ["Offset of field: _cef_display_t::convert_point_to_pixels"]
15149        [::std::mem::offset_of!(_cef_display_t, convert_point_to_pixels) - 56usize];
15150    ["Offset of field: _cef_display_t::convert_point_from_pixels"]
15151        [::std::mem::offset_of!(_cef_display_t, convert_point_from_pixels) - 64usize];
15152    ["Offset of field: _cef_display_t::get_bounds"]
15153        [::std::mem::offset_of!(_cef_display_t, get_bounds) - 72usize];
15154    ["Offset of field: _cef_display_t::get_work_area"]
15155        [::std::mem::offset_of!(_cef_display_t, get_work_area) - 80usize];
15156    ["Offset of field: _cef_display_t::get_rotation"]
15157        [::std::mem::offset_of!(_cef_display_t, get_rotation) - 88usize];
15158};
15159#[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 NOTE: This struct is allocated DLL-side.\n"]
15160pub type cef_display_t = _cef_display_t;
15161unsafe extern "C" {
15162    #[doc = "\n Returns the primary Display.\n"]
15163    pub fn cef_display_get_primary() -> *mut cef_display_t;
15164}
15165unsafe extern "C" {
15166    #[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"]
15167    pub fn cef_display_get_nearest_point(
15168        point: *const cef_point_t,
15169        input_pixel_coords: ::std::os::raw::c_int,
15170    ) -> *mut cef_display_t;
15171}
15172unsafe extern "C" {
15173    #[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"]
15174    pub fn cef_display_get_matching_bounds(
15175        bounds: *const cef_rect_t,
15176        input_pixel_coords: ::std::os::raw::c_int,
15177    ) -> *mut cef_display_t;
15178}
15179unsafe extern "C" {
15180    #[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"]
15181    pub fn cef_display_get_count() -> usize;
15182}
15183unsafe extern "C" {
15184    #[doc = "\n Returns all Displays. Mirrored displays are excluded; this function is\n intended to return distinct, usable displays.\n"]
15185    pub fn cef_display_get_alls(displaysCount: *mut usize, displays: *mut *mut cef_display_t);
15186}
15187unsafe extern "C" {
15188    #[doc = "\n Convert |point| from DIP screen coordinates to pixel screen coordinates.\n This function is only used on Windows.\n"]
15189    pub fn cef_display_convert_screen_point_to_pixels(point: *const cef_point_t) -> cef_point_t;
15190}
15191unsafe extern "C" {
15192    #[doc = "\n Convert |point| from pixel screen coordinates to DIP screen coordinates.\n This function is only used on Windows.\n"]
15193    pub fn cef_display_convert_screen_point_from_pixels(point: *const cef_point_t) -> cef_point_t;
15194}
15195unsafe extern "C" {
15196    #[doc = "\n Convert |rect| from DIP screen coordinates to pixel screen coordinates. This\n function is only used on Windows.\n"]
15197    pub fn cef_display_convert_screen_rect_to_pixels(rect: *const cef_rect_t) -> cef_rect_t;
15198}
15199unsafe extern "C" {
15200    #[doc = "\n Convert |rect| from pixel screen coordinates to DIP screen coordinates. This\n function is only used on Windows.\n"]
15201    pub fn cef_display_convert_screen_rect_from_pixels(rect: *const cef_rect_t) -> cef_rect_t;
15202}
15203#[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"]
15204#[repr(C)]
15205#[derive(Debug, Copy, Clone)]
15206pub struct _cef_overlay_controller_t {
15207    #[doc = "\n Base structure.\n"]
15208    pub base: cef_base_ref_counted_t,
15209    #[doc = "\n Returns true (1) if this object is valid.\n"]
15210    pub is_valid: ::std::option::Option<
15211        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
15212    >,
15213    #[doc = "\n Returns true (1) if this object is the same as |that| object.\n"]
15214    pub is_same: ::std::option::Option<
15215        unsafe extern "C" fn(
15216            self_: *mut _cef_overlay_controller_t,
15217            that: *mut _cef_overlay_controller_t,
15218        ) -> ::std::os::raw::c_int,
15219    >,
15220    #[doc = "\n Returns the contents View for this overlay.\n"]
15221    pub get_contents_view: ::std::option::Option<
15222        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> *mut _cef_view_t,
15223    >,
15224    #[doc = "\n Returns the top-level Window hosting this overlay. Use this function\n instead of calling get_window() on the contents View.\n"]
15225    pub get_window: ::std::option::Option<
15226        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> *mut _cef_window_t,
15227    >,
15228    #[doc = "\n Returns the docking mode for this overlay.\n"]
15229    pub get_docking_mode: ::std::option::Option<
15230        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_docking_mode_t,
15231    >,
15232    #[doc = "\n Destroy this overlay.\n"]
15233    pub destroy: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t)>,
15234    #[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"]
15235    pub set_bounds: ::std::option::Option<
15236        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, bounds: *const cef_rect_t),
15237    >,
15238    #[doc = "\n Returns the bounds (size and position) of this overlay in parent\n coordinates.\n"]
15239    pub get_bounds: ::std::option::Option<
15240        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_rect_t,
15241    >,
15242    #[doc = "\n Returns the bounds (size and position) of this overlay in DIP screen\n coordinates.\n"]
15243    pub get_bounds_in_screen: ::std::option::Option<
15244        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_rect_t,
15245    >,
15246    #[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"]
15247    pub set_size: ::std::option::Option<
15248        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, size: *const cef_size_t),
15249    >,
15250    #[doc = "\n Returns the size of this overlay in parent coordinates.\n"]
15251    pub get_size: ::std::option::Option<
15252        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_size_t,
15253    >,
15254    #[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"]
15255    pub set_position: ::std::option::Option<
15256        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, position: *const cef_point_t),
15257    >,
15258    #[doc = "\n Returns the position of this overlay in parent coordinates.\n"]
15259    pub get_position: ::std::option::Option<
15260        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_point_t,
15261    >,
15262    #[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"]
15263    pub set_insets: ::std::option::Option<
15264        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, insets: *const cef_insets_t),
15265    >,
15266    #[doc = "\n Returns the insets for this overlay in parent coordinates.\n"]
15267    pub get_insets: ::std::option::Option<
15268        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> cef_insets_t,
15269    >,
15270    #[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"]
15271    pub size_to_preferred_size:
15272        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t)>,
15273    #[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"]
15274    pub set_visible: ::std::option::Option<
15275        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t, visible: ::std::os::raw::c_int),
15276    >,
15277    #[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"]
15278    pub is_visible: ::std::option::Option<
15279        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
15280    >,
15281    #[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"]
15282    pub is_drawn: ::std::option::Option<
15283        unsafe extern "C" fn(self_: *mut _cef_overlay_controller_t) -> ::std::os::raw::c_int,
15284    >,
15285}
15286#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15287const _: () = {
15288    ["Size of _cef_overlay_controller_t"]
15289        [::std::mem::size_of::<_cef_overlay_controller_t>() - 192usize];
15290    ["Alignment of _cef_overlay_controller_t"]
15291        [::std::mem::align_of::<_cef_overlay_controller_t>() - 8usize];
15292    ["Offset of field: _cef_overlay_controller_t::base"]
15293        [::std::mem::offset_of!(_cef_overlay_controller_t, base) - 0usize];
15294    ["Offset of field: _cef_overlay_controller_t::is_valid"]
15295        [::std::mem::offset_of!(_cef_overlay_controller_t, is_valid) - 40usize];
15296    ["Offset of field: _cef_overlay_controller_t::is_same"]
15297        [::std::mem::offset_of!(_cef_overlay_controller_t, is_same) - 48usize];
15298    ["Offset of field: _cef_overlay_controller_t::get_contents_view"]
15299        [::std::mem::offset_of!(_cef_overlay_controller_t, get_contents_view) - 56usize];
15300    ["Offset of field: _cef_overlay_controller_t::get_window"]
15301        [::std::mem::offset_of!(_cef_overlay_controller_t, get_window) - 64usize];
15302    ["Offset of field: _cef_overlay_controller_t::get_docking_mode"]
15303        [::std::mem::offset_of!(_cef_overlay_controller_t, get_docking_mode) - 72usize];
15304    ["Offset of field: _cef_overlay_controller_t::destroy"]
15305        [::std::mem::offset_of!(_cef_overlay_controller_t, destroy) - 80usize];
15306    ["Offset of field: _cef_overlay_controller_t::set_bounds"]
15307        [::std::mem::offset_of!(_cef_overlay_controller_t, set_bounds) - 88usize];
15308    ["Offset of field: _cef_overlay_controller_t::get_bounds"]
15309        [::std::mem::offset_of!(_cef_overlay_controller_t, get_bounds) - 96usize];
15310    ["Offset of field: _cef_overlay_controller_t::get_bounds_in_screen"]
15311        [::std::mem::offset_of!(_cef_overlay_controller_t, get_bounds_in_screen) - 104usize];
15312    ["Offset of field: _cef_overlay_controller_t::set_size"]
15313        [::std::mem::offset_of!(_cef_overlay_controller_t, set_size) - 112usize];
15314    ["Offset of field: _cef_overlay_controller_t::get_size"]
15315        [::std::mem::offset_of!(_cef_overlay_controller_t, get_size) - 120usize];
15316    ["Offset of field: _cef_overlay_controller_t::set_position"]
15317        [::std::mem::offset_of!(_cef_overlay_controller_t, set_position) - 128usize];
15318    ["Offset of field: _cef_overlay_controller_t::get_position"]
15319        [::std::mem::offset_of!(_cef_overlay_controller_t, get_position) - 136usize];
15320    ["Offset of field: _cef_overlay_controller_t::set_insets"]
15321        [::std::mem::offset_of!(_cef_overlay_controller_t, set_insets) - 144usize];
15322    ["Offset of field: _cef_overlay_controller_t::get_insets"]
15323        [::std::mem::offset_of!(_cef_overlay_controller_t, get_insets) - 152usize];
15324    ["Offset of field: _cef_overlay_controller_t::size_to_preferred_size"]
15325        [::std::mem::offset_of!(_cef_overlay_controller_t, size_to_preferred_size) - 160usize];
15326    ["Offset of field: _cef_overlay_controller_t::set_visible"]
15327        [::std::mem::offset_of!(_cef_overlay_controller_t, set_visible) - 168usize];
15328    ["Offset of field: _cef_overlay_controller_t::is_visible"]
15329        [::std::mem::offset_of!(_cef_overlay_controller_t, is_visible) - 176usize];
15330    ["Offset of field: _cef_overlay_controller_t::is_drawn"]
15331        [::std::mem::offset_of!(_cef_overlay_controller_t, is_drawn) - 184usize];
15332};
15333#[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"]
15334pub type cef_overlay_controller_t = _cef_overlay_controller_t;
15335#[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"]
15336#[repr(C)]
15337#[derive(Debug, Copy, Clone)]
15338pub struct _cef_panel_delegate_t {
15339    #[doc = "\n Base structure.\n"]
15340    pub base: cef_view_delegate_t,
15341}
15342#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15343const _: () = {
15344    ["Size of _cef_panel_delegate_t"][::std::mem::size_of::<_cef_panel_delegate_t>() - 128usize];
15345    ["Alignment of _cef_panel_delegate_t"]
15346        [::std::mem::align_of::<_cef_panel_delegate_t>() - 8usize];
15347    ["Offset of field: _cef_panel_delegate_t::base"]
15348        [::std::mem::offset_of!(_cef_panel_delegate_t, base) - 0usize];
15349};
15350#[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"]
15351pub type cef_panel_delegate_t = _cef_panel_delegate_t;
15352#[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"]
15353#[repr(C)]
15354#[derive(Debug, Copy, Clone)]
15355pub struct _cef_panel_t {
15356    #[doc = "\n Base structure.\n"]
15357    pub base: cef_view_t,
15358    #[doc = "\n Returns this Panel as a Window or NULL if this is not a Window.\n"]
15359    pub as_window:
15360        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_window_t>,
15361    #[doc = "\n Set this Panel's Layout to FillLayout and return the FillLayout object.\n"]
15362    pub set_to_fill_layout: ::std::option::Option<
15363        unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_fill_layout_t,
15364    >,
15365    #[doc = "\n Set this Panel's Layout to BoxLayout and return the BoxLayout object.\n"]
15366    pub set_to_box_layout: ::std::option::Option<
15367        unsafe extern "C" fn(
15368            self_: *mut _cef_panel_t,
15369            settings: *const cef_box_layout_settings_t,
15370        ) -> *mut _cef_box_layout_t,
15371    >,
15372    #[doc = "\n Get the Layout.\n"]
15373    pub get_layout:
15374        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> *mut _cef_layout_t>,
15375    #[doc = "\n Lay out the child Views (set their bounds based on sizing heuristics\n specific to the current Layout).\n"]
15376    pub layout: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t)>,
15377    #[doc = "\n Add a child View.\n"]
15378    pub add_child_view: ::std::option::Option<
15379        unsafe extern "C" fn(self_: *mut _cef_panel_t, view: *mut _cef_view_t),
15380    >,
15381    #[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"]
15382    pub add_child_view_at: ::std::option::Option<
15383        unsafe extern "C" fn(
15384            self_: *mut _cef_panel_t,
15385            view: *mut _cef_view_t,
15386            index: ::std::os::raw::c_int,
15387        ),
15388    >,
15389    #[doc = "\n Move the child View to the specified |index|. A negative value for |index|\n will move the View to the end.\n"]
15390    pub reorder_child_view: ::std::option::Option<
15391        unsafe extern "C" fn(
15392            self_: *mut _cef_panel_t,
15393            view: *mut _cef_view_t,
15394            index: ::std::os::raw::c_int,
15395        ),
15396    >,
15397    #[doc = "\n Remove a child View. The View can then be added to another Panel.\n"]
15398    pub remove_child_view: ::std::option::Option<
15399        unsafe extern "C" fn(self_: *mut _cef_panel_t, view: *mut _cef_view_t),
15400    >,
15401    #[doc = "\n Remove all child Views. The removed Views will be deleted if the client\n holds no references to them.\n"]
15402    pub remove_all_child_views:
15403        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t)>,
15404    #[doc = "\n Returns the number of child Views.\n"]
15405    pub get_child_view_count:
15406        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_panel_t) -> usize>,
15407    #[doc = "\n Returns the child View at the specified |index|.\n"]
15408    pub get_child_view_at: ::std::option::Option<
15409        unsafe extern "C" fn(
15410            self_: *mut _cef_panel_t,
15411            index: ::std::os::raw::c_int,
15412        ) -> *mut _cef_view_t,
15413    >,
15414}
15415#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15416const _: () = {
15417    ["Size of _cef_panel_t"][::std::mem::size_of::<_cef_panel_t>() - 552usize];
15418    ["Alignment of _cef_panel_t"][::std::mem::align_of::<_cef_panel_t>() - 8usize];
15419    ["Offset of field: _cef_panel_t::base"][::std::mem::offset_of!(_cef_panel_t, base) - 0usize];
15420    ["Offset of field: _cef_panel_t::as_window"]
15421        [::std::mem::offset_of!(_cef_panel_t, as_window) - 456usize];
15422    ["Offset of field: _cef_panel_t::set_to_fill_layout"]
15423        [::std::mem::offset_of!(_cef_panel_t, set_to_fill_layout) - 464usize];
15424    ["Offset of field: _cef_panel_t::set_to_box_layout"]
15425        [::std::mem::offset_of!(_cef_panel_t, set_to_box_layout) - 472usize];
15426    ["Offset of field: _cef_panel_t::get_layout"]
15427        [::std::mem::offset_of!(_cef_panel_t, get_layout) - 480usize];
15428    ["Offset of field: _cef_panel_t::layout"]
15429        [::std::mem::offset_of!(_cef_panel_t, layout) - 488usize];
15430    ["Offset of field: _cef_panel_t::add_child_view"]
15431        [::std::mem::offset_of!(_cef_panel_t, add_child_view) - 496usize];
15432    ["Offset of field: _cef_panel_t::add_child_view_at"]
15433        [::std::mem::offset_of!(_cef_panel_t, add_child_view_at) - 504usize];
15434    ["Offset of field: _cef_panel_t::reorder_child_view"]
15435        [::std::mem::offset_of!(_cef_panel_t, reorder_child_view) - 512usize];
15436    ["Offset of field: _cef_panel_t::remove_child_view"]
15437        [::std::mem::offset_of!(_cef_panel_t, remove_child_view) - 520usize];
15438    ["Offset of field: _cef_panel_t::remove_all_child_views"]
15439        [::std::mem::offset_of!(_cef_panel_t, remove_all_child_views) - 528usize];
15440    ["Offset of field: _cef_panel_t::get_child_view_count"]
15441        [::std::mem::offset_of!(_cef_panel_t, get_child_view_count) - 536usize];
15442    ["Offset of field: _cef_panel_t::get_child_view_at"]
15443        [::std::mem::offset_of!(_cef_panel_t, get_child_view_at) - 544usize];
15444};
15445#[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"]
15446pub type cef_panel_t = _cef_panel_t;
15447unsafe extern "C" {
15448    #[doc = "\n Create a new Panel.\n"]
15449    pub fn cef_panel_create(delegate: *mut _cef_panel_delegate_t) -> *mut cef_panel_t;
15450}
15451#[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"]
15452#[repr(C)]
15453#[derive(Debug, Copy, Clone)]
15454pub struct _cef_window_delegate_t {
15455    #[doc = "\n Base structure.\n"]
15456    pub base: cef_panel_delegate_t,
15457    #[doc = "\n Called when |window| is created.\n"]
15458    pub on_window_created: ::std::option::Option<
15459        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
15460    >,
15461    #[doc = "\n Called when |window| is closing.\n"]
15462    pub on_window_closing: ::std::option::Option<
15463        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
15464    >,
15465    #[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"]
15466    pub on_window_destroyed: ::std::option::Option<
15467        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t, window: *mut _cef_window_t),
15468    >,
15469    #[doc = "\n Called when |window| is activated or deactivated.\n"]
15470    pub on_window_activation_changed: ::std::option::Option<
15471        unsafe extern "C" fn(
15472            self_: *mut _cef_window_delegate_t,
15473            window: *mut _cef_window_t,
15474            active: ::std::os::raw::c_int,
15475        ),
15476    >,
15477    #[doc = "\n Called when |window| bounds have changed. |new_bounds| will be in DIP\n screen coordinates.\n"]
15478    pub on_window_bounds_changed: ::std::option::Option<
15479        unsafe extern "C" fn(
15480            self_: *mut _cef_window_delegate_t,
15481            window: *mut _cef_window_t,
15482            new_bounds: *const cef_rect_t,
15483        ),
15484    >,
15485    #[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"]
15486    pub on_window_fullscreen_transition: ::std::option::Option<
15487        unsafe extern "C" fn(
15488            self_: *mut _cef_window_delegate_t,
15489            window: *mut _cef_window_t,
15490            is_completed: ::std::os::raw::c_int,
15491        ),
15492    >,
15493    #[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"]
15494    pub get_parent_window: ::std::option::Option<
15495        unsafe extern "C" fn(
15496            self_: *mut _cef_window_delegate_t,
15497            window: *mut _cef_window_t,
15498            is_menu: *mut ::std::os::raw::c_int,
15499            can_activate_menu: *mut ::std::os::raw::c_int,
15500        ) -> *mut _cef_window_t,
15501    >,
15502    #[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"]
15503    pub is_window_modal_dialog: ::std::option::Option<
15504        unsafe extern "C" fn(
15505            self_: *mut _cef_window_delegate_t,
15506            window: *mut _cef_window_t,
15507        ) -> ::std::os::raw::c_int,
15508    >,
15509    #[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"]
15510    pub get_initial_bounds: ::std::option::Option<
15511        unsafe extern "C" fn(
15512            self_: *mut _cef_window_delegate_t,
15513            window: *mut _cef_window_t,
15514        ) -> cef_rect_t,
15515    >,
15516    #[doc = "\n Return the initial show state for |window|.\n"]
15517    pub get_initial_show_state: ::std::option::Option<
15518        unsafe extern "C" fn(
15519            self_: *mut _cef_window_delegate_t,
15520            window: *mut _cef_window_t,
15521        ) -> cef_show_state_t,
15522    >,
15523    #[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"]
15524    pub is_frameless: ::std::option::Option<
15525        unsafe extern "C" fn(
15526            self_: *mut _cef_window_delegate_t,
15527            window: *mut _cef_window_t,
15528        ) -> ::std::os::raw::c_int,
15529    >,
15530    #[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"]
15531    pub with_standard_window_buttons: ::std::option::Option<
15532        unsafe extern "C" fn(
15533            self_: *mut _cef_window_delegate_t,
15534            window: *mut _cef_window_t,
15535        ) -> ::std::os::raw::c_int,
15536    >,
15537    #[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"]
15538    pub get_titlebar_height: ::std::option::Option<
15539        unsafe extern "C" fn(
15540            self_: *mut _cef_window_delegate_t,
15541            window: *mut _cef_window_t,
15542            titlebar_height: *mut f32,
15543        ) -> ::std::os::raw::c_int,
15544    >,
15545    #[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"]
15546    pub accepts_first_mouse: ::std::option::Option<
15547        unsafe extern "C" fn(
15548            self_: *mut _cef_window_delegate_t,
15549            window: *mut _cef_window_t,
15550        ) -> cef_state_t,
15551    >,
15552    #[doc = "\n Return true (1) if |window| can be resized.\n"]
15553    pub can_resize: ::std::option::Option<
15554        unsafe extern "C" fn(
15555            self_: *mut _cef_window_delegate_t,
15556            window: *mut _cef_window_t,
15557        ) -> ::std::os::raw::c_int,
15558    >,
15559    #[doc = "\n Return true (1) if |window| can be maximized.\n"]
15560    pub can_maximize: ::std::option::Option<
15561        unsafe extern "C" fn(
15562            self_: *mut _cef_window_delegate_t,
15563            window: *mut _cef_window_t,
15564        ) -> ::std::os::raw::c_int,
15565    >,
15566    #[doc = "\n Return true (1) if |window| can be minimized.\n"]
15567    pub can_minimize: ::std::option::Option<
15568        unsafe extern "C" fn(
15569            self_: *mut _cef_window_delegate_t,
15570            window: *mut _cef_window_t,
15571        ) -> ::std::os::raw::c_int,
15572    >,
15573    #[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"]
15574    pub can_close: ::std::option::Option<
15575        unsafe extern "C" fn(
15576            self_: *mut _cef_window_delegate_t,
15577            window: *mut _cef_window_t,
15578        ) -> ::std::os::raw::c_int,
15579    >,
15580    #[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"]
15581    pub on_accelerator: ::std::option::Option<
15582        unsafe extern "C" fn(
15583            self_: *mut _cef_window_delegate_t,
15584            window: *mut _cef_window_t,
15585            command_id: ::std::os::raw::c_int,
15586        ) -> ::std::os::raw::c_int,
15587    >,
15588    #[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"]
15589    pub on_key_event: ::std::option::Option<
15590        unsafe extern "C" fn(
15591            self_: *mut _cef_window_delegate_t,
15592            window: *mut _cef_window_t,
15593            event: *const cef_key_event_t,
15594        ) -> ::std::os::raw::c_int,
15595    >,
15596    #[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"]
15597    pub on_theme_colors_changed: ::std::option::Option<
15598        unsafe extern "C" fn(
15599            self_: *mut _cef_window_delegate_t,
15600            window: *mut _cef_window_t,
15601            chrome_theme: ::std::os::raw::c_int,
15602        ),
15603    >,
15604    #[doc = "\n Optionally change the runtime style for this Window. See\n cef_runtime_style_t documentation for details.\n"]
15605    pub get_window_runtime_style: ::std::option::Option<
15606        unsafe extern "C" fn(self_: *mut _cef_window_delegate_t) -> cef_runtime_style_t,
15607    >,
15608    #[doc = "\n Return Linux-specific window properties for correctly handling by window\n managers\n"]
15609    pub get_linux_window_properties: ::std::option::Option<
15610        unsafe extern "C" fn(
15611            self_: *mut _cef_window_delegate_t,
15612            window: *mut _cef_window_t,
15613            properties: *mut _cef_linux_window_properties_t,
15614        ) -> ::std::os::raw::c_int,
15615    >,
15616}
15617#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15618const _: () = {
15619    ["Size of _cef_window_delegate_t"][::std::mem::size_of::<_cef_window_delegate_t>() - 312usize];
15620    ["Alignment of _cef_window_delegate_t"]
15621        [::std::mem::align_of::<_cef_window_delegate_t>() - 8usize];
15622    ["Offset of field: _cef_window_delegate_t::base"]
15623        [::std::mem::offset_of!(_cef_window_delegate_t, base) - 0usize];
15624    ["Offset of field: _cef_window_delegate_t::on_window_created"]
15625        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_created) - 128usize];
15626    ["Offset of field: _cef_window_delegate_t::on_window_closing"]
15627        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_closing) - 136usize];
15628    ["Offset of field: _cef_window_delegate_t::on_window_destroyed"]
15629        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_destroyed) - 144usize];
15630    ["Offset of field: _cef_window_delegate_t::on_window_activation_changed"]
15631        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_activation_changed) - 152usize];
15632    ["Offset of field: _cef_window_delegate_t::on_window_bounds_changed"]
15633        [::std::mem::offset_of!(_cef_window_delegate_t, on_window_bounds_changed) - 160usize];
15634    ["Offset of field: _cef_window_delegate_t::on_window_fullscreen_transition"][::std::mem::offset_of!(
15635        _cef_window_delegate_t,
15636        on_window_fullscreen_transition
15637    ) - 168usize];
15638    ["Offset of field: _cef_window_delegate_t::get_parent_window"]
15639        [::std::mem::offset_of!(_cef_window_delegate_t, get_parent_window) - 176usize];
15640    ["Offset of field: _cef_window_delegate_t::is_window_modal_dialog"]
15641        [::std::mem::offset_of!(_cef_window_delegate_t, is_window_modal_dialog) - 184usize];
15642    ["Offset of field: _cef_window_delegate_t::get_initial_bounds"]
15643        [::std::mem::offset_of!(_cef_window_delegate_t, get_initial_bounds) - 192usize];
15644    ["Offset of field: _cef_window_delegate_t::get_initial_show_state"]
15645        [::std::mem::offset_of!(_cef_window_delegate_t, get_initial_show_state) - 200usize];
15646    ["Offset of field: _cef_window_delegate_t::is_frameless"]
15647        [::std::mem::offset_of!(_cef_window_delegate_t, is_frameless) - 208usize];
15648    ["Offset of field: _cef_window_delegate_t::with_standard_window_buttons"]
15649        [::std::mem::offset_of!(_cef_window_delegate_t, with_standard_window_buttons) - 216usize];
15650    ["Offset of field: _cef_window_delegate_t::get_titlebar_height"]
15651        [::std::mem::offset_of!(_cef_window_delegate_t, get_titlebar_height) - 224usize];
15652    ["Offset of field: _cef_window_delegate_t::accepts_first_mouse"]
15653        [::std::mem::offset_of!(_cef_window_delegate_t, accepts_first_mouse) - 232usize];
15654    ["Offset of field: _cef_window_delegate_t::can_resize"]
15655        [::std::mem::offset_of!(_cef_window_delegate_t, can_resize) - 240usize];
15656    ["Offset of field: _cef_window_delegate_t::can_maximize"]
15657        [::std::mem::offset_of!(_cef_window_delegate_t, can_maximize) - 248usize];
15658    ["Offset of field: _cef_window_delegate_t::can_minimize"]
15659        [::std::mem::offset_of!(_cef_window_delegate_t, can_minimize) - 256usize];
15660    ["Offset of field: _cef_window_delegate_t::can_close"]
15661        [::std::mem::offset_of!(_cef_window_delegate_t, can_close) - 264usize];
15662    ["Offset of field: _cef_window_delegate_t::on_accelerator"]
15663        [::std::mem::offset_of!(_cef_window_delegate_t, on_accelerator) - 272usize];
15664    ["Offset of field: _cef_window_delegate_t::on_key_event"]
15665        [::std::mem::offset_of!(_cef_window_delegate_t, on_key_event) - 280usize];
15666    ["Offset of field: _cef_window_delegate_t::on_theme_colors_changed"]
15667        [::std::mem::offset_of!(_cef_window_delegate_t, on_theme_colors_changed) - 288usize];
15668    ["Offset of field: _cef_window_delegate_t::get_window_runtime_style"]
15669        [::std::mem::offset_of!(_cef_window_delegate_t, get_window_runtime_style) - 296usize];
15670    ["Offset of field: _cef_window_delegate_t::get_linux_window_properties"]
15671        [::std::mem::offset_of!(_cef_window_delegate_t, get_linux_window_properties) - 304usize];
15672};
15673#[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"]
15674pub type cef_window_delegate_t = _cef_window_delegate_t;
15675#[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"]
15676#[repr(C)]
15677#[derive(Debug, Copy, Clone)]
15678pub struct _cef_window_t {
15679    #[doc = "\n Base structure.\n"]
15680    pub base: cef_panel_t,
15681    #[doc = "\n Show the Window.\n"]
15682    pub show: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15683    #[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"]
15684    pub show_as_browser_modal_dialog: ::std::option::Option<
15685        unsafe extern "C" fn(self_: *mut _cef_window_t, browser_view: *mut _cef_browser_view_t),
15686    >,
15687    #[doc = "\n Hide the Window.\n"]
15688    pub hide: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15689    #[doc = "\n Sizes the Window to |size| and centers it in the current display.\n"]
15690    pub center_window: ::std::option::Option<
15691        unsafe extern "C" fn(self_: *mut _cef_window_t, size: *const cef_size_t),
15692    >,
15693    #[doc = "\n Close the Window.\n"]
15694    pub close: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15695    #[doc = "\n Returns true (1) if the Window has been closed.\n"]
15696    pub is_closed: ::std::option::Option<
15697        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15698    >,
15699    #[doc = "\n Activate the Window, assuming it already exists and is visible.\n"]
15700    pub activate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15701    #[doc = "\n Deactivate the Window, making the next Window in the Z order the active\n Window.\n"]
15702    pub deactivate: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15703    #[doc = "\n Returns whether the Window is the currently active Window.\n"]
15704    pub is_active: ::std::option::Option<
15705        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15706    >,
15707    #[doc = "\n Bring this Window to the top of other Windows in the Windowing system.\n"]
15708    pub bring_to_top: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15709    #[doc = "\n Set the Window to be on top of other Windows in the Windowing system.\n"]
15710    pub set_always_on_top: ::std::option::Option<
15711        unsafe extern "C" fn(self_: *mut _cef_window_t, on_top: ::std::os::raw::c_int),
15712    >,
15713    #[doc = "\n Returns whether the Window has been set to be on top of other Windows in\n the Windowing system.\n"]
15714    pub is_always_on_top: ::std::option::Option<
15715        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15716    >,
15717    #[doc = "\n Maximize the Window.\n"]
15718    pub maximize: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15719    #[doc = "\n Minimize the Window.\n"]
15720    pub minimize: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15721    #[doc = "\n Restore the Window.\n"]
15722    pub restore: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15723    #[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"]
15724    pub set_fullscreen: ::std::option::Option<
15725        unsafe extern "C" fn(self_: *mut _cef_window_t, fullscreen: ::std::os::raw::c_int),
15726    >,
15727    #[doc = "\n Returns true (1) if the Window is maximized.\n"]
15728    pub is_maximized: ::std::option::Option<
15729        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15730    >,
15731    #[doc = "\n Returns true (1) if the Window is minimized.\n"]
15732    pub is_minimized: ::std::option::Option<
15733        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15734    >,
15735    #[doc = "\n Returns true (1) if the Window is fullscreen.\n"]
15736    pub is_fullscreen: ::std::option::Option<
15737        unsafe extern "C" fn(self_: *mut _cef_window_t) -> ::std::os::raw::c_int,
15738    >,
15739    #[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"]
15740    pub get_focused_view:
15741        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_view_t>,
15742    #[doc = "\n Set the Window title.\n"]
15743    pub set_title: ::std::option::Option<
15744        unsafe extern "C" fn(self_: *mut _cef_window_t, title: *const cef_string_t),
15745    >,
15746    #[doc = "\n Get the Window title.\n"]
15747    pub get_title: ::std::option::Option<
15748        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_string_userfree_t,
15749    >,
15750    #[doc = "\n Set the Window icon. This should be a 16x16 icon suitable for use in the\n Windows's title bar.\n"]
15751    pub set_window_icon: ::std::option::Option<
15752        unsafe extern "C" fn(self_: *mut _cef_window_t, image: *mut _cef_image_t),
15753    >,
15754    #[doc = "\n Get the Window icon.\n"]
15755    pub get_window_icon:
15756        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_image_t>,
15757    #[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"]
15758    pub set_window_app_icon: ::std::option::Option<
15759        unsafe extern "C" fn(self_: *mut _cef_window_t, image: *mut _cef_image_t),
15760    >,
15761    #[doc = "\n Get the Window App icon.\n"]
15762    pub get_window_app_icon:
15763        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_image_t>,
15764    #[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"]
15765    pub add_overlay_view: ::std::option::Option<
15766        unsafe extern "C" fn(
15767            self_: *mut _cef_window_t,
15768            view: *mut _cef_view_t,
15769            docking_mode: cef_docking_mode_t,
15770            can_activate: ::std::os::raw::c_int,
15771        ) -> *mut _cef_overlay_controller_t,
15772    >,
15773    #[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"]
15774    pub show_menu: ::std::option::Option<
15775        unsafe extern "C" fn(
15776            self_: *mut _cef_window_t,
15777            menu_model: *mut _cef_menu_model_t,
15778            screen_point: *const cef_point_t,
15779            anchor_position: cef_menu_anchor_position_t,
15780        ),
15781    >,
15782    #[doc = "\n Cancel the menu that is currently showing, if any.\n"]
15783    pub cancel_menu: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15784    #[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"]
15785    pub get_display: ::std::option::Option<
15786        unsafe extern "C" fn(self_: *mut _cef_window_t) -> *mut _cef_display_t,
15787    >,
15788    #[doc = "\n Returns the bounds (size and position) of this Window's client area.\n Position is in screen coordinates.\n"]
15789    pub get_client_area_bounds_in_screen:
15790        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_rect_t>,
15791    #[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"]
15792    pub set_draggable_regions: ::std::option::Option<
15793        unsafe extern "C" fn(
15794            self_: *mut _cef_window_t,
15795            regionsCount: usize,
15796            regions: *const cef_draggable_region_t,
15797        ),
15798    >,
15799    #[doc = "\n Retrieve the platform window handle for this Window.\n"]
15800    pub get_window_handle: ::std::option::Option<
15801        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_window_handle_t,
15802    >,
15803    #[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"]
15804    pub send_key_press: ::std::option::Option<
15805        unsafe extern "C" fn(
15806            self_: *mut _cef_window_t,
15807            key_code: ::std::os::raw::c_int,
15808            event_flags: u32,
15809        ),
15810    >,
15811    #[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"]
15812    pub send_mouse_move: ::std::option::Option<
15813        unsafe extern "C" fn(
15814            self_: *mut _cef_window_t,
15815            screen_x: ::std::os::raw::c_int,
15816            screen_y: ::std::os::raw::c_int,
15817        ),
15818    >,
15819    #[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"]
15820    pub send_mouse_events: ::std::option::Option<
15821        unsafe extern "C" fn(
15822            self_: *mut _cef_window_t,
15823            button: cef_mouse_button_type_t,
15824            mouse_down: ::std::os::raw::c_int,
15825            mouse_up: ::std::os::raw::c_int,
15826        ),
15827    >,
15828    #[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"]
15829    pub set_accelerator: ::std::option::Option<
15830        unsafe extern "C" fn(
15831            self_: *mut _cef_window_t,
15832            command_id: ::std::os::raw::c_int,
15833            key_code: ::std::os::raw::c_int,
15834            shift_pressed: ::std::os::raw::c_int,
15835            ctrl_pressed: ::std::os::raw::c_int,
15836            alt_pressed: ::std::os::raw::c_int,
15837            high_priority: ::std::os::raw::c_int,
15838        ),
15839    >,
15840    #[doc = "\n Remove the keyboard accelerator for the specified |command_id|.\n"]
15841    pub remove_accelerator: ::std::option::Option<
15842        unsafe extern "C" fn(self_: *mut _cef_window_t, command_id: ::std::os::raw::c_int),
15843    >,
15844    #[doc = "\n Remove all keyboard accelerators.\n"]
15845    pub remove_all_accelerators:
15846        ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15847    #[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"]
15848    pub set_theme_color: ::std::option::Option<
15849        unsafe extern "C" fn(
15850            self_: *mut _cef_window_t,
15851            color_id: ::std::os::raw::c_int,
15852            color: cef_color_t,
15853        ),
15854    >,
15855    #[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"]
15856    pub theme_changed: ::std::option::Option<unsafe extern "C" fn(self_: *mut _cef_window_t)>,
15857    #[doc = "\n Returns the runtime style for this Window (ALLOY or CHROME). See\n cef_runtime_style_t documentation for details.\n"]
15858    pub get_runtime_style: ::std::option::Option<
15859        unsafe extern "C" fn(self_: *mut _cef_window_t) -> cef_runtime_style_t,
15860    >,
15861}
15862#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15863const _: () = {
15864    ["Size of _cef_window_t"][::std::mem::size_of::<_cef_window_t>() - 888usize];
15865    ["Alignment of _cef_window_t"][::std::mem::align_of::<_cef_window_t>() - 8usize];
15866    ["Offset of field: _cef_window_t::base"][::std::mem::offset_of!(_cef_window_t, base) - 0usize];
15867    ["Offset of field: _cef_window_t::show"]
15868        [::std::mem::offset_of!(_cef_window_t, show) - 552usize];
15869    ["Offset of field: _cef_window_t::show_as_browser_modal_dialog"]
15870        [::std::mem::offset_of!(_cef_window_t, show_as_browser_modal_dialog) - 560usize];
15871    ["Offset of field: _cef_window_t::hide"]
15872        [::std::mem::offset_of!(_cef_window_t, hide) - 568usize];
15873    ["Offset of field: _cef_window_t::center_window"]
15874        [::std::mem::offset_of!(_cef_window_t, center_window) - 576usize];
15875    ["Offset of field: _cef_window_t::close"]
15876        [::std::mem::offset_of!(_cef_window_t, close) - 584usize];
15877    ["Offset of field: _cef_window_t::is_closed"]
15878        [::std::mem::offset_of!(_cef_window_t, is_closed) - 592usize];
15879    ["Offset of field: _cef_window_t::activate"]
15880        [::std::mem::offset_of!(_cef_window_t, activate) - 600usize];
15881    ["Offset of field: _cef_window_t::deactivate"]
15882        [::std::mem::offset_of!(_cef_window_t, deactivate) - 608usize];
15883    ["Offset of field: _cef_window_t::is_active"]
15884        [::std::mem::offset_of!(_cef_window_t, is_active) - 616usize];
15885    ["Offset of field: _cef_window_t::bring_to_top"]
15886        [::std::mem::offset_of!(_cef_window_t, bring_to_top) - 624usize];
15887    ["Offset of field: _cef_window_t::set_always_on_top"]
15888        [::std::mem::offset_of!(_cef_window_t, set_always_on_top) - 632usize];
15889    ["Offset of field: _cef_window_t::is_always_on_top"]
15890        [::std::mem::offset_of!(_cef_window_t, is_always_on_top) - 640usize];
15891    ["Offset of field: _cef_window_t::maximize"]
15892        [::std::mem::offset_of!(_cef_window_t, maximize) - 648usize];
15893    ["Offset of field: _cef_window_t::minimize"]
15894        [::std::mem::offset_of!(_cef_window_t, minimize) - 656usize];
15895    ["Offset of field: _cef_window_t::restore"]
15896        [::std::mem::offset_of!(_cef_window_t, restore) - 664usize];
15897    ["Offset of field: _cef_window_t::set_fullscreen"]
15898        [::std::mem::offset_of!(_cef_window_t, set_fullscreen) - 672usize];
15899    ["Offset of field: _cef_window_t::is_maximized"]
15900        [::std::mem::offset_of!(_cef_window_t, is_maximized) - 680usize];
15901    ["Offset of field: _cef_window_t::is_minimized"]
15902        [::std::mem::offset_of!(_cef_window_t, is_minimized) - 688usize];
15903    ["Offset of field: _cef_window_t::is_fullscreen"]
15904        [::std::mem::offset_of!(_cef_window_t, is_fullscreen) - 696usize];
15905    ["Offset of field: _cef_window_t::get_focused_view"]
15906        [::std::mem::offset_of!(_cef_window_t, get_focused_view) - 704usize];
15907    ["Offset of field: _cef_window_t::set_title"]
15908        [::std::mem::offset_of!(_cef_window_t, set_title) - 712usize];
15909    ["Offset of field: _cef_window_t::get_title"]
15910        [::std::mem::offset_of!(_cef_window_t, get_title) - 720usize];
15911    ["Offset of field: _cef_window_t::set_window_icon"]
15912        [::std::mem::offset_of!(_cef_window_t, set_window_icon) - 728usize];
15913    ["Offset of field: _cef_window_t::get_window_icon"]
15914        [::std::mem::offset_of!(_cef_window_t, get_window_icon) - 736usize];
15915    ["Offset of field: _cef_window_t::set_window_app_icon"]
15916        [::std::mem::offset_of!(_cef_window_t, set_window_app_icon) - 744usize];
15917    ["Offset of field: _cef_window_t::get_window_app_icon"]
15918        [::std::mem::offset_of!(_cef_window_t, get_window_app_icon) - 752usize];
15919    ["Offset of field: _cef_window_t::add_overlay_view"]
15920        [::std::mem::offset_of!(_cef_window_t, add_overlay_view) - 760usize];
15921    ["Offset of field: _cef_window_t::show_menu"]
15922        [::std::mem::offset_of!(_cef_window_t, show_menu) - 768usize];
15923    ["Offset of field: _cef_window_t::cancel_menu"]
15924        [::std::mem::offset_of!(_cef_window_t, cancel_menu) - 776usize];
15925    ["Offset of field: _cef_window_t::get_display"]
15926        [::std::mem::offset_of!(_cef_window_t, get_display) - 784usize];
15927    ["Offset of field: _cef_window_t::get_client_area_bounds_in_screen"]
15928        [::std::mem::offset_of!(_cef_window_t, get_client_area_bounds_in_screen) - 792usize];
15929    ["Offset of field: _cef_window_t::set_draggable_regions"]
15930        [::std::mem::offset_of!(_cef_window_t, set_draggable_regions) - 800usize];
15931    ["Offset of field: _cef_window_t::get_window_handle"]
15932        [::std::mem::offset_of!(_cef_window_t, get_window_handle) - 808usize];
15933    ["Offset of field: _cef_window_t::send_key_press"]
15934        [::std::mem::offset_of!(_cef_window_t, send_key_press) - 816usize];
15935    ["Offset of field: _cef_window_t::send_mouse_move"]
15936        [::std::mem::offset_of!(_cef_window_t, send_mouse_move) - 824usize];
15937    ["Offset of field: _cef_window_t::send_mouse_events"]
15938        [::std::mem::offset_of!(_cef_window_t, send_mouse_events) - 832usize];
15939    ["Offset of field: _cef_window_t::set_accelerator"]
15940        [::std::mem::offset_of!(_cef_window_t, set_accelerator) - 840usize];
15941    ["Offset of field: _cef_window_t::remove_accelerator"]
15942        [::std::mem::offset_of!(_cef_window_t, remove_accelerator) - 848usize];
15943    ["Offset of field: _cef_window_t::remove_all_accelerators"]
15944        [::std::mem::offset_of!(_cef_window_t, remove_all_accelerators) - 856usize];
15945    ["Offset of field: _cef_window_t::set_theme_color"]
15946        [::std::mem::offset_of!(_cef_window_t, set_theme_color) - 864usize];
15947    ["Offset of field: _cef_window_t::theme_changed"]
15948        [::std::mem::offset_of!(_cef_window_t, theme_changed) - 872usize];
15949    ["Offset of field: _cef_window_t::get_runtime_style"]
15950        [::std::mem::offset_of!(_cef_window_t, get_runtime_style) - 880usize];
15951};
15952#[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"]
15953pub type cef_window_t = _cef_window_t;
15954unsafe extern "C" {
15955    #[doc = "\n Create a new Window.\n"]
15956    pub fn cef_window_create_top_level(delegate: *mut _cef_window_delegate_t) -> *mut cef_window_t;
15957}