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