2 * Copyright (C) 2013-2016 Samsung Electronics. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY SAMSUNG ELECTRONICS. AND ITS CONTRIBUTORS
14 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
15 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SAMSUNG ELECTRONICS. OR ITS
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 #include "ewk_settings_product.h"
27 #include "base/strings/string_util.h"
28 #include "eweb_view.h"
29 #include "private/ewk_private.h"
30 #include "private/ewk_settings_private.h"
31 #include "private/ewk_view_private.h"
32 #include "text_encoding_map_efl.h"
33 #include "tizen/system_info.h"
34 #include "ui/events/gesture_detection/gesture_configuration.h"
38 void ewkUpdateWebkitPreferences(Evas_Object *ewkView)
40 EWebView* impl = EWebView::FromEvasObject(ewkView);
43 impl->UpdateWebKitPreferences();
48 Eina_Bool ewk_settings_fullscreen_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
50 LOG_EWK_API_MOCKUP("Not Supported by chromium");
54 Eina_Bool ewk_settings_fullscreen_enabled_get(const Ewk_Settings* settings)
56 LOG_EWK_API_MOCKUP("Not Supported by chromium");
60 Eina_Bool ewk_settings_javascript_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
62 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
63 settings->getPreferences().javascript_enabled = enable;
64 ewkUpdateWebkitPreferences(settings->getEvasObject());
68 Eina_Bool ewk_settings_javascript_enabled_get(const Ewk_Settings* settings)
70 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
71 return settings->getPreferences().javascript_enabled;
74 Eina_Bool ewk_settings_loads_images_automatically_set(Ewk_Settings* settings, Eina_Bool automatic)
76 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
77 settings->getPreferences().loads_images_automatically = automatic;
78 settings->getPreferences().images_enabled = automatic;
79 ewkUpdateWebkitPreferences(settings->getEvasObject());
83 Eina_Bool ewk_settings_loads_images_automatically_get(const Ewk_Settings* settings)
85 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
86 return settings->getPreferences().loads_images_automatically;
89 Eina_Bool ewk_settings_plugins_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
91 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
92 settings->getPreferences().plugins_enabled = enable;
93 ewkUpdateWebkitPreferences(settings->getEvasObject());
97 Eina_Bool ewk_settings_plugins_enabled_get(const Ewk_Settings* settings)
99 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
100 return settings->getPreferences().plugins_enabled;
103 Eina_Bool ewk_settings_auto_fitting_set(Ewk_Settings* settings, Eina_Bool enable)
105 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
106 settings->getPreferences().shrinks_viewport_contents_to_fit = enable;
107 ewkUpdateWebkitPreferences(settings->getEvasObject());
111 Eina_Bool ewk_settings_auto_fitting_get(const Ewk_Settings* settings)
113 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
114 return settings->getPreferences().shrinks_viewport_contents_to_fit;
117 Eina_Bool ewk_settings_force_zoom_set(Ewk_Settings* settings, Eina_Bool enable)
119 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
120 settings->getPreferences().force_enable_zoom = enable;
121 ewkUpdateWebkitPreferences(settings->getEvasObject());
125 Eina_Bool ewk_settings_force_zoom_get(const Ewk_Settings* settings)
127 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
128 return settings->getPreferences().force_enable_zoom;
131 Eina_Bool ewk_settings_font_default_size_set(Ewk_Settings* settings, int size)
133 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
134 settings->getPreferences().default_font_size = size;
135 ewkUpdateWebkitPreferences(settings->getEvasObject());
139 int ewk_settings_font_default_size_get(const Ewk_Settings* settings)
141 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
142 return settings->getPreferences().default_font_size;
145 Eina_Bool ewk_settings_scripts_window_open_set(Ewk_Settings* settings, Eina_Bool allow)
147 return ewk_settings_scripts_can_open_windows_set(settings, allow);
150 Eina_Bool ewk_settings_scripts_window_open_get(const Ewk_Settings* settings)
152 return ewk_settings_scripts_can_open_windows_get(settings);
155 Eina_Bool ewk_settings_compositing_borders_visible_set(Ewk_Settings* settings, Eina_Bool enable)
158 This API is impossible to implement in same manner as it was in webkit-efl
159 for few reasons: chromium made compositing-borders-visible setting global - it
160 is either enabled or disabled for whole process, it requires application restart
161 because it is controled by command line switch. It must be provided before
162 spawning any renderer/zygote processes
165 LOG_EWK_API_MOCKUP("Not implement by difference of webkit2 and chromium's behavior");
169 Eina_Bool ewk_settings_default_encoding_set(Ewk_Settings* settings, const char* encoding)
171 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
172 EINA_SAFETY_ON_NULL_RETURN_VAL(encoding, false);
173 settings->getPreferences().default_encoding = std::string(encoding);
174 ewkUpdateWebkitPreferences(settings->getEvasObject());
178 Eina_Bool ewk_settings_is_encoding_valid(const char* encoding)
180 return TextEncodingMapEfl::GetInstance()->isTextEncodingValid(encoding);
183 const char* ewk_settings_default_encoding_get(const Ewk_Settings* settings)
185 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, 0);
186 return settings->getPreferences().default_encoding.c_str();
189 Eina_Bool ewk_settings_private_browsing_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
191 #if BUILDFLAG(IS_TIZEN_TV)
192 LOG_EWK_API_DEPRECATED("Use ewk_view_add_in_incognito_mode() instead.");
193 #elif BUILDFLAG(IS_TIZEN)
194 if (IsMobileProfile()) {
195 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
196 EWebView* impl = EWebView::FromEvasObject(settings->getEvasObject());
197 return impl->SetPrivateBrowsing(enable);
203 Eina_Bool ewk_settings_private_browsing_enabled_get(const Ewk_Settings* settings)
205 #if BUILDFLAG(IS_TIZEN_TV)
206 LOG_EWK_API_DEPRECATED("Use ewk_view_add_in_incognito_mode() instead.");
207 #elif BUILDFLAG(IS_TIZEN)
208 if (IsMobileProfile()) {
209 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
210 EWK_VIEW_IMPL_GET_OR_RETURN(
211 const_cast<Ewk_Settings*>(settings)->getEvasObject(), webview,
213 return webview->GetPrivateBrowsing();
219 Eina_Bool ewk_settings_editable_link_behavior_set(Ewk_Settings* settings, Ewk_Editable_Link_Behavior behavior)
221 LOG_EWK_API_MOCKUP("Not Supported by chromium");
225 Eina_Bool ewk_settings_load_remote_images_set(Ewk_Settings* settings, Eina_Bool loadRemoteImages)
227 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
228 // FIXME: To be implemented when the functionality is required.
229 // To be added in WebkitPreferences -> WebSettings -> Settings
230 settings->setLoadRemoteImages(loadRemoteImages);
234 Eina_Bool ewk_settings_load_remote_images_get(const Ewk_Settings* settings)
236 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
237 // FIXME: To be implemented when the functionality is required.
238 // To be added in WebkitPreferences -> WebSettings -> Settings
239 return settings->loadRemoteImages();
242 Eina_Bool ewk_settings_scan_malware_enabled_set(Ewk_Settings* settings, Eina_Bool scanMalwareEnabled)
244 // API is postponed. Possibly chromium's mechanism may be reused.
245 LOG_EWK_API_MOCKUP("Not Supported yet");
249 Eina_Bool ewk_settings_spdy_enabled_set(Ewk_Settings* settings, Eina_Bool spdyEnabled)
251 LOG_EWK_API_DEPRECATED("This API is deprecated, not Supported by chromium. spdy is deprecated in m50 and replace with HTTP2 handling.");
255 Eina_Bool ewk_settings_spdy_enabled_get(Ewk_Settings *settings)
257 LOG_EWK_API_DEPRECATED("This API is deprecated, not Supported by chromium. spdy is deprecated in m50 and replace with HTTP2 handling.");
261 Eina_Bool ewk_settings_performance_features_enabled_set(Ewk_Settings* settings, Eina_Bool spdyEnabled)
265 // This function was used to set some libsoup settings.
266 // Chromium doesn't use libsoup.
267 LOG_EWK_API_MOCKUP("Not Supported by chromium");
271 Eina_Bool ewk_settings_performance_features_enabled_get(const Ewk_Settings* settings)
273 LOG_EWK_API_MOCKUP();
277 void ewk_settings_link_magnifier_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
279 EINA_SAFETY_ON_NULL_RETURN(settings);
280 EWK_VIEW_IMPL_GET_OR_RETURN(settings->getEvasObject(), webview);
282 webview->SetLinkMagnifierEnabled(enabled);
285 Eina_Bool ewk_settings_link_magnifier_enabled_get(const Ewk_Settings *settings)
287 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
288 EWK_VIEW_IMPL_GET_OR_RETURN(const_cast<Ewk_Settings *>(settings)->getEvasObject(), webview, EINA_FALSE);
290 return webview->GetLinkMagnifierEnabled();
293 Eina_Bool ewk_settings_link_effect_enabled_set(Ewk_Settings* settings,
295 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
296 settings->getPreferences().link_effect_enabled = enable;
297 ewkUpdateWebkitPreferences(settings->getEvasObject());
301 Eina_Bool ewk_settings_link_effect_enabled_get(const Ewk_Settings* settings)
303 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
304 return settings->getPreferences().link_effect_enabled;
307 Eina_Bool ewk_settings_uses_encoding_detector_set(Ewk_Settings* settings, Eina_Bool use)
309 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
310 settings->getPreferences().uses_encoding_detector = use;
311 ewkUpdateWebkitPreferences(settings->getEvasObject());
315 Eina_Bool ewk_settings_uses_encoding_detector_get(const Ewk_Settings* settings)
317 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
318 return settings->getPreferences().uses_encoding_detector;
321 Eina_Bool ewk_settings_default_keypad_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
323 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
325 settings->setEnableDefaultKeypad(enable);
330 Eina_Bool ewk_settings_default_keypad_enabled_get(const Ewk_Settings* settings)
332 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
334 return settings->defaultKeypadEnabled();
337 Eina_Bool ewk_settings_uses_keypad_without_user_action_set(Ewk_Settings* settings, Eina_Bool use)
339 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
340 settings->setUseKeyPadWithoutUserAction(use);
344 Eina_Bool ewk_settings_uses_keypad_without_user_action_get(const Ewk_Settings* settings)
346 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
347 return settings->useKeyPadWithoutUserAction();
350 Eina_Bool ewk_settings_text_zoom_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
352 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
353 settings->setTextZoomEnabled(enable);
357 Eina_Bool ewk_settings_text_zoom_enabled_get(const Ewk_Settings* settings)
359 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
360 return settings->textZoomEnabled();
363 Eina_Bool ewk_settings_autofill_password_form_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
365 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
366 settings->setAutofillPasswordForm(enable);
367 ewkUpdateWebkitPreferences(settings->getEvasObject());
371 Eina_Bool ewk_settings_autofill_password_form_enabled_get(Ewk_Settings* settings)
373 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
374 return settings->autofillPasswordForm();
377 Eina_Bool ewk_settings_form_candidate_data_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
379 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
380 settings->setFormCandidateData(enable);
384 Eina_Bool ewk_settings_form_candidate_data_enabled_get(Ewk_Settings* settings)
386 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
387 return settings->formCandidateData();
390 Eina_Bool ewk_settings_form_profile_data_enabled_set(Ewk_Settings *settings, Eina_Bool enable)
392 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
393 settings->setAutofillProfileForm(enable);
394 ewkUpdateWebkitPreferences(settings->getEvasObject());
398 Eina_Bool ewk_settings_form_profile_data_enabled_get(const Ewk_Settings *settings)
400 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
401 return settings->autofillProfileForm();
404 Eina_Bool ewk_settings_current_legacy_font_size_mode_set(Ewk_Settings *settings, Ewk_Legacy_Font_Size_Mode mode)
406 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
408 settings->setCurrentLegacyFontSizeMode(mode);
409 ewkUpdateWebkitPreferences(settings->getEvasObject());
413 Ewk_Legacy_Font_Size_Mode ewk_settings_current_legacy_font_size_mode_get(const Ewk_Settings *settings)
415 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EWK_LEGACY_FONT_SIZE_MODE_ONLY_IF_PIXEL_VALUES_MATCH);
416 return settings->currentLegacyFontSizeMode();
419 Eina_Bool ewk_settings_paste_image_uri_mode_set(Ewk_Settings *settings, Eina_Bool enable)
421 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
422 // FIXME: To be implemented when the functionality is required.
423 // To be added in WebkitPreferences -> WebSettings -> Settings
424 settings->setPasteImageUriEnabled(enable);
428 Eina_Bool ewk_settings_paste_image_uri_mode_get(const Ewk_Settings *settings)
430 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
431 // FIXME: To be implemented when the functionality is required.
432 // To be added in WebkitPreferences -> WebSettings -> Settings
433 return settings->pasteImageUriEnabled();
437 Eina_Bool ewk_settings_text_selection_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
439 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
440 settings->setTextSelectionEnabled(enable);
444 Eina_Bool ewk_settings_text_selection_enabled_get(const Ewk_Settings* settings)
446 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
447 return settings->textSelectionEnabled();
450 Eina_Bool ewk_settings_clear_text_selection_automatically_set(Ewk_Settings* settings, Eina_Bool enable)
452 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
453 settings->setAutoClearTextSelection(enable);
457 Eina_Bool ewk_settings_clear_text_selection_automatically_get(const Ewk_Settings* settings)
459 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
460 return settings->autoClearTextSelection();
463 Eina_Bool ewk_settings_text_autosizing_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
465 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
466 settings->getPreferences().text_autosizing_enabled = enable;
467 ewkUpdateWebkitPreferences(settings->getEvasObject());
471 Eina_Bool ewk_settings_text_autosizing_enabled_get(const Ewk_Settings* settings)
473 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
474 return settings->getPreferences().text_autosizing_enabled;
477 Eina_Bool ewk_settings_text_autosizing_font_scale_factor_set(Ewk_Settings* settings, double factor)
479 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
483 settings->getPreferences().font_scale_factor = factor;
484 ewkUpdateWebkitPreferences(settings->getEvasObject());
488 double ewk_settings_text_autosizing_font_scale_factor_get(const Ewk_Settings* settings)
490 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, -1.0);
491 return settings->getPreferences().font_scale_factor;
494 Eina_Bool ewk_settings_edge_effect_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
496 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
497 settings->setEdgeEffectEnabled(enable);
501 Eina_Bool ewk_settings_edge_effect_enabled_get(const Ewk_Settings* settings)
503 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
504 return settings->edgeEffectEnabled();
507 void ewk_settings_text_style_state_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
509 EINA_SAFETY_ON_NULL_RETURN(settings);
510 settings->setTextStyleStateState(enabled);
513 Eina_Bool ewk_settings_text_style_state_enabled_get(const Ewk_Settings* settings)
515 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
516 return settings->textStyleStateState();
519 Eina_Bool ewk_settings_select_word_automatically_set(Ewk_Settings* settings, Eina_Bool enable)
521 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
522 settings->setAutoSelectWord(enable);
523 ewkUpdateWebkitPreferences(settings->getEvasObject());
527 Eina_Bool ewk_settings_select_word_automatically_get(const Ewk_Settings* settings)
529 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
530 return settings->autoSelectWord();
533 Ewk_List_Style_Position ewk_settings_initial_list_style_position_get(const Ewk_Settings* settings)
535 LOG_EWK_API_MOCKUP("Not Supported by chromium");
536 return EWK_LIST_STYLE_POSITION_OUTSIDE;
539 Eina_Bool ewk_settings_initial_list_style_position_set(Ewk_Settings* settings, Ewk_List_Style_Position style)
541 LOG_EWK_API_MOCKUP("Not Supported by chromium");
545 Eina_Bool ewk_settings_webkit_text_size_adjust_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
547 // Chromium does not support CSS property "-webkit-text-size-adjust"
548 // and this API was created to disable this property.
549 // There is no need to implement this API.
550 LOG_EWK_API_MOCKUP("Not Supported by chromium");
554 // TODO: this API is gone in newer versions of webkit-efl
555 void ewk_settings_detect_contents_automatically_set(Ewk_Settings* settings, Eina_Bool enable)
557 LOG_EWK_API_MOCKUP("Not Supported by chromium");
560 Eina_Bool ewk_settings_detect_contents_automatically_get(const Ewk_Settings* settings)
562 LOG_EWK_API_MOCKUP("Not Supported by chromium");
566 void ewk_settings_cache_builder_enabled_set(Ewk_Settings *settings, Eina_Bool enabled)
569 EINA_SAFETY_ON_NULL_RETURN(settings);
570 settings->setCacheBuilderEnabled(enabled);
572 LOG_EWK_API_MOCKUP("Only for Tizen TV Browser");
576 int ewk_settings_default_font_size_get(const Ewk_Settings* settings)
578 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, 0);
579 return settings->getPreferences().default_font_size;
582 Eina_Bool ewk_settings_default_font_size_set(Ewk_Settings* settings, int size)
584 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
585 settings->getPreferences().default_font_size = size;
586 ewkUpdateWebkitPreferences(settings->getEvasObject());
590 const char* ewk_settings_default_text_encoding_name_get(const Ewk_Settings* settings)
592 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, NULL);
593 return settings->defaultTextEncoding();
596 Eina_Bool ewk_settings_default_text_encoding_name_set(Ewk_Settings* settings, const char* encoding)
598 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
599 EINA_SAFETY_ON_NULL_RETURN_VAL(encoding, false);
600 settings->setDefaultTextEncoding(encoding);
601 ewkUpdateWebkitPreferences(settings->getEvasObject());
605 Eina_Bool ewk_settings_scripts_can_open_windows_set(Ewk_Settings* settings, Eina_Bool enable)
607 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
608 settings->getPreferencesEfl().javascript_can_open_windows_automatically_ewk = enable;
609 ewkUpdateWebkitPreferences(settings->getEvasObject());
613 Eina_Bool ewk_settings_scripts_can_open_windows_get(const Ewk_Settings* settings)
615 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
616 return settings->getPreferencesEfl().javascript_can_open_windows_automatically_ewk;
619 Eina_Bool ewk_settings_encoding_detector_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
621 LOG_EWK_API_MOCKUP("for Tizen TV Browser");
625 Eina_Bool ewk_settings_extra_feature_get(const Ewk_Settings* settings, const char* feature)
627 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
628 EINA_SAFETY_ON_NULL_RETURN_VAL(feature, EINA_FALSE);
630 std::string feature_name(feature);
631 if (base::EqualsCaseInsensitiveASCII(feature_name, "edge,enable"))
632 return settings->edgeEffectEnabled();
633 else if (base::EqualsCaseInsensitiveASCII(feature_name, "zoom,enable"))
634 return settings->textZoomEnabled();
635 else if (base::EqualsCaseInsensitiveASCII(feature_name,
636 "selection,magnifier"))
637 return settings->getPreferences().selection_magnifier_enabled;
638 else if (base::EqualsCaseInsensitiveASCII(feature_name, "longpress,enable"))
639 return settings->getPreferences().long_press_enabled;
640 else if (base::EqualsCaseInsensitiveASCII(feature_name, "doubletap,enable"))
641 return settings->getPreferences().double_tap_to_zoom_enabled;
642 else if (base::EqualsCaseInsensitiveASCII(feature_name, "touch,focus"))
643 return settings->touchFocusEnabled();
648 void ewk_settings_extra_feature_set(Ewk_Settings* settings, const char* feature, Eina_Bool enable)
650 EINA_SAFETY_ON_NULL_RETURN(settings);
651 EINA_SAFETY_ON_NULL_RETURN(feature);
653 std::string feature_name(feature);
654 if (base::EqualsCaseInsensitiveASCII(feature_name, "edge,enable"))
655 settings->setEdgeEffectEnabled(enable);
656 else if (base::EqualsCaseInsensitiveASCII(feature_name, "zoom,enable"))
657 settings->setTextZoomEnabled(enable);
658 else if (base::EqualsCaseInsensitiveASCII(feature_name,
659 "selection,magnifier"))
660 settings->getPreferences().selection_magnifier_enabled = enable;
661 else if (base::EqualsCaseInsensitiveASCII(feature_name, "longpress,enable"))
662 settings->getPreferences().long_press_enabled = enable;
663 else if (base::EqualsCaseInsensitiveASCII(feature_name, "doubletap,enable"))
664 settings->getPreferences().double_tap_to_zoom_enabled = enable;
665 else if (base::EqualsCaseInsensitiveASCII(feature_name, "touch,focus"))
666 settings->setTouchFocusEnabled(enable);
669 Eina_Bool ewk_settings_tizen_compatibility_mode_set(Ewk_Settings* settings, unsigned major, unsigned minor, unsigned release)
671 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
672 settings->getPreferences().tizen_version_major = major;
673 settings->getPreferences().tizen_version_minor = minor;
674 settings->getPreferences().tizen_version_release = release;
675 ewkUpdateWebkitPreferences(settings->getEvasObject());
679 Eina_Bool ewk_settings_webkit_text_size_adjust_enabled_get(const Ewk_Settings* settings)
681 LOG_EWK_API_MOCKUP();
685 Eina_Bool ewk_settings_scan_malware_enabled_get(const Ewk_Settings* settings)
687 LOG_EWK_API_MOCKUP();
691 void ewk_settings_default_mixed_contents_policy_set(Ewk_Settings* settings, Eina_Bool enable)
693 LOG_EWK_API_MOCKUP();
696 void ewk_settings_disable_webgl_set(Ewk_Settings* settings, Eina_Bool disable)
698 LOG_EWK_API_MOCKUP();
701 Eina_Bool ewk_settings_uses_arrow_scroll_set(Ewk_Settings* settings, Eina_Bool enabled)
703 LOG_EWK_API_MOCKUP();
707 Eina_Bool ewk_settings_uses_arrow_scroll_get(Ewk_Settings* settings)
709 LOG_EWK_API_MOCKUP();
713 Eina_Bool ewk_settings_uses_scrollbar_thumb_focus_notifications_set(Ewk_Settings* settings, Eina_Bool use)
715 LOG_EWK_API_MOCKUP();
719 void ewk_settings_media_playback_notification_set(Ewk_Settings* settings, Eina_Bool enabled)
721 LOG_EWK_API_MOCKUP();
724 Eina_Bool ewk_settings_media_playback_notification_get(const Ewk_Settings* settings)
726 LOG_EWK_API_MOCKUP();
730 void ewk_settings_media_subtitle_notification_set(Ewk_Settings *settings, Eina_Bool enabled)
732 LOG_EWK_API_MOCKUP();
735 Eina_Bool ewk_settings_media_subtitle_notification_get(const Ewk_Settings *settings)
737 LOG_EWK_API_MOCKUP();
741 Eina_Bool ewk_settings_text_autosizing_scale_factor_set(Ewk_Settings* settings, double factor)
743 LOG_EWK_API_MOCKUP();
747 double ewk_settings_text_autosizing_scale_factor_get(const Ewk_Settings* settings)
749 LOG_EWK_API_MOCKUP();
753 Eina_Bool ewk_settings_legacy_font_size_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
755 LOG_EWK_API_MOCKUP();
759 Eina_Bool ewk_settings_legacy_font_size_enabled_get(Ewk_Settings* settings)
761 LOG_EWK_API_MOCKUP();
765 Eina_Bool ewk_settings_use_system_font_set(Ewk_Settings* settings, Eina_Bool use)
767 if (IsMobileProfile()) {
768 EWebView* impl = EWebView::FromEvasObject(settings->getEvasObject());
771 impl->UseSettingsFont();
773 impl->SetBrowserFont();
780 Eina_Bool ewk_settings_use_system_font_get(Ewk_Settings* settings)
782 LOG_EWK_API_MOCKUP();
786 void ewk_settings_selection_handle_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
788 LOG_EWK_API_MOCKUP();
791 Eina_Bool ewk_settings_selection_handle_enabled_get(const Ewk_Settings* settings)
793 LOG_EWK_API_MOCKUP();
797 void ewk_settings_disclose_set_cookie_headers_enabled(Ewk_Settings* settings, Eina_Bool Enabled)
799 LOG_EWK_API_MOCKUP();
802 Eina_Bool ewk_settings_viewport_meta_tag_set(Ewk_Settings* settings, Eina_Bool enable)
804 LOG_EWK_API_MOCKUP();
808 Eina_Bool ewk_settings_viewport_meta_tag_get(const Ewk_Settings *settings)
810 LOG_EWK_API_MOCKUP();
814 void ewk_settings_spatial_navigation_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
816 #if defined(OS_TIZEN_TV_PRODUCT)
817 EINA_SAFETY_ON_NULL_RETURN(settings);
818 LOG(INFO)<<"ewk_settings_spatial_navigation_enabled_set, enabled: " <<(bool)enable;
819 settings->getPreferences().spatial_navigation_enabled = !!enable;
820 ewkUpdateWebkitPreferences(settings->getEvasObject());
822 LOG_EWK_API_MOCKUP();
826 void ewk_settings_ime_panel_enabled_set(Ewk_Settings* settings, Eina_Bool Enabled)
828 LOG_EWK_API_MOCKUP();
831 Eina_Bool ewk_settings_ime_panel_enabled_get(const Ewk_Settings *settings)
833 LOG_EWK_API_MOCKUP();
837 Eina_Bool ewk_settings_allow_file_access_from_external_url_set(Ewk_Settings* settings, Eina_Bool allow)
839 LOG_EWK_API_MOCKUP();
843 Eina_Bool ewk_settings_swipe_to_refresh_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
845 LOG_EWK_API_MOCKUP();
849 Eina_Bool ewk_settings_swipe_to_refresh_enabled_get(const Ewk_Settings *settings)
851 LOG_EWK_API_MOCKUP();
855 void ewk_settings_drag_drop_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
857 LOG_EWK_API_MOCKUP();
860 Eina_Bool ewk_settings_drag_drop_enabled_get(const Ewk_Settings* settings)
862 LOG_EWK_API_MOCKUP();
866 void ewk_settings_clipboard_enabled_set(Ewk_Settings* settings, Eina_Bool enabled)
868 #if BUILDFLAG(IS_TIZEN_TV)
869 EINA_SAFETY_ON_NULL_RETURN(settings);
870 settings->setClipboardEnabled(!!enabled);
872 LOG_EWK_API_MOCKUP("Only for Tizen TV");
876 Eina_Bool ewk_settings_clipboard_enabled_get(const Ewk_Settings* settings)
878 #if BUILDFLAG(IS_TIZEN_TV)
879 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
880 return settings->getClipboardEnabled();
882 LOG_EWK_API_MOCKUP("Only for Tizen TV");
887 Eina_Bool ewk_settings_javascript_can_access_clipboard_set(Ewk_Settings* settings, Eina_Bool enable)
889 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
890 settings->getPreferences().javascript_can_access_clipboard = enable;
891 ewkUpdateWebkitPreferences(settings->getEvasObject());
895 Eina_Bool ewk_settings_javascript_can_access_clipboard_get(const Ewk_Settings* settings)
897 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
898 return settings->getPreferences().javascript_can_access_clipboard;
901 Eina_Bool ewk_settings_dom_paste_allowed_set(Ewk_Settings* settings, Eina_Bool enable)
903 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
904 settings->getPreferences().dom_paste_enabled = enable;
905 ewkUpdateWebkitPreferences(settings->getEvasObject());
909 Eina_Bool ewk_settings_dom_paste_allowed_get(const Ewk_Settings* settings)
911 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
912 return settings->getPreferences().dom_paste_enabled;
915 void ewk_settings_multiple_windows_support_set(Ewk_Settings* settings,
917 EINA_SAFETY_ON_NULL_RETURN(settings);
918 settings->getPreferences().supports_multiple_windows = support;
919 ewkUpdateWebkitPreferences(settings->getEvasObject());
922 Eina_Bool ewk_settings_multiple_windows_support_get(Ewk_Settings* settings) {
923 EINA_SAFETY_ON_NULL_RETURN_VAL(settings, EINA_FALSE);
924 return settings->getPreferences().supports_multiple_windows;