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_handler_impl.h"
17
18 #include "ohos_nweb/bridge/ark_web_access_request_wrapper.h"
19 #include "ohos_nweb/bridge/ark_web_app_link_callback_wrapper.h"
20 #include "ohos_nweb/bridge/ark_web_console_log_wrapper.h"
21 #include "ohos_nweb/bridge/ark_web_context_menu_callback_wrapper.h"
22 #include "ohos_nweb/bridge/ark_web_context_menu_params_wrapper.h"
23 #include "ohos_nweb/bridge/ark_web_controller_handler_wrapper.h"
24 #include "ohos_nweb/bridge/ark_web_cursor_info_wrapper.h"
25 #include "ohos_nweb/bridge/ark_web_custom_keyboard_handler_wrapper.h"
26 #include "ohos_nweb/bridge/ark_web_data_resubmission_callback_wrapper.h"
27 #include "ohos_nweb/bridge/ark_web_date_time_chooser_callback_wrapper.h"
28 #include "ohos_nweb/bridge/ark_web_date_time_chooser_wrapper.h"
29 #include "ohos_nweb/bridge/ark_web_drag_data_wrapper.h"
30 #include "ohos_nweb/bridge/ark_web_file_selector_params_wrapper.h"
31 #include "ohos_nweb/bridge/ark_web_first_meaningful_paint_details_wrapper.h"
32 #include "ohos_nweb/bridge/ark_web_full_screen_exit_handler_wrapper.h"
33 #include "ohos_nweb/bridge/ark_web_geo_location_callback_wrapper.h"
34 #include "ohos_nweb/bridge/ark_web_image_options_wrapper.h"
35 #include "ohos_nweb/bridge/ark_web_js_all_ssl_error_result_wrapper.h"
36 #include "ohos_nweb/bridge/ark_web_js_dialog_result_wrapper.h"
37 #include "ohos_nweb/bridge/ark_web_js_http_auth_result_wrapper.h"
38 #include "ohos_nweb/bridge/ark_web_js_ssl_error_result_wrapper.h"
39 #include "ohos_nweb/bridge/ark_web_js_ssl_select_cert_result_wrapper.h"
40 #include "ohos_nweb/bridge/ark_web_key_event_wrapper.h"
41 #include "ohos_nweb/bridge/ark_web_largest_contentful_paint_details_wrapper.h"
42 #include "ohos_nweb/bridge/ark_web_load_committed_details_wrapper.h"
43 #include "ohos_nweb/bridge/ark_web_native_embed_data_info_wrapper.h"
44 #include "ohos_nweb/bridge/ark_web_native_embed_touch_event_wrapper.h"
45 #include "ohos_nweb/bridge/ark_web_nweb_wrapper.h"
46 #include "ohos_nweb/bridge/ark_web_quick_menu_callback_wrapper.h"
47 #include "ohos_nweb/bridge/ark_web_quick_menu_params_wrapper.h"
48 #include "ohos_nweb/bridge/ark_web_screen_capture_access_request_wrapper.h"
49 #include "ohos_nweb/bridge/ark_web_select_popup_menu_callback_wrapper.h"
50 #include "ohos_nweb/bridge/ark_web_select_popup_menu_param_wrapper.h"
51 #include "ohos_nweb/bridge/ark_web_string_vector_value_callback_wrapper.h"
52 #include "ohos_nweb/bridge/ark_web_touch_handle_hot_zone_wrapper.h"
53 #include "ohos_nweb/bridge/ark_web_touch_handle_state_wrapper.h"
54 #include "ohos_nweb/bridge/ark_web_url_resource_error_wrapper.h"
55 #include "ohos_nweb/bridge/ark_web_url_resource_request_wrapper.h"
56 #include "ohos_nweb/bridge/ark_web_url_resource_response_wrapper.h"
57 #include "ohos_nweb/bridge/ark_web_view_struct_utils.h"
58 #include "ohos_nweb/ctocpp/ark_web_date_time_suggestion_vector_ctocpp.h"
59
60 #include "base/bridge/ark_web_bridge_macros.h"
61
62 namespace OHOS::ArkWeb {
63
64 using ArkWebSslError = OHOS::NWeb::SslError;
65 using ArkWebCursorType = OHOS::NWeb::CursorType;
66 using ArkWebActivityType = OHOS::NWeb::ActivityType;
67 using ArkWebRenderExitReason = OHOS::NWeb::RenderExitReason;
68 using ArkWebDragOperation = OHOS::NWeb::NWebDragData::DragOperation;
69 using ArkWebRenderProcessNotRespondingReason = OHOS::NWeb::RenderProcessNotRespondingReason;
70 using ArkWebViewportFit = OHOS::NWeb::ViewportFit;
71 using ArkWebFocusSource = OHOS::NWeb::NWebFocusSource;
72
ArkWebHandlerImpl(std::shared_ptr<OHOS::NWeb::NWebHandler> nweb_handler)73 ArkWebHandlerImpl::ArkWebHandlerImpl(std::shared_ptr<OHOS::NWeb::NWebHandler> nweb_handler)
74 : nweb_handler_(nweb_handler)
75 {}
76
SetNWeb(ArkWebRefPtr<ArkWebNWeb> nweb)77 void ArkWebHandlerImpl::SetNWeb(ArkWebRefPtr<ArkWebNWeb> nweb)
78 {
79 if (CHECK_REF_PTR_IS_NULL(nweb)) {
80 nweb_handler_->SetNWeb(nullptr);
81 return;
82 }
83
84 nweb_handler_->SetNWeb(std::make_shared<ArkWebNWebWrapper>(nweb));
85 }
86
OnFocus()87 bool ArkWebHandlerImpl::OnFocus()
88 {
89 return nweb_handler_->OnFocus();
90 }
91
OnMessage(const ArkWebString & param)92 void ArkWebHandlerImpl::OnMessage(const ArkWebString& param)
93 {
94 nweb_handler_->OnMessage(ArkWebStringStructToClass(param));
95 }
96
OnResource(const ArkWebString & url)97 void ArkWebHandlerImpl::OnResource(const ArkWebString& url)
98 {
99 nweb_handler_->OnResource(ArkWebStringStructToClass(url));
100 }
101
OnPageIcon(const void * data,size_t width,size_t height,int color_type,int alpha_type)102 void ArkWebHandlerImpl::OnPageIcon(const void* data, size_t width, size_t height, int color_type, int alpha_type)
103 {
104 nweb_handler_->OnPageIcon(data, width, height, static_cast<ArkWebImageColorType>(color_type),
105 static_cast<ArkWebImageAlphaType>(alpha_type));
106 }
107
OnPageTitle(const ArkWebString & title)108 void ArkWebHandlerImpl::OnPageTitle(const ArkWebString& title)
109 {
110 nweb_handler_->OnPageTitle(ArkWebStringStructToClass(title));
111 }
112
OnProxyDied()113 void ArkWebHandlerImpl::OnProxyDied()
114 {
115 nweb_handler_->OnProxyDied();
116 }
117
OnHttpError(ArkWebRefPtr<ArkWebUrlResourceRequest> request,ArkWebRefPtr<ArkWebUrlResourceResponse> response)118 void ArkWebHandlerImpl::OnHttpError(
119 ArkWebRefPtr<ArkWebUrlResourceRequest> request, ArkWebRefPtr<ArkWebUrlResourceResponse> response)
120 {
121 std::shared_ptr<OHOS::NWeb::NWebUrlResourceRequest> nweb_request = nullptr;
122 if (!CHECK_REF_PTR_IS_NULL(request)) {
123 nweb_request = std::make_shared<ArkWebUrlResourceRequestWrapper>(request);
124 }
125
126 std::shared_ptr<OHOS::NWeb::NWebUrlResourceResponse> nweb_response = nullptr;
127 if (!CHECK_REF_PTR_IS_NULL(response)) {
128 nweb_response = std::make_shared<ArkWebUrlResourceResponseWrapper>(response);
129 }
130
131 nweb_handler_->OnHttpError(nweb_request, nweb_response);
132 }
133
OnConsoleLog(ArkWebRefPtr<ArkWebConsoleLog> console_log)134 bool ArkWebHandlerImpl::OnConsoleLog(ArkWebRefPtr<ArkWebConsoleLog> console_log)
135 {
136 if (CHECK_REF_PTR_IS_NULL(console_log)) {
137 return nweb_handler_->OnConsoleLog(nullptr);
138 }
139
140 return nweb_handler_->OnConsoleLog(std::make_shared<ArkWebConsoleLogWrapper>(console_log));
141 }
142
OnRouterPush(const ArkWebString & param)143 void ArkWebHandlerImpl::OnRouterPush(const ArkWebString& param)
144 {
145 nweb_handler_->OnRouterPush(ArkWebStringStructToClass(param));
146 }
147
OnPageLoadEnd(int http_status_code,const ArkWebString & url)148 void ArkWebHandlerImpl::OnPageLoadEnd(int http_status_code, const ArkWebString& url)
149 {
150 nweb_handler_->OnPageLoadEnd(http_status_code, ArkWebStringStructToClass(url));
151 }
152
OnPageLoadBegin(const ArkWebString & url)153 void ArkWebHandlerImpl::OnPageLoadBegin(const ArkWebString& url)
154 {
155 nweb_handler_->OnPageLoadBegin(ArkWebStringStructToClass(url));
156 }
157
OnPageLoadError(int error_code,const ArkWebString & description,const ArkWebString & url)158 void ArkWebHandlerImpl::OnPageLoadError(int error_code, const ArkWebString& description, const ArkWebString& url)
159 {
160 nweb_handler_->OnPageLoadError(error_code, ArkWebStringStructToClass(description), ArkWebStringStructToClass(url));
161 }
162
OnDesktopIconUrl(const ArkWebString & icon_url,bool precomposed)163 void ArkWebHandlerImpl::OnDesktopIconUrl(const ArkWebString& icon_url, bool precomposed)
164 {
165 nweb_handler_->OnDesktopIconUrl(ArkWebStringStructToClass(icon_url), precomposed);
166 }
167
OnLoadingProgress(int new_progress)168 void ArkWebHandlerImpl::OnLoadingProgress(int new_progress)
169 {
170 nweb_handler_->OnLoadingProgress(new_progress);
171 }
172
OnGeolocationShow(const ArkWebString & origin,ArkWebRefPtr<ArkWebGeoLocationCallback> callback)173 void ArkWebHandlerImpl::OnGeolocationShow(const ArkWebString& origin, ArkWebRefPtr<ArkWebGeoLocationCallback> callback)
174 {
175 if (CHECK_REF_PTR_IS_NULL(callback)) {
176 nweb_handler_->OnGeolocationShow(ArkWebStringStructToClass(origin), nullptr);
177 return;
178 }
179
180 nweb_handler_->OnGeolocationShow(
181 ArkWebStringStructToClass(origin), std::make_shared<ArkWebGeoLocationCallbackWrapper>(callback));
182 }
183
OnGeolocationHide()184 void ArkWebHandlerImpl::OnGeolocationHide()
185 {
186 nweb_handler_->OnGeolocationHide();
187 }
188
OnFileSelectorShow(ArkWebRefPtr<ArkWebStringVectorValueCallback> callback,ArkWebRefPtr<ArkWebFileSelectorParams> params)189 bool ArkWebHandlerImpl::OnFileSelectorShow(
190 ArkWebRefPtr<ArkWebStringVectorValueCallback> callback, ArkWebRefPtr<ArkWebFileSelectorParams> params)
191 {
192 std::shared_ptr<OHOS::NWeb::NWebStringVectorValueCallback> nweb_callback = nullptr;
193 if (!CHECK_REF_PTR_IS_NULL(callback)) {
194 nweb_callback = std::make_shared<ArkWebStringVectorValueCallbackWrapper>(callback);
195 }
196
197 std::shared_ptr<OHOS::NWeb::NWebFileSelectorParams> nweb_params = nullptr;
198 if (!CHECK_REF_PTR_IS_NULL(params)) {
199 nweb_params = std::make_shared<ArkWebFileSelectorParamsWrapper>(params);
200 }
201
202 return nweb_handler_->OnFileSelectorShow(nweb_callback, nweb_params);
203 }
204
OnResourceLoadError(ArkWebRefPtr<ArkWebUrlResourceRequest> request,ArkWebRefPtr<ArkWebUrlResourceError> error)205 void ArkWebHandlerImpl::OnResourceLoadError(
206 ArkWebRefPtr<ArkWebUrlResourceRequest> request, ArkWebRefPtr<ArkWebUrlResourceError> error)
207 {
208 std::shared_ptr<OHOS::NWeb::NWebUrlResourceRequest> nweb_request = nullptr;
209 if (!CHECK_REF_PTR_IS_NULL(request)) {
210 nweb_request = std::make_shared<ArkWebUrlResourceRequestWrapper>(request);
211 }
212
213 std::shared_ptr<OHOS::NWeb::NWebUrlResourceError> nweb_error = nullptr;
214 if (!CHECK_REF_PTR_IS_NULL(error)) {
215 nweb_error = std::make_shared<ArkWebUrlResourceErrorWrapper>(error);
216 }
217
218 nweb_handler_->OnResourceLoadError(nweb_request, nweb_error);
219 }
220
OnPermissionRequest(ArkWebRefPtr<ArkWebAccessRequest> request)221 void ArkWebHandlerImpl::OnPermissionRequest(ArkWebRefPtr<ArkWebAccessRequest> request)
222 {
223 if (CHECK_REF_PTR_IS_NULL(request)) {
224 nweb_handler_->OnPermissionRequest(nullptr);
225 return;
226 }
227
228 nweb_handler_->OnPermissionRequest(std::make_shared<ArkWebAccessRequestWrapper>(request));
229 }
230
OnQuickMenuDismissed()231 void ArkWebHandlerImpl::OnQuickMenuDismissed()
232 {
233 nweb_handler_->OnQuickMenuDismissed();
234 }
235
OnContextMenuDismissed()236 void ArkWebHandlerImpl::OnContextMenuDismissed()
237 {
238 nweb_handler_->OnContextMenuDismissed();
239 }
240
OnTouchSelectionChanged(ArkWebRefPtr<ArkWebTouchHandleState> insert_handle,ArkWebRefPtr<ArkWebTouchHandleState> start_selection_handle,ArkWebRefPtr<ArkWebTouchHandleState> end_selection_handle)241 void ArkWebHandlerImpl::OnTouchSelectionChanged(ArkWebRefPtr<ArkWebTouchHandleState> insert_handle,
242 ArkWebRefPtr<ArkWebTouchHandleState> start_selection_handle,
243 ArkWebRefPtr<ArkWebTouchHandleState> end_selection_handle)
244 {
245 std::shared_ptr<OHOS::NWeb::NWebTouchHandleState> nweb_insert_handle = nullptr;
246 if (!CHECK_REF_PTR_IS_NULL(insert_handle)) {
247 nweb_insert_handle = std::make_shared<ArkWebTouchHandleStateWrapper>(insert_handle);
248 }
249
250 std::shared_ptr<OHOS::NWeb::NWebTouchHandleState> nweb_start_selection_handle = nullptr;
251 if (!CHECK_REF_PTR_IS_NULL(start_selection_handle)) {
252 nweb_start_selection_handle = std::make_shared<ArkWebTouchHandleStateWrapper>(start_selection_handle);
253 }
254
255 std::shared_ptr<OHOS::NWeb::NWebTouchHandleState> nweb_end_selection_handle = nullptr;
256 if (!CHECK_REF_PTR_IS_NULL(end_selection_handle)) {
257 nweb_end_selection_handle = std::make_shared<ArkWebTouchHandleStateWrapper>(end_selection_handle);
258 }
259
260 nweb_handler_->OnTouchSelectionChanged(nweb_insert_handle, nweb_start_selection_handle, nweb_end_selection_handle);
261 }
262
OnHandleInterceptRequest(ArkWebRefPtr<ArkWebUrlResourceRequest> request,ArkWebRefPtr<ArkWebUrlResourceResponse> response)263 bool ArkWebHandlerImpl::OnHandleInterceptRequest(
264 ArkWebRefPtr<ArkWebUrlResourceRequest> request, ArkWebRefPtr<ArkWebUrlResourceResponse> response)
265 {
266 std::shared_ptr<OHOS::NWeb::NWebUrlResourceRequest> nweb_request = nullptr;
267 if (!CHECK_REF_PTR_IS_NULL(request)) {
268 nweb_request = std::make_shared<ArkWebUrlResourceRequestWrapper>(request);
269 }
270
271 std::shared_ptr<OHOS::NWeb::NWebUrlResourceResponse> nweb_reponse = nullptr;
272 if (!CHECK_REF_PTR_IS_NULL(response)) {
273 nweb_reponse = std::make_shared<ArkWebUrlResourceResponseWrapper>(response);
274 }
275
276 return nweb_handler_->OnHandleInterceptRequest(nweb_request, nweb_reponse);
277 }
278
OnRefreshAccessedHistory(const ArkWebString & url,bool is_reload)279 void ArkWebHandlerImpl::OnRefreshAccessedHistory(const ArkWebString& url, bool is_reload)
280 {
281 nweb_handler_->OnRefreshAccessedHistory(ArkWebStringStructToClass(url), is_reload);
282 }
283
OnPermissionRequestCanceled(ArkWebRefPtr<ArkWebAccessRequest> request)284 void ArkWebHandlerImpl::OnPermissionRequestCanceled(ArkWebRefPtr<ArkWebAccessRequest> request)
285 {
286 if (CHECK_REF_PTR_IS_NULL(request)) {
287 nweb_handler_->OnPermissionRequestCanceled(nullptr);
288 return;
289 }
290
291 nweb_handler_->OnPermissionRequestCanceled(std::make_shared<ArkWebAccessRequestWrapper>(request));
292 }
293
OnHandleInterceptUrlLoading(ArkWebRefPtr<ArkWebUrlResourceRequest> request)294 bool ArkWebHandlerImpl::OnHandleInterceptUrlLoading(ArkWebRefPtr<ArkWebUrlResourceRequest> request)
295 {
296 if (CHECK_REF_PTR_IS_NULL(request)) {
297 return nweb_handler_->OnHandleInterceptUrlLoading(nullptr);
298 }
299
300 return nweb_handler_->OnHandleInterceptUrlLoading(std::make_shared<ArkWebUrlResourceRequestWrapper>(request));
301 }
302
RunQuickMenu(ArkWebRefPtr<ArkWebQuickMenuParams> params,ArkWebRefPtr<ArkWebQuickMenuCallback> callback)303 bool ArkWebHandlerImpl::RunQuickMenu(
304 ArkWebRefPtr<ArkWebQuickMenuParams> params, ArkWebRefPtr<ArkWebQuickMenuCallback> callback)
305 {
306 std::shared_ptr<OHOS::NWeb::NWebQuickMenuParams> nweb_params = nullptr;
307 if (!CHECK_REF_PTR_IS_NULL(params)) {
308 nweb_params = std::make_shared<ArkWebQuickMenuParamsWrapper>(params);
309 }
310
311 std::shared_ptr<OHOS::NWeb::NWebQuickMenuCallback> nweb_callback = nullptr;
312 if (!CHECK_REF_PTR_IS_NULL(callback)) {
313 nweb_callback = std::make_shared<ArkWebQuickMenuCallbackWrapper>(callback);
314 }
315
316 return nweb_handler_->RunQuickMenu(nweb_params, nweb_callback);
317 }
318
RunContextMenu(ArkWebRefPtr<ArkWebContextMenuParams> params,ArkWebRefPtr<ArkWebContextMenuCallback> callback)319 bool ArkWebHandlerImpl::RunContextMenu(
320 ArkWebRefPtr<ArkWebContextMenuParams> params, ArkWebRefPtr<ArkWebContextMenuCallback> callback)
321 {
322 std::shared_ptr<OHOS::NWeb::NWebContextMenuParams> nweb_params = nullptr;
323 if (!CHECK_REF_PTR_IS_NULL(params)) {
324 nweb_params = std::make_shared<ArkWebContextMenuParamsWrapper>(params);
325 }
326
327 std::shared_ptr<OHOS::NWeb::NWebContextMenuCallback> nweb_callback = nullptr;
328 if (!CHECK_REF_PTR_IS_NULL(callback)) {
329 nweb_callback = std::make_shared<ArkWebContextMenuCallbackWrapper>(callback);
330 }
331
332 return nweb_handler_->RunContextMenu(nweb_params, nweb_callback);
333 }
334
UpdateDragCursor(unsigned char op)335 void ArkWebHandlerImpl::UpdateDragCursor(unsigned char op)
336 {
337 nweb_handler_->UpdateDragCursor(static_cast<ArkWebDragOperation>(op));
338 }
339
FilterScrollEvent(const float x,const float y,const float x_velocity,const float y_velocity)340 bool ArkWebHandlerImpl::FilterScrollEvent(const float x, const float y, const float x_velocity, const float y_velocity)
341 {
342 return nweb_handler_->FilterScrollEvent(x, y, x_velocity, y_velocity);
343 }
344
VisitedUrlHistory()345 ArkWebStringVector ArkWebHandlerImpl::VisitedUrlHistory()
346 {
347 return ArkWebStringVectorClassToStruct(nweb_handler_->VisitedUrlHistory());
348 }
349
OnWindowNewByJS(const ArkWebString & target_url,bool is_alert,bool is_user_trigger,ArkWebRefPtr<ArkWebControllerHandler> handler)350 void ArkWebHandlerImpl::OnWindowNewByJS(
351 const ArkWebString& target_url, bool is_alert, bool is_user_trigger, ArkWebRefPtr<ArkWebControllerHandler> handler)
352 {
353 if (CHECK_REF_PTR_IS_NULL(handler)) {
354 nweb_handler_->OnWindowNewByJS(ArkWebStringStructToClass(target_url), is_alert, is_user_trigger, nullptr);
355 return;
356 }
357
358 nweb_handler_->OnWindowNewByJS(ArkWebStringStructToClass(target_url), is_alert, is_user_trigger,
359 std::make_shared<ArkWebControllerHandlerWrapper>(handler));
360 }
361
OnWindowExitByJS()362 void ArkWebHandlerImpl::OnWindowExitByJS()
363 {
364 nweb_handler_->OnWindowExitByJS();
365 }
366
OnAlertDialogByJS(const ArkWebString & url,const ArkWebString & message,ArkWebRefPtr<ArkWebJsDialogResult> result)367 bool ArkWebHandlerImpl::OnAlertDialogByJS(
368 const ArkWebString& url, const ArkWebString& message, ArkWebRefPtr<ArkWebJsDialogResult> result)
369 {
370 if (CHECK_REF_PTR_IS_NULL(result)) {
371 return nweb_handler_->OnAlertDialogByJS(
372 ArkWebStringStructToClass(url), ArkWebStringStructToClass(message), nullptr);
373 }
374
375 return nweb_handler_->OnAlertDialogByJS(ArkWebStringStructToClass(url), ArkWebStringStructToClass(message),
376 std::make_shared<ArkWebJsDialogResultWrapper>(result));
377 }
378
OnBeforeUnloadByJS(const ArkWebString & url,const ArkWebString & message,ArkWebRefPtr<ArkWebJsDialogResult> result)379 bool ArkWebHandlerImpl::OnBeforeUnloadByJS(
380 const ArkWebString& url, const ArkWebString& message, ArkWebRefPtr<ArkWebJsDialogResult> result)
381 {
382 if (CHECK_REF_PTR_IS_NULL(result)) {
383 return nweb_handler_->OnBeforeUnloadByJS(
384 ArkWebStringStructToClass(url), ArkWebStringStructToClass(message), nullptr);
385 }
386
387 return nweb_handler_->OnBeforeUnloadByJS(ArkWebStringStructToClass(url), ArkWebStringStructToClass(message),
388 std::make_shared<ArkWebJsDialogResultWrapper>(result));
389 }
390
OnPromptDialogByJS(const ArkWebString & url,const ArkWebString & message,const ArkWebString & default_value,ArkWebRefPtr<ArkWebJsDialogResult> result)391 bool ArkWebHandlerImpl::OnPromptDialogByJS(const ArkWebString& url, const ArkWebString& message,
392 const ArkWebString& default_value, ArkWebRefPtr<ArkWebJsDialogResult> result)
393 {
394 if (CHECK_REF_PTR_IS_NULL(result)) {
395 return nweb_handler_->OnPromptDialogByJS(ArkWebStringStructToClass(url), ArkWebStringStructToClass(message),
396 ArkWebStringStructToClass(default_value), nullptr);
397 }
398
399 return nweb_handler_->OnPromptDialogByJS(ArkWebStringStructToClass(url), ArkWebStringStructToClass(message),
400 ArkWebStringStructToClass(default_value), std::make_shared<ArkWebJsDialogResultWrapper>(result));
401 }
402
OnConfirmDialogByJS(const ArkWebString & url,const ArkWebString & message,ArkWebRefPtr<ArkWebJsDialogResult> result)403 bool ArkWebHandlerImpl::OnConfirmDialogByJS(
404 const ArkWebString& url, const ArkWebString& message, ArkWebRefPtr<ArkWebJsDialogResult> result)
405 {
406 if (CHECK_REF_PTR_IS_NULL(result)) {
407 return nweb_handler_->OnConfirmDialogByJS(
408 ArkWebStringStructToClass(url), ArkWebStringStructToClass(message), nullptr);
409 }
410
411 return nweb_handler_->OnConfirmDialogByJS(ArkWebStringStructToClass(url), ArkWebStringStructToClass(message),
412 std::make_shared<ArkWebJsDialogResultWrapper>(result));
413 }
414
OnHttpAuthRequestByJS(ArkWebRefPtr<ArkWebJsHttpAuthResult> result,const ArkWebString & host,const ArkWebString & realm)415 bool ArkWebHandlerImpl::OnHttpAuthRequestByJS(
416 ArkWebRefPtr<ArkWebJsHttpAuthResult> result, const ArkWebString& host, const ArkWebString& realm)
417 {
418 if (CHECK_REF_PTR_IS_NULL(result)) {
419 return nweb_handler_->OnHttpAuthRequestByJS(
420 nullptr, ArkWebStringStructToClass(host), ArkWebStringStructToClass(realm));
421 }
422
423 return nweb_handler_->OnHttpAuthRequestByJS(std::make_shared<ArkWebJsHttpAuthResultWrapper>(result),
424 ArkWebStringStructToClass(host), ArkWebStringStructToClass(realm));
425 }
426
OnSslErrorRequestByJS(ArkWebRefPtr<ArkWebJsSslErrorResult> result,int error)427 bool ArkWebHandlerImpl::OnSslErrorRequestByJS(ArkWebRefPtr<ArkWebJsSslErrorResult> result, int error)
428 {
429 if (CHECK_REF_PTR_IS_NULL(result)) {
430 return nweb_handler_->OnSslErrorRequestByJS(nullptr, static_cast<ArkWebSslError>(error));
431 }
432
433 return nweb_handler_->OnSslErrorRequestByJS(
434 std::make_shared<ArkWebJsSslErrorResultWrapper>(result), static_cast<ArkWebSslError>(error));
435 }
436
OnSslSelectCertRequestByJS(ArkWebRefPtr<ArkWebJsSslSelectCertResult> result,const ArkWebString & host,int port,const ArkWebStringVector & key_types,const ArkWebStringVector & issuers)437 bool ArkWebHandlerImpl::OnSslSelectCertRequestByJS(ArkWebRefPtr<ArkWebJsSslSelectCertResult> result,
438 const ArkWebString& host, int port, const ArkWebStringVector& key_types, const ArkWebStringVector& issuers)
439 {
440 if (CHECK_REF_PTR_IS_NULL(result)) {
441 return nweb_handler_->OnSslSelectCertRequestByJS(nullptr, ArkWebStringStructToClass(host), port,
442 ArkWebStringVectorStructToClass(key_types), ArkWebStringVectorStructToClass(issuers));
443 }
444
445 return nweb_handler_->OnSslSelectCertRequestByJS(std::make_shared<ArkWebJsSslSelectCertResultWrapper>(result),
446 ArkWebStringStructToClass(host), port, ArkWebStringVectorStructToClass(key_types),
447 ArkWebStringVectorStructToClass(issuers));
448 }
449
OnScroll(double x_offset,double y_offset)450 void ArkWebHandlerImpl::OnScroll(double x_offset, double y_offset)
451 {
452 nweb_handler_->OnScroll(x_offset, y_offset);
453 }
454
OnOverScroll(float x_offset,float y_offset)455 void ArkWebHandlerImpl::OnOverScroll(float x_offset, float y_offset)
456 {
457 nweb_handler_->OnOverScroll(x_offset, y_offset);
458 }
459
OnScrollState(bool scroll_state)460 void ArkWebHandlerImpl::OnScrollState(bool scroll_state)
461 {
462 nweb_handler_->OnScrollState(scroll_state);
463 }
464
OnPageVisible(const ArkWebString & url)465 void ArkWebHandlerImpl::OnPageVisible(const ArkWebString& url)
466 {
467 nweb_handler_->OnPageVisible(ArkWebStringStructToClass(url));
468 }
469
OnPreKeyEvent(ArkWebRefPtr<ArkWebKeyEvent> event)470 bool ArkWebHandlerImpl::OnPreKeyEvent(ArkWebRefPtr<ArkWebKeyEvent> event)
471 {
472 if (CHECK_REF_PTR_IS_NULL(event)) {
473 return nweb_handler_->OnPreKeyEvent(nullptr);
474 }
475
476 return nweb_handler_->OnPreKeyEvent(std::make_shared<ArkWebKeyEventWrapper>(event));
477 }
478
OnScaleChanged(float old_scale_factor,float new_scale_factor)479 void ArkWebHandlerImpl::OnScaleChanged(float old_scale_factor, float new_scale_factor)
480 {
481 nweb_handler_->OnScaleChanged(old_scale_factor, new_scale_factor);
482 }
483
OnCursorChange(const int32_t & type,ArkWebRefPtr<ArkWebCursorInfo> info)484 bool ArkWebHandlerImpl::OnCursorChange(const int32_t& type, ArkWebRefPtr<ArkWebCursorInfo> info)
485 {
486 if (CHECK_REF_PTR_IS_NULL(info)) {
487 return nweb_handler_->OnCursorChange(static_cast<ArkWebCursorType>(type), nullptr);
488 }
489
490 return nweb_handler_->OnCursorChange(
491 static_cast<ArkWebCursorType>(type), std::make_shared<ArkWebCursorInfoWrapper>(info));
492 }
493
OnRenderExited(int reason)494 void ArkWebHandlerImpl::OnRenderExited(int reason)
495 {
496 nweb_handler_->OnRenderExited(static_cast<ArkWebRenderExitReason>(reason));
497 }
498
OnResizeNotWork()499 void ArkWebHandlerImpl::OnResizeNotWork()
500 {
501 nweb_handler_->OnResizeNotWork();
502 }
503
OnFullScreenExit()504 void ArkWebHandlerImpl::OnFullScreenExit()
505 {
506 nweb_handler_->OnFullScreenExit();
507 }
508
OnFullScreenEnter(ArkWebRefPtr<ArkWebFullScreenExitHandler> handler)509 void ArkWebHandlerImpl::OnFullScreenEnter(ArkWebRefPtr<ArkWebFullScreenExitHandler> handler)
510 {
511 if (CHECK_REF_PTR_IS_NULL(handler)) {
512 nweb_handler_->OnFullScreenEnter(nullptr);
513 return;
514 }
515
516 nweb_handler_->OnFullScreenEnter(std::make_shared<ArkWebFullScreenExitHandlerWrapper>(handler));
517 }
518
OnFullScreenEnterWithVideoSize(ArkWebRefPtr<ArkWebFullScreenExitHandler> handler,int video_natural_width,int video_natural_height)519 void ArkWebHandlerImpl::OnFullScreenEnterWithVideoSize(
520 ArkWebRefPtr<ArkWebFullScreenExitHandler> handler, int video_natural_width, int video_natural_height)
521 {
522 if (CHECK_REF_PTR_IS_NULL(handler)) {
523 nweb_handler_->OnFullScreenEnterWithVideoSize(nullptr, video_natural_width, video_natural_height);
524 return;
525 }
526
527 nweb_handler_->OnFullScreenEnterWithVideoSize(
528 std::make_shared<ArkWebFullScreenExitHandlerWrapper>(handler), video_natural_width, video_natural_height);
529 }
530
OnDragAndDropData(const void * data,size_t len,ArkWebRefPtr<ArkWebImageOptions> opt)531 bool ArkWebHandlerImpl::OnDragAndDropData(const void* data, size_t len, ArkWebRefPtr<ArkWebImageOptions> opt)
532 {
533 if (CHECK_REF_PTR_IS_NULL(opt)) {
534 return nweb_handler_->OnDragAndDropData(data, len, nullptr);
535 }
536
537 return nweb_handler_->OnDragAndDropData(data, len, std::make_shared<ArkWebImageOptionsWrapper>(opt));
538 }
539
OnSelectPopupMenu(ArkWebRefPtr<ArkWebSelectPopupMenuParam> params,ArkWebRefPtr<ArkWebSelectPopupMenuCallback> callback)540 void ArkWebHandlerImpl::OnSelectPopupMenu(
541 ArkWebRefPtr<ArkWebSelectPopupMenuParam> params, ArkWebRefPtr<ArkWebSelectPopupMenuCallback> callback)
542 {
543 std::shared_ptr<OHOS::NWeb::NWebSelectPopupMenuParam> nweb_params = nullptr;
544 if (!CHECK_REF_PTR_IS_NULL(params)) {
545 nweb_params = std::make_shared<ArkWebSelectPopupMenuParamWrapper>(params);
546 }
547
548 std::shared_ptr<OHOS::NWeb::NWebSelectPopupMenuCallback> nweb_callback = nullptr;
549 if (!CHECK_REF_PTR_IS_NULL(callback)) {
550 nweb_callback = std::make_shared<ArkWebSelectPopupMenuCallbackWrapper>(callback);
551 }
552
553 nweb_handler_->OnSelectPopupMenu(nweb_params, nweb_callback);
554 }
555
OnDataResubmission(ArkWebRefPtr<ArkWebDataResubmissionCallback> handler)556 void ArkWebHandlerImpl::OnDataResubmission(ArkWebRefPtr<ArkWebDataResubmissionCallback> handler)
557 {
558 if (CHECK_REF_PTR_IS_NULL(handler)) {
559 nweb_handler_->OnDataResubmission(nullptr);
560 return;
561 }
562
563 nweb_handler_->OnDataResubmission(std::make_shared<ArkWebDataResubmissionCallbackWrapper>(handler));
564 }
565
OnRootLayerChanged(int width,int height)566 void ArkWebHandlerImpl::OnRootLayerChanged(int width, int height)
567 {
568 nweb_handler_->OnRootLayerChanged(width, height);
569 }
570
OnAudioStateChanged(bool playing)571 void ArkWebHandlerImpl::OnAudioStateChanged(bool playing)
572 {
573 nweb_handler_->OnAudioStateChanged(playing);
574 }
575
OnOverScrollFlingEnd()576 void ArkWebHandlerImpl::OnOverScrollFlingEnd()
577 {
578 nweb_handler_->OnOverScrollFlingEnd();
579 }
580
OnUnProcessedKeyEvent(ArkWebRefPtr<ArkWebKeyEvent> event)581 bool ArkWebHandlerImpl::OnUnProcessedKeyEvent(ArkWebRefPtr<ArkWebKeyEvent> event)
582 {
583 if (CHECK_REF_PTR_IS_NULL(event)) {
584 return nweb_handler_->OnUnProcessedKeyEvent(nullptr);
585 }
586
587 return nweb_handler_->OnUnProcessedKeyEvent(std::make_shared<ArkWebKeyEventWrapper>(event));
588 }
589
OnDragAndDropDataUdmf(ArkWebRefPtr<ArkWebDragData> drag_data)590 bool ArkWebHandlerImpl::OnDragAndDropDataUdmf(ArkWebRefPtr<ArkWebDragData> drag_data)
591 {
592 if (CHECK_REF_PTR_IS_NULL(drag_data)) {
593 return nweb_handler_->OnDragAndDropDataUdmf(nullptr);
594 }
595
596 return nweb_handler_->OnDragAndDropDataUdmf(std::make_shared<ArkWebDragDataWrapper>(drag_data));
597 }
598
OnFirstContentfulPaint(int64_t navigation_start_tick,int64_t first_contentful_paint_ms)599 void ArkWebHandlerImpl::OnFirstContentfulPaint(int64_t navigation_start_tick, int64_t first_contentful_paint_ms)
600 {
601 nweb_handler_->OnFirstContentfulPaint(navigation_start_tick, first_contentful_paint_ms);
602 }
603
OnDateTimeChooserPopup(ArkWebRefPtr<ArkWebDateTimeChooser> chooser,const ArkWebDateTimeSuggestionVector & suggestions,ArkWebRefPtr<ArkWebDateTimeChooserCallback> callback)604 void ArkWebHandlerImpl::OnDateTimeChooserPopup(ArkWebRefPtr<ArkWebDateTimeChooser> chooser,
605 const ArkWebDateTimeSuggestionVector& suggestions, ArkWebRefPtr<ArkWebDateTimeChooserCallback> callback)
606 {
607 std::shared_ptr<OHOS::NWeb::NWebDateTimeChooser> nweb_date_time_chooser = nullptr;
608 if (!CHECK_REF_PTR_IS_NULL(chooser)) {
609 nweb_date_time_chooser = std::make_shared<ArkWebDateTimeChooserWrapper>(chooser);
610 }
611
612 std::shared_ptr<OHOS::NWeb::NWebDateTimeChooserCallback> nweb_date_time_chooser_callback = nullptr;
613 if (!CHECK_REF_PTR_IS_NULL(callback)) {
614 nweb_date_time_chooser_callback = std::make_shared<ArkWebDateTimeChooserCallbackWrapper>(callback);
615 }
616
617 nweb_handler_->OnDateTimeChooserPopup(nweb_date_time_chooser,
618 ArkWebDateTimeSuggestionVectorStructToClass(suggestions), nweb_date_time_chooser_callback);
619 }
620
OnDateTimeChooserClose()621 void ArkWebHandlerImpl::OnDateTimeChooserClose()
622 {
623 nweb_handler_->OnDateTimeChooserClose();
624 }
625
OnScreenCaptureRequest(ArkWebRefPtr<ArkWebScreenCaptureAccessRequest> request)626 void ArkWebHandlerImpl::OnScreenCaptureRequest(ArkWebRefPtr<ArkWebScreenCaptureAccessRequest> request)
627 {
628 if (CHECK_REF_PTR_IS_NULL(request)) {
629 nweb_handler_->OnScreenCaptureRequest(nullptr);
630 return;
631 }
632
633 nweb_handler_->OnScreenCaptureRequest(std::make_shared<ArkWebScreenCaptureAccessRequestWrapper>(request));
634 }
635
OnActivityStateChanged(int state,int type)636 void ArkWebHandlerImpl::OnActivityStateChanged(int state, int type)
637 {
638 nweb_handler_->OnActivityStateChanged(state, static_cast<ArkWebActivityType>(type));
639 }
640
OnGetTouchHandleHotZone(ArkWebRefPtr<ArkWebTouchHandleHotZone> hot_zone)641 void ArkWebHandlerImpl::OnGetTouchHandleHotZone(ArkWebRefPtr<ArkWebTouchHandleHotZone> hot_zone)
642 {
643 if (CHECK_REF_PTR_IS_NULL(hot_zone)) {
644 nweb_handler_->OnGetTouchHandleHotZone(nullptr);
645 return;
646 }
647
648 nweb_handler_->OnGetTouchHandleHotZone(std::make_shared<ArkWebTouchHandleHotZoneWrapper>(hot_zone));
649 }
650
OnCompleteSwapWithNewSize()651 void ArkWebHandlerImpl::OnCompleteSwapWithNewSize()
652 {
653 nweb_handler_->OnCompleteSwapWithNewSize();
654 }
655
OnOverScrollFlingVelocity(float x_velocity,float y_velocity,bool is_fling)656 void ArkWebHandlerImpl::OnOverScrollFlingVelocity(float x_velocity, float y_velocity, bool is_fling)
657 {
658 nweb_handler_->OnOverScrollFlingVelocity(x_velocity, y_velocity, is_fling);
659 }
660
OnNavigationEntryCommitted(ArkWebRefPtr<ArkWebLoadCommittedDetails> details)661 void ArkWebHandlerImpl::OnNavigationEntryCommitted(ArkWebRefPtr<ArkWebLoadCommittedDetails> details)
662 {
663 if (CHECK_REF_PTR_IS_NULL(details)) {
664 nweb_handler_->OnScreenCaptureRequest(nullptr);
665 return;
666 }
667
668 nweb_handler_->OnNavigationEntryCommitted(std::make_shared<ArkWebLoadCommittedDetailsWrapper>(details));
669 }
670
OnNativeEmbedLifecycleChange(ArkWebRefPtr<ArkWebNativeEmbedDataInfo> data_info)671 void ArkWebHandlerImpl::OnNativeEmbedLifecycleChange(ArkWebRefPtr<ArkWebNativeEmbedDataInfo> data_info)
672 {
673 if (CHECK_REF_PTR_IS_NULL(data_info)) {
674 nweb_handler_->OnNativeEmbedLifecycleChange(nullptr);
675 return;
676 }
677
678 nweb_handler_->OnNativeEmbedLifecycleChange(std::make_shared<ArkWebNativeEmbedDataInfoWrapper>(data_info));
679 }
680
OnNativeEmbedGestureEvent(ArkWebRefPtr<ArkWebNativeEmbedTouchEvent> touch_event)681 void ArkWebHandlerImpl::OnNativeEmbedGestureEvent(ArkWebRefPtr<ArkWebNativeEmbedTouchEvent> touch_event)
682 {
683 if (CHECK_REF_PTR_IS_NULL(touch_event)) {
684 nweb_handler_->OnNativeEmbedGestureEvent(nullptr);
685 return;
686 }
687
688 nweb_handler_->OnNativeEmbedGestureEvent(std::make_shared<ArkWebNativeEmbedTouchEventWrapper>(touch_event));
689 }
690
OnSafeBrowsingCheckResult(int threat_type)691 void ArkWebHandlerImpl::OnSafeBrowsingCheckResult(int threat_type)
692 {
693 nweb_handler_->OnSafeBrowsingCheckResult(threat_type);
694 }
695
OnFirstMeaningfulPaint(ArkWebRefPtr<ArkWebFirstMeaningfulPaintDetails> details)696 void ArkWebHandlerImpl::OnFirstMeaningfulPaint(ArkWebRefPtr<ArkWebFirstMeaningfulPaintDetails> details)
697 {
698 if (CHECK_REF_PTR_IS_NULL(details)) {
699 return;
700 }
701
702 nweb_handler_->OnFirstMeaningfulPaint(std::make_shared<ArkWebFirstMeaningfulPaintDetailsWrapper>(details));
703 }
704
OnLargestContentfulPaint(ArkWebRefPtr<ArkWebLargestContentfulPaintDetails> details)705 void ArkWebHandlerImpl::OnLargestContentfulPaint(ArkWebRefPtr<ArkWebLargestContentfulPaintDetails> details)
706 {
707 if (CHECK_REF_PTR_IS_NULL(details)) {
708 return;
709 }
710
711 nweb_handler_->OnLargestContentfulPaint(std::make_shared<ArkWebLargestContentfulPaintDetailsWrapper>(details));
712 }
713
OnIntelligentTrackingPreventionResult(const ArkWebString & website_host,const ArkWebString & tracker_host)714 void ArkWebHandlerImpl::OnIntelligentTrackingPreventionResult(
715 const ArkWebString& website_host, const ArkWebString& tracker_host)
716 {
717 nweb_handler_->OnIntelligentTrackingPreventionResult(
718 ArkWebStringStructToClass(website_host), ArkWebStringStructToClass(tracker_host));
719 }
720
OnHandleOverrideUrlLoading(ArkWebRefPtr<ArkWebUrlResourceRequest> request)721 bool ArkWebHandlerImpl::OnHandleOverrideUrlLoading(ArkWebRefPtr<ArkWebUrlResourceRequest> request)
722 {
723 if (CHECK_REF_PTR_IS_NULL(request)) {
724 return nweb_handler_->OnHandleOverrideUrlLoading(nullptr);
725 }
726
727 return nweb_handler_->OnHandleOverrideUrlLoading(std::make_shared<ArkWebUrlResourceRequestWrapper>(request));
728 }
729
OnAllSslErrorRequestByJS(ArkWebRefPtr<ArkWebJsAllSslErrorResult> result,int error,const ArkWebString & url,const ArkWebString & originalUrl,const ArkWebString & referrer,bool isFatalError,bool isMainFrame)730 bool ArkWebHandlerImpl::OnAllSslErrorRequestByJS(ArkWebRefPtr<ArkWebJsAllSslErrorResult> result, int error,
731 const ArkWebString& url, const ArkWebString& originalUrl, const ArkWebString& referrer, bool isFatalError,
732 bool isMainFrame)
733 {
734 if (CHECK_REF_PTR_IS_NULL(result)) {
735 return nweb_handler_->OnAllSslErrorRequestByJS(nullptr, static_cast<ArkWebSslError>(error),
736 ArkWebStringStructToClass(url), ArkWebStringStructToClass(originalUrl), ArkWebStringStructToClass(referrer),
737 isFatalError, isMainFrame);
738 }
739
740 return nweb_handler_->OnAllSslErrorRequestByJS(std::make_shared<ArkWebJsAllSslErrorResultWrapper>(result),
741 static_cast<ArkWebSslError>(error), ArkWebStringStructToClass(url), ArkWebStringStructToClass(originalUrl),
742 ArkWebStringStructToClass(referrer), isFatalError, isMainFrame);
743 }
744
OnTooltip(const ArkWebString & tooltip)745 void ArkWebHandlerImpl::OnTooltip(const ArkWebString& tooltip)
746 {
747 nweb_handler_->OnTooltip(ArkWebStringStructToClass(tooltip));
748 }
749
ReleaseResizeHold()750 void ArkWebHandlerImpl::ReleaseResizeHold()
751 {
752 nweb_handler_->ReleaseResizeHold();
753 }
754
GetWordSelection(const ArkWebString & text,int8_t offset)755 ArkWebCharVector ArkWebHandlerImpl::GetWordSelection(const ArkWebString& text, int8_t offset)
756 {
757 if (!nweb_handler_) {
758 return ark_web_char_vector_default;
759 }
760 std::vector<int8_t> vec = nweb_handler_->GetWordSelection(ArkWebStringStructToClass(text), offset);
761 std::vector<char> result(vec.size());
762 for (size_t i = 0; i < vec.size(); i++) {
763 result[i] = vec[i];
764 }
765 ArkWebCharVector ark_result = ArkWebBasicVectorClassToStruct<char, ArkWebCharVector>(result);
766 return ark_result;
767 }
768
UpdateClippedSelectionBounds(int x,int y,int w,int h)769 void ArkWebHandlerImpl::UpdateClippedSelectionBounds(int x, int y, int w, int h)
770 {
771 nweb_handler_->UpdateClippedSelectionBounds(x, y, w, h);
772 }
773
OnRenderProcessNotResponding(const ArkWebString & js_stack,int pid,int reason)774 void ArkWebHandlerImpl::OnRenderProcessNotResponding(const ArkWebString& js_stack, int pid, int reason)
775 {
776 nweb_handler_->OnRenderProcessNotResponding(
777 ArkWebStringStructToClass(js_stack), pid, static_cast<ArkWebRenderProcessNotRespondingReason>(reason));
778 }
779
OnRenderProcessResponding()780 void ArkWebHandlerImpl::OnRenderProcessResponding()
781 {
782 nweb_handler_->OnRenderProcessResponding();
783 }
784
OnOpenAppLink(const ArkWebString & url,ArkWebRefPtr<ArkWebAppLinkCallback> callback)785 bool ArkWebHandlerImpl::OnOpenAppLink(const ArkWebString& url, ArkWebRefPtr<ArkWebAppLinkCallback> callback)
786 {
787 if (CHECK_REF_PTR_IS_NULL(callback)) {
788 return nweb_handler_->OnOpenAppLink(ArkWebStringStructToClass(url), nullptr);
789 }
790
791 return nweb_handler_->OnOpenAppLink(
792 ArkWebStringStructToClass(url), std::make_shared<ArkWebAppLinkCallbackWrapper>(callback));
793 }
794
OnShowAutofillPopup(const float offsetX,const float offsetY,const ArkWebStringVector & menu_items)795 void ArkWebHandlerImpl::OnShowAutofillPopup(
796 const float offsetX, const float offsetY, const ArkWebStringVector& menu_items)
797 {
798 nweb_handler_->OnShowAutofillPopup(offsetX, offsetY, ArkWebStringVectorStructToClass(menu_items));
799 }
800
OnHideAutofillPopup()801 void ArkWebHandlerImpl::OnHideAutofillPopup()
802 {
803 nweb_handler_->OnHideAutofillPopup();
804 }
805
OnViewportFitChange(int viewportFit)806 void ArkWebHandlerImpl::OnViewportFitChange(int viewportFit)
807 {
808 nweb_handler_->OnViewportFitChange(static_cast<ArkWebViewportFit>(viewportFit));
809 }
810
OnFocus(int source)811 bool ArkWebHandlerImpl::OnFocus(int source)
812 {
813 return nweb_handler_->OnFocus(static_cast<ArkWebFocusSource>(source));
814 }
815
OnOverScroll(float xOffset,float yOffset,float xVelocity,float yVelocity)816 bool ArkWebHandlerImpl::OnOverScroll(float xOffset, float yOffset, float xVelocity, float yVelocity)
817 {
818 return nweb_handler_->OnOverScroll(xOffset, yOffset, xVelocity, yVelocity);
819 }
820
CreateOverlay(void * data,size_t len,int width,int height,int offset_x,int offset_y,int rect_width,int rect_height,int point_x,int point_y)821 void ArkWebHandlerImpl::CreateOverlay(void* data, size_t len, int width, int height, int offset_x, int offset_y,
822 int rect_width, int rect_height, int point_x, int point_y)
823 {
824 nweb_handler_->CreateOverlay(
825 data, len, width, height, offset_x, offset_y, rect_width, rect_height, point_x, point_y);
826 }
827
OnOverlayStateChanged(int offset_x,int offset_y,int rect_width,int rect_height)828 void ArkWebHandlerImpl::OnOverlayStateChanged(int offset_x, int offset_y, int rect_width, int rect_height)
829 {
830 nweb_handler_->OnOverlayStateChanged(offset_x, offset_y, rect_width, rect_height);
831 }
832
OnAdsBlocked(const ArkWebString & url,const ArkWebStringVector & adsBlocked)833 void ArkWebHandlerImpl::OnAdsBlocked(const ArkWebString& url, const ArkWebStringVector& adsBlocked)
834 {
835 nweb_handler_->OnAdsBlocked(ArkWebStringStructToClass(url), ArkWebStringVectorStructToClass(adsBlocked));
836 }
837
OnInterceptKeyboardAttach(ArkWebRefPtr<ArkWebCustomKeyboardHandler> keyboardHandler,const ArkWebStringMap & attributes,bool & useSystemKeyboard,int32_t & enterKeyType)838 void ArkWebHandlerImpl::OnInterceptKeyboardAttach(ArkWebRefPtr<ArkWebCustomKeyboardHandler> keyboardHandler,
839 const ArkWebStringMap& attributes, bool& useSystemKeyboard, int32_t& enterKeyType)
840 {
841 if (CHECK_REF_PTR_IS_NULL(keyboardHandler)) {
842 return nweb_handler_->OnInterceptKeyboardAttach(
843 nullptr, ArkWebStringMapStructToClass(attributes), useSystemKeyboard, enterKeyType);
844 }
845
846 nweb_handler_->OnInterceptKeyboardAttach(std::make_shared<ArkWebCustomKeyboardHandlerWrapper>(keyboardHandler),
847 ArkWebStringMapStructToClass(attributes), useSystemKeyboard, enterKeyType);
848 }
849
OnCustomKeyboardAttach()850 void ArkWebHandlerImpl::OnCustomKeyboardAttach()
851 {
852 nweb_handler_->OnCustomKeyboardAttach();
853 }
854
OnCustomKeyboardClose()855 void ArkWebHandlerImpl::OnCustomKeyboardClose()
856 {
857 nweb_handler_->OnCustomKeyboardClose();
858 }
859
KeyboardReDispatch(ArkWebRefPtr<ArkWebKeyEvent> event,bool isUsed)860 void ArkWebHandlerImpl::KeyboardReDispatch(ArkWebRefPtr<ArkWebKeyEvent> event, bool isUsed)
861 {
862 if (CHECK_REF_PTR_IS_NULL(event)) {
863 nweb_handler_->KeyboardReDispatch(nullptr, isUsed);
864 return;
865 }
866
867 nweb_handler_->KeyboardReDispatch(std::make_shared<ArkWebKeyEventWrapper>(event), isUsed);
868 }
869
HideHandleAndQuickMenuIfNecessary(bool hide)870 void ArkWebHandlerImpl::HideHandleAndQuickMenuIfNecessary(bool hide)
871 {
872 nweb_handler_->HideHandleAndQuickMenuIfNecessary(hide);
873 }
874
OnCursorUpdate(double x,double y,double width,double height)875 void ArkWebHandlerImpl::OnCursorUpdate(double x, double y, double width, double height)
876 {
877 nweb_handler_->OnCursorUpdate(x, y, width, height);
878 }
879
ChangeVisibilityOfQuickMenu()880 void ArkWebHandlerImpl::ChangeVisibilityOfQuickMenu()
881 {
882 nweb_handler_->ChangeVisibilityOfQuickMenu();
883 }
884
StartVibraFeedback(const ArkWebString & vibratorType)885 void ArkWebHandlerImpl::StartVibraFeedback(const ArkWebString& vibratorType)
886 {
887 nweb_handler_->StartVibraFeedback(ArkWebStringStructToClass(vibratorType));
888 }
889
OnNativeEmbedVisibilityChange(const ArkWebString & embed_id,bool visibility)890 void ArkWebHandlerImpl::OnNativeEmbedVisibilityChange(const ArkWebString& embed_id, bool visibility)
891 {
892 nweb_handler_->OnNativeEmbedVisibilityChange(ArkWebStringStructToClass(embed_id), visibility);
893 }
894
CloseImageOverlaySelection()895 bool ArkWebHandlerImpl::CloseImageOverlaySelection()
896 {
897 return nweb_handler_->CloseImageOverlaySelection();
898 }
899
GetVisibleRectToWeb(int & visibleX,int & visibleY,int & visibleWidth,int & visibleHeight)900 void ArkWebHandlerImpl::GetVisibleRectToWeb(int& visibleX, int& visibleY, int& visibleWidth, int& visibleHeight)
901 {
902 nweb_handler_->GetVisibleRectToWeb(visibleX, visibleY, visibleWidth, visibleHeight);
903 }
904
OnScrollStart(const float x,const float y)905 void ArkWebHandlerImpl::OnScrollStart(const float x, const float y)
906 {
907 nweb_handler_->OnScrollStart(x, y);
908 }
909 } // namespace OHOS::ArkWeb
910