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