Skip to main content

arkweb_sys/arkweb_scheme_handler/
arkweb_scheme_handler_ffi.rs

1// automatically generated by rust-bindgen 0.71.1
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6use crate::arkweb_net_error_list::ArkWeb_NetError;
7
8#[cfg(feature = "api-12")]
9#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
10impl ArkWeb_CustomSchemeOption {
11    pub const OH_ARKWEB_SCHEME_OPTION_NONE: ArkWeb_CustomSchemeOption =
12        ArkWeb_CustomSchemeOption(0);
13    /// If ARKWEB_SCHEME_OPTION_STANDARD is set, the scheme will be handled as a standard scheme. The standard
14    /// schemes need to comply with the URL normalization and parsing rules defined in Section 3.1 of RFC 1738,
15    /// which can be found in the http://www.ietf.org/rfc/rfc1738.txt.
16    pub const ARKWEB_SCHEME_OPTION_STANDARD: ArkWeb_CustomSchemeOption =
17        ArkWeb_CustomSchemeOption(1);
18    /// If ARKWEB_SCHEME_OPTION_LOCAL is set, the same security rules as those applied to the "file" URL will be
19    /// used to handle the scheme.
20    pub const ARKWEB_SCHEME_OPTION_LOCAL: ArkWeb_CustomSchemeOption = ArkWeb_CustomSchemeOption(2);
21    /// If ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED is set, then the scheme can only be displayed from other content
22    /// hosted using the same scheme.
23    pub const ARKWEB_SCHEME_OPTION_DISPLAY_ISOLATED: ArkWeb_CustomSchemeOption =
24        ArkWeb_CustomSchemeOption(4);
25    /// If ARKWEB_SCHEME_OPTION_SECURE is set, the same security rules as those applied to the "https" URL will be
26    /// used to handle the scheme.
27    pub const ARKWEB_SCHEME_OPTION_SECURE: ArkWeb_CustomSchemeOption = ArkWeb_CustomSchemeOption(8);
28    /// If ARKWEB_SCHEME_OPTION_CORS_ENABLED is set, then the scheme can be sent CORS requests. In most cases this
29    /// value should be set when ARKWEB_SCHEME_OPTION_STANDARD is set.
30    pub const ARKWEB_SCHEME_OPTION_CORS_ENABLED: ArkWeb_CustomSchemeOption =
31        ArkWeb_CustomSchemeOption(16);
32    /// If ARKWEB_SCHEME_OPTION_CSP_BYPASSING is set, then this scheme can bypass Content Security Policy (CSP)
33    /// checks. In most cases, this value should not be set when ARKWEB_SCHEME_OPTION_STANDARD is set.
34    pub const ARKWEB_SCHEME_OPTION_CSP_BYPASSING: ArkWeb_CustomSchemeOption =
35        ArkWeb_CustomSchemeOption(32);
36    /// If ARKWEB_SCHEME_OPTION_FETCH_ENABLED is set, then this scheme can perform FETCH API requests.
37    pub const ARKWEB_SCHEME_OPTION_FETCH_ENABLED: ArkWeb_CustomSchemeOption =
38        ArkWeb_CustomSchemeOption(64);
39    /// If ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED is set, then the js of this scheme can generate code cache.
40    pub const ARKWEB_SCHEME_OPTION_CODE_CACHE_ENABLED: ArkWeb_CustomSchemeOption =
41        ArkWeb_CustomSchemeOption(128);
42}
43#[repr(transparent)]
44/// Configuration information for custom schemes.
45///
46///
47/// Required System Capabilities: SystemCapability.Web.Webview.Core
48///
49/// Available since API-level: 12
50#[cfg(feature = "api-12")]
51#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
52#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
53pub struct ArkWeb_CustomSchemeOption(pub ::core::ffi::c_uint);
54#[cfg(feature = "api-12")]
55#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
56impl ArkWeb_ResourceType {
57    /// Top level page.
58    pub const MAIN_FRAME: ArkWeb_ResourceType = ArkWeb_ResourceType(0);
59    /// Frame or Iframe.
60    pub const SUB_FRAME: ArkWeb_ResourceType = ArkWeb_ResourceType(1);
61    /// CSS stylesheet.
62    pub const STYLE_SHEET: ArkWeb_ResourceType = ArkWeb_ResourceType(2);
63    /// External script.
64    pub const SCRIPT: ArkWeb_ResourceType = ArkWeb_ResourceType(3);
65    /// Image(jpg/gif/png/etc).
66    pub const IMAGE: ArkWeb_ResourceType = ArkWeb_ResourceType(4);
67    /// Font.
68    pub const FONT_RESOURCE: ArkWeb_ResourceType = ArkWeb_ResourceType(5);
69    /// Some other subresource. This is the default type if the actual type is unknown.
70    pub const SUB_RESOURCE: ArkWeb_ResourceType = ArkWeb_ResourceType(6);
71    /// Object (or embed) tag for a plugin, or a resource that a plugin requested.
72    pub const OBJECT: ArkWeb_ResourceType = ArkWeb_ResourceType(7);
73    /// Media resource.
74    pub const MEDIA: ArkWeb_ResourceType = ArkWeb_ResourceType(8);
75    /// Main resource of a dedicated worker.
76    pub const WORKER: ArkWeb_ResourceType = ArkWeb_ResourceType(9);
77    /// Main resource of a shared worker.
78    pub const SHARED_WORKER: ArkWeb_ResourceType = ArkWeb_ResourceType(10);
79    /// Explicitly requested prefetch.
80    pub const PREFETCH: ArkWeb_ResourceType = ArkWeb_ResourceType(11);
81    /// Favicon.
82    pub const FAVICON: ArkWeb_ResourceType = ArkWeb_ResourceType(12);
83    /// XMLHttpRequest.
84    pub const XHR: ArkWeb_ResourceType = ArkWeb_ResourceType(13);
85    /// Ping request for <a ping>/sendBeacon.
86    pub const PING: ArkWeb_ResourceType = ArkWeb_ResourceType(14);
87    /// The main resource of a service worker.
88    pub const SERVICE_WORKER: ArkWeb_ResourceType = ArkWeb_ResourceType(15);
89    /// Report of Content Security Policy violations.
90    pub const CSP_REPORT: ArkWeb_ResourceType = ArkWeb_ResourceType(16);
91    /// Resource that a plugin requested.
92    pub const PLUGIN_RESOURCE: ArkWeb_ResourceType = ArkWeb_ResourceType(17);
93    /// A main-frame service worker navigation preload request.
94    pub const NAVIGATION_PRELOAD_MAIN_FRAME: ArkWeb_ResourceType = ArkWeb_ResourceType(19);
95    /// A sub-frame service worker navigation preload request.
96    pub const NAVIGATION_PRELOAD_SUB_FRAME: ArkWeb_ResourceType = ArkWeb_ResourceType(20);
97}
98#[repr(transparent)]
99/// Resource type for a request.
100///
101/// These constants match their equivalents in Chromium's ResourceType and should not be renumbered.
102///
103///
104///
105/// Required System Capabilities: SystemCapability.Web.Webview.Core
106///
107/// Available since API-level: 12
108#[cfg(feature = "api-12")]
109#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
110#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
111pub struct ArkWeb_ResourceType(pub ::core::ffi::c_uint);
112#[repr(C)]
113pub struct ArkWeb_SchemeHandler_ {
114    _unused: [u8; 0],
115}
116/// This class is used to intercept requests for a specified scheme.
117///
118///
119/// Required System Capabilities: SystemCapability.Web.Webview.Core
120///
121/// Available since API-level: 12
122#[cfg(feature = "api-12")]
123#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
124pub type ArkWeb_SchemeHandler = ArkWeb_SchemeHandler_;
125#[repr(C)]
126pub struct ArkWeb_ResourceHandler_ {
127    _unused: [u8; 0],
128}
129/// Used to intercept url requests.
130///
131/// Response headers and body can be sent through ArkWeb_ResourceHandler.
132///
133///
134///
135/// Required System Capabilities: SystemCapability.Web.Webview.Core
136///
137/// Available since API-level: 12
138#[cfg(feature = "api-12")]
139#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
140pub type ArkWeb_ResourceHandler = ArkWeb_ResourceHandler_;
141#[repr(C)]
142pub struct ArkWeb_Response_ {
143    _unused: [u8; 0],
144}
145/// The response of the intercepted request.
146///
147///
148/// Required System Capabilities: SystemCapability.Web.Webview.Core
149///
150/// Available since API-level: 12
151#[cfg(feature = "api-12")]
152#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
153pub type ArkWeb_Response = ArkWeb_Response_;
154#[repr(C)]
155pub struct ArkWeb_ResourceRequest_ {
156    _unused: [u8; 0],
157}
158/// The info of the request.
159///
160/// You can obtain the requested URL, method, post data, and other information through OH_ArkWeb_ResourceRequest.
161///
162///
163///
164/// Required System Capabilities: SystemCapability.Web.Webview.Core
165///
166/// Available since API-level: 12
167#[cfg(feature = "api-12")]
168#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
169pub type ArkWeb_ResourceRequest = ArkWeb_ResourceRequest_;
170#[repr(C)]
171pub struct ArkWeb_RequestHeaderList_ {
172    _unused: [u8; 0],
173}
174/// The request headers of the request.
175///
176///
177/// Required System Capabilities: SystemCapability.Web.Webview.Core
178///
179/// Available since API-level: 12
180#[cfg(feature = "api-12")]
181#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
182pub type ArkWeb_RequestHeaderList = ArkWeb_RequestHeaderList_;
183#[repr(C)]
184pub struct ArkWeb_HttpBodyStream_ {
185    _unused: [u8; 0],
186}
187/// The http body of the request.
188///
189/// Use OH_ArkWebHttpBodyStream_* interface to read the body.
190///
191///
192///
193/// Required System Capabilities: SystemCapability.Web.Webview.Core
194///
195/// Available since API-level: 12
196#[cfg(feature = "api-12")]
197#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
198pub type ArkWeb_HttpBodyStream = ArkWeb_HttpBodyStream_;
199/// Callback for handling the request.
200///
201/// This will be called on the IO thread.
202///
203///
204/// # Arguments
205///
206/// * `schemeHandler` - The ArkWeb_SchemeHandler.
207///
208/// * `resourceRequest` - Obtain request's information through this.
209///
210/// * `resourceHandler` - The ArkWeb_ResourceHandler for the request. It should not be used if intercept is set to
211/// false.
212///
213/// * `intercept` - If true will intercept the request, if false otherwise.
214///
215///
216/// Required System Capabilities: SystemCapability.Web.Webview.Core
217///
218/// Available since API-level: 12
219#[cfg(feature = "api-12")]
220#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
221pub type ArkWeb_OnRequestStart = ::core::option::Option<
222    unsafe extern "C" fn(
223        schemeHandler: *const ArkWeb_SchemeHandler,
224        resourceRequest: *mut ArkWeb_ResourceRequest,
225        resourceHandler: *const ArkWeb_ResourceHandler,
226        intercept: *mut bool,
227    ),
228>;
229/// Callback when the request is completed.
230///
231/// This will be called on the IO thread.
232///
233/// Should destory the resourceRequest by ArkWeb_ResourceRequest_Destroy and use ArkWeb_ResourceHandler_Destroy
234///
235/// destroy the ArkWeb_ResourceHandler received in ArkWeb_OnRequestStart.
236///
237///
238/// # Arguments
239///
240/// * `schemeHandler` - The ArkWeb_SchemeHandler.
241///
242/// * `resourceRequest` - The ArkWeb_ResourceRequest.
243///
244///
245/// Required System Capabilities: SystemCapability.Web.Webview.Core
246///
247/// Available since API-level: 12
248#[cfg(feature = "api-12")]
249#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
250pub type ArkWeb_OnRequestStop = ::core::option::Option<
251    unsafe extern "C" fn(
252        schemeHandler: *const ArkWeb_SchemeHandler,
253        resourceRequest: *const ArkWeb_ResourceRequest,
254    ),
255>;
256/// Callback when the read operation done.
257/// # Arguments
258///
259/// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
260///
261/// * `buffer` - The buffer to receive data.
262///
263/// * `bytesRead` - Callback after OH_ArkWebHttpBodyStream_Read. bytesRead greater than 0 means that the buffer is
264/// filled with data of bytesRead size. Caller can read from the buffer, and if
265/// OH_ArkWebHttpBodyStream_IsEOF is false, caller can continue to read the remaining data.
266///
267///
268/// Required System Capabilities: SystemCapability.Web.Webview.Core
269///
270/// Available since API-level: 12
271#[cfg(feature = "api-12")]
272#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
273pub type ArkWeb_HttpBodyStreamReadCallback = ::core::option::Option<
274    unsafe extern "C" fn(
275        httpBodyStream: *const ArkWeb_HttpBodyStream,
276        buffer: *mut u8,
277        bytesRead: ::core::ffi::c_int,
278    ),
279>;
280/// Callback when the read operation done.
281/// # Arguments
282///
283/// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
284///
285/// * `buffer` - The buffer to receive data.
286///
287/// * `bytesRead` - Callback after OH_ArkWebHttpBodyStream_AsyncRead. bytesRead greater than 0 means that
288/// the buffer is filled with data of bytesRead size. Caller can read from the buffer, and if
289/// OH_ArkWebHttpBodyStream_IsEOF is false, caller can continue to read the remaining data.
290///
291///
292/// Available since API-level: 20
293#[cfg(feature = "api-20")]
294#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
295pub type ArkWeb_HttpBodyStreamAsyncReadCallback = ::core::option::Option<
296    unsafe extern "C" fn(
297        httpBodyStream: *const ArkWeb_HttpBodyStream,
298        buffer: *mut u8,
299        bytesRead: ::core::ffi::c_int,
300    ),
301>;
302/// Callback when the init operation done.
303/// # Arguments
304///
305/// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
306///
307/// * `result` - [`ARKWEB_NET_OK`] on success otherwise refer to arkweb_net_error_list.h.
308///
309///
310/// Required System Capabilities: SystemCapability.Web.Webview.Core
311///
312/// Available since API-level: 12
313#[cfg(feature = "api-12")]
314#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
315pub type ArkWeb_HttpBodyStreamInitCallback = ::core::option::Option<
316    unsafe extern "C" fn(httpBodyStream: *const ArkWeb_HttpBodyStream, result: ArkWeb_NetError),
317>;
318extern "C" {
319    /// Destroy the ArkWeb_RequestHeaderList.
320    /// # Arguments
321    ///
322    /// * `requestHeaderList` - The ArkWeb_RequestHeaderList to be destroyed.
323    ///
324    ///
325    /// Required System Capabilities: SystemCapability.Web.Webview.Core
326    ///
327    /// Available since API-level: 12
328    #[cfg(feature = "api-12")]
329    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
330    pub fn OH_ArkWebRequestHeaderList_Destroy(requestHeaderList: *mut ArkWeb_RequestHeaderList);
331    /// Get the request headers size.
332    /// # Arguments
333    ///
334    /// * `requestHeaderList` - The list of request header.
335    ///
336    /// # Returns
337    ///
338    /// * The size of request headers. -1 if requestHeaderList is invalid.
339    ///
340    ///
341    /// Required System Capabilities: SystemCapability.Web.Webview.Core
342    ///
343    /// Available since API-level: 12
344    #[cfg(feature = "api-12")]
345    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
346    pub fn OH_ArkWebRequestHeaderList_GetSize(
347        requestHeaderList: *const ArkWeb_RequestHeaderList,
348    ) -> i32;
349    /// Get the specified request header.
350    /// # Arguments
351    ///
352    /// * `requestHeaderList` - The list of request header.
353    ///
354    /// * `index` - The index of request header.
355    ///
356    /// * `key` - The header key. Caller must release the string by OH_ArkWeb_ReleaseString.
357    ///
358    /// * `value` - The header value. Caller must release the string by OH_ArkWeb_ReleaseString.
359    ///
360    ///
361    /// Required System Capabilities: SystemCapability.Web.Webview.Core
362    ///
363    /// Available since API-level: 12
364    #[cfg(feature = "api-12")]
365    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
366    pub fn OH_ArkWebRequestHeaderList_GetHeader(
367        requestHeaderList: *const ArkWeb_RequestHeaderList,
368        index: i32,
369        key: *mut *mut ::core::ffi::c_char,
370        value: *mut *mut ::core::ffi::c_char,
371    );
372    /// Set a user data to ArkWeb_ResourceRequest.
373    /// # Arguments
374    ///
375    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
376    ///
377    /// * `userData` - The user data to set.
378    ///
379    /// # Returns
380    ///
381    /// * [`ARKWEB_NET_OK`] 0 - Success.
382    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
383    ///
384    ///
385    /// Required System Capabilities: SystemCapability.Web.Webview.Core
386    ///
387    /// Available since API-level: 12
388    #[cfg(feature = "api-12")]
389    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
390    pub fn OH_ArkWebResourceRequest_SetUserData(
391        resourceRequest: *mut ArkWeb_ResourceRequest,
392        userData: *mut ::core::ffi::c_void,
393    ) -> i32;
394    /// Get the user data from ArkWeb_ResourceRequest.
395    /// # Arguments
396    ///
397    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
398    ///
399    /// # Returns
400    ///
401    /// * The set user data.
402    ///
403    ///
404    /// Required System Capabilities: SystemCapability.Web.Webview.Core
405    ///
406    /// Available since API-level: 12
407    #[cfg(feature = "api-12")]
408    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
409    pub fn OH_ArkWebResourceRequest_GetUserData(
410        resourceRequest: *const ArkWeb_ResourceRequest,
411    ) -> *mut ::core::ffi::c_void;
412    /// Get the method of request.
413    /// # Arguments
414    ///
415    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
416    ///
417    /// * `method` - The request's http method. This function will allocate memory for the method string and caller must
418    /// release the string by OH_ArkWeb_ReleaseString.
419    ///
420    ///
421    /// Required System Capabilities: SystemCapability.Web.Webview.Core
422    ///
423    /// Available since API-level: 12
424    #[cfg(feature = "api-12")]
425    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
426    pub fn OH_ArkWebResourceRequest_GetMethod(
427        resourceRequest: *const ArkWeb_ResourceRequest,
428        method: *mut *mut ::core::ffi::c_char,
429    );
430    /// Get the url of request.
431    /// # Arguments
432    ///
433    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
434    ///
435    /// * `url` - The request's url. This function will allocate memory for the url string and caller must release the
436    /// string by OH_ArkWeb_ReleaseString.
437    ///
438    ///
439    /// Required System Capabilities: SystemCapability.Web.Webview.Core
440    ///
441    /// Available since API-level: 12
442    #[cfg(feature = "api-12")]
443    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
444    pub fn OH_ArkWebResourceRequest_GetUrl(
445        resourceRequest: *const ArkWeb_ResourceRequest,
446        url: *mut *mut ::core::ffi::c_char,
447    );
448    /// Create a ArkWeb_HttpBodyStream which used to read the http body.
449    /// # Arguments
450    ///
451    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
452    ///
453    /// * `httpBodyStream` - The request's http body. This function will allocate memory for the http body stream and
454    /// caller must release the httpBodyStream by OH_ArkWebResourceRequest_DestroyHttpBodyStream.
455    ///
456    ///
457    /// Required System Capabilities: SystemCapability.Web.Webview.Core
458    ///
459    /// Available since API-level: 12
460    #[cfg(feature = "api-12")]
461    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
462    pub fn OH_ArkWebResourceRequest_GetHttpBodyStream(
463        resourceRequest: *const ArkWeb_ResourceRequest,
464        httpBodyStream: *mut *mut ArkWeb_HttpBodyStream,
465    );
466    /// Destroy the http body stream.
467    /// # Arguments
468    ///
469    /// * `httpBodyStream` - The httpBodyStream to be destroyed.
470    ///
471    ///
472    /// Required System Capabilities: SystemCapability.Web.Webview.Core
473    ///
474    /// Available since API-level: 12
475    #[cfg(feature = "api-12")]
476    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
477    pub fn OH_ArkWebResourceRequest_DestroyHttpBodyStream(
478        httpBodyStream: *mut ArkWeb_HttpBodyStream,
479    );
480    /// Get the resource type of request.
481    /// # Arguments
482    ///
483    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
484    ///
485    /// # Returns
486    ///
487    /// * The resource type of request. -1 if resourceRequest is invalid.
488    ///
489    ///
490    /// Required System Capabilities: SystemCapability.Web.Webview.Core
491    ///
492    /// Available since API-level: 12
493    #[cfg(feature = "api-12")]
494    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
495    pub fn OH_ArkWebResourceRequest_GetResourceType(
496        resourceRequest: *const ArkWeb_ResourceRequest,
497    ) -> i32;
498    /// Get the url of frame which trigger this request.
499    /// # Arguments
500    ///
501    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
502    ///
503    /// * `frameUrl` - The url of frame which trigger this request. This function will allocate memory for the url string
504    /// and caller must release the string by OH_ArkWeb_ReleaseString.
505    ///
506    ///
507    /// Required System Capabilities: SystemCapability.Web.Webview.Core
508    ///
509    /// Available since API-level: 12
510    #[cfg(feature = "api-12")]
511    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
512    pub fn OH_ArkWebResourceRequest_GetFrameUrl(
513        resourceRequest: *const ArkWeb_ResourceRequest,
514        frameUrl: *mut *mut ::core::ffi::c_char,
515    );
516    /// Set a user data to ArkWeb_HttpBodyStream.
517    /// # Arguments
518    ///
519    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
520    ///
521    /// * `userData` - The user data to set.
522    ///
523    /// # Returns
524    ///
525    /// * [`ARKWEB_NET_OK`] 0 - Success.
526    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
527    ///
528    ///
529    /// Required System Capabilities: SystemCapability.Web.Webview.Core
530    ///
531    /// Available since API-level: 12
532    #[cfg(feature = "api-12")]
533    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
534    pub fn OH_ArkWebHttpBodyStream_SetUserData(
535        httpBodyStream: *mut ArkWeb_HttpBodyStream,
536        userData: *mut ::core::ffi::c_void,
537    ) -> i32;
538    /// Get the user data from ArkWeb_HttpBodyStream.
539    /// # Arguments
540    ///
541    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
542    ///
543    /// # Returns
544    ///
545    /// * The set user data.
546    ///
547    ///
548    /// Required System Capabilities: SystemCapability.Web.Webview.Core
549    ///
550    /// Available since API-level: 12
551    #[cfg(feature = "api-12")]
552    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
553    pub fn OH_ArkWebHttpBodyStream_GetUserData(
554        httpBodyStream: *const ArkWeb_HttpBodyStream,
555    ) -> *mut ::core::ffi::c_void;
556    /// Set the callback for OH_ArkWebHttpBodyStream_Read.
557    ///
558    /// The result of OH_ArkWebHttpBodyStream_Read will be notified to caller through the readCallback.
559    ///
560    /// The callback will run in the same thread as OH_ArkWebHttpBodyStream_Read.
561    ///
562    ///
563    /// # Arguments
564    ///
565    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
566    ///
567    /// * `readCallback` - The callback of read function.
568    ///
569    /// # Returns
570    ///
571    /// * [`ARKWEB_NET_OK`] 0 - Success.
572    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
573    ///
574    ///
575    /// Required System Capabilities: SystemCapability.Web.Webview.Core
576    ///
577    /// Available since API-level: 12
578    #[cfg(feature = "api-12")]
579    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
580    pub fn OH_ArkWebHttpBodyStream_SetReadCallback(
581        httpBodyStream: *mut ArkWeb_HttpBodyStream,
582        readCallback: ArkWeb_HttpBodyStreamReadCallback,
583    ) -> i32;
584    /// Set the callback for OH_ArkWebHttpBodyStream_AsyncRead.
585    ///
586    /// The result of OH_ArkWebHttpBodyStream_AsyncRead will be notified to caller through the
587    ///
588    /// readCallback. The callback will runs in the ArkWeb worker thread.
589    ///
590    ///
591    /// # Arguments
592    ///
593    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
594    ///
595    /// * `readCallback` - The callback of read function.
596    ///
597    /// # Returns
598    ///
599    /// * [`ARKWEB_NET_OK`] 0 - Success.
600    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
601    ///
602    ///
603    /// Available since API-level: 20
604    #[cfg(feature = "api-20")]
605    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
606    pub fn OH_ArkWebHttpBodyStream_SetAsyncReadCallback(
607        httpBodyStream: *mut ArkWeb_HttpBodyStream,
608        readCallback: ArkWeb_HttpBodyStreamAsyncReadCallback,
609    ) -> i32;
610    /// Init the http body stream.
611    ///
612    /// This function must be called before calling any other functions.
613    ///
614    ///
615    /// # Arguments
616    ///
617    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
618    ///
619    /// * `initCallback` - The callback of init.
620    ///
621    /// # Returns
622    ///
623    /// * [`ARKWEB_NET_OK`] 0 - Success.
624    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
625    ///
626    ///
627    /// Required System Capabilities: SystemCapability.Web.Webview.Core
628    ///
629    /// Available since API-level: 12
630    #[cfg(feature = "api-12")]
631    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
632    pub fn OH_ArkWebHttpBodyStream_Init(
633        httpBodyStream: *mut ArkWeb_HttpBodyStream,
634        initCallback: ArkWeb_HttpBodyStreamInitCallback,
635    ) -> i32;
636    /// Read the http body to the buffer.
637    ///
638    /// The buffer must be larger than the bufLen. We will be reading data from a worker thread to the buffer,
639    ///
640    /// so should not use the buffer in other threads before the callback to avoid concurrency issues.
641    ///
642    ///
643    /// # Arguments
644    ///
645    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
646    ///
647    /// * `buffer` - The buffer to receive data.
648    ///
649    /// * `bufLen` - The size of bytes to read.
650    ///
651    ///
652    /// Required System Capabilities: SystemCapability.Web.Webview.Core
653    ///
654    /// Available since API-level: 12
655    #[cfg(feature = "api-12")]
656    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
657    pub fn OH_ArkWebHttpBodyStream_Read(
658        httpBodyStream: *const ArkWeb_HttpBodyStream,
659        buffer: *mut u8,
660        bufLen: ::core::ffi::c_int,
661    );
662    /// Read the http body to the buffer.
663    ///
664    /// The buffer must be larger than the bufLen. We will read data from a worker thread to the buffer,
665    ///
666    /// so should not use the buffer in other threads before the callback to avoid concurrency issues.
667    ///
668    ///
669    /// # Arguments
670    ///
671    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
672    ///
673    /// * `buffer` - The buffer to receive data.
674    ///
675    /// * `bufLen` - The size of bytes to read.
676    ///
677    ///
678    /// Available since API-level: 20
679    #[cfg(feature = "api-20")]
680    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
681    pub fn OH_ArkWebHttpBodyStream_AsyncRead(
682        httpBodyStream: *const ArkWeb_HttpBodyStream,
683        buffer: *mut u8,
684        bufLen: ::core::ffi::c_int,
685    );
686    /// Get the total size of the data stream.
687    ///
688    /// When data is chunked or httpBodyStream is invalid, always return zero.
689    ///
690    ///
691    /// # Arguments
692    ///
693    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
694    ///
695    /// # Returns
696    ///
697    /// * The size of data stream.
698    ///
699    ///
700    /// Required System Capabilities: SystemCapability.Web.Webview.Core
701    ///
702    /// Available since API-level: 12
703    #[cfg(feature = "api-12")]
704    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
705    pub fn OH_ArkWebHttpBodyStream_GetSize(httpBodyStream: *const ArkWeb_HttpBodyStream) -> u64;
706    /// Get the current position of the data stream.
707    /// # Arguments
708    ///
709    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
710    ///
711    /// # Returns
712    ///
713    /// * The current position of data stream. 0 if httpBodyStream is invalid.
714    ///
715    ///
716    /// Required System Capabilities: SystemCapability.Web.Webview.Core
717    ///
718    /// Available since API-level: 12
719    #[cfg(feature = "api-12")]
720    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
721    pub fn OH_ArkWebHttpBodyStream_GetPosition(httpBodyStream: *const ArkWeb_HttpBodyStream)
722        -> u64;
723    /// Get if the data stream is chunked.
724    /// # Arguments
725    ///
726    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
727    ///
728    /// # Returns
729    ///
730    /// * True if is chunked; false otherwise.
731    ///
732    ///
733    /// Required System Capabilities: SystemCapability.Web.Webview.Core
734    ///
735    /// Available since API-level: 12
736    #[cfg(feature = "api-12")]
737    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
738    pub fn OH_ArkWebHttpBodyStream_IsChunked(httpBodyStream: *const ArkWeb_HttpBodyStream) -> bool;
739    /// Returns true if all data has been consumed from this upload data stream.
740    ///
741    /// For chunked uploads, returns false until the first read attempt.
742    ///
743    ///
744    /// # Arguments
745    ///
746    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
747    ///
748    /// # Returns
749    ///
750    /// * True if all data has been consumed; false otherwise.
751    ///
752    ///
753    /// Required System Capabilities: SystemCapability.Web.Webview.Core
754    ///
755    /// Available since API-level: 12
756    #[cfg(feature = "api-12")]
757    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
758    pub fn OH_ArkWebHttpBodyStream_IsEof(httpBodyStream: *const ArkWeb_HttpBodyStream) -> bool;
759    /// Returns true if the upload data in the stream is entirely in memory,
760    /// and all read requests will succeed synchronously.
761    ///
762    /// Expected to return false for chunked requests.
763    ///
764    ///
765    /// # Arguments
766    ///
767    /// * `httpBodyStream` - The ArkWeb_HttpBodyStream.
768    ///
769    /// # Returns
770    ///
771    /// * True if the upload data is in memory; false otherwise.
772    ///
773    ///
774    /// Required System Capabilities: SystemCapability.Web.Webview.Core
775    ///
776    /// Available since API-level: 12
777    #[cfg(feature = "api-12")]
778    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
779    pub fn OH_ArkWebHttpBodyStream_IsInMemory(httpBodyStream: *const ArkWeb_HttpBodyStream)
780        -> bool;
781    /// Destroy the ArkWeb_ResourceRequest.
782    /// # Arguments
783    ///
784    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
785    ///
786    /// # Returns
787    ///
788    /// * [`ARKWEB_NET_OK`] 0 - Success.
789    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
790    ///
791    ///
792    /// Required System Capabilities: SystemCapability.Web.Webview.Core
793    ///
794    /// Available since API-level: 12
795    #[cfg(feature = "api-12")]
796    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
797    pub fn OH_ArkWebResourceRequest_Destroy(resourceRequest: *const ArkWeb_ResourceRequest) -> i32;
798    /// Get the referrer of request.
799    /// # Arguments
800    ///
801    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
802    ///
803    /// * `referrer` - The request's referrer. This function will allocate memory for the post data string and caller
804    /// must release the string by OH_ArkWeb_ReleaseString.
805    ///
806    ///
807    /// Required System Capabilities: SystemCapability.Web.Webview.Core
808    ///
809    /// Available since API-level: 12
810    #[cfg(feature = "api-12")]
811    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
812    pub fn OH_ArkWebResourceRequest_GetReferrer(
813        resourceRequest: *const ArkWeb_ResourceRequest,
814        referrer: *mut *mut ::core::ffi::c_char,
815    );
816    /// Get the OH_ArkWeb_RequestHeaderList of the request.
817    /// # Arguments
818    ///
819    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
820    ///
821    /// * `requestHeaderList` - The RequestHeaderList of request.
822    ///
823    ///
824    /// Required System Capabilities: SystemCapability.Web.Webview.Core
825    ///
826    /// Available since API-level: 12
827    #[cfg(feature = "api-12")]
828    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
829    pub fn OH_ArkWebResourceRequest_GetRequestHeaders(
830        resourceRequest: *const ArkWeb_ResourceRequest,
831        requestHeaderList: *mut *mut ArkWeb_RequestHeaderList,
832    );
833    /// Get if this is a redirect request.
834    /// # Arguments
835    ///
836    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
837    ///
838    /// # Returns
839    ///
840    /// * True if this is a redirect; false otherwise.
841    ///
842    ///
843    /// Required System Capabilities: SystemCapability.Web.Webview.Core
844    ///
845    /// Available since API-level: 12
846    #[cfg(feature = "api-12")]
847    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
848    pub fn OH_ArkWebResourceRequest_IsRedirect(
849        resourceRequest: *const ArkWeb_ResourceRequest,
850    ) -> bool;
851    /// Get if this is a request from main frame.
852    /// # Arguments
853    ///
854    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
855    ///
856    /// # Returns
857    ///
858    /// * True if this is from main frame; false otherwise.
859    ///
860    ///
861    /// Required System Capabilities: SystemCapability.Web.Webview.Core
862    ///
863    /// Available since API-level: 12
864    #[cfg(feature = "api-12")]
865    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
866    pub fn OH_ArkWebResourceRequest_IsMainFrame(
867        resourceRequest: *const ArkWeb_ResourceRequest,
868    ) -> bool;
869    /// Get if this is a request is triggered by user gesutre.
870    /// # Arguments
871    ///
872    /// * `resourceRequest` - The ArkWeb_ResourceRequest.
873    ///
874    /// # Returns
875    ///
876    /// * True if this is triggered by user gesture; false otherwise.
877    ///
878    ///
879    /// Required System Capabilities: SystemCapability.Web.Webview.Core
880    ///
881    /// Available since API-level: 12
882    #[cfg(feature = "api-12")]
883    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
884    pub fn OH_ArkWebResourceRequest_HasGesture(
885        resourceRequest: *const ArkWeb_ResourceRequest,
886    ) -> bool;
887    /// Register custom scheme to the ArkWeb.
888    ///
889    /// Should not be called for built-in HTTP, HTTPS, FILE, FTP, ABOUT and DATA schemes.
890    ///
891    /// This function should be called on main thread.
892    ///
893    ///
894    /// # Arguments
895    ///
896    /// * `scheme` - The scheme to regist.
897    ///
898    /// * `option` - The configuration of the scheme.
899    ///
900    /// # Returns
901    ///
902    /// * [`ARKWEB_NET_OK`] 0 - Success.
903    /// [`ARKWEB_ERROR_UNKNOWN`] 17100100 - Unknown error.
904    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
905    /// [`ARKWEB_SCHEME_REGISTER_FAILED`] 17100102 - Register custom schemes should be called
906    /// before create any ArkWeb.
907    ///
908    ///
909    /// Required System Capabilities: SystemCapability.Web.Webview.Core
910    ///
911    /// Available since API-level: 12
912    #[cfg(feature = "api-12")]
913    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
914    pub fn OH_ArkWeb_RegisterCustomSchemes(scheme: *const ::core::ffi::c_char, option: i32) -> i32;
915    /// Set a ArkWeb_SchemeHandler for a specific scheme to intercept requests of that scheme type.
916    ///
917    /// SchemeHandler should be set after the BrowserContext created.
918    ///
919    /// Use WebviewController.initializeWebEngine to initialize the BrowserContext without create a ArkWeb.
920    ///
921    ///
922    /// # Arguments
923    ///
924    /// * `scheme` - Scheme that need to be intercepted.
925    ///
926    /// * `schemeHandler` - The SchemeHandler for the scheme. Only requests triggered by ServiceWorker will be notified
927    /// through this handler.
928    ///
929    /// # Returns
930    ///
931    /// * Return true if set SchemeHandler for specific scheme successful, return false otherwise.
932    ///
933    ///
934    /// Required System Capabilities: SystemCapability.Web.Webview.Core
935    ///
936    /// Available since API-level: 12
937    #[cfg(feature = "api-12")]
938    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
939    pub fn OH_ArkWebServiceWorker_SetSchemeHandler(
940        scheme: *const ::core::ffi::c_char,
941        schemeHandler: *mut ArkWeb_SchemeHandler,
942    ) -> bool;
943    /// Set a ArkWeb_SchemeHandler for a specific scheme to intercept requests of that scheme type.
944    ///
945    /// SchemeHandler should be set after the BrowserContext created.
946    ///
947    /// Use WebviewController.initializeWebEngine to initialize the BrowserContext without create a ArkWeb.
948    ///
949    ///
950    /// # Arguments
951    ///
952    /// * `scheme` - Scheme that need to be intercepted.
953    ///
954    /// * `webTag` - The name of the web component.
955    ///
956    /// * `schemeHandler` - The SchemeHandler for the scheme. Only requests triggered from the specified web will be
957    /// notified through this handler.
958    ///
959    /// # Returns
960    ///
961    /// * Return true if set SchemeHandler for specific scheme successful, return false otherwise.
962    ///
963    ///
964    /// Required System Capabilities: SystemCapability.Web.Webview.Core
965    ///
966    /// Available since API-level: 12
967    #[cfg(feature = "api-12")]
968    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
969    pub fn OH_ArkWeb_SetSchemeHandler(
970        scheme: *const ::core::ffi::c_char,
971        webTag: *const ::core::ffi::c_char,
972        schemeHandler: *mut ArkWeb_SchemeHandler,
973    ) -> bool;
974    /// Clear the handler registered on the specified web for service worker.
975    ///
976    /// # Returns
977    ///
978    /// * [`ARKWEB_NET_OK`] 0 - Success.
979    ///
980    ///
981    /// Required System Capabilities: SystemCapability.Web.Webview.Core
982    ///
983    /// Available since API-level: 12
984    #[cfg(feature = "api-12")]
985    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
986    pub fn OH_ArkWebServiceWorker_ClearSchemeHandlers() -> i32;
987    /// Clear the handler registered on the specified web.
988    /// # Arguments
989    ///
990    /// * `webTag` - The name of the web component.
991    ///
992    /// # Returns
993    ///
994    /// * [`ARKWEB_NET_OK`] 0 - Success.
995    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
996    ///
997    ///
998    /// Required System Capabilities: SystemCapability.Web.Webview.Core
999    ///
1000    /// Available since API-level: 12
1001    #[cfg(feature = "api-12")]
1002    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1003    pub fn OH_ArkWeb_ClearSchemeHandlers(webTag: *const ::core::ffi::c_char) -> i32;
1004    /// Create a SchemeHandler.
1005    /// # Arguments
1006    ///
1007    /// * `schemeHandler` - Return the created SchemeHandler. Use OH_ArkWeb_DestroySchemeHandler destroy it when donn't
1008    /// need it.
1009    ///
1010    ///
1011    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1012    ///
1013    /// Available since API-level: 12
1014    #[cfg(feature = "api-12")]
1015    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1016    pub fn OH_ArkWeb_CreateSchemeHandler(schemeHandler: *mut *mut ArkWeb_SchemeHandler);
1017    /// Destroy a SchemeHandler.
1018    /// # Arguments
1019    ///
1020    /// * `schemeHandler` - The ArkWeb_SchemeHandler to be destroy.
1021    ///
1022    ///
1023    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1024    ///
1025    /// Available since API-level: 12
1026    #[cfg(feature = "api-12")]
1027    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1028    pub fn OH_ArkWeb_DestroySchemeHandler(schemeHandler: *mut ArkWeb_SchemeHandler);
1029    /// Set a user data to ArkWeb_SchemeHandler.
1030    /// # Arguments
1031    ///
1032    /// * `schemeHandler` - The ArkWeb_SchemeHandler.
1033    ///
1034    /// * `userData` - The user data to set.
1035    ///
1036    /// # Returns
1037    ///
1038    /// * [`ARKWEB_NET_OK`] 0 - Success.
1039    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1040    ///
1041    ///
1042    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1043    ///
1044    /// Available since API-level: 12
1045    #[cfg(feature = "api-12")]
1046    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1047    pub fn OH_ArkWebSchemeHandler_SetUserData(
1048        schemeHandler: *mut ArkWeb_SchemeHandler,
1049        userData: *mut ::core::ffi::c_void,
1050    ) -> i32;
1051    /// Get the user data from ArkWeb_SchemeHandler.
1052    /// # Arguments
1053    ///
1054    /// * `schemeHandler` - The ArkWeb_SchemeHandler.
1055    ///
1056    /// # Returns
1057    ///
1058    /// * The set user data.
1059    ///
1060    ///
1061    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1062    ///
1063    /// Available since API-level: 12
1064    #[cfg(feature = "api-12")]
1065    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1066    pub fn OH_ArkWebSchemeHandler_GetUserData(
1067        schemeHandler: *const ArkWeb_SchemeHandler,
1068    ) -> *mut ::core::ffi::c_void;
1069    /// Set the OnRequestStart callback for SchemeHandler.
1070    /// # Arguments
1071    ///
1072    /// * `schemeHandler` - The SchemeHandler for the scheme.
1073    ///
1074    /// * `onRequestStart` - The OnRequestStart callback.
1075    ///
1076    /// # Returns
1077    ///
1078    /// * [`ARKWEB_NET_OK`] 0 - Success.
1079    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1080    ///
1081    ///
1082    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1083    ///
1084    /// Available since API-level: 12
1085    #[cfg(feature = "api-12")]
1086    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1087    pub fn OH_ArkWebSchemeHandler_SetOnRequestStart(
1088        schemeHandler: *mut ArkWeb_SchemeHandler,
1089        onRequestStart: ArkWeb_OnRequestStart,
1090    ) -> i32;
1091    /// Set the OnRequestStop callback for SchemeHandler.
1092    /// # Arguments
1093    ///
1094    /// * `schemeHandler` - The SchemeHandler for the scheme.
1095    ///
1096    /// * `onRequestStop` - The OnRequestStop callback.
1097    ///
1098    /// # Returns
1099    ///
1100    /// * [`ARKWEB_NET_OK`] 0 - Success.
1101    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1102    ///
1103    ///
1104    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1105    ///
1106    /// Available since API-level: 12
1107    #[cfg(feature = "api-12")]
1108    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1109    pub fn OH_ArkWebSchemeHandler_SetOnRequestStop(
1110        schemeHandler: *mut ArkWeb_SchemeHandler,
1111        onRequestStop: ArkWeb_OnRequestStop,
1112    ) -> i32;
1113    /// Create a Response for a request.
1114    /// # Arguments
1115    ///
1116    /// * `response` - The created Response. Use OH_ArkWeb_DestroyResponse to destroy when donn't need it.
1117    ///
1118    ///
1119    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1120    ///
1121    /// Available since API-level: 12
1122    #[cfg(feature = "api-12")]
1123    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1124    pub fn OH_ArkWeb_CreateResponse(response: *mut *mut ArkWeb_Response);
1125    /// Destroy the Reponse.
1126    /// # Arguments
1127    ///
1128    /// * `response` - The Response needs destroy.
1129    ///
1130    ///
1131    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1132    ///
1133    /// Available since API-level: 12
1134    #[cfg(feature = "api-12")]
1135    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1136    pub fn OH_ArkWeb_DestroyResponse(response: *mut ArkWeb_Response);
1137    /// Set the resolved URL after redirects or changed as a result of HSTS.
1138    /// # Arguments
1139    ///
1140    /// * `response` - The ArkWeb_Response.
1141    ///
1142    /// * `url` - The resolved URL.
1143    ///
1144    /// # Returns
1145    ///
1146    /// * [`ARKWEB_NET_OK`] 0 - Success.
1147    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1148    ///
1149    ///
1150    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1151    ///
1152    /// Available since API-level: 12
1153    #[cfg(feature = "api-12")]
1154    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1155    pub fn OH_ArkWebResponse_SetUrl(
1156        response: *mut ArkWeb_Response,
1157        url: *const ::core::ffi::c_char,
1158    ) -> i32;
1159    /// Get the resolved URL after redirects or changed as a result of HSTS.
1160    /// # Arguments
1161    ///
1162    /// * `response` - The ArkWeb_Response.
1163    ///
1164    /// * `url` - The resolved URL.
1165    ///
1166    ///
1167    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1168    ///
1169    /// Available since API-level: 12
1170    #[cfg(feature = "api-12")]
1171    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1172    pub fn OH_ArkWebResponse_GetUrl(
1173        response: *const ArkWeb_Response,
1174        url: *mut *mut ::core::ffi::c_char,
1175    );
1176    /// Set a error code to ArkWeb_Response.
1177    /// # Arguments
1178    ///
1179    /// * `response` - The ArkWeb_Response.
1180    ///
1181    /// * `errorCode` - The error code for the failed request.
1182    ///
1183    /// # Returns
1184    ///
1185    /// * [`ARKWEB_NET_OK`] 0 - Success.
1186    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1187    ///
1188    ///
1189    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1190    ///
1191    /// Available since API-level: 12
1192    #[cfg(feature = "api-12")]
1193    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1194    pub fn OH_ArkWebResponse_SetError(
1195        response: *mut ArkWeb_Response,
1196        errorCode: ArkWeb_NetError,
1197    ) -> i32;
1198    /// Get the response's error code.
1199    /// # Arguments
1200    ///
1201    /// * `response` - The ArkWeb_Response.
1202    ///
1203    /// # Returns
1204    ///
1205    /// * The response's error code.
1206    ///
1207    ///
1208    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1209    ///
1210    /// Available since API-level: 12
1211    #[cfg(feature = "api-12")]
1212    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1213    pub fn OH_ArkWebResponse_GetError(response: *const ArkWeb_Response) -> ArkWeb_NetError;
1214    /// Set a status code to ArkWebResponse.
1215    /// # Arguments
1216    ///
1217    /// * `response` - The ArkWeb_Response.
1218    ///
1219    /// * `status` - The http status code for the request.
1220    ///
1221    /// # Returns
1222    ///
1223    /// * [`ARKWEB_NET_OK`] 0 - Success.
1224    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1225    ///
1226    ///
1227    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1228    ///
1229    /// Available since API-level: 12
1230    #[cfg(feature = "api-12")]
1231    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1232    pub fn OH_ArkWebResponse_SetStatus(
1233        response: *mut ArkWeb_Response,
1234        status: ::core::ffi::c_int,
1235    ) -> i32;
1236    /// Get the response's status code.
1237    /// # Arguments
1238    ///
1239    /// * `response` - The ArkWeb_Response.
1240    ///
1241    /// # Returns
1242    ///
1243    /// * The response's http status code. -1 if response is invalid.
1244    ///
1245    ///
1246    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1247    ///
1248    /// Available since API-level: 12
1249    #[cfg(feature = "api-12")]
1250    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1251    pub fn OH_ArkWebResponse_GetStatus(response: *const ArkWeb_Response) -> ::core::ffi::c_int;
1252    /// Set a status text to ArkWebResponse.
1253    /// # Arguments
1254    ///
1255    /// * `response` - The ArkWeb_Response.
1256    ///
1257    /// * `statusText` - The status text for the request.
1258    ///
1259    /// # Returns
1260    ///
1261    /// * [`ARKWEB_NET_OK`] 0 - Success.
1262    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1263    ///
1264    ///
1265    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1266    ///
1267    /// Available since API-level: 12
1268    #[cfg(feature = "api-12")]
1269    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1270    pub fn OH_ArkWebResponse_SetStatusText(
1271        response: *mut ArkWeb_Response,
1272        statusText: *const ::core::ffi::c_char,
1273    ) -> i32;
1274    /// Get the response's status text.
1275    /// # Arguments
1276    ///
1277    /// * `response` - The ArkWeb_Response.
1278    ///
1279    /// * `statusText` - Return the response's statusText. This function will allocate memory for the statusText string and
1280    /// caller must release the string by OH_ArkWeb_ReleaseString.
1281    ///
1282    ///
1283    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1284    ///
1285    /// Available since API-level: 12
1286    #[cfg(feature = "api-12")]
1287    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1288    pub fn OH_ArkWebResponse_GetStatusText(
1289        response: *const ArkWeb_Response,
1290        statusText: *mut *mut ::core::ffi::c_char,
1291    );
1292    /// Set mime type to ArkWebResponse.
1293    /// # Arguments
1294    ///
1295    /// * `response` - The ArkWeb_Response.
1296    ///
1297    /// * `mimeType` - The mime type for the request.
1298    ///
1299    /// # Returns
1300    ///
1301    /// * [`ARKWEB_NET_OK`] 0 - Success.
1302    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1303    ///
1304    ///
1305    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1306    ///
1307    /// Available since API-level: 12
1308    #[cfg(feature = "api-12")]
1309    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1310    pub fn OH_ArkWebResponse_SetMimeType(
1311        response: *mut ArkWeb_Response,
1312        mimeType: *const ::core::ffi::c_char,
1313    ) -> i32;
1314    /// Get the response's mime type.
1315    /// # Arguments
1316    ///
1317    /// * `response` - The ArkWeb_Response.
1318    ///
1319    /// * `mimeType` - Return the response's mime type. This function will allocate memory for the mime type string and
1320    /// caller must release the string by OH_ArkWeb_ReleaseString.
1321    ///
1322    ///
1323    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1324    ///
1325    /// Available since API-level: 12
1326    #[cfg(feature = "api-12")]
1327    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1328    pub fn OH_ArkWebResponse_GetMimeType(
1329        response: *const ArkWeb_Response,
1330        mimeType: *mut *mut ::core::ffi::c_char,
1331    );
1332    /// Set charset to ArkWeb_Response.
1333    /// # Arguments
1334    ///
1335    /// * `response` - The ArkWeb_Response.
1336    ///
1337    /// * `charset` - The charset for the request.
1338    ///
1339    /// # Returns
1340    ///
1341    /// * [`ARKWEB_NET_OK`] 0 - Success.
1342    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1343    ///
1344    ///
1345    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1346    ///
1347    /// Available since API-level: 12
1348    #[cfg(feature = "api-12")]
1349    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1350    pub fn OH_ArkWebResponse_SetCharset(
1351        response: *mut ArkWeb_Response,
1352        charset: *const ::core::ffi::c_char,
1353    ) -> i32;
1354    /// Get the response's charset.
1355    /// # Arguments
1356    ///
1357    /// * `response` - The ArkWeb_Response.
1358    ///
1359    /// * `charset` - Return the response's charset. This function will allocate memory for the charset string and caller
1360    /// must release the string by OH_ArkWeb_ReleaseString.
1361    ///
1362    ///
1363    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1364    ///
1365    /// Available since API-level: 12
1366    #[cfg(feature = "api-12")]
1367    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1368    pub fn OH_ArkWebResponse_GetCharset(
1369        response: *const ArkWeb_Response,
1370        charset: *mut *mut ::core::ffi::c_char,
1371    );
1372    /// Set a header to ArkWeb_Response.
1373    /// # Arguments
1374    ///
1375    /// * `response` - The ArkWeb_Response.
1376    ///
1377    /// * `name` - The name of the header.
1378    ///
1379    /// * `value` - The value of the header.
1380    ///
1381    /// * `overwirte` - If true will overwrite the exsits header, if false otherwise.
1382    ///
1383    /// # Returns
1384    ///
1385    /// * [`ARKWEB_NET_OK`] 0 - Success.
1386    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1387    ///
1388    ///
1389    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1390    ///
1391    /// Available since API-level: 12
1392    #[cfg(feature = "api-12")]
1393    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1394    pub fn OH_ArkWebResponse_SetHeaderByName(
1395        response: *mut ArkWeb_Response,
1396        name: *const ::core::ffi::c_char,
1397        value: *const ::core::ffi::c_char,
1398        overwrite: bool,
1399    ) -> i32;
1400    /// Get the header from the response.
1401    /// # Arguments
1402    ///
1403    /// * `response` - The ArkWeb_Response.
1404    ///
1405    /// * `name` - The name of the header.
1406    ///
1407    /// * `value` - Return the header's value. This function will allocate memory for the value string and caller must
1408    /// release the string by OH_ArkWeb_ReleaseString.
1409    ///
1410    ///
1411    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1412    ///
1413    /// Available since API-level: 12
1414    #[cfg(feature = "api-12")]
1415    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1416    pub fn OH_ArkWebResponse_GetHeaderByName(
1417        response: *const ArkWeb_Response,
1418        name: *const ::core::ffi::c_char,
1419        value: *mut *mut ::core::ffi::c_char,
1420    );
1421    /// Destroy the ArkWeb_ResourceHandler.
1422    /// # Arguments
1423    ///
1424    /// * `resourceHandler` - The ArkWeb_ResourceHandler.
1425    ///
1426    /// # Returns
1427    ///
1428    /// * [`ARKWEB_NET_OK`] 0 - Success.
1429    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1430    ///
1431    ///
1432    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1433    ///
1434    /// Available since API-level: 12
1435    #[cfg(feature = "api-12")]
1436    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1437    pub fn OH_ArkWebResourceHandler_Destroy(resourceHandler: *const ArkWeb_ResourceHandler) -> i32;
1438    /// Pass response headers to intercepted requests.
1439    /// # Arguments
1440    ///
1441    /// * `resourceHandler` - The ArkWeb_ResourceHandler for the request.
1442    ///
1443    /// * `response` - The ArkWeb_Response for the intercepting requests.
1444    ///
1445    /// # Returns
1446    ///
1447    /// * [`ARKWEB_NET_OK`] 0 - Success.
1448    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1449    ///
1450    ///
1451    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1452    ///
1453    /// Available since API-level: 12
1454    #[cfg(feature = "api-12")]
1455    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1456    pub fn OH_ArkWebResourceHandler_DidReceiveResponse(
1457        resourceHandler: *const ArkWeb_ResourceHandler,
1458        response: *const ArkWeb_Response,
1459    ) -> i32;
1460    /// Pass response body data to intercepted requests.
1461    /// # Arguments
1462    ///
1463    /// * `resourceHandler` - The ArkWeb_ResourceHandler for the request.
1464    ///
1465    /// * `buffer` - Buffer data to send.
1466    ///
1467    /// * `bufLen` - The size of buffer.
1468    ///
1469    /// # Returns
1470    ///
1471    /// * [`ARKWEB_NET_OK`] 0 - Success.
1472    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1473    ///
1474    ///
1475    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1476    ///
1477    /// Available since API-level: 12
1478    #[cfg(feature = "api-12")]
1479    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1480    pub fn OH_ArkWebResourceHandler_DidReceiveData(
1481        resourceHandler: *const ArkWeb_ResourceHandler,
1482        buffer: *const u8,
1483        bufLen: i64,
1484    ) -> i32;
1485    /// Notify the ArkWeb that this request should be finished and there is no more data available.
1486    /// # Arguments
1487    ///
1488    /// * `resourceHandler` - The ArkWeb_ResourceHandler for the request.
1489    ///
1490    /// # Returns
1491    ///
1492    /// * [`ARKWEB_NET_OK`] 0 - Success.
1493    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1494    ///
1495    ///
1496    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1497    ///
1498    /// Available since API-level: 12
1499    #[cfg(feature = "api-12")]
1500    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1501    pub fn OH_ArkWebResourceHandler_DidFinish(
1502        resourceHandler: *const ArkWeb_ResourceHandler,
1503    ) -> i32;
1504    /// Notify the ArkWeb that this request should be failed.
1505    /// # Arguments
1506    ///
1507    /// * `resourceHandler` - The ArkWeb_ResourceHandler for the request.
1508    ///
1509    /// * `errorCode` - The error code for this request. Refer to arkweb_net_error_list.h.
1510    ///
1511    /// # Returns
1512    ///
1513    /// * [`ARKWEB_NET_OK`] 0 - Success.
1514    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param.
1515    ///
1516    ///
1517    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1518    ///
1519    /// Available since API-level: 12
1520    #[cfg(feature = "api-12")]
1521    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1522    pub fn OH_ArkWebResourceHandler_DidFailWithError(
1523        resourceHandler: *const ArkWeb_ResourceHandler,
1524        errorCode: ArkWeb_NetError,
1525    ) -> i32;
1526    /// Notify the ArkWeb that this request should be failed.
1527    /// # Arguments
1528    ///
1529    /// * `resourceHandler` - The ArkWeb_ResourceHandler for the request.
1530    ///
1531    /// * `errorCode` - The error code for this request. Refer to arkweb_net_error_list.h.
1532    ///
1533    /// * `completeIfNoResponse` - If completeIfNoResponse is true, when DidFailWithErrorV2 is called,
1534    /// if DidReceiveResponse has not been called,
1535    /// a response is automatically constructed and the current request is terminated.
1536    ///
1537    /// # Returns
1538    ///
1539    /// * [`ARKWEB_NET_OK`] 0 - Success.
1540    /// [`ARKWEB_INVALID_PARAM`] 17100101 - Invalid param, the resourceHandler is nullptr.
1541    ///
1542    /// Available since API-level: 20
1543    #[cfg(feature = "api-20")]
1544    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1545    pub fn OH_ArkWebResourceHandler_DidFailWithErrorV2(
1546        resourceHandler: *const ArkWeb_ResourceHandler,
1547        errorCode: ArkWeb_NetError,
1548        completeIfNoResponse: bool,
1549    ) -> i32;
1550    /// Release the string acquired by native function.
1551    /// # Arguments
1552    ///
1553    /// * `string` - The string to be released.
1554    ///
1555    ///
1556    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1557    ///
1558    /// Available since API-level: 12
1559    #[cfg(feature = "api-12")]
1560    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1561    pub fn OH_ArkWeb_ReleaseString(string: *mut ::core::ffi::c_char);
1562    /// Release the byte array acquired by native function.
1563    /// # Arguments
1564    ///
1565    /// * `byteArray` - The byte array to be released.
1566    ///
1567    ///
1568    /// Required System Capabilities: SystemCapability.Web.Webview.Core
1569    ///
1570    /// Available since API-level: 12
1571    #[cfg(feature = "api-12")]
1572    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1573    pub fn OH_ArkWeb_ReleaseByteArray(byteArray: *mut u8);
1574}