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