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_preference_impl.h"
17
18 #include "base/bridge/ark_web_bridge_macros.h"
19
20 namespace OHOS::ArkWeb {
21
22 using ArkWebAccessMode = OHOS::NWeb::NWebPreference::AccessMode;
23 using ArkWebCacheModeFlag = OHOS::NWeb::NWebPreference::CacheModeFlag;
24 using ArkWebCopyOptionMode = OHOS::NWeb::NWebPreference::CopyOptionMode;
25
ArkWebPreferenceImpl(std::shared_ptr<OHOS::NWeb::NWebPreference> nweb_preference)26 ArkWebPreferenceImpl::ArkWebPreferenceImpl(std::shared_ptr<OHOS::NWeb::NWebPreference> nweb_preference)
27 : nweb_preference_(nweb_preference)
28 {}
29
UserAgent()30 ArkWebString ArkWebPreferenceImpl::UserAgent()
31 {
32 return ArkWebStringClassToStruct(nweb_preference_->UserAgent());
33 }
34
PutUserAgent(const ArkWebString & ua)35 void ArkWebPreferenceImpl::PutUserAgent(const ArkWebString& ua)
36 {
37 nweb_preference_->PutUserAgent(ArkWebStringStructToClass(ua));
38 }
39
DefaultUserAgent()40 ArkWebString ArkWebPreferenceImpl::DefaultUserAgent()
41 {
42 return ArkWebStringClassToStruct(nweb_preference_->DefaultUserAgent());
43 }
44
CacheMode()45 int ArkWebPreferenceImpl::CacheMode()
46 {
47 return static_cast<int>(nweb_preference_->CacheMode());
48 }
49
PutCacheMode(int flag)50 void ArkWebPreferenceImpl::PutCacheMode(int flag)
51 {
52 nweb_preference_->PutCacheMode(static_cast<ArkWebCacheModeFlag>(flag));
53 }
54
IsNetworkBlocked()55 bool ArkWebPreferenceImpl::IsNetworkBlocked()
56 {
57 return nweb_preference_->IsNetworkBlocked();
58 }
59
PutBlockNetwork(bool flag)60 void ArkWebPreferenceImpl::PutBlockNetwork(bool flag)
61 {
62 nweb_preference_->PutBlockNetwork(flag);
63 }
64
GetScrollBarColor()65 uint32_t ArkWebPreferenceImpl::GetScrollBarColor()
66 {
67 return nweb_preference_->GetScrollBarColor();
68 }
69
PutScrollBarColor(uint32_t color_value)70 void ArkWebPreferenceImpl::PutScrollBarColor(uint32_t color_value)
71 {
72 nweb_preference_->PutScrollBarColor(color_value);
73 }
74
GetOverscrollMode()75 int ArkWebPreferenceImpl::GetOverscrollMode()
76 {
77 return nweb_preference_->GetOverscrollMode();
78 }
79
PutOverscrollMode(int over_scroll_mode)80 void ArkWebPreferenceImpl::PutOverscrollMode(int over_scroll_mode)
81 {
82 nweb_preference_->PutOverscrollMode(over_scroll_mode);
83 }
84
DefaultFontSize()85 int ArkWebPreferenceImpl::DefaultFontSize()
86 {
87 return nweb_preference_->DefaultFontSize();
88 }
89
PutDefaultFontSize(int size)90 void ArkWebPreferenceImpl::PutDefaultFontSize(int size)
91 {
92 nweb_preference_->PutDefaultFontSize(size);
93 }
94
GetPinchSmoothMode()95 bool ArkWebPreferenceImpl::GetPinchSmoothMode()
96 {
97 return nweb_preference_->GetPinchSmoothMode();
98 }
99
PutPinchSmoothMode(bool flag)100 void ArkWebPreferenceImpl::PutPinchSmoothMode(bool flag)
101 {
102 nweb_preference_->PutPinchSmoothMode(flag);
103 }
104
IsDataBaseEnabled()105 bool ArkWebPreferenceImpl::IsDataBaseEnabled()
106 {
107 return nweb_preference_->IsDataBaseEnabled();
108 }
109
PutDatabaseAllowed(bool flag)110 void ArkWebPreferenceImpl::PutDatabaseAllowed(bool flag)
111 {
112 nweb_preference_->PutDatabaseAllowed(flag);
113 }
114
IsMultiWindowAccess()115 bool ArkWebPreferenceImpl::IsMultiWindowAccess()
116 {
117 return nweb_preference_->IsMultiWindowAccess();
118 }
119
PutMultiWindowAccess(bool flag)120 void ArkWebPreferenceImpl::PutMultiWindowAccess(bool flag)
121 {
122 nweb_preference_->PutMultiWindowAccess(flag);
123 }
124
IsJavaScriptAllowed()125 bool ArkWebPreferenceImpl::IsJavaScriptAllowed()
126 {
127 return nweb_preference_->IsJavaScriptAllowed();
128 }
129
PutJavaScriptEnabled(bool flag)130 void ArkWebPreferenceImpl::PutJavaScriptEnabled(bool flag)
131 {
132 nweb_preference_->PutJavaScriptEnabled(flag);
133 }
134
DarkSchemeEnabled()135 int ArkWebPreferenceImpl::DarkSchemeEnabled()
136 {
137 return nweb_preference_->DarkSchemeEnabled();
138 }
139
PutDarkSchemeEnabled(int dark_scheme)140 void ArkWebPreferenceImpl::PutDarkSchemeEnabled(int dark_scheme)
141 {
142 nweb_preference_->PutDarkSchemeEnabled(dark_scheme);
143 }
144
IsDomStorageEnabled()145 bool ArkWebPreferenceImpl::IsDomStorageEnabled()
146 {
147 return nweb_preference_->IsDomStorageEnabled();
148 }
149
PutDomStorageEnabled(bool flag)150 void ArkWebPreferenceImpl::PutDomStorageEnabled(bool flag)
151 {
152 nweb_preference_->PutDomStorageEnabled(flag);
153 }
154
FontSizeLowerLimit()155 int ArkWebPreferenceImpl::FontSizeLowerLimit()
156 {
157 return nweb_preference_->FontSizeLowerLimit();
158 }
159
PutFontSizeLowerLimit(int size)160 void ArkWebPreferenceImpl::PutFontSizeLowerLimit(int size)
161 {
162 nweb_preference_->PutFontSizeLowerLimit(size);
163 }
164
GeoLocationAllowed()165 bool ArkWebPreferenceImpl::GeoLocationAllowed()
166 {
167 return nweb_preference_->GeolocationAllowed();
168 }
169
PutGeoLocationAllowed(bool flag)170 void ArkWebPreferenceImpl::PutGeoLocationAllowed(bool flag)
171 {
172 nweb_preference_->PutGeolocationAllowed(flag);
173 }
174
IsWebDebuggingAccess()175 bool ArkWebPreferenceImpl::IsWebDebuggingAccess()
176 {
177 return nweb_preference_->IsWebDebuggingAccess();
178 }
179
PutWebDebuggingAccess(bool flag)180 void ArkWebPreferenceImpl::PutWebDebuggingAccess(bool flag)
181 {
182 nweb_preference_->PutWebDebuggingAccess(flag);
183 }
184
EnableContentAccess()185 bool ArkWebPreferenceImpl::EnableContentAccess()
186 {
187 return nweb_preference_->EnableContentAccess();
188 }
189
PutEnableContentAccess(bool flag)190 void ArkWebPreferenceImpl::PutEnableContentAccess(bool flag)
191 {
192 nweb_preference_->PutEnableContentAccess(flag);
193 }
194
EnableRawFileAccess()195 bool ArkWebPreferenceImpl::EnableRawFileAccess()
196 {
197 return nweb_preference_->EnableRawFileAccess();
198 }
199
PutEnableRawFileAccess(bool flag)200 void ArkWebPreferenceImpl::PutEnableRawFileAccess(bool flag)
201 {
202 nweb_preference_->PutEnableRawFileAccess(flag);
203 }
204
IsImageLoadingAllowed()205 bool ArkWebPreferenceImpl::IsImageLoadingAllowed()
206 {
207 return nweb_preference_->IsImageLoadingAllowed();
208 }
209
PutImageLoadingAllowed(bool flag)210 void ArkWebPreferenceImpl::PutImageLoadingAllowed(bool flag)
211 {
212 nweb_preference_->PutImageLoadingAllowed(flag);
213 }
214
FixedFontFamilyName()215 ArkWebString ArkWebPreferenceImpl::FixedFontFamilyName()
216 {
217 return ArkWebStringClassToStruct(nweb_preference_->FixedFontFamilyName());
218 }
219
PutFixedFontFamilyName(const ArkWebString & font)220 void ArkWebPreferenceImpl::PutFixedFontFamilyName(const ArkWebString& font)
221 {
222 nweb_preference_->PutFixedFontFamilyName(ArkWebStringStructToClass(font));
223 }
224
SerifFontFamilyName()225 ArkWebString ArkWebPreferenceImpl::SerifFontFamilyName()
226 {
227 return ArkWebStringClassToStruct(nweb_preference_->SerifFontFamilyName());
228 }
229
PutSerifFontFamilyName(const ArkWebString & font)230 void ArkWebPreferenceImpl::PutSerifFontFamilyName(const ArkWebString& font)
231 {
232 nweb_preference_->PutSerifFontFamilyName(ArkWebStringStructToClass(font));
233 }
234
ZoomingForTextFactor()235 int ArkWebPreferenceImpl::ZoomingForTextFactor()
236 {
237 return nweb_preference_->ZoomingForTextFactor();
238 }
239
PutZoomingForTextFactor(int text_zoom)240 void ArkWebPreferenceImpl::PutZoomingForTextFactor(int text_zoom)
241 {
242 nweb_preference_->PutZoomingForTextFactor(text_zoom);
243 }
244
ForceDarkModeEnabled()245 int ArkWebPreferenceImpl::ForceDarkModeEnabled()
246 {
247 return nweb_preference_->ForceDarkModeEnabled();
248 }
249
PutForceDarkModeEnabled(int force_dark)250 void ArkWebPreferenceImpl::PutForceDarkModeEnabled(int force_dark)
251 {
252 nweb_preference_->PutForceDarkModeEnabled(force_dark);
253 }
254
IsLoadWithOverviewMode()255 bool ArkWebPreferenceImpl::IsLoadWithOverviewMode()
256 {
257 return nweb_preference_->IsLoadWithOverviewMode();
258 }
259
PutLoadWithOverviewMode(bool flag)260 void ArkWebPreferenceImpl::PutLoadWithOverviewMode(bool flag)
261 {
262 nweb_preference_->PutLoadWithOverviewMode(flag);
263 }
264
DefaultFixedFontSize()265 int ArkWebPreferenceImpl::DefaultFixedFontSize()
266 {
267 return nweb_preference_->DefaultFixedFontSize();
268 }
269
PutDefaultFixedFontSize(int size)270 void ArkWebPreferenceImpl::PutDefaultFixedFontSize(int size)
271 {
272 nweb_preference_->PutDefaultFixedFontSize(size);
273 }
274
CursiveFontFamilyName()275 ArkWebString ArkWebPreferenceImpl::CursiveFontFamilyName()
276 {
277 return ArkWebStringClassToStruct(nweb_preference_->CursiveFontFamilyName());
278 }
279
PutCursiveFontFamilyName(const ArkWebString & font)280 void ArkWebPreferenceImpl::PutCursiveFontFamilyName(const ArkWebString& font)
281 {
282 nweb_preference_->PutCursiveFontFamilyName(ArkWebStringStructToClass(font));
283 }
284
FantasyFontFamilyName()285 ArkWebString ArkWebPreferenceImpl::FantasyFontFamilyName()
286 {
287 return ArkWebStringClassToStruct(nweb_preference_->FantasyFontFamilyName());
288 }
289
PutFantasyFontFamilyName(const ArkWebString & font)290 void ArkWebPreferenceImpl::PutFantasyFontFamilyName(const ArkWebString& font)
291 {
292 nweb_preference_->PutFantasyFontFamilyName(ArkWebStringStructToClass(font));
293 }
294
ZoomingfunctionEnabled()295 bool ArkWebPreferenceImpl::ZoomingfunctionEnabled()
296 {
297 return nweb_preference_->ZoomingfunctionEnabled();
298 }
299
PutZoomingFunctionEnabled(bool flag)300 void ArkWebPreferenceImpl::PutZoomingFunctionEnabled(bool flag)
301 {
302 nweb_preference_->PutZoomingFunctionEnabled(flag);
303 }
304
GetMediaPlayGestureAccess()305 bool ArkWebPreferenceImpl::GetMediaPlayGestureAccess()
306 {
307 return nweb_preference_->GetMediaPlayGestureAccess();
308 }
309
PutMediaPlayGestureAccess(bool flag)310 void ArkWebPreferenceImpl::PutMediaPlayGestureAccess(bool flag)
311 {
312 nweb_preference_->PutMediaPlayGestureAccess(flag);
313 }
314
StandardFontFamilyName()315 ArkWebString ArkWebPreferenceImpl::StandardFontFamilyName()
316 {
317 return ArkWebStringClassToStruct(nweb_preference_->StandardFontFamilyName());
318 }
319
PutStandardFontFamilyName(const ArkWebString & font)320 void ArkWebPreferenceImpl::PutStandardFontFamilyName(const ArkWebString& font)
321 {
322 nweb_preference_->PutStandardFontFamilyName(ArkWebStringStructToClass(font));
323 }
324
SansSerifFontFamilyName()325 ArkWebString ArkWebPreferenceImpl::SansSerifFontFamilyName()
326 {
327 return ArkWebStringClassToStruct(nweb_preference_->SansSerifFontFamilyName());
328 }
329
PutSansSerifFontFamilyName(const ArkWebString & font)330 void ArkWebPreferenceImpl::PutSansSerifFontFamilyName(const ArkWebString& font)
331 {
332 nweb_preference_->PutSansSerifFontFamilyName(ArkWebStringStructToClass(font));
333 }
334
IsVerticalScrollBarAccess()335 bool ArkWebPreferenceImpl::IsVerticalScrollBarAccess()
336 {
337 return nweb_preference_->IsVerticalScrollBarAccess();
338 }
339
PutVerticalScrollBarAccess(bool flag)340 void ArkWebPreferenceImpl::PutVerticalScrollBarAccess(bool flag)
341 {
342 nweb_preference_->PutVerticalScrollBarAccess(flag);
343 }
344
IsHorizontalScrollBarAccess()345 bool ArkWebPreferenceImpl::IsHorizontalScrollBarAccess()
346 {
347 return nweb_preference_->IsHorizontalScrollBarAccess();
348 }
349
PutHorizontalScrollBarAccess(bool flag)350 void ArkWebPreferenceImpl::PutHorizontalScrollBarAccess(bool flag)
351 {
352 nweb_preference_->PutHorizontalScrollBarAccess(flag);
353 }
354
LogicalFontSizeLowerLimit()355 int ArkWebPreferenceImpl::LogicalFontSizeLowerLimit()
356 {
357 return nweb_preference_->LogicalFontSizeLowerLimit();
358 }
359
PutLogicalFontSizeLowerLimit(int size)360 void ArkWebPreferenceImpl::PutLogicalFontSizeLowerLimit(int size)
361 {
362 nweb_preference_->PutLogicalFontSizeLowerLimit(size);
363 }
364
DefaultTextEncodingFormat()365 ArkWebString ArkWebPreferenceImpl::DefaultTextEncodingFormat()
366 {
367 return ArkWebStringClassToStruct(nweb_preference_->DefaultTextEncodingFormat());
368 }
369
PutDefaultTextEncodingFormat(const ArkWebString & encoding)370 void ArkWebPreferenceImpl::PutDefaultTextEncodingFormat(const ArkWebString& encoding)
371 {
372 nweb_preference_->PutDefaultTextEncodingFormat(ArkWebStringStructToClass(encoding));
373 }
374
IsLoadImageFromNetworkDisabled()375 bool ArkWebPreferenceImpl::IsLoadImageFromNetworkDisabled()
376 {
377 return nweb_preference_->IsLoadImageFromNetworkDisabled();
378 }
379
PutLoadImageFromNetworkDisabled(bool flag)380 void ArkWebPreferenceImpl::PutLoadImageFromNetworkDisabled(bool flag)
381 {
382 nweb_preference_->PutLoadImageFromNetworkDisabled(flag);
383 }
384
EnableRawFileAccessFromFileURLs()385 bool ArkWebPreferenceImpl::EnableRawFileAccessFromFileURLs()
386 {
387 return nweb_preference_->EnableRawFileAccessFromFileURLs();
388 }
389
PutEnableRawFileAccessFromFileURLs(bool flag)390 void ArkWebPreferenceImpl::PutEnableRawFileAccessFromFileURLs(bool flag)
391 {
392 nweb_preference_->PutEnableRawFileAccessFromFileURLs(flag);
393 }
394
EnableUniversalAccessFromFileURLs()395 bool ArkWebPreferenceImpl::EnableUniversalAccessFromFileURLs()
396 {
397 return nweb_preference_->EnableUniversalAccessFromFileURLs();
398 }
399
PutEnableUniversalAccessFromFileURLs(bool flag)400 void ArkWebPreferenceImpl::PutEnableUniversalAccessFromFileURLs(bool flag)
401 {
402 nweb_preference_->PutEnableUniversalAccessFromFileURLs(flag);
403 }
404
IsCreateWindowsByJavaScriptAllowed()405 bool ArkWebPreferenceImpl::IsCreateWindowsByJavaScriptAllowed()
406 {
407 return nweb_preference_->IsCreateWindowsByJavaScriptAllowed();
408 }
409
PutIsCreateWindowsByJavaScriptAllowed(bool flag)410 void ArkWebPreferenceImpl::PutIsCreateWindowsByJavaScriptAllowed(bool flag)
411 {
412 nweb_preference_->PutIsCreateWindowsByJavaScriptAllowed(flag);
413 }
414
AccessModeForSecureOriginLoadFromInsecure()415 int ArkWebPreferenceImpl::AccessModeForSecureOriginLoadFromInsecure()
416 {
417 return static_cast<int>(nweb_preference_->AccessModeForSecureOriginLoadFromInsecure());
418 }
419
PutAccessModeForSecureOriginLoadFromInsecure(int mode)420 void ArkWebPreferenceImpl::PutAccessModeForSecureOriginLoadFromInsecure(int mode)
421 {
422 nweb_preference_->PutAccessModeForSecureOriginLoadFromInsecure(static_cast<ArkWebAccessMode>(mode));
423 }
424
GetCopyOptionMode()425 int ArkWebPreferenceImpl::GetCopyOptionMode()
426 {
427 return static_cast<int>(nweb_preference_->GetCopyOptionMode());
428 }
429
PutCopyOptionMode(int copyOption)430 void ArkWebPreferenceImpl::PutCopyOptionMode(int copyOption)
431 {
432 nweb_preference_->PutCopyOptionMode(static_cast<ArkWebCopyOptionMode>(copyOption));
433 }
434
SetNativeEmbedMode(bool flag)435 void ArkWebPreferenceImpl::SetNativeEmbedMode(bool flag)
436 {
437 nweb_preference_->SetNativeEmbedMode(flag);
438 }
439
GetNativeEmbedMode()440 bool ArkWebPreferenceImpl::GetNativeEmbedMode()
441 {
442 return nweb_preference_->GetNativeEmbedMode();
443 }
444
RegisterNativeEmbedRule(const ArkWebString & tag,const ArkWebString & type)445 void ArkWebPreferenceImpl::RegisterNativeEmbedRule(const ArkWebString& tag, const ArkWebString& type)
446 {
447 nweb_preference_->RegisterNativeEmbedRule(ArkWebStringStructToClass(tag), ArkWebStringStructToClass(type));
448 }
449
SetScrollable(bool enable)450 void ArkWebPreferenceImpl::SetScrollable(bool enable)
451 {
452 nweb_preference_->SetScrollable(enable);
453 }
454
GetScrollable()455 bool ArkWebPreferenceImpl::GetScrollable()
456 {
457 return nweb_preference_->GetScrollable();
458 }
459
PutTextAutosizingEnabled(bool flag)460 void ArkWebPreferenceImpl::PutTextAutosizingEnabled(bool flag)
461 {
462 nweb_preference_->PutTextAutosizingEnabled(flag);
463 }
464
SetViewportEnable(bool enable)465 void ArkWebPreferenceImpl::SetViewportEnable(bool enable)
466 {
467 nweb_preference_->SetViewportEnable(enable);
468 }
469
SetNativeVideoPlayerConfig(bool enable,bool shouldOverlay)470 void ArkWebPreferenceImpl::SetNativeVideoPlayerConfig(bool enable, bool shouldOverlay)
471 {
472 nweb_preference_->SetNativeVideoPlayerConfig(enable, shouldOverlay);
473 }
474
GetSurfaceId()475 ArkWebString ArkWebPreferenceImpl::GetSurfaceId()
476 {
477 std::string surfaceId = nweb_preference_->GetSurfaceId();
478 return ArkWebStringClassToStruct(surfaceId);
479 }
480
SetSurfaceId(const ArkWebString & surfaceId)481 void ArkWebPreferenceImpl::SetSurfaceId(const ArkWebString& surfaceId)
482 {
483 nweb_preference_->SetSurfaceId(ArkWebStringStructToClass(surfaceId));
484 }
485
PutOverlayScrollbarEnabled(bool enable)486 void ArkWebPreferenceImpl::PutOverlayScrollbarEnabled(bool enable)
487 {
488 nweb_preference_->PutOverlayScrollbarEnabled(enable);
489 }
490
SetScrollable(bool enable,int32_t scrollType)491 void ArkWebPreferenceImpl::SetScrollable(bool enable, int32_t scrollType)
492 {
493 nweb_preference_->SetScrollable(enable, scrollType);
494 }
495
SetBlurOnKeyboardHideMode(int enable)496 void ArkWebPreferenceImpl::SetBlurOnKeyboardHideMode(int enable)
497 {
498 nweb_preference_->SetBlurOnKeyboardHideMode(enable);
499 }
500
501 } // namespace OHOS::ArkWeb
502