• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "ohos_nweb/bridge/ark_web_nweb_impl.h"
17 
18 #include "ohos_nweb/bridge/ark_web_accessibility_event_callback_wrapper.h"
19 #include "ohos_nweb/bridge/ark_web_accessibility_node_info_impl.h"
20 #include "ohos_nweb/bridge/ark_web_array_buffer_value_callback_wrapper.h"
21 #include "ohos_nweb/bridge/ark_web_pdfconfig_args_wrapper.h"
22 #include "ohos_nweb/bridge/ark_web_bool_value_callback_wrapper.h"
23 #include "ohos_nweb/bridge/ark_web_cache_options_wrapper.h"
24 #include "ohos_nweb/bridge/ark_web_core_struct_utils.h"
25 #include "ohos_nweb/bridge/ark_web_create_native_media_player_callback_wrapper.h"
26 #include "ohos_nweb/bridge/ark_web_download_callback_wrapper.h"
27 #include "ohos_nweb/bridge/ark_web_drag_data_impl.h"
28 #include "ohos_nweb/bridge/ark_web_drag_event_wrapper.h"
29 #include "ohos_nweb/bridge/ark_web_find_callback_wrapper.h"
30 #include "ohos_nweb/bridge/ark_web_handler_wrapper.h"
31 #include "ohos_nweb/bridge/ark_web_history_list_impl.h"
32 #include "ohos_nweb/bridge/ark_web_hit_test_result_impl.h"
33 #include "ohos_nweb/bridge/ark_web_js_proxy_method_wrapper.h"
34 #include "ohos_nweb/bridge/ark_web_js_result_callback_wrapper.h"
35 #include "ohos_nweb/bridge/ark_web_keyboard_event_wrapper.h"
36 #include "ohos_nweb/bridge/ark_web_message_value_callback_wrapper.h"
37 #include "ohos_nweb/bridge/ark_web_mouse_event_wrapper.h"
38 #include "ohos_nweb/bridge/ark_web_preference_impl.h"
39 #include "ohos_nweb/bridge/ark_web_release_surface_callback_wrapper.h"
40 #include "ohos_nweb/bridge/ark_web_rom_value_wrapper.h"
41 #include "ohos_nweb/bridge/ark_web_screen_lock_callback_wrapper.h"
42 #include "ohos_nweb/bridge/ark_web_spanstring_convert_html_callback_wrapper.h"
43 #include "ohos_nweb/bridge/ark_web_string_value_callback_wrapper.h"
44 #include "ohos_nweb/bridge/ark_web_system_configuration_wrapper.h"
45 #include "ohos_nweb/bridge/ark_web_print_document_adapter_adapter_impl.h"
46 #include "ohos_nweb/ctocpp/ark_web_js_proxy_callback_vector_ctocpp.h"
47 #include "ohos_nweb/ctocpp/ark_web_rom_value_vector_ctocpp.h"
48 #include "ohos_nweb/ctocpp/ark_web_touch_point_info_vector_ctocpp.h"
49 #include "ohos_nweb/ctocpp/ark_web_value_vector_ctocpp.h"
50 
51 #include "base/bridge/ark_web_bridge_macros.h"
52 
53 namespace OHOS::ArkWeb {
54 
55 using ArkWebBlurReason = OHOS::NWeb::BlurReason;
56 using ArkWebFocusReason = OHOS::NWeb::FocusReason;
57 using ArkWebImageColorType = OHOS::NWeb::ImageColorType;
58 using ArkWebImageAlphaType = OHOS::NWeb::ImageAlphaType;
59 using ArkWebNestedScrollMode = OHOS::NWeb::NestedScrollMode;
60 using ArkPixelUnit = OHOS::NWeb::PixelUnit;
61 
ArkWebNWebImpl(std::shared_ptr<OHOS::NWeb::NWeb> nweb_nweb)62 ArkWebNWebImpl::ArkWebNWebImpl(std::shared_ptr<OHOS::NWeb::NWeb> nweb_nweb) : nweb_nweb_(nweb_nweb) {}
63 
Resize(uint32_t width,uint32_t height,bool is_keyboard)64 void ArkWebNWebImpl::Resize(uint32_t width, uint32_t height, bool is_keyboard)
65 {
66     nweb_nweb_->Resize(width, height, is_keyboard);
67 }
68 
OnPause()69 void ArkWebNWebImpl::OnPause()
70 {
71     nweb_nweb_->OnPause();
72 }
73 
OnContinue()74 void ArkWebNWebImpl::OnContinue()
75 {
76     nweb_nweb_->OnContinue();
77 }
78 
OnDestroy()79 void ArkWebNWebImpl::OnDestroy()
80 {
81     nweb_nweb_->OnDestroy();
82 }
83 
OnFocus(const int32_t & focus_reason)84 void ArkWebNWebImpl::OnFocus(const int32_t& focus_reason)
85 {
86     nweb_nweb_->OnFocus(static_cast<ArkWebFocusReason>(focus_reason));
87 }
88 
OnBlur(const int32_t & blur_reason)89 void ArkWebNWebImpl::OnBlur(const int32_t& blur_reason)
90 {
91     nweb_nweb_->OnBlur(static_cast<ArkWebBlurReason>(blur_reason));
92 }
93 
OnTouchPress(int32_t id,double x,double y,bool from_overlay)94 void ArkWebNWebImpl::OnTouchPress(int32_t id, double x, double y, bool from_overlay)
95 {
96     nweb_nweb_->OnTouchPress(id, x, y, from_overlay);
97 }
98 
OnTouchRelease(int32_t id,double x,double y,bool from_overlay)99 void ArkWebNWebImpl::OnTouchRelease(int32_t id, double x, double y, bool from_overlay)
100 {
101     nweb_nweb_->OnTouchRelease(id, x, y, from_overlay);
102 }
103 
OnTouchMove(int32_t id,double x,double y,bool from_overlay)104 void ArkWebNWebImpl::OnTouchMove(int32_t id, double x, double y, bool from_overlay)
105 {
106     nweb_nweb_->OnTouchMove(id, x, y, from_overlay);
107 }
108 
OnTouchMove(const ArkWebTouchPointInfoVector & touch_point_infos,bool from_overlay)109 void ArkWebNWebImpl::OnTouchMove(const ArkWebTouchPointInfoVector& touch_point_infos, bool from_overlay)
110 {
111     nweb_nweb_->OnTouchMove(ArkWebTouchPointInfoVectorStructToClass(touch_point_infos), from_overlay);
112 }
113 
OnTouchCancel()114 void ArkWebNWebImpl::OnTouchCancel()
115 {
116     nweb_nweb_->OnTouchCancel();
117 }
118 
OnNavigateBack()119 void ArkWebNWebImpl::OnNavigateBack()
120 {
121     nweb_nweb_->OnNavigateBack();
122 }
123 
SendKeyEvent(int32_t key_code,int32_t key_action)124 bool ArkWebNWebImpl::SendKeyEvent(int32_t key_code, int32_t key_action)
125 {
126     return nweb_nweb_->SendKeyEvent(key_code, key_action);
127 }
128 
SendMouseWheelEvent(double x,double y,double delta_x,double delta_y)129 void ArkWebNWebImpl::SendMouseWheelEvent(double x, double y, double delta_x, double delta_y)
130 {
131     nweb_nweb_->SendMouseWheelEvent(x, y, delta_x, delta_y);
132 }
133 
SendMouseEvent(int x,int y,int button,int action,int count)134 void ArkWebNWebImpl::SendMouseEvent(int x, int y, int button, int action, int count)
135 {
136     nweb_nweb_->SendMouseEvent(x, y, button, action, count);
137 }
138 
Load(const ArkWebString & url)139 int ArkWebNWebImpl::Load(const ArkWebString& url)
140 {
141     return nweb_nweb_->Load(ArkWebStringStructToClass(url));
142 }
143 
IsNavigatebackwardAllowed()144 bool ArkWebNWebImpl::IsNavigatebackwardAllowed()
145 {
146     return nweb_nweb_->IsNavigatebackwardAllowed();
147 }
148 
IsNavigateForwardAllowed()149 bool ArkWebNWebImpl::IsNavigateForwardAllowed()
150 {
151     return nweb_nweb_->IsNavigateForwardAllowed();
152 }
153 
CanNavigateBackOrForward(int num_steps)154 bool ArkWebNWebImpl::CanNavigateBackOrForward(int num_steps)
155 {
156     return nweb_nweb_->CanNavigateBackOrForward(num_steps);
157 }
158 
NavigateBack()159 void ArkWebNWebImpl::NavigateBack()
160 {
161     nweb_nweb_->NavigateBack();
162 }
163 
NavigateForward()164 void ArkWebNWebImpl::NavigateForward()
165 {
166     nweb_nweb_->NavigateForward();
167 }
168 
NavigateBackOrForward(int step)169 void ArkWebNWebImpl::NavigateBackOrForward(int step)
170 {
171     nweb_nweb_->NavigateBackOrForward(step);
172 }
173 
DeleteNavigateHistory()174 void ArkWebNWebImpl::DeleteNavigateHistory()
175 {
176     nweb_nweb_->DeleteNavigateHistory();
177 }
178 
Reload()179 void ArkWebNWebImpl::Reload()
180 {
181     nweb_nweb_->Reload();
182 }
183 
Zoom(float zoom_factor)184 int ArkWebNWebImpl::Zoom(float zoom_factor)
185 {
186     return nweb_nweb_->Zoom(zoom_factor);
187 }
188 
ZoomIn()189 int ArkWebNWebImpl::ZoomIn()
190 {
191     return nweb_nweb_->ZoomIn();
192 }
193 
ZoomOut()194 int ArkWebNWebImpl::ZoomOut()
195 {
196     return nweb_nweb_->ZoomOut();
197 }
198 
Stop()199 void ArkWebNWebImpl::Stop()
200 {
201     nweb_nweb_->Stop();
202 }
203 
ExecuteJavaScript(const ArkWebString & code)204 void ArkWebNWebImpl::ExecuteJavaScript(const ArkWebString& code)
205 {
206     nweb_nweb_->ExecuteJavaScript(ArkWebStringStructToClass(code));
207 }
208 
ExecuteJavaScript(const ArkWebString & code,ArkWebRefPtr<ArkWebMessageValueCallback> callback,bool extention)209 void ArkWebNWebImpl::ExecuteJavaScript(
210     const ArkWebString& code, ArkWebRefPtr<ArkWebMessageValueCallback> callback, bool extention)
211 {
212     if (CHECK_REF_PTR_IS_NULL(callback)) {
213         nweb_nweb_->ExecuteJavaScript(ArkWebStringStructToClass(code), nullptr, extention);
214         return;
215     }
216 
217     nweb_nweb_->ExecuteJavaScript(
218         ArkWebStringStructToClass(code), std::make_shared<ArkWebMessageValueCallbackWrapper>(callback), extention);
219 }
220 
GetPreference()221 ArkWebRefPtr<ArkWebPreference> ArkWebNWebImpl::GetPreference()
222 {
223     std::shared_ptr<OHOS::NWeb::NWebPreference> nweb_preference = nweb_nweb_->GetPreference();
224     if (CHECK_SHARED_PTR_IS_NULL(nweb_preference)) {
225         return nullptr;
226     }
227 
228     return new ArkWebPreferenceImpl(nweb_preference);
229 }
230 
GetWebId()231 unsigned int ArkWebNWebImpl::GetWebId()
232 {
233     return nweb_nweb_->GetWebId();
234 }
235 
GetHitTestResult()236 ArkWebRefPtr<ArkWebHitTestResult> ArkWebNWebImpl::GetHitTestResult()
237 {
238     std::shared_ptr<OHOS::NWeb::HitTestResult> nweb_hit_test_result = nweb_nweb_->GetHitTestResult();
239     if (CHECK_SHARED_PTR_IS_NULL(nweb_hit_test_result)) {
240         return nullptr;
241     }
242 
243     return new ArkWebHitTestResultImpl(nweb_hit_test_result);
244 }
245 
PutBackgroundColor(int color)246 void ArkWebNWebImpl::PutBackgroundColor(int color)
247 {
248     nweb_nweb_->PutBackgroundColor(color);
249 }
250 
InitialScale(float scale)251 void ArkWebNWebImpl::InitialScale(float scale)
252 {
253     nweb_nweb_->InitialScale(scale);
254 }
255 
PutDownloadCallback(ArkWebRefPtr<ArkWebDownloadCallback> download_listener)256 void ArkWebNWebImpl::PutDownloadCallback(ArkWebRefPtr<ArkWebDownloadCallback> download_listener)
257 {
258     if (CHECK_REF_PTR_IS_NULL(download_listener)) {
259         nweb_nweb_->PutDownloadCallback(nullptr);
260         return;
261     }
262 
263     nweb_nweb_->PutDownloadCallback(std::make_shared<ArkWebDownloadCallbackWrapper>(download_listener));
264 }
265 
PutAccessibilityEventCallback(ArkWebRefPtr<ArkWebAccessibilityEventCallback> accessibility_event_listener)266 void ArkWebNWebImpl::PutAccessibilityEventCallback(
267     ArkWebRefPtr<ArkWebAccessibilityEventCallback> accessibility_event_listener)
268 {
269     if (CHECK_REF_PTR_IS_NULL(accessibility_event_listener)) {
270         nweb_nweb_->PutAccessibilityEventCallback(nullptr);
271         return;
272     }
273 
274     nweb_nweb_->PutAccessibilityEventCallback(
275         std::make_shared<ArkWebAccessibilityEventCallbackWrapper>(accessibility_event_listener));
276 }
277 
PutAccessibilityIdGenerator(AccessibilityIdGenerateFunc accessibility_id_generator)278 void ArkWebNWebImpl::PutAccessibilityIdGenerator(AccessibilityIdGenerateFunc accessibility_id_generator)
279 {
280     nweb_nweb_->PutAccessibilityIdGenerator(accessibility_id_generator);
281 }
282 
SetNWebHandler(ArkWebRefPtr<ArkWebHandler> handler)283 void ArkWebNWebImpl::SetNWebHandler(ArkWebRefPtr<ArkWebHandler> handler)
284 {
285     if (CHECK_REF_PTR_IS_NULL(handler)) {
286         nweb_nweb_->SetNWebHandler(nullptr);
287         return;
288     }
289 
290     nweb_nweb_->SetNWebHandler(std::make_shared<ArkWebHandlerWrapper>(handler));
291 }
292 
Title()293 ArkWebString ArkWebNWebImpl::Title()
294 {
295     return ArkWebStringClassToStruct(nweb_nweb_->Title());
296 }
297 
PageLoadProgress()298 int ArkWebNWebImpl::PageLoadProgress()
299 {
300     return nweb_nweb_->PageLoadProgress();
301 }
302 
ContentHeight()303 int ArkWebNWebImpl::ContentHeight()
304 {
305     return nweb_nweb_->ContentHeight();
306 }
307 
Scale()308 float ArkWebNWebImpl::Scale()
309 {
310     return nweb_nweb_->Scale();
311 }
312 
Load(const ArkWebString & url,const ArkWebStringMap & additional_http_headers)313 int ArkWebNWebImpl::Load(const ArkWebString& url, const ArkWebStringMap& additional_http_headers)
314 {
315     return nweb_nweb_->Load(ArkWebStringStructToClass(url), ArkWebStringMapStructToClass(additional_http_headers));
316 }
317 
LoadWithDataAndBaseUrl(const ArkWebString & base_url,const ArkWebString & data,const ArkWebString & mime_type,const ArkWebString & encoding,const ArkWebString & history_url)318 int ArkWebNWebImpl::LoadWithDataAndBaseUrl(const ArkWebString& base_url, const ArkWebString& data,
319     const ArkWebString& mime_type, const ArkWebString& encoding, const ArkWebString& history_url)
320 {
321     return nweb_nweb_->LoadWithDataAndBaseUrl(ArkWebStringStructToClass(base_url), ArkWebStringStructToClass(data),
322         ArkWebStringStructToClass(mime_type), ArkWebStringStructToClass(encoding),
323         ArkWebStringStructToClass(history_url));
324 }
325 
LoadWithData(const ArkWebString & data,const ArkWebString & mime_type,const ArkWebString & encoding)326 int ArkWebNWebImpl::LoadWithData(const ArkWebString& data, const ArkWebString& mime_type, const ArkWebString& encoding)
327 {
328     return nweb_nweb_->LoadWithData(
329         ArkWebStringStructToClass(data), ArkWebStringStructToClass(mime_type), ArkWebStringStructToClass(encoding));
330 }
331 
RegisterArkJSfunction(const ArkWebString & object_name,const ArkWebStringVector & method_list,const int32_t object_id)332 void ArkWebNWebImpl::RegisterArkJSfunction(
333     const ArkWebString& object_name, const ArkWebStringVector& method_list, const int32_t object_id)
334 {
335     nweb_nweb_->RegisterArkJSfunction(
336         ArkWebStringStructToClass(object_name), ArkWebStringVectorStructToClass(method_list), object_id);
337 }
338 
UnregisterArkJSfunction(const ArkWebString & object_name,const ArkWebStringVector & method_list)339 void ArkWebNWebImpl::UnregisterArkJSfunction(const ArkWebString& object_name, const ArkWebStringVector& method_list)
340 {
341     nweb_nweb_->UnregisterArkJSfunction(
342         ArkWebStringStructToClass(object_name), ArkWebStringVectorStructToClass(method_list));
343 }
344 
SetNWebJavaScriptResultCallBack(ArkWebRefPtr<ArkWebJsResultCallback> callback)345 void ArkWebNWebImpl::SetNWebJavaScriptResultCallBack(ArkWebRefPtr<ArkWebJsResultCallback> callback)
346 {
347     if (CHECK_REF_PTR_IS_NULL(callback)) {
348         nweb_nweb_->SetNWebJavaScriptResultCallBack(nullptr);
349         return;
350     }
351 
352     nweb_nweb_->SetNWebJavaScriptResultCallBack(std::make_shared<ArkWebJsResultCallbackWrapper>(callback));
353 }
354 
PutFindCallback(ArkWebRefPtr<ArkWebFindCallback> find_listener)355 void ArkWebNWebImpl::PutFindCallback(ArkWebRefPtr<ArkWebFindCallback> find_listener)
356 {
357     if (CHECK_REF_PTR_IS_NULL(find_listener)) {
358         nweb_nweb_->PutFindCallback(nullptr);
359         return;
360     }
361 
362     nweb_nweb_->PutFindCallback(std::make_shared<ArkWebFindCallbackWrapper>(find_listener));
363 }
364 
FindAllAsync(const ArkWebString & search_str)365 void ArkWebNWebImpl::FindAllAsync(const ArkWebString& search_str)
366 {
367     nweb_nweb_->FindAllAsync(ArkWebStringStructToClass(search_str));
368 }
369 
ClearMatches()370 void ArkWebNWebImpl::ClearMatches()
371 {
372     nweb_nweb_->ClearMatches();
373 }
374 
FindNext(const bool forward)375 void ArkWebNWebImpl::FindNext(const bool forward)
376 {
377     nweb_nweb_->FindNext(forward);
378 }
379 
StoreWebArchive(const ArkWebString & base_name,bool auto_name,ArkWebRefPtr<ArkWebStringValueCallback> callback)380 void ArkWebNWebImpl::StoreWebArchive(
381     const ArkWebString& base_name, bool auto_name, ArkWebRefPtr<ArkWebStringValueCallback> callback)
382 {
383     if (CHECK_REF_PTR_IS_NULL(callback)) {
384         nweb_nweb_->StoreWebArchive(ArkWebStringStructToClass(base_name), auto_name, nullptr);
385         return;
386     }
387 
388     nweb_nweb_->StoreWebArchive(
389         ArkWebStringStructToClass(base_name), auto_name, std::make_shared<ArkWebStringValueCallbackWrapper>(callback));
390 }
391 
CreateWebMessagePorts()392 ArkWebStringVector ArkWebNWebImpl::CreateWebMessagePorts()
393 {
394     return ArkWebStringVectorClassToStruct(nweb_nweb_->CreateWebMessagePorts());
395 }
396 
PostWebMessage(const ArkWebString & message,const ArkWebStringVector & ports,const ArkWebString & target_uri)397 void ArkWebNWebImpl::PostWebMessage(
398     const ArkWebString& message, const ArkWebStringVector& ports, const ArkWebString& target_uri)
399 {
400     nweb_nweb_->PostWebMessage(ArkWebStringStructToClass(message), ArkWebStringVectorStructToClass(ports),
401         ArkWebStringStructToClass(target_uri));
402 }
403 
ClosePort(const ArkWebString & port_handle)404 void ArkWebNWebImpl::ClosePort(const ArkWebString& port_handle)
405 {
406     nweb_nweb_->ClosePort(ArkWebStringStructToClass(port_handle));
407 }
408 
PostPortMessage(const ArkWebString & port_handle,const ArkWebMessage & data)409 void ArkWebNWebImpl::PostPortMessage(const ArkWebString& port_handle, const ArkWebMessage& data)
410 {
411     nweb_nweb_->PostPortMessage(ArkWebStringStructToClass(port_handle), data.nweb_message);
412 }
413 
SetPortMessageCallback(const ArkWebString & port_handle,ArkWebRefPtr<ArkWebMessageValueCallback> callback)414 void ArkWebNWebImpl::SetPortMessageCallback(
415     const ArkWebString& port_handle, ArkWebRefPtr<ArkWebMessageValueCallback> callback)
416 {
417     if (CHECK_REF_PTR_IS_NULL(callback)) {
418         nweb_nweb_->SetPortMessageCallback(ArkWebStringStructToClass(port_handle), nullptr);
419         return;
420     }
421 
422     nweb_nweb_->SetPortMessageCallback(
423         ArkWebStringStructToClass(port_handle), std::make_shared<ArkWebMessageValueCallbackWrapper>(callback));
424 }
425 
SendDragEvent(ArkWebRefPtr<ArkWebDragEvent> drag_event)426 void ArkWebNWebImpl::SendDragEvent(ArkWebRefPtr<ArkWebDragEvent> drag_event)
427 {
428     if (CHECK_REF_PTR_IS_NULL(drag_event)) {
429         nweb_nweb_->SendDragEvent(nullptr);
430         return;
431     }
432 
433     nweb_nweb_->SendDragEvent(std::make_shared<ArkWebDragEventWrapper>(drag_event));
434 }
435 
ClearSslCache()436 void ArkWebNWebImpl::ClearSslCache()
437 {
438     nweb_nweb_->ClearSslCache();
439 }
440 
GetUrl()441 ArkWebString ArkWebNWebImpl::GetUrl()
442 {
443     return ArkWebStringClassToStruct(nweb_nweb_->GetUrl());
444 }
445 
ClearClientAuthenticationCache()446 void ArkWebNWebImpl::ClearClientAuthenticationCache()
447 {
448     nweb_nweb_->ClearClientAuthenticationCache();
449 }
450 
UpdateLocale(const ArkWebString & language,const ArkWebString & region)451 void ArkWebNWebImpl::UpdateLocale(const ArkWebString& language, const ArkWebString& region)
452 {
453     nweb_nweb_->UpdateLocale(ArkWebStringStructToClass(language), ArkWebStringStructToClass(region));
454 }
455 
GetOriginalUrl()456 const ArkWebString ArkWebNWebImpl::GetOriginalUrl()
457 {
458     return ArkWebStringClassToStruct(nweb_nweb_->GetOriginalUrl());
459 }
460 
GetFavicon(const void ** data,size_t & width,size_t & height,int & color_type,int & alpha_type)461 bool ArkWebNWebImpl::GetFavicon(const void** data, size_t& width, size_t& height, int& color_type, int& alpha_type)
462 {
463     ArkWebImageColorType enum_color_type = ArkWebImageColorType::COLOR_TYPE_UNKNOWN;
464     ArkWebImageAlphaType enum_alpha_type = ArkWebImageAlphaType::ALPHA_TYPE_UNKNOWN;
465     bool result = nweb_nweb_->GetFavicon(data, width, height, enum_color_type, enum_alpha_type);
466     color_type = static_cast<int>(enum_color_type);
467     alpha_type = static_cast<int>(enum_alpha_type);
468     return result;
469 }
470 
PutNetworkAvailable(bool available)471 void ArkWebNWebImpl::PutNetworkAvailable(bool available)
472 {
473     nweb_nweb_->PutNetworkAvailable(available);
474 }
475 
HasImages(ArkWebRefPtr<ArkWebBoolValueCallback> callback)476 void ArkWebNWebImpl::HasImages(ArkWebRefPtr<ArkWebBoolValueCallback> callback)
477 {
478     if (CHECK_REF_PTR_IS_NULL(callback)) {
479         nweb_nweb_->HasImages(nullptr);
480         return;
481     }
482 
483     nweb_nweb_->HasImages(std::make_shared<ArkWebBoolValueCallbackWrapper>(callback));
484 }
485 
RemoveCache(bool include_disk_files)486 void ArkWebNWebImpl::RemoveCache(bool include_disk_files)
487 {
488     nweb_nweb_->RemoveCache(include_disk_files);
489 }
490 
GetHistoryList()491 ArkWebRefPtr<ArkWebHistoryList> ArkWebNWebImpl::GetHistoryList()
492 {
493     std::shared_ptr<OHOS::NWeb::NWebHistoryList> nweb_history_list = nweb_nweb_->GetHistoryList();
494     if (CHECK_SHARED_PTR_IS_NULL(nweb_history_list)) {
495         return nullptr;
496     }
497 
498     return new ArkWebHistoryListImpl(nweb_history_list);
499 }
500 
PutReleaseSurfaceCallback(ArkWebRefPtr<ArkWebReleaseSurfaceCallback> release_surface_listener)501 void ArkWebNWebImpl::PutReleaseSurfaceCallback(ArkWebRefPtr<ArkWebReleaseSurfaceCallback> release_surface_listener)
502 {
503     if (CHECK_REF_PTR_IS_NULL(release_surface_listener)) {
504         nweb_nweb_->PutReleaseSurfaceCallback(nullptr);
505         return;
506     }
507 
508     nweb_nweb_->PutReleaseSurfaceCallback(
509         std::make_shared<ArkWebReleaseSurfaceCallbackWrapper>(release_surface_listener));
510 }
511 
SerializeWebState()512 ArkWebUint8Vector ArkWebNWebImpl::SerializeWebState()
513 {
514     return ArkWebBasicVectorClassToStruct<uint8_t, ArkWebUint8Vector>(nweb_nweb_->SerializeWebState());
515 }
516 
RestoreWebState(const ArkWebUint8Vector & state)517 bool ArkWebNWebImpl::RestoreWebState(const ArkWebUint8Vector& state)
518 {
519     return nweb_nweb_->RestoreWebState(ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(state));
520 }
521 
PageUp(bool top)522 void ArkWebNWebImpl::PageUp(bool top)
523 {
524     nweb_nweb_->PageUp(top);
525 }
526 
PageDown(bool bottom)527 void ArkWebNWebImpl::PageDown(bool bottom)
528 {
529     nweb_nweb_->PageDown(bottom);
530 }
531 
ScrollTo(float x,float y)532 void ArkWebNWebImpl::ScrollTo(float x, float y)
533 {
534     nweb_nweb_->ScrollTo(x, y);
535 }
536 
ScrollBy(float delta_x,float delta_y)537 void ArkWebNWebImpl::ScrollBy(float delta_x, float delta_y)
538 {
539     nweb_nweb_->ScrollBy(delta_x, delta_y);
540 }
541 
SlideScroll(float vx,float vy)542 void ArkWebNWebImpl::SlideScroll(float vx, float vy)
543 {
544     nweb_nweb_->SlideScroll(vx, vy);
545 }
546 
GetCertChainDerData(ArkWebStringVector & cert_chain_data,bool is_single_cert)547 bool ArkWebNWebImpl::GetCertChainDerData(ArkWebStringVector& cert_chain_data, bool is_single_cert)
548 {
549     std::vector<std::string> cert_chain_data_vector;
550     bool result = nweb_nweb_->GetCertChainDerData(cert_chain_data_vector, is_single_cert);
551     cert_chain_data = ArkWebStringVectorClassToStruct(cert_chain_data_vector);
552     return result;
553 }
554 
SetScreenOffSet(double x,double y)555 void ArkWebNWebImpl::SetScreenOffSet(double x, double y)
556 {
557     nweb_nweb_->SetScreenOffSet(x, y);
558 }
559 
SetAudioMuted(bool muted)560 void ArkWebNWebImpl::SetAudioMuted(bool muted)
561 {
562     nweb_nweb_->SetAudioMuted(muted);
563 }
564 
SetShouldFrameSubmissionBeforeDraw(bool should)565 void ArkWebNWebImpl::SetShouldFrameSubmissionBeforeDraw(bool should)
566 {
567     nweb_nweb_->SetShouldFrameSubmissionBeforeDraw(should);
568 }
569 
NotifyPopupWindowResult(bool result)570 void ArkWebNWebImpl::NotifyPopupWindowResult(bool result)
571 {
572     nweb_nweb_->NotifyPopupWindowResult(result);
573 }
574 
SetAudioResumeInterval(int32_t resume_interval)575 void ArkWebNWebImpl::SetAudioResumeInterval(int32_t resume_interval)
576 {
577     nweb_nweb_->SetAudioResumeInterval(resume_interval);
578 }
579 
SetAudioExclusive(bool audio_exclusive)580 void ArkWebNWebImpl::SetAudioExclusive(bool audio_exclusive)
581 {
582     nweb_nweb_->SetAudioExclusive(audio_exclusive);
583 }
584 
RegisterScreenLockFunction(int32_t window_id,ArkWebRefPtr<ArkWebScreenLockCallback> callback)585 void ArkWebNWebImpl::RegisterScreenLockFunction(int32_t window_id, ArkWebRefPtr<ArkWebScreenLockCallback> callback)
586 {
587     if (CHECK_REF_PTR_IS_NULL(callback)) {
588         nweb_nweb_->RegisterScreenLockFunction(window_id, nullptr);
589         return;
590     }
591 
592     nweb_nweb_->RegisterScreenLockFunction(window_id, std::make_shared<ArkWebScreenLockCallbackWrapper>(callback));
593 }
594 
UnRegisterScreenLockFunction(int32_t window_id)595 void ArkWebNWebImpl::UnRegisterScreenLockFunction(int32_t window_id)
596 {
597     nweb_nweb_->UnRegisterScreenLockFunction(window_id);
598 }
599 
NotifyMemoryLevel(int32_t level)600 void ArkWebNWebImpl::NotifyMemoryLevel(int32_t level)
601 {
602     nweb_nweb_->NotifyMemoryLevel(level);
603 }
604 
OnWebviewHide()605 void ArkWebNWebImpl::OnWebviewHide()
606 {
607     nweb_nweb_->OnWebviewHide();
608 }
609 
OnWebviewShow()610 void ArkWebNWebImpl::OnWebviewShow()
611 {
612     nweb_nweb_->OnWebviewShow();
613 }
614 
GetOrCreateDragData()615 ArkWebRefPtr<ArkWebDragData> ArkWebNWebImpl::GetOrCreateDragData()
616 {
617     std::shared_ptr<OHOS::NWeb::NWebDragData> nweb_drag_data = nweb_nweb_->GetOrCreateDragData();
618     if (CHECK_SHARED_PTR_IS_NULL(nweb_drag_data)) {
619         return nullptr;
620     }
621 
622     return new ArkWebDragDataImpl(nweb_drag_data);
623 }
624 
PrefetchPage(const ArkWebString & url,const ArkWebStringMap & additional_http_headers)625 void ArkWebNWebImpl::PrefetchPage(const ArkWebString& url, const ArkWebStringMap& additional_http_headers)
626 {
627     nweb_nweb_->PrefetchPage(ArkWebStringStructToClass(url), ArkWebStringMapStructToClass(additional_http_headers));
628 }
629 
SetWindowId(uint32_t window_id)630 void ArkWebNWebImpl::SetWindowId(uint32_t window_id)
631 {
632     nweb_nweb_->SetWindowId(window_id);
633 }
634 
OnOccluded()635 void ArkWebNWebImpl::OnOccluded()
636 {
637     nweb_nweb_->OnOccluded();
638 }
639 
OnUnoccluded()640 void ArkWebNWebImpl::OnUnoccluded()
641 {
642     nweb_nweb_->OnUnoccluded();
643 }
644 
SetToken(void * token)645 void ArkWebNWebImpl::SetToken(void* token)
646 {
647     nweb_nweb_->SetToken(token);
648 }
649 
SetNestedScrollMode(const int32_t & nested_scroll_mode)650 void ArkWebNWebImpl::SetNestedScrollMode(const int32_t& nested_scroll_mode)
651 {
652     nweb_nweb_->SetNestedScrollMode(static_cast<ArkWebNestedScrollMode>(nested_scroll_mode));
653 }
654 
SetEnableLowerFrameRate(bool enabled)655 void ArkWebNWebImpl::SetEnableLowerFrameRate(bool enabled)
656 {
657     nweb_nweb_->SetEnableLowerFrameRate(enabled);
658 }
659 
SetVirtualKeyBoardArg(int32_t width,int32_t height,double keyboard)660 void ArkWebNWebImpl::SetVirtualKeyBoardArg(int32_t width, int32_t height, double keyboard)
661 {
662     nweb_nweb_->SetVirtualKeyBoardArg(width, height, keyboard);
663 }
664 
ShouldVirtualKeyboardOverlay()665 bool ArkWebNWebImpl::ShouldVirtualKeyboardOverlay()
666 {
667     return nweb_nweb_->ShouldVirtualKeyboardOverlay();
668 }
669 
SetDrawRect(int32_t x,int32_t y,int32_t width,int32_t height)670 void ArkWebNWebImpl::SetDrawRect(int32_t x, int32_t y, int32_t width, int32_t height)
671 {
672     nweb_nweb_->SetDrawRect(x, y, width, height);
673 }
674 
SetDrawMode(int32_t mode)675 void ArkWebNWebImpl::SetDrawMode(int32_t mode)
676 {
677     nweb_nweb_->SetDrawMode(mode);
678 }
679 
CreateWebPrintDocumentAdapter(const ArkWebString & job_name)680 void* ArkWebNWebImpl::CreateWebPrintDocumentAdapter(const ArkWebString& job_name)
681 {
682     return nweb_nweb_->CreateWebPrintDocumentAdapter(ArkWebStringStructToClass(job_name));
683 }
684 
CreateWebPrintDocumentAdapterV2(const ArkWebString & job_name)685 ArkWebRefPtr<ArkWebPrintDocumentAdapterAdapter> ArkWebNWebImpl::CreateWebPrintDocumentAdapterV2(
686     const ArkWebString& job_name)
687 {
688     std::unique_ptr<OHOS::NWeb::NWebPrintDocumentAdapterAdapter> adapter =
689         nweb_nweb_->CreateWebPrintDocumentAdapterV2(ArkWebStringStructToClass(job_name));
690     if (CHECK_REF_PTR_IS_NULL(adapter)) {
691         return nullptr;
692     }
693 
694     return new ArkWebPrintDocumentAdapterAdapterImpl(std::move(adapter));
695 }
696 
PostUrl(const ArkWebString & url,const ArkWebCharVector & post_data)697 int ArkWebNWebImpl::PostUrl(const ArkWebString& url, const ArkWebCharVector& post_data)
698 {
699     return nweb_nweb_->PostUrl(
700         ArkWebStringStructToClass(url), ArkWebBasicVectorStructToClass<char, ArkWebCharVector>(post_data));
701 }
702 
JavaScriptOnDocumentStart(const ArkWebStringVectorMap & script_items)703 void ArkWebNWebImpl::JavaScriptOnDocumentStart(const ArkWebStringVectorMap& script_items)
704 {
705     nweb_nweb_->JavaScriptOnDocumentStart(ArkWebStringVectorMapStructToClass(script_items));
706 }
707 
JavaScriptOnDocumentStartByOrder(const ArkWebStringVectorMap & script_items,const ArkWebStringVector & script_items_by_order)708 void ArkWebNWebImpl::JavaScriptOnDocumentStartByOrder(const ArkWebStringVectorMap& script_items,
709     const ArkWebStringVector& script_items_by_order)
710 {
711     nweb_nweb_->JavaScriptOnDocumentStartByOrder(ArkWebStringVectorMapStructToClass(script_items),
712         ArkWebStringVectorStructToClass(script_items_by_order));
713 }
714 
JavaScriptOnDocumentEndByOrder(const ArkWebStringVectorMap & script_items,const ArkWebStringVector & script_items_by_order)715 void ArkWebNWebImpl::JavaScriptOnDocumentEndByOrder(const ArkWebStringVectorMap& script_items,
716     const ArkWebStringVector& script_items_by_order)
717 {
718     nweb_nweb_->JavaScriptOnDocumentEndByOrder(ArkWebStringVectorMapStructToClass(script_items),
719         ArkWebStringVectorStructToClass(script_items_by_order));
720 }
721 
JavaScriptOnHeadReadyByOrder(const ArkWebStringVectorMap & script_items,const ArkWebStringVector & script_items_by_order)722 void ArkWebNWebImpl::JavaScriptOnHeadReadyByOrder(const ArkWebStringVectorMap& script_items,
723     const ArkWebStringVector& script_items_by_order)
724 {
725     nweb_nweb_->JavaScriptOnHeadReadyByOrder(ArkWebStringVectorMapStructToClass(script_items),
726         ArkWebStringVectorStructToClass(script_items_by_order));
727 }
728 
ExecuteAction(int64_t accessibility_id,uint32_t action)729 void ArkWebNWebImpl::ExecuteAction(int64_t accessibility_id, uint32_t action)
730 {
731     nweb_nweb_->ExecuteAction(accessibility_id, action);
732 }
733 
GetFocusedAccessibilityNodeInfo(int64_t accessibility_id,bool is_accessibility_focus)734 ArkWebRefPtr<ArkWebAccessibilityNodeInfo> ArkWebNWebImpl::GetFocusedAccessibilityNodeInfo(
735     int64_t accessibility_id, bool is_accessibility_focus)
736 {
737     std::shared_ptr<OHOS::NWeb::NWebAccessibilityNodeInfo> nweb_accessibility_node_info =
738         nweb_nweb_->GetFocusedAccessibilityNodeInfo(accessibility_id, is_accessibility_focus);
739     if (CHECK_SHARED_PTR_IS_NULL(nweb_accessibility_node_info)) {
740         return nullptr;
741     }
742 
743     return new ArkWebAccessibilityNodeInfoImpl(nweb_accessibility_node_info);
744 }
745 
GetAccessibilityNodeInfoById(int64_t accessibility_id)746 ArkWebRefPtr<ArkWebAccessibilityNodeInfo> ArkWebNWebImpl::GetAccessibilityNodeInfoById(int64_t accessibility_id)
747 {
748     std::shared_ptr<OHOS::NWeb::NWebAccessibilityNodeInfo> nweb_accessibility_node_info =
749         nweb_nweb_->GetAccessibilityNodeInfoById(accessibility_id);
750     if (CHECK_SHARED_PTR_IS_NULL(nweb_accessibility_node_info)) {
751         return nullptr;
752     }
753 
754     return new ArkWebAccessibilityNodeInfoImpl(nweb_accessibility_node_info);
755 }
756 
GetAccessibilityNodeInfoByFocusMove(int64_t accessibility_id,int32_t direction)757 ArkWebRefPtr<ArkWebAccessibilityNodeInfo> ArkWebNWebImpl::GetAccessibilityNodeInfoByFocusMove(
758     int64_t accessibility_id, int32_t direction)
759 {
760     std::shared_ptr<OHOS::NWeb::NWebAccessibilityNodeInfo> nweb_accessibility_node_info =
761         nweb_nweb_->GetAccessibilityNodeInfoByFocusMove(accessibility_id, direction);
762     if (CHECK_SHARED_PTR_IS_NULL(nweb_accessibility_node_info)) {
763         return nullptr;
764     }
765 
766     return new ArkWebAccessibilityNodeInfoImpl(nweb_accessibility_node_info);
767 }
768 
SetAccessibilityState(bool state)769 void ArkWebNWebImpl::SetAccessibilityState(bool state)
770 {
771     nweb_nweb_->SetAccessibilityState(state);
772 }
773 
NeedSoftKeyboard()774 bool ArkWebNWebImpl::NeedSoftKeyboard()
775 {
776     return nweb_nweb_->NeedSoftKeyboard();
777 }
778 
Discard()779 bool ArkWebNWebImpl::Discard()
780 {
781     return nweb_nweb_->Discard();
782 }
783 
Restore()784 bool ArkWebNWebImpl::Restore()
785 {
786     return nweb_nweb_->Restore();
787 }
788 
GetSecurityLevel()789 int ArkWebNWebImpl::GetSecurityLevel()
790 {
791     return nweb_nweb_->GetSecurityLevel();
792 }
793 
CallH5Function(int32_t routingId,int32_t h5ObjectId,const ArkWebString & h5MethodName,const ArkWebValueVector & args)794 void ArkWebNWebImpl::CallH5Function(
795     int32_t routingId, int32_t h5ObjectId, const ArkWebString& h5MethodName, const ArkWebValueVector& args)
796 {
797     nweb_nweb_->CallH5Function(
798         routingId, h5ObjectId, ArkWebStringStructToClass(h5MethodName), ArkWebValueVectorStructToClass(args));
799 }
800 
IsIncognitoMode()801 bool ArkWebNWebImpl::IsIncognitoMode()
802 {
803     return nweb_nweb_->IsIncognitoMode();
804 }
805 
RegisterNativeArkJSFunction(const char * objName,const ArkWebJsProxyCallbackVector & callbacks)806 void ArkWebNWebImpl::RegisterNativeArkJSFunction(const char* objName, const ArkWebJsProxyCallbackVector& callbacks)
807 {
808     nweb_nweb_->RegisterNativeArkJSFunction(objName, ArkWebJsProxyCallbackVectorStructToClass(callbacks));
809 }
810 
UnRegisterNativeArkJSFunction(const char * objName)811 void ArkWebNWebImpl::UnRegisterNativeArkJSFunction(const char* objName)
812 {
813     nweb_nweb_->UnRegisterNativeArkJSFunction(objName);
814 }
815 
RegisterNativeValideCallback(const char * webName,const NativeArkWebOnValidCallback callback)816 void ArkWebNWebImpl::RegisterNativeValideCallback(const char* webName, const NativeArkWebOnValidCallback callback)
817 {
818     nweb_nweb_->RegisterNativeValideCallback(webName, callback);
819 }
820 
RegisterNativeDestroyCallback(const char * webName,const NativeArkWebOnValidCallback callback)821 void ArkWebNWebImpl::RegisterNativeDestroyCallback(const char* webName, const NativeArkWebOnValidCallback callback)
822 {
823     nweb_nweb_->RegisterNativeDestroyCallback(webName, callback);
824 }
825 
JavaScriptOnDocumentEnd(const ArkWebStringVectorMap & script_items)826 void ArkWebNWebImpl::JavaScriptOnDocumentEnd(const ArkWebStringVectorMap& script_items)
827 {
828     nweb_nweb_->JavaScriptOnDocumentEnd(ArkWebStringVectorMapStructToClass(script_items));
829 }
830 
EnableSafeBrowsing(bool enable)831 void ArkWebNWebImpl::EnableSafeBrowsing(bool enable)
832 {
833     nweb_nweb_->EnableSafeBrowsing(enable);
834 }
835 
IsSafeBrowsingEnabled()836 bool ArkWebNWebImpl::IsSafeBrowsingEnabled()
837 {
838     return nweb_nweb_->IsSafeBrowsingEnabled();
839 }
840 
SetPrintBackground(bool enable)841 void ArkWebNWebImpl::SetPrintBackground(bool enable)
842 {
843     nweb_nweb_->SetPrintBackground(enable);
844 }
845 
GetPrintBackground()846 bool ArkWebNWebImpl::GetPrintBackground()
847 {
848     return nweb_nweb_->GetPrintBackground();
849 }
850 
CloseAllMediaPresentations()851 void ArkWebNWebImpl::CloseAllMediaPresentations()
852 {
853     nweb_nweb_->CloseAllMediaPresentations();
854 }
855 
StopAllMedia()856 void ArkWebNWebImpl::StopAllMedia()
857 {
858     nweb_nweb_->StopAllMedia();
859 }
860 
ResumeAllMedia()861 void ArkWebNWebImpl::ResumeAllMedia()
862 {
863     nweb_nweb_->ResumeAllMedia();
864 }
865 
PauseAllMedia()866 void ArkWebNWebImpl::PauseAllMedia()
867 {
868     nweb_nweb_->PauseAllMedia();
869 }
870 
GetMediaPlaybackState()871 int ArkWebNWebImpl::GetMediaPlaybackState()
872 {
873     return nweb_nweb_->GetMediaPlaybackState();
874 }
875 
GetLastJavascriptProxyCallingFrameUrl()876 ArkWebString ArkWebNWebImpl::GetLastJavascriptProxyCallingFrameUrl()
877 {
878     return ArkWebStringClassToStruct(nweb_nweb_->GetLastJavascriptProxyCallingFrameUrl());
879 }
880 
EnableIntelligentTrackingPrevention(bool enable)881 void ArkWebNWebImpl::EnableIntelligentTrackingPrevention(bool enable)
882 {
883     nweb_nweb_->EnableIntelligentTrackingPrevention(enable);
884 }
885 
IsIntelligentTrackingPreventionEnabled()886 bool ArkWebNWebImpl::IsIntelligentTrackingPreventionEnabled()
887 {
888     return nweb_nweb_->IsIntelligentTrackingPreventionEnabled();
889 }
890 
StartCamera()891 void ArkWebNWebImpl::StartCamera()
892 {
893     nweb_nweb_->StartCamera();
894 }
895 
StopCamera()896 void ArkWebNWebImpl::StopCamera()
897 {
898     nweb_nweb_->StopCamera();
899 }
900 
CloseCamera()901 void ArkWebNWebImpl::CloseCamera()
902 {
903     nweb_nweb_->CloseCamera();
904 }
905 
GetPendingSizeStatus()906 bool ArkWebNWebImpl::GetPendingSizeStatus()
907 {
908     return nweb_nweb_->GetPendingSizeStatus();
909 }
910 
ScrollByRefScreen(float delta_x,float delta_y,float vx,float vy)911 void ArkWebNWebImpl::ScrollByRefScreen(float delta_x, float delta_y, float vx, float vy)
912 {
913     nweb_nweb_->ScrollByRefScreen(delta_x, delta_y, vx, vy);
914 }
915 
ExecuteJavaScriptExt(const int fd,const size_t scriptLength,ArkWebRefPtr<ArkWebMessageValueCallback> callback,bool extention)916 void ArkWebNWebImpl::ExecuteJavaScriptExt(
917     const int fd, const size_t scriptLength, ArkWebRefPtr<ArkWebMessageValueCallback> callback, bool extention)
918 {
919     if (CHECK_REF_PTR_IS_NULL(callback)) {
920         nweb_nweb_->ExecuteJavaScriptExt(fd, scriptLength, nullptr, extention);
921         return;
922     }
923 
924     nweb_nweb_->ExecuteJavaScriptExt(
925         fd, scriptLength, std::make_shared<ArkWebMessageValueCallbackWrapper>(callback), extention);
926 }
927 
OnRenderToBackground()928 void ArkWebNWebImpl::OnRenderToBackground()
929 {
930     nweb_nweb_->OnRenderToBackground();
931 }
932 
OnRenderToForeground()933 void ArkWebNWebImpl::OnRenderToForeground()
934 {
935     nweb_nweb_->OnRenderToForeground();
936 }
937 
OnOnlineRenderToForeground()938 void ArkWebNWebImpl::OnOnlineRenderToForeground()
939 {
940     nweb_nweb_->OnOnlineRenderToForeground();
941 }
942 
PrecompileJavaScript(const ArkWebString & url,const ArkWebString & script,ArkWebRefPtr<ArkWebCacheOptions> & cacheOptions,ArkWebRefPtr<ArkWebMessageValueCallback> callback)943 void ArkWebNWebImpl::PrecompileJavaScript(const ArkWebString& url, const ArkWebString& script,
944     ArkWebRefPtr<ArkWebCacheOptions>& cacheOptions, ArkWebRefPtr<ArkWebMessageValueCallback> callback)
945 {
946     std::shared_ptr<OHOS::NWeb::CacheOptions> options = std::make_shared<ArkWebCacheOptionsWrapper>(cacheOptions);
947     nweb_nweb_->PrecompileJavaScript(ArkWebStringStructToClass(url), ArkWebStringStructToClass(script), options,
948         std::make_shared<ArkWebMessageValueCallbackWrapper>(callback));
949 }
950 
OnCreateNativeMediaPlayer(ArkWebRefPtr<ArkWebCreateNativeMediaPlayerCallback> callback)951 void ArkWebNWebImpl::OnCreateNativeMediaPlayer(ArkWebRefPtr<ArkWebCreateNativeMediaPlayerCallback> callback)
952 {
953     if (CHECK_REF_PTR_IS_NULL(callback)) {
954         nweb_nweb_->OnCreateNativeMediaPlayer(nullptr);
955         return;
956     }
957 
958     nweb_nweb_->OnCreateNativeMediaPlayer(std::make_shared<ArkWebCreateNativeMediaPlayerCallbackWrapper>(callback));
959 }
960 
DragResize(uint32_t width,uint32_t height,uint32_t pre_height,uint32_t pre_width)961 void ArkWebNWebImpl::DragResize(uint32_t width, uint32_t height, uint32_t pre_height, uint32_t pre_width)
962 {
963     nweb_nweb_->DragResize(width, height, pre_height, pre_width);
964 }
965 
OnTouchCancelById(int32_t id,double x,double y,bool from_overlay)966 void ArkWebNWebImpl::OnTouchCancelById(int32_t id, double x, double y, bool from_overlay)
967 {
968     nweb_nweb_->OnTouchCancelById(id, x, y, from_overlay);
969 }
970 
ScaleGestureChange(double scale,double centerX,double centerY)971 int ArkWebNWebImpl::ScaleGestureChange(double scale, double centerX, double centerY)
972 {
973     return nweb_nweb_->ScaleGestureChange(scale, centerX, centerY);
974 }
975 
InjectOfflineResource(const ArkWebString & url,const ArkWebString & origin,const ArkWebUint8Vector & resource,const ArkWebStringMap & responseHeaders,const int type)976 void ArkWebNWebImpl::InjectOfflineResource(const ArkWebString& url, const ArkWebString& origin,
977     const ArkWebUint8Vector& resource, const ArkWebStringMap& responseHeaders, const int type)
978 {
979     nweb_nweb_->InjectOfflineResource(ArkWebStringStructToClass(url), ArkWebStringStructToClass(origin),
980         ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(resource),
981         ArkWebStringMapStructToClass(responseHeaders), type);
982 }
983 
TerminateRenderProcess()984 bool ArkWebNWebImpl::TerminateRenderProcess()
985 {
986     return nweb_nweb_->TerminateRenderProcess();
987 }
988 
SuggestionSelected(int32_t index)989 void ArkWebNWebImpl::SuggestionSelected(int32_t index)
990 {
991     nweb_nweb_->SuggestionSelected(index);
992 }
993 
SendTouchpadFlingEvent(double x,double y,double vx,double vy)994 void ArkWebNWebImpl::SendTouchpadFlingEvent(double x, double y, double vx, double vy)
995 {
996     nweb_nweb_->SendTouchpadFlingEvent(x, y, vx, vy);
997 }
998 
RegisterArkJSfunction(const ArkWebString & object_name,const ArkWebStringVector & method_list,const ArkWebStringVector & async_method_list,const int32_t object_id)999 void ArkWebNWebImpl::RegisterArkJSfunction(const ArkWebString& object_name, const ArkWebStringVector& method_list,
1000     const ArkWebStringVector& async_method_list, const int32_t object_id)
1001 {
1002     nweb_nweb_->RegisterArkJSfunction(ArkWebStringStructToClass(object_name),
1003         ArkWebStringVectorStructToClass(method_list), ArkWebStringVectorStructToClass(async_method_list), object_id);
1004 }
1005 
SetFitContentMode(int32_t mode)1006 void ArkWebNWebImpl::SetFitContentMode(int32_t mode)
1007 {
1008     nweb_nweb_->SetFitContentMode(mode);
1009 }
1010 
GetSelectInfo()1011 ArkWebString ArkWebNWebImpl::GetSelectInfo()
1012 {
1013     return ArkWebStringClassToStruct(nweb_nweb_->GetSelectInfo());
1014 }
1015 
OnSafeInsetsChange(int left,int top,int right,int bottom)1016 void ArkWebNWebImpl::OnSafeInsetsChange(int left, int top, int right, int bottom)
1017 {
1018     nweb_nweb_->OnSafeInsetsChange(left, top, right, bottom);
1019 }
1020 
OnTextSelected()1021 void ArkWebNWebImpl::OnTextSelected()
1022 {
1023     nweb_nweb_->OnTextSelected();
1024 }
1025 
WebSendKeyEvent(int32_t key_code,int32_t key_action,const ArkWebInt32Vector & pressedCodes)1026 bool ArkWebNWebImpl::WebSendKeyEvent(int32_t key_code, int32_t key_action,
1027                                      const ArkWebInt32Vector& pressedCodes)
1028 {
1029     return nweb_nweb_->WebSendKeyEvent(key_code, key_action,
1030         ArkWebBasicVectorStructToClass<int32_t, ArkWebInt32Vector>(pressedCodes));
1031 }
1032 
OnConfigurationUpdated(ArkWebRefPtr<ArkWebSystemConfiguration> configuration)1033 void ArkWebNWebImpl::OnConfigurationUpdated(
1034     ArkWebRefPtr<ArkWebSystemConfiguration> configuration)
1035 {
1036     if (CHECK_REF_PTR_IS_NULL(configuration)) {
1037         nweb_nweb_->OnConfigurationUpdated(nullptr);
1038         return;
1039     }
1040     nweb_nweb_->OnConfigurationUpdated(
1041         std::make_shared<ArkWebSystemConfigurationWrapper>(configuration));
1042 }
EnableAdsBlock(bool enable)1043 void ArkWebNWebImpl::EnableAdsBlock(bool enable) {
1044     nweb_nweb_->EnableAdsBlock(enable);
1045 }
1046 
IsAdsBlockEnabled()1047 bool ArkWebNWebImpl::IsAdsBlockEnabled() {
1048     return nweb_nweb_->IsAdsBlockEnabled();
1049 }
1050 
IsAdsBlockEnabledForCurPage()1051 bool ArkWebNWebImpl::IsAdsBlockEnabledForCurPage() {
1052     return nweb_nweb_->IsAdsBlockEnabledForCurPage();
1053 }
1054 
NotifyForNextTouchEvent()1055 void ArkWebNWebImpl::NotifyForNextTouchEvent()
1056 {
1057     nweb_nweb_->NotifyForNextTouchEvent();
1058 }
1059 
SetUrlTrustList(const ArkWebString & urlTrustList)1060 int ArkWebNWebImpl::SetUrlTrustList(const ArkWebString& urlTrustList)
1061 {
1062     return nweb_nweb_->SetUrlTrustList(ArkWebStringStructToClass(urlTrustList));
1063 }
1064 
SetUrlTrustListWithErrMsg(const ArkWebString & urlTrustList,ArkWebString & detailErrMsg)1065 int ArkWebNWebImpl::SetUrlTrustListWithErrMsg(const ArkWebString& urlTrustList, ArkWebString& detailErrMsg)
1066 {
1067     std::string detailMsg;
1068     int res = nweb_nweb_->SetUrlTrustListWithErrMsg(ArkWebStringStructToClass(urlTrustList),
1069         detailMsg);
1070     detailErrMsg = ArkWebStringClassToStruct(detailMsg);
1071     return res;
1072 }
1073 
PutSpanstringConvertHtmlCallback(ArkWebRefPtr<ArkWebSpanstringConvertHtmlCallback> callback)1074 void ArkWebNWebImpl::PutSpanstringConvertHtmlCallback(
1075     ArkWebRefPtr<ArkWebSpanstringConvertHtmlCallback> callback) {
1076     if (CHECK_REF_PTR_IS_NULL(callback)) {
1077         nweb_nweb_->PutSpanstringConvertHtmlCallback(nullptr);
1078         return;
1079     }
1080     nweb_nweb_->PutSpanstringConvertHtmlCallback(
1081         std::make_shared<ArkWebSpanstringConvertHtmlCallbackWrapper>(callback));
1082 }
1083 
WebPageSnapshot(const char * id,int type,int width,int height,const WebSnapshotCallback callback)1084 bool ArkWebNWebImpl::WebPageSnapshot(const char* id,
1085                                      int type,
1086                                      int width,
1087                                      int height,
1088                                      const WebSnapshotCallback callback) {
1089     return nweb_nweb_->WebPageSnapshot(id, static_cast<ArkPixelUnit>(type), width,
1090                                        height, callback);
1091 }
1092 
SetPathAllowingUniversalAccess(const ArkWebStringVector & dirs,const ArkWebStringVector & moduleName,ArkWebString & errorPath)1093 void ArkWebNWebImpl::SetPathAllowingUniversalAccess(const ArkWebStringVector& dirs,
1094                                                     const ArkWebStringVector& moduleName,
1095                                                     ArkWebString& errorPath)
1096 {
1097     std::string errPath;
1098     nweb_nweb_->SetPathAllowingUniversalAccess(ArkWebStringVectorStructToClass(dirs),
1099         ArkWebStringVectorStructToClass(moduleName), errPath);
1100     errorPath = ArkWebStringClassToStruct(errPath);
1101 }
1102 
PerformAction(int64_t accessibility_id,uint32_t action,const ArkWebStringMap & actionArguments)1103 void ArkWebNWebImpl::PerformAction(int64_t accessibility_id, uint32_t action,
1104     const ArkWebStringMap& actionArguments)
1105 {
1106     nweb_nweb_->PerformAction(accessibility_id, action, ArkWebStringMapStructToClass(actionArguments));
1107 }
1108 
ScrollToWithAnime(float x,float y,int32_t duration)1109 void ArkWebNWebImpl::ScrollToWithAnime(float x, float y, int32_t duration)
1110 {
1111     nweb_nweb_->ScrollToWithAnime(x, y, duration);
1112 }
1113 
ScrollByWithAnime(float delta_x,float delta_y,int32_t duration)1114 void ArkWebNWebImpl::ScrollByWithAnime(float delta_x, float delta_y, int32_t duration)
1115 {
1116     nweb_nweb_->ScrollByWithAnime(delta_x, delta_y, duration);
1117 }
1118 
WebSendMouseWheelEvent(double x,double y,double delta_x,double delta_y,const ArkWebInt32Vector & pressedCodes)1119 void ArkWebNWebImpl::WebSendMouseWheelEvent(double x,
1120                                             double y,
1121                                             double delta_x,
1122                                             double delta_y,
1123                                             const ArkWebInt32Vector& pressedCodes)
1124 {
1125     nweb_nweb_->WebSendMouseWheelEvent(x, y, delta_x, delta_y,
1126         ArkWebBasicVectorStructToClass<int32_t, ArkWebInt32Vector>(pressedCodes));
1127 }
1128 
WebSendTouchpadFlingEvent(double x,double y,double vx,double vy,const ArkWebInt32Vector & pressedCodes)1129 void ArkWebNWebImpl::WebSendTouchpadFlingEvent(double x,
1130                                                double y,
1131                                                double vx,
1132                                                double vy,
1133                                                const ArkWebInt32Vector& pressedCodes)
1134 {
1135     nweb_nweb_->WebSendTouchpadFlingEvent(x, y, vx, vy,
1136         ArkWebBasicVectorStructToClass<int32_t, ArkWebInt32Vector>(pressedCodes));
1137 }
1138 
SendAccessibilityHoverEvent(int32_t x,int32_t y)1139 void ArkWebNWebImpl::SendAccessibilityHoverEvent(int32_t x, int32_t y)
1140 {
1141     nweb_nweb_->SendAccessibilityHoverEvent(x, y);
1142 }
1143 
RegisterArkJSfunction(const ArkWebString & object_name,const ArkWebStringVector & method_list,const ArkWebStringVector & async_method_list,const int32_t object_id,const ArkWebString & permission)1144 void ArkWebNWebImpl::RegisterArkJSfunction(const ArkWebString& object_name, const ArkWebStringVector& method_list,
1145     const ArkWebStringVector& async_method_list, const int32_t object_id, const ArkWebString& permission)
1146 {
1147     nweb_nweb_->RegisterArkJSfunction(ArkWebStringStructToClass(object_name),
1148         ArkWebStringVectorStructToClass(method_list), ArkWebStringVectorStructToClass(async_method_list), object_id,
1149         ArkWebStringStructToClass(permission));
1150 }
1151 
ResizeVisibleViewport(uint32_t width,uint32_t height,bool isKeyboard)1152 void ArkWebNWebImpl::ResizeVisibleViewport(uint32_t width, uint32_t height, bool isKeyboard)
1153 {
1154     nweb_nweb_->ResizeVisibleViewport(width, height, isKeyboard);
1155 }
1156 
SetBackForwardCacheOptions(int32_t size,int32_t timeToLive)1157 void ArkWebNWebImpl::SetBackForwardCacheOptions(int32_t size, int32_t timeToLive)
1158 {
1159     nweb_nweb_->SetBackForwardCacheOptions(size, timeToLive);
1160 }
1161 
SetAutofillCallback(ArkWebRefPtr<ArkWebMessageValueCallback> callback)1162 void ArkWebNWebImpl::SetAutofillCallback(ArkWebRefPtr<ArkWebMessageValueCallback> callback)
1163 {
1164     if (CHECK_REF_PTR_IS_NULL(callback)) {
1165         nweb_nweb_->SetAutofillCallback(nullptr);
1166         return;
1167     }
1168 
1169     nweb_nweb_->SetAutofillCallback(std::make_shared<ArkWebMessageValueCallbackWrapper>(callback));
1170 }
1171 
FillAutofillData(const ArkWebMessage & data)1172 void ArkWebNWebImpl::FillAutofillData(const ArkWebMessage& data)
1173 {
1174     nweb_nweb_->FillAutofillData(data.nweb_message);
1175 }
1176 
OnAutofillCancel(const ArkWebString & fillContent)1177 void ArkWebNWebImpl::OnAutofillCancel(const ArkWebString& fillContent)
1178 {
1179     nweb_nweb_->OnAutofillCancel(ArkWebStringStructToClass(fillContent));
1180 }
1181 
GetScrollOffset(float * offset_x,float * offset_y)1182 void ArkWebNWebImpl::GetScrollOffset(float* offset_x, float* offset_y)
1183 {
1184     nweb_nweb_->GetScrollOffset(offset_x, offset_y);
1185 }
1186 
ExecuteCreatePDFExt(ArkWebRefPtr<ArkWebPDFConfigArgs> pdfConfig,ArkWebRefPtr<ArkWebArrayBufferValueCallback> callback)1187 void ArkWebNWebImpl::ExecuteCreatePDFExt(
1188     ArkWebRefPtr<ArkWebPDFConfigArgs> pdfConfig, ArkWebRefPtr<ArkWebArrayBufferValueCallback> callback)
1189 {
1190     if (CHECK_REF_PTR_IS_NULL(callback)) {
1191         nweb_nweb_->ExecuteCreatePDFExt(
1192             std::make_shared<ArkWebPDFConfigArgsWrapper>(CHECK_REF_PTR_IS_NULL(pdfConfig) ? nullptr : pdfConfig),
1193             nullptr);
1194         return;
1195     }
1196 
1197     nweb_nweb_->ExecuteCreatePDFExt(
1198         std::make_shared<ArkWebPDFConfigArgsWrapper>(CHECK_REF_PTR_IS_NULL(pdfConfig) ? nullptr : pdfConfig),
1199         std::make_shared<ArkWebArrayBufferValueCallbackWrapper>(callback));
1200 }
1201 
ScrollByWithResult(float delta_x,float delta_y)1202 bool ArkWebNWebImpl::ScrollByWithResult(float delta_x, float delta_y)
1203 {
1204     return nweb_nweb_->ScrollByWithResult(delta_x, delta_y);
1205 }
1206 
SetPopupSurface(void * popupSurface)1207 void ArkWebNWebImpl::SetPopupSurface(void* popupSurface)
1208 {
1209     nweb_nweb_->SetPopupSurface(popupSurface);
1210 }
1211 
OnDestroyImageAnalyzerOverlay()1212 void ArkWebNWebImpl::OnDestroyImageAnalyzerOverlay()
1213 {
1214     nweb_nweb_->OnDestroyImageAnalyzerOverlay();
1215 }
1216 
WebSendMouseEvent(ArkWebRefPtr<ArkWebMouseEvent> mouseEvent)1217 void ArkWebNWebImpl::WebSendMouseEvent(ArkWebRefPtr<ArkWebMouseEvent> mouseEvent)
1218 {
1219     if (CHECK_REF_PTR_IS_NULL(mouseEvent)) {
1220         nweb_nweb_->WebSendMouseEvent(nullptr);
1221         return;
1222     }
1223 
1224     nweb_nweb_->WebSendMouseEvent(std::make_shared<ArkWebMouseEventWrapper>(mouseEvent));
1225 }
1226 
GetAccessibilityVisible(int64_t accessibility_id)1227 bool ArkWebNWebImpl::GetAccessibilityVisible(int64_t accessibility_id)
1228 {
1229     return nweb_nweb_->GetAccessibilityVisible(accessibility_id);
1230 }
1231 
SetTransformHint(uint32_t rotation)1232 void ArkWebNWebImpl::SetTransformHint(uint32_t rotation)
1233 {
1234     nweb_nweb_->SetTransformHint(rotation);
1235 }
1236 
WebComponentsBlur()1237 void ArkWebNWebImpl::WebComponentsBlur()
1238 {
1239     nweb_nweb_->WebComponentsBlur();
1240 }
1241 
DumpGpuInfo()1242 float ArkWebNWebImpl::DumpGpuInfo()
1243 {
1244     return nweb_nweb_->DumpGpuInfo();
1245 }
1246 
ScaleGestureChangeV2(int type,double scale,double originScale,double centerX,double centerY)1247 int ArkWebNWebImpl::ScaleGestureChangeV2(int type, double scale, double originScale, double centerX, double centerY)
1248 {
1249     return nweb_nweb_->ScaleGestureChangeV2(type, scale, originScale, centerX, centerY);
1250 }
1251 
SendKeyboardEvent(ArkWebRefPtr<ArkWebKeyboardEvent> keyboardEvent)1252 bool ArkWebNWebImpl::SendKeyboardEvent(ArkWebRefPtr<ArkWebKeyboardEvent> keyboardEvent)
1253 {
1254     if (CHECK_REF_PTR_IS_NULL(keyboardEvent)) {
1255         nweb_nweb_->SendKeyboardEvent(nullptr);
1256         return false;
1257     }
1258 
1259     return nweb_nweb_->SendKeyboardEvent(std::make_shared<ArkWebKeyboardEventWrapper>(keyboardEvent));
1260 }
1261 
PerformActionV2(int64_t accessibility_id,uint32_t action,const ArkWebStringMap & actionArguments)1262 bool ArkWebNWebImpl::PerformActionV2(int64_t accessibility_id, uint32_t action,
1263     const ArkWebStringMap& actionArguments)
1264 {
1265     return nweb_nweb_->PerformActionV2(accessibility_id, action, ArkWebStringMapStructToClass(actionArguments));
1266 }
1267 
IsActivePolicyDisable()1268 bool ArkWebNWebImpl::IsActivePolicyDisable()
1269 {
1270     return nweb_nweb_->IsActivePolicyDisable();
1271 }
1272 
PutOptimizeParserBudgetEnabled(bool enable)1273 void ArkWebNWebImpl::PutOptimizeParserBudgetEnabled(bool enable)
1274 {
1275     nweb_nweb_->PutOptimizeParserBudgetEnabled(enable);
1276 }
1277 
GetAccessibilityNodeRectById(int64_t accessibilityId,int32_t * width,int32_t * height,int32_t * offsetX,int32_t * offsetY)1278 bool ArkWebNWebImpl::GetAccessibilityNodeRectById(
1279     int64_t accessibilityId, int32_t* width, int32_t* height, int32_t* offsetX, int32_t* offsetY)
1280 {
1281     return nweb_nweb_->GetAccessibilityNodeRectById(accessibilityId, width, height, offsetX, offsetY);
1282 }
1283 
GetLastHitTestResult()1284 ArkWebRefPtr<ArkWebHitTestResult> ArkWebNWebImpl::GetLastHitTestResult()
1285 {
1286     std::shared_ptr<OHOS::NWeb::HitTestResult> nweb_last_hit_test_result = nweb_nweb_->GetLastHitTestResult();
1287     if (CHECK_SHARED_PTR_IS_NULL(nweb_last_hit_test_result)) {
1288         return nullptr;
1289     }
1290 
1291     return new ArkWebHitTestResultImpl(nweb_last_hit_test_result);
1292 }
1293 
GetCurrentLanguage()1294 ArkWebString ArkWebNWebImpl::GetCurrentLanguage()
1295 {
1296     return ArkWebStringClassToStruct(nweb_nweb_->GetCurrentLanguage());
1297 }
WebSendMouseWheelEventV2(double x,double y,double delta_x,double delta_y,const ArkWebInt32Vector & pressedCodes,int32_t source)1298 bool ArkWebNWebImpl::WebSendMouseWheelEventV2(
1299         double x, double y, double delta_x, double delta_y, const ArkWebInt32Vector &pressedCodes, int32_t source)
1300 {
1301     return nweb_nweb_->WebSendMouseWheelEventV2(
1302         x, y, delta_x, delta_y, ArkWebBasicVectorStructToClass<int32_t, ArkWebInt32Vector>(pressedCodes), source);
1303 }
1304 
IsNWebEx()1305 bool ArkWebNWebImpl::IsNWebEx()
1306 {
1307     return nweb_nweb_->IsNWebEx();
1308 }
1309 
SetEnableHalfFrameRate(bool enabled)1310 void ArkWebNWebImpl::SetEnableHalfFrameRate(bool enabled)
1311 {
1312     nweb_nweb_->SetEnableHalfFrameRate(enabled);
1313 }
1314 
MaximizeResize()1315 void ArkWebNWebImpl::MaximizeResize()
1316 {
1317     nweb_nweb_->MaximizeResize();
1318 }
1319 
OnDragAttach()1320 void ArkWebNWebImpl::OnDragAttach()
1321 {
1322     nweb_nweb_->OnDragAttach();
1323 }
1324 
SetFocusByPosition(float x,float y)1325 bool ArkWebNWebImpl::SetFocusByPosition(float x, float y)
1326 {
1327     return nweb_nweb_->SetFocusByPosition(x, y);
1328 }
1329 
SetSurfaceDensity(const double & density)1330 void ArkWebNWebImpl::SetSurfaceDensity(const double& density)
1331 {
1332     nweb_nweb_->SetSurfaceDensity(density);
1333 }
1334 
SetBorderRadiusFromWeb(double borderRadiusTopLeft,double borderRadiusTopRight,double borderRadiusBottomLeft,double borderRadiusBottomRight)1335 void ArkWebNWebImpl::SetBorderRadiusFromWeb(double borderRadiusTopLeft, double borderRadiusTopRight,
1336     double borderRadiusBottomLeft, double borderRadiusBottomRight)
1337 {
1338     nweb_nweb_->SetBorderRadiusFromWeb(
1339         borderRadiusTopLeft, borderRadiusTopRight, borderRadiusBottomLeft, borderRadiusBottomRight);
1340 }
1341 
SetNativeInnerWeb(bool isInnerWeb)1342 void ArkWebNWebImpl::SetNativeInnerWeb(bool isInnerWeb)
1343 {
1344     nweb_nweb_->SetNativeInnerWeb(isInnerWeb);
1345 }
1346 
SendAccessibilityHoverEventV2(int32_t x,int32_t y,bool isHoverEnter)1347 void ArkWebNWebImpl::SendAccessibilityHoverEventV2(int32_t x, int32_t y, bool isHoverEnter)
1348 {
1349     nweb_nweb_->SendAccessibilityHoverEventV2(x, y, isHoverEnter);
1350 }
1351 
OnBrowserForeground()1352 void ArkWebNWebImpl::OnBrowserForeground()
1353 {
1354     nweb_nweb_->OnBrowserForeground();
1355 }
1356 
OnBrowserBackground()1357 void ArkWebNWebImpl::OnBrowserBackground()
1358 {
1359     nweb_nweb_->OnBrowserBackground();
1360 }
1361 
RegisterNativeJavaScriptProxy(const ArkWebString & objName,const ArkWebStringVector & methodName,ArkWebRefPtr<ArkWebJsProxyMethod> data,bool isAsync,const ArkWebString & permission)1362 void ArkWebNWebImpl::RegisterNativeJavaScriptProxy(const ArkWebString& objName,
1363     const ArkWebStringVector& methodName, ArkWebRefPtr<ArkWebJsProxyMethod> data,
1364     bool isAsync, const ArkWebString& permission)
1365 {
1366     if (CHECK_REF_PTR_IS_NULL(data)) {
1367         nweb_nweb_->RegisterNativeJavaScriptProxy(ArkWebStringStructToClass(objName),
1368                                                   ArkWebStringVectorStructToClass(methodName),
1369                                                   nullptr,
1370                                                   isAsync,
1371                                                   ArkWebStringStructToClass(permission));
1372         return;
1373     }
1374     nweb_nweb_->RegisterNativeJavaScriptProxy(ArkWebStringStructToClass(objName),
1375                                               ArkWebStringVectorStructToClass(methodName),
1376                                               std::make_shared<ArkWebJsProxyMethodWrapper>(data),
1377                                               isAsync,
1378                                               ArkWebStringStructToClass(permission));
1379 }
1380 
SetFocusWindowId(uint32_t focus_window_id)1381 void ArkWebNWebImpl::SetFocusWindowId(uint32_t focus_window_id)
1382 {
1383     nweb_nweb_->SetFocusWindowId(focus_window_id);
1384 }
1385 
RunDataDetectorJS()1386 void ArkWebNWebImpl::RunDataDetectorJS()
1387 {
1388     nweb_nweb_->RunDataDetectorJS();
1389 }
1390 
SetDataDetectorEnable(bool enable)1391 void ArkWebNWebImpl::SetDataDetectorEnable(bool enable)
1392 {
1393     nweb_nweb_->SetDataDetectorEnable(enable);
1394 }
1395 
OnDataDetectorSelectText()1396 void ArkWebNWebImpl::OnDataDetectorSelectText()
1397 {
1398     nweb_nweb_->OnDataDetectorSelectText();
1399 }
1400 
OnDataDetectorCopy(const ArkWebStringVector & recordMix)1401 void ArkWebNWebImpl::OnDataDetectorCopy(const ArkWebStringVector& recordMix)
1402 {
1403     nweb_nweb_->OnDataDetectorCopy(ArkWebStringVectorStructToClass(recordMix));
1404 }
1405 
SetPipNativeWindow(int delegate_id,int child_id,int frame_routing_id,void * window)1406 void ArkWebNWebImpl::SetPipNativeWindow(int delegate_id,
1407                                         int child_id,
1408                                         int frame_routing_id,
1409                                         void* window)
1410 {
1411     nweb_nweb_->SetPipNativeWindow(delegate_id, child_id,
1412                                    frame_routing_id, window);
1413 }
1414 
SendPipEvent(int delegate_id,int child_id,int frame_routing_id,int event)1415 void ArkWebNWebImpl::SendPipEvent(int delegate_id,
1416                                   int child_id,
1417                                   int frame_routing_id,
1418                                   int event)
1419 {
1420     nweb_nweb_->SendPipEvent(delegate_id, child_id,
1421                              frame_routing_id,event);
1422 }
1423 
SetBlanklessLoadingKey(const ArkWebString & key)1424 void ArkWebNWebImpl::SetBlanklessLoadingKey(const ArkWebString& key)
1425 {
1426     nweb_nweb_->SetBlanklessLoadingKey(ArkWebStringStructToClass(key));
1427 }
1428 
SetPrivacyStatus(bool isPrivate)1429 void ArkWebNWebImpl::SetPrivacyStatus(bool isPrivate)
1430 {
1431     nweb_nweb_->SetPrivacyStatus(isPrivate);
1432 }
1433 
GetSelectStartIndex()1434 int ArkWebNWebImpl::GetSelectStartIndex()
1435 {
1436     return nweb_nweb_->GetSelectStartIndex();
1437 }
1438 
GetSelectEndIndex()1439 int ArkWebNWebImpl::GetSelectEndIndex()
1440 {
1441     return nweb_nweb_->GetSelectEndIndex();
1442 }
1443 
GetAllTextInfo()1444 ArkWebString ArkWebNWebImpl::GetAllTextInfo()
1445 {
1446     return ArkWebStringClassToStruct(nweb_nweb_->GetAllTextInfo());
1447 }
1448 
SetAudioSessionType(int32_t audio_session_type)1449 void ArkWebNWebImpl::SetAudioSessionType(int32_t audio_session_type)
1450 {
1451     nweb_nweb_->SetAudioSessionType(audio_session_type);
1452 }
1453 
GetWebAccessibilityIdByHtmlElementId(const ArkWebString & htmlElementId)1454 int64_t ArkWebNWebImpl::GetWebAccessibilityIdByHtmlElementId(const ArkWebString& htmlElementId)
1455 {
1456     return nweb_nweb_->GetWebAccessibilityIdByHtmlElementId(ArkWebStringStructToClass(htmlElementId));
1457 }
1458 
GetBlanklessInfoWithKey(const ArkWebString & key,double * similarity,int32_t * loadingTime)1459 int32_t ArkWebNWebImpl::GetBlanklessInfoWithKey(const ArkWebString& key, double* similarity, int32_t* loadingTime)
1460 {
1461     return nweb_nweb_->GetBlanklessInfoWithKey(ArkWebStringStructToClass(key), similarity, loadingTime);
1462 }
1463 
SetBlanklessLoadingWithKey(const ArkWebString & key,bool isStart)1464 int32_t ArkWebNWebImpl::SetBlanklessLoadingWithKey(const ArkWebString& key, bool isStart)
1465 {
1466     return nweb_nweb_->SetBlanklessLoadingWithKey(ArkWebStringStructToClass(key), isStart);
1467 }
1468 
UpdateSingleHandleVisible(bool isVisible)1469 void ArkWebNWebImpl::UpdateSingleHandleVisible(bool isVisible)
1470 {
1471     nweb_nweb_->UpdateSingleHandleVisible(isVisible);
1472 }
1473 
SetTouchHandleExistState(bool touchHandleExist)1474 void ArkWebNWebImpl::SetTouchHandleExistState(bool touchHandleExist)
1475 {
1476     nweb_nweb_->SetTouchHandleExistState(touchHandleExist);
1477 }
1478 
AvoidVisibleViewportBottom(int32_t avoidHeight)1479 void ArkWebNWebImpl::AvoidVisibleViewportBottom(int32_t avoidHeight)
1480 {
1481     nweb_nweb_->AvoidVisibleViewportBottom(avoidHeight);
1482 }
1483 
GetVisibleViewportAvoidHeight()1484 int32_t ArkWebNWebImpl::GetVisibleViewportAvoidHeight()
1485 {
1486     return nweb_nweb_->GetVisibleViewportAvoidHeight();
1487 }
1488 
TriggerBlanklessForUrl(const ArkWebString & url)1489 bool ArkWebNWebImpl::TriggerBlanklessForUrl(const ArkWebString& url)
1490 {
1491     return nweb_nweb_->TriggerBlanklessForUrl(ArkWebStringStructToClass(url));
1492 }
1493 
SetVisibility(bool isVisible)1494 void ArkWebNWebImpl::SetVisibility(bool isVisible)
1495 {
1496     nweb_nweb_->SetVisibility(isVisible);
1497 }
1498 
SetViewportScaleState()1499 void ArkWebNWebImpl::SetViewportScaleState()
1500 {
1501     nweb_nweb_->SetViewportScaleState();
1502 }
1503 
GetPageOffset(float * offset_x,float * offset_y)1504 void ArkWebNWebImpl::GetPageOffset(float* offset_x, float* offset_y)
1505 {
1506     nweb_nweb_->GetPageOffset(offset_x, offset_y);
1507 }
1508 
SetErrorPageEnabled(bool enable)1509 void ArkWebNWebImpl::SetErrorPageEnabled(bool enable)
1510 {
1511     nweb_nweb_->SetErrorPageEnabled(enable);
1512 }
1513 
GetErrorPageEnabled()1514 bool ArkWebNWebImpl::GetErrorPageEnabled()
1515 {
1516     return nweb_nweb_->GetErrorPageEnabled();
1517 }
1518 
GetWebDestroyMode()1519 int32_t ArkWebNWebImpl::GetWebDestroyMode()
1520 {
1521     return static_cast<int32_t>(nweb_nweb_->GetWebDestroyMode());
1522 }
1523 
CallH5FunctionV2(int32_t routing_id,int32_t h5_object_id,const ArkWebString & h5_method_name,const ArkWebRomValueVector & args)1524 void ArkWebNWebImpl::CallH5FunctionV2(
1525     int32_t routing_id, int32_t h5_object_id, const ArkWebString& h5_method_name, const ArkWebRomValueVector& args)
1526 {
1527     nweb_nweb_->CallH5FunctionV2(
1528         routing_id, h5_object_id, ArkWebStringStructToClass(h5_method_name), ArkWebRomValueVectorStructToClass(args));
1529 }
1530 
PostPortMessageV2(const ArkWebString & portHandle,ArkWebRefPtr<ArkWebRomValue> data)1531 void ArkWebNWebImpl::PostPortMessageV2(const ArkWebString& portHandle, ArkWebRefPtr<ArkWebRomValue> data)
1532 {
1533     if (CHECK_REF_PTR_IS_NULL(data)) {
1534         nweb_nweb_->PostPortMessageV2(ArkWebStringStructToClass(portHandle), nullptr);
1535         return;
1536     }
1537 
1538     nweb_nweb_->PostPortMessageV2(ArkWebStringStructToClass(portHandle), std::make_shared<ArkWebRomValueWrapper>(data));
1539 }
1540 
FillAutofillDataV2(ArkWebRefPtr<ArkWebRomValue> data)1541 void ArkWebNWebImpl::FillAutofillDataV2(ArkWebRefPtr<ArkWebRomValue> data)
1542 {
1543     if (CHECK_REF_PTR_IS_NULL(data)) {
1544         nweb_nweb_->FillAutofillDataV2(nullptr);
1545         return;
1546     }
1547 
1548     nweb_nweb_->FillAutofillDataV2(std::make_shared<ArkWebRomValueWrapper>(data));
1549 }
1550 
1551 } // namespace OHOS::ArkWeb
1552