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