2 * Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without modification,
5 * are permitted provided that the following conditions are met:
7 * Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation and/or
12 * other materials provided with the distribution.
14 * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
15 * be used to endorse or promote products derived from this software without
16 * specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
22 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #include "WebKitSettings.h"
34 #include "WebKitPrivate.h"
35 #include "WebKitSettingsPrivate.h"
36 #include "WebPageProxy.h"
37 #include <WebCore/UserAgentGtk.h>
38 #include <glib/gi18n-lib.h>
39 #include <wtf/text/CString.h>
41 struct _WebKitSettingsPrivate {
42 WKRetainPtr<WKPreferencesRef> preferences;
43 CString defaultFontFamily;
44 CString monospaceFontFamily;
45 CString serifFontFamily;
46 CString sansSerifFontFamily;
47 CString cursiveFontFamily;
48 CString fantasyFontFamily;
49 CString pictographFontFamily;
50 CString defaultCharset;
52 bool allowModalDialogs;
57 * SECTION:WebKitSettings
58 * @short_description: Control the behaviour of a #WebKitWebView
60 * #WebKitSettings can be applied to a #WebKitWebView to control text charset,
61 * color, font sizes, printing mode, script support, loading of images and various other things.
62 * After creation, a #WebKitSettings object contains default settings.
64 * <informalexample><programlisting>
65 * /<!-- -->* Create a new #WebKitSettings and disable JavaScript. *<!-- -->/
66 * WebKitSettings *settings = webkit_settings_new ();
67 * g_object_set (G_OBJECT (settings), "enable-javascript", FALSE, NULL);
69 * webkit_web_view_set_settings (WEBKIT_WEB_VIEW (my_webview), settings);
70 * </programlisting></informalexample>
74 G_DEFINE_TYPE(WebKitSettings, webkit_settings, G_TYPE_OBJECT)
79 PROP_ENABLE_JAVASCRIPT,
80 PROP_AUTO_LOAD_IMAGES,
81 PROP_LOAD_ICONS_IGNORING_IMAGE_LOAD_SETTING,
82 PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE,
83 PROP_ENABLE_HTML5_LOCAL_STORAGE,
84 PROP_ENABLE_HTML5_DATABASE,
85 PROP_ENABLE_XSS_AUDITOR,
86 PROP_ENABLE_FRAME_FLATTENING,
89 PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY,
90 PROP_ENABLE_HYPERLINK_AUDITING,
91 PROP_DEFAULT_FONT_FAMILY,
92 PROP_MONOSPACE_FONT_FAMILY,
93 PROP_SERIF_FONT_FAMILY,
94 PROP_SANS_SERIF_FONT_FAMILY,
95 PROP_CURSIVE_FONT_FAMILY,
96 PROP_FANTASY_FONT_FAMILY,
97 PROP_PICTOGRAPH_FONT_FAMILY,
98 PROP_DEFAULT_FONT_SIZE,
99 PROP_DEFAULT_MONOSPACE_FONT_SIZE,
100 PROP_MINIMUM_FONT_SIZE,
101 PROP_DEFAULT_CHARSET,
102 PROP_ENABLE_PRIVATE_BROWSING,
103 PROP_ENABLE_DEVELOPER_EXTRAS,
104 PROP_ENABLE_RESIZABLE_TEXT_AREAS,
105 PROP_ENABLE_TABS_TO_LINKS,
106 PROP_ENABLE_DNS_PREFETCHING,
107 PROP_ENABLE_CARET_BROWSING,
108 PROP_ENABLE_FULLSCREEN,
109 PROP_PRINT_BACKGROUNDS,
110 PROP_ENABLE_WEBAUDIO,
112 PROP_ALLOW_MODAL_DIALOGS,
114 PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD,
115 PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE,
116 PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
117 PROP_DRAW_COMPOSITING_INDICATORS,
118 PROP_ENABLE_SITE_SPECIFIC_QUIRKS,
119 PROP_ENABLE_PAGE_CACHE,
123 static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
125 WebKitSettings* settings = WEBKIT_SETTINGS(object);
128 case PROP_ENABLE_JAVASCRIPT:
129 webkit_settings_set_enable_javascript(settings, g_value_get_boolean(value));
131 case PROP_AUTO_LOAD_IMAGES:
132 webkit_settings_set_auto_load_images(settings, g_value_get_boolean(value));
134 case PROP_LOAD_ICONS_IGNORING_IMAGE_LOAD_SETTING:
135 webkit_settings_set_load_icons_ignoring_image_load_setting(settings, g_value_get_boolean(value));
137 case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE:
138 webkit_settings_set_enable_offline_web_application_cache(settings, g_value_get_boolean(value));
140 case PROP_ENABLE_HTML5_LOCAL_STORAGE:
141 webkit_settings_set_enable_html5_local_storage(settings, g_value_get_boolean(value));
143 case PROP_ENABLE_HTML5_DATABASE:
144 webkit_settings_set_enable_html5_database(settings, g_value_get_boolean(value));
146 case PROP_ENABLE_XSS_AUDITOR:
147 webkit_settings_set_enable_xss_auditor(settings, g_value_get_boolean(value));
149 case PROP_ENABLE_FRAME_FLATTENING:
150 webkit_settings_set_enable_frame_flattening(settings, g_value_get_boolean(value));
152 case PROP_ENABLE_PLUGINS:
153 webkit_settings_set_enable_plugins(settings, g_value_get_boolean(value));
155 case PROP_ENABLE_JAVA:
156 webkit_settings_set_enable_java(settings, g_value_get_boolean(value));
158 case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY:
159 webkit_settings_set_javascript_can_open_windows_automatically(settings, g_value_get_boolean(value));
161 case PROP_ENABLE_HYPERLINK_AUDITING:
162 webkit_settings_set_enable_hyperlink_auditing(settings, g_value_get_boolean(value));
164 case PROP_DEFAULT_FONT_FAMILY:
165 webkit_settings_set_default_font_family(settings, g_value_get_string(value));
167 case PROP_MONOSPACE_FONT_FAMILY:
168 webkit_settings_set_monospace_font_family(settings, g_value_get_string(value));
170 case PROP_SERIF_FONT_FAMILY:
171 webkit_settings_set_serif_font_family(settings, g_value_get_string(value));
173 case PROP_SANS_SERIF_FONT_FAMILY:
174 webkit_settings_set_sans_serif_font_family(settings, g_value_get_string(value));
176 case PROP_CURSIVE_FONT_FAMILY:
177 webkit_settings_set_cursive_font_family(settings, g_value_get_string(value));
179 case PROP_FANTASY_FONT_FAMILY:
180 webkit_settings_set_fantasy_font_family(settings, g_value_get_string(value));
182 case PROP_PICTOGRAPH_FONT_FAMILY:
183 webkit_settings_set_pictograph_font_family(settings, g_value_get_string(value));
185 case PROP_DEFAULT_FONT_SIZE:
186 webkit_settings_set_default_font_size(settings, g_value_get_uint(value));
188 case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
189 webkit_settings_set_default_monospace_font_size(settings, g_value_get_uint(value));
191 case PROP_MINIMUM_FONT_SIZE:
192 webkit_settings_set_minimum_font_size(settings, g_value_get_uint(value));
194 case PROP_DEFAULT_CHARSET:
195 webkit_settings_set_default_charset(settings, g_value_get_string(value));
197 case PROP_ENABLE_PRIVATE_BROWSING:
198 webkit_settings_set_enable_private_browsing(settings, g_value_get_boolean(value));
200 case PROP_ENABLE_DEVELOPER_EXTRAS:
201 webkit_settings_set_enable_developer_extras(settings, g_value_get_boolean(value));
203 case PROP_ENABLE_RESIZABLE_TEXT_AREAS:
204 webkit_settings_set_enable_resizable_text_areas(settings, g_value_get_boolean(value));
206 case PROP_ENABLE_TABS_TO_LINKS:
207 webkit_settings_set_enable_tabs_to_links(settings, g_value_get_boolean(value));
209 case PROP_ENABLE_DNS_PREFETCHING:
210 webkit_settings_set_enable_dns_prefetching(settings, g_value_get_boolean(value));
212 case PROP_ENABLE_CARET_BROWSING:
213 webkit_settings_set_enable_caret_browsing(settings, g_value_get_boolean(value));
215 case PROP_ENABLE_FULLSCREEN:
216 webkit_settings_set_enable_fullscreen(settings, g_value_get_boolean(value));
218 case PROP_PRINT_BACKGROUNDS:
219 webkit_settings_set_print_backgrounds(settings, g_value_get_boolean(value));
221 case PROP_ENABLE_WEBAUDIO:
222 webkit_settings_set_enable_webaudio(settings, g_value_get_boolean(value));
224 case PROP_ENABLE_WEBGL:
225 webkit_settings_set_enable_webgl(settings, g_value_get_boolean(value));
227 case PROP_ALLOW_MODAL_DIALOGS:
228 webkit_settings_set_allow_modal_dialogs(settings, g_value_get_boolean(value));
230 case PROP_ZOOM_TEXT_ONLY:
231 webkit_settings_set_zoom_text_only(settings, g_value_get_boolean(value));
233 case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD:
234 webkit_settings_set_javascript_can_access_clipboard(settings, g_value_get_boolean(value));
236 case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
237 webkit_settings_set_media_playback_requires_user_gesture(settings, g_value_get_boolean(value));
239 case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE:
240 webkit_settings_set_media_playback_allows_inline(settings, g_value_get_boolean(value));
242 case PROP_DRAW_COMPOSITING_INDICATORS:
243 webkit_settings_set_draw_compositing_indicators(settings, g_value_get_boolean(value));
245 case PROP_ENABLE_SITE_SPECIFIC_QUIRKS:
246 webkit_settings_set_enable_site_specific_quirks(settings, g_value_get_boolean(value));
248 case PROP_ENABLE_PAGE_CACHE:
249 webkit_settings_set_enable_page_cache(settings, g_value_get_boolean(value));
251 case PROP_USER_AGENT:
252 webkit_settings_set_user_agent(settings, g_value_get_string(value));
255 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
260 static void webKitSettingsGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec)
262 WebKitSettings* settings = WEBKIT_SETTINGS(object);
265 case PROP_ENABLE_JAVASCRIPT:
266 g_value_set_boolean(value, webkit_settings_get_enable_javascript(settings));
268 case PROP_AUTO_LOAD_IMAGES:
269 g_value_set_boolean(value, webkit_settings_get_auto_load_images(settings));
271 case PROP_LOAD_ICONS_IGNORING_IMAGE_LOAD_SETTING:
272 g_value_set_boolean(value, webkit_settings_get_load_icons_ignoring_image_load_setting(settings));
274 case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE:
275 g_value_set_boolean(value, webkit_settings_get_enable_offline_web_application_cache(settings));
277 case PROP_ENABLE_HTML5_LOCAL_STORAGE:
278 g_value_set_boolean(value, webkit_settings_get_enable_html5_local_storage(settings));
280 case PROP_ENABLE_HTML5_DATABASE:
281 g_value_set_boolean(value, webkit_settings_get_enable_html5_database(settings));
283 case PROP_ENABLE_XSS_AUDITOR:
284 g_value_set_boolean(value, webkit_settings_get_enable_xss_auditor(settings));
286 case PROP_ENABLE_FRAME_FLATTENING:
287 g_value_set_boolean(value, webkit_settings_get_enable_frame_flattening(settings));
289 case PROP_ENABLE_PLUGINS:
290 g_value_set_boolean(value, webkit_settings_get_enable_plugins(settings));
292 case PROP_ENABLE_JAVA:
293 g_value_set_boolean(value, webkit_settings_get_enable_java(settings));
295 case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY:
296 g_value_set_boolean(value, webkit_settings_get_javascript_can_open_windows_automatically(settings));
298 case PROP_ENABLE_HYPERLINK_AUDITING:
299 g_value_set_boolean(value, webkit_settings_get_enable_hyperlink_auditing(settings));
301 case PROP_DEFAULT_FONT_FAMILY:
302 g_value_set_string(value, webkit_settings_get_default_font_family(settings));
304 case PROP_MONOSPACE_FONT_FAMILY:
305 g_value_set_string(value, webkit_settings_get_monospace_font_family(settings));
307 case PROP_SERIF_FONT_FAMILY:
308 g_value_set_string(value, webkit_settings_get_serif_font_family(settings));
310 case PROP_SANS_SERIF_FONT_FAMILY:
311 g_value_set_string(value, webkit_settings_get_sans_serif_font_family(settings));
313 case PROP_CURSIVE_FONT_FAMILY:
314 g_value_set_string(value, webkit_settings_get_cursive_font_family(settings));
316 case PROP_FANTASY_FONT_FAMILY:
317 g_value_set_string(value, webkit_settings_get_fantasy_font_family(settings));
319 case PROP_PICTOGRAPH_FONT_FAMILY:
320 g_value_set_string(value, webkit_settings_get_pictograph_font_family(settings));
322 case PROP_DEFAULT_FONT_SIZE:
323 g_value_set_uint(value, webkit_settings_get_default_font_size(settings));
325 case PROP_DEFAULT_MONOSPACE_FONT_SIZE:
326 g_value_set_uint(value, webkit_settings_get_default_monospace_font_size(settings));
328 case PROP_MINIMUM_FONT_SIZE:
329 g_value_set_uint(value, webkit_settings_get_minimum_font_size(settings));
331 case PROP_DEFAULT_CHARSET:
332 g_value_set_string(value, webkit_settings_get_default_charset(settings));
334 case PROP_ENABLE_PRIVATE_BROWSING:
335 g_value_set_boolean(value, webkit_settings_get_enable_private_browsing(settings));
337 case PROP_ENABLE_DEVELOPER_EXTRAS:
338 g_value_set_boolean(value, webkit_settings_get_enable_developer_extras(settings));
340 case PROP_ENABLE_RESIZABLE_TEXT_AREAS:
341 g_value_set_boolean(value, webkit_settings_get_enable_resizable_text_areas(settings));
343 case PROP_ENABLE_TABS_TO_LINKS:
344 g_value_set_boolean(value, webkit_settings_get_enable_tabs_to_links(settings));
346 case PROP_ENABLE_DNS_PREFETCHING:
347 g_value_set_boolean(value, webkit_settings_get_enable_dns_prefetching(settings));
349 case PROP_ENABLE_CARET_BROWSING:
350 g_value_set_boolean(value, webkit_settings_get_enable_caret_browsing(settings));
352 case PROP_ENABLE_FULLSCREEN:
353 g_value_set_boolean(value, webkit_settings_get_enable_fullscreen(settings));
355 case PROP_PRINT_BACKGROUNDS:
356 g_value_set_boolean(value, webkit_settings_get_print_backgrounds(settings));
358 case PROP_ENABLE_WEBAUDIO:
359 g_value_set_boolean(value, webkit_settings_get_enable_webaudio(settings));
361 case PROP_ENABLE_WEBGL:
362 g_value_set_boolean(value, webkit_settings_get_enable_webgl(settings));
364 case PROP_ALLOW_MODAL_DIALOGS:
365 g_value_set_boolean(value, webkit_settings_get_allow_modal_dialogs(settings));
367 case PROP_ZOOM_TEXT_ONLY:
368 g_value_set_boolean(value, webkit_settings_get_zoom_text_only(settings));
370 case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD:
371 g_value_set_boolean(value, webkit_settings_get_javascript_can_access_clipboard(settings));
373 case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
374 g_value_set_boolean(value, webkit_settings_get_media_playback_requires_user_gesture(settings));
376 case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE:
377 g_value_set_boolean(value, webkit_settings_get_media_playback_allows_inline(settings));
379 case PROP_DRAW_COMPOSITING_INDICATORS:
380 g_value_set_boolean(value, webkit_settings_get_draw_compositing_indicators(settings));
382 case PROP_ENABLE_SITE_SPECIFIC_QUIRKS:
383 g_value_set_boolean(value, webkit_settings_get_enable_site_specific_quirks(settings));
385 case PROP_ENABLE_PAGE_CACHE:
386 g_value_set_boolean(value, webkit_settings_get_enable_page_cache(settings));
388 case PROP_USER_AGENT:
389 g_value_set_string(value, webkit_settings_get_user_agent(settings));
392 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
397 static void webKitSettingsFinalize(GObject* object)
399 WEBKIT_SETTINGS(object)->priv->~WebKitSettingsPrivate();
400 G_OBJECT_CLASS(webkit_settings_parent_class)->finalize(object);
403 static void webkit_settings_class_init(WebKitSettingsClass* klass)
405 GObjectClass* gObjectClass = G_OBJECT_CLASS(klass);
406 gObjectClass->set_property = webKitSettingsSetProperty;
407 gObjectClass->get_property = webKitSettingsGetProperty;
408 gObjectClass->finalize = webKitSettingsFinalize;
410 GParamFlags readWriteConstructParamFlags = static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT);
413 * WebKitSettings:enable-javascript:
415 * Determines whether or not JavaScript executes within a page.
417 g_object_class_install_property(gObjectClass,
418 PROP_ENABLE_JAVASCRIPT,
419 g_param_spec_boolean("enable-javascript",
420 _("Enable JavaScript"),
421 _("Enable JavaScript."),
423 readWriteConstructParamFlags));
426 * WebKitSettings:auto-load-images:
428 * Determines whether images should be automatically loaded or not.
429 * On devices where network bandwidth is of concern, it might be
430 * useful to turn this property off.
432 g_object_class_install_property(gObjectClass,
433 PROP_AUTO_LOAD_IMAGES,
434 g_param_spec_boolean("auto-load-images",
435 _("Auto load images"),
436 _("Load images automatically."),
438 readWriteConstructParamFlags));
441 * WebKitSettings:load-icons-ignoring-image-load-setting:
443 * Determines whether a site can load favicons irrespective
444 * of the value of #WebKitSettings:auto-load-images.
446 g_object_class_install_property(gObjectClass,
447 PROP_LOAD_ICONS_IGNORING_IMAGE_LOAD_SETTING,
448 g_param_spec_boolean("load-icons-ignoring-image-load-setting",
449 _("Load icons ignoring image load setting"),
450 _("Whether to load site icons ignoring image load setting."),
452 readWriteConstructParamFlags));
455 * WebKitSettings:enable-offline-web-application-cache:
457 * Whether to enable HTML5 offline web application cache support. Offline
458 * web application cache allows web applications to run even when
459 * the user is not connected to the network.
461 * HTML5 offline web application specification is available at
462 * http://dev.w3.org/html5/spec/offline.html.
464 g_object_class_install_property(gObjectClass,
465 PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE,
466 g_param_spec_boolean("enable-offline-web-application-cache",
467 _("Enable offline web application cache"),
468 _("Whether to enable offline web application cache."),
470 readWriteConstructParamFlags));
473 * WebKitSettings:enable-html5-local-storage:
475 * Whether to enable HTML5 local storage support. Local storage provides
476 * simple synchronous storage access.
478 * HTML5 local storage specification is available at
479 * http://dev.w3.org/html5/webstorage/.
481 g_object_class_install_property(gObjectClass,
482 PROP_ENABLE_HTML5_LOCAL_STORAGE,
483 g_param_spec_boolean("enable-html5-local-storage",
484 _("Enable HTML5 local storage"),
485 _("Whether to enable HTML5 Local Storage support."),
487 readWriteConstructParamFlags));
490 * WebKitSettings:enable-html5-database:
492 * Whether to enable HTML5 client-side SQL database support. Client-side
493 * SQL database allows web pages to store structured data and be able to
494 * use SQL to manipulate that data asynchronously.
496 * HTML5 database specification is available at
497 * http://www.w3.org/TR/webdatabase/.
499 g_object_class_install_property(gObjectClass,
500 PROP_ENABLE_HTML5_DATABASE,
501 g_param_spec_boolean("enable-html5-database",
502 _("Enable HTML5 database"),
503 _("Whether to enable HTML5 database support."),
505 readWriteConstructParamFlags));
508 * WebKitSettings:enable-xss-auditor:
510 * Whether to enable the XSS auditor. This feature filters some kinds of
511 * reflective XSS attacks on vulnerable web sites.
513 g_object_class_install_property(gObjectClass,
514 PROP_ENABLE_XSS_AUDITOR,
515 g_param_spec_boolean("enable-xss-auditor",
516 _("Enable XSS auditor"),
517 _("Whether to enable the XSS auditor."),
519 readWriteConstructParamFlags));
523 * WebKitSettings:enable-frame-flattening:
525 * Whether to enable the frame flattening. With this setting each subframe is expanded
526 * to its contents, which will flatten all the frames to become one scrollable page.
527 * On touch devices scrollable subframes on a page can result in a confusing user experience.
529 g_object_class_install_property(gObjectClass,
530 PROP_ENABLE_FRAME_FLATTENING,
531 g_param_spec_boolean("enable-frame-flattening",
532 _("Enable frame flattening"),
533 _("Whether to enable frame flattening."),
535 readWriteConstructParamFlags));
538 * WebKitSettings:enable-plugins:
540 * Determines whether or not plugins on the page are enabled.
542 g_object_class_install_property(gObjectClass,
544 g_param_spec_boolean("enable-plugins",
546 _("Enable embedded plugin objects."),
548 readWriteConstructParamFlags));
551 * WebKitSettings:enable-java:
553 * Determines whether or not Java is enabled on the page.
555 g_object_class_install_property(gObjectClass,
557 g_param_spec_boolean("enable-java",
559 _("Whether Java support should be enabled."),
561 readWriteConstructParamFlags));
564 * WebKitSettings:javascript-can-open-windows-automatically:
566 * Whether JavaScript can open popup windows automatically without user
569 g_object_class_install_property(gObjectClass,
570 PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY,
571 g_param_spec_boolean("javascript-can-open-windows-automatically",
572 _("JavaScript can open windows automatically"),
573 _("Whether JavaScript can open windows automatically."),
575 readWriteConstructParamFlags));
578 * WebKitSettings:enable-hyperlink-auditing:
580 * Determines whether or not hyperlink auditing is enabled.
582 * The hyperlink auditing specification is available at
583 * http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing.
585 g_object_class_install_property(gObjectClass,
586 PROP_ENABLE_HYPERLINK_AUDITING,
587 g_param_spec_boolean("enable-hyperlink-auditing",
588 _("Enable hyperlink auditing"),
589 _("Whether <a ping> should be able to send pings."),
591 readWriteConstructParamFlags));
594 * WebKitWebSettings:default-font-family:
596 * The font family to use as the default for content that does not specify a font.
598 g_object_class_install_property(gObjectClass,
599 PROP_DEFAULT_FONT_FAMILY,
600 g_param_spec_string("default-font-family",
601 _("Default font family"),
602 _("The font family to use as the default for content that does not specify a font."),
604 readWriteConstructParamFlags));
607 * WebKitWebSettings:monospace-font-family:
609 * The font family used as the default for content using a monospace font.
612 g_object_class_install_property(gObjectClass,
613 PROP_MONOSPACE_FONT_FAMILY,
614 g_param_spec_string("monospace-font-family",
615 _("Monospace font family"),
616 _("The font family used as the default for content using monospace font."),
618 readWriteConstructParamFlags));
621 * WebKitWebSettings:serif-font-family:
623 * The font family used as the default for content using a serif font.
625 g_object_class_install_property(gObjectClass,
626 PROP_SERIF_FONT_FAMILY,
627 g_param_spec_string("serif-font-family",
628 _("Serif font family"),
629 _("The font family used as the default for content using serif font."),
631 readWriteConstructParamFlags));
634 * WebKitWebSettings:sans-serif-font-family:
636 * The font family used as the default for content using a sans-serif font.
638 g_object_class_install_property(gObjectClass,
639 PROP_SANS_SERIF_FONT_FAMILY,
640 g_param_spec_string("sans-serif-font-family",
641 _("Sans-serif font family"),
642 _("The font family used as the default for content using sans-serif font."),
644 readWriteConstructParamFlags));
647 * WebKitWebSettings:cursive-font-family:
649 * The font family used as the default for content using a cursive font.
651 g_object_class_install_property(gObjectClass,
652 PROP_CURSIVE_FONT_FAMILY,
653 g_param_spec_string("cursive-font-family",
654 _("Cursive font family"),
655 _("The font family used as the default for content using cursive font."),
657 readWriteConstructParamFlags));
660 * WebKitWebSettings:fantasy-font-family:
662 * The font family used as the default for content using a fantasy font.
664 g_object_class_install_property(gObjectClass,
665 PROP_FANTASY_FONT_FAMILY,
666 g_param_spec_string("fantasy-font-family",
667 _("Fantasy font family"),
668 _("The font family used as the default for content using fantasy font."),
670 readWriteConstructParamFlags));
673 * WebKitWebSettings:pictograph-font-family:
675 * The font family used as the default for content using a pictograph font.
677 g_object_class_install_property(gObjectClass,
678 PROP_PICTOGRAPH_FONT_FAMILY,
679 g_param_spec_string("pictograph-font-family",
680 _("Pictograph font family"),
681 _("The font family used as the default for content using pictograph font."),
683 readWriteConstructParamFlags));
686 * WebKitWebSettings:default-font-size:
688 * The default font size in pixels to use for content displayed if
689 * no font size is specified.
691 g_object_class_install_property(gObjectClass,
692 PROP_DEFAULT_FONT_SIZE,
693 g_param_spec_uint("default-font-size",
694 _("Default font size"),
695 _("The default font size used to display text."),
697 readWriteConstructParamFlags));
700 * WebKitWebSettings:default-monospace-font-size:
702 * The default font size in pixels to use for content displayed in
703 * monospace font if no font size is specified.
705 g_object_class_install_property(gObjectClass,
706 PROP_DEFAULT_MONOSPACE_FONT_SIZE,
707 g_param_spec_uint("default-monospace-font-size",
708 _("Default monospace font size"),
709 _("The default font size used to display monospace text."),
711 readWriteConstructParamFlags));
714 * WebKitWebSettings:minimum-font-size:
716 * The minimum font size in points used to display text. This setting
717 * controls the absolute smallest size. Values other than 0 can
718 * potentially break page layouts.
720 g_object_class_install_property(gObjectClass,
721 PROP_MINIMUM_FONT_SIZE,
722 g_param_spec_uint("minimum-font-size",
723 _("Minimum font size"),
724 _("The minimum font size used to display text."),
726 readWriteConstructParamFlags));
729 * WebKitSettings:default-charset:
731 * The default text charset used when interpreting content with an unspecified charset.
733 g_object_class_install_property(gObjectClass,
734 PROP_DEFAULT_CHARSET,
735 g_param_spec_string("default-charset",
736 _("Default charset"),
737 _("The default text charset used when interpreting content with unspecified charset."),
739 readWriteConstructParamFlags));
742 * WebKitSettings:enable-private-browsing:
744 * Determines whether or not private browsing is enabled. Private browsing
745 * will disable history, cache and form auto-fill for any pages visited.
747 g_object_class_install_property(gObjectClass,
748 PROP_ENABLE_PRIVATE_BROWSING,
749 g_param_spec_boolean("enable-private-browsing",
750 _("Enable private browsing"),
751 _("Whether to enable private browsing"),
753 readWriteConstructParamFlags));
756 * WebKitSettings:enable-developer-extras:
758 * Determines whether or not developer tools, such as the Web Inspector, are enabled.
760 g_object_class_install_property(gObjectClass,
761 PROP_ENABLE_DEVELOPER_EXTRAS,
762 g_param_spec_boolean("enable-developer-extras",
763 _("Enable developer extras"),
764 _("Whether to enable developer extras"),
766 readWriteConstructParamFlags));
769 * WebKitSettings:enable-resizable-text-areas:
771 * Determines whether or not text areas can be resized.
773 g_object_class_install_property(gObjectClass,
774 PROP_ENABLE_RESIZABLE_TEXT_AREAS,
775 g_param_spec_boolean("enable-resizable-text-areas",
776 _("Enable resizable text areas"),
777 _("Whether to enable resizable text areas"),
779 readWriteConstructParamFlags));
782 * WebKitSettings:enable-tabs-to-links:
784 * Determines whether the tab key cycles through the elements on the page.
785 * When this setting is enabled, users will be able to focus the next element
786 * in the page by pressing the tab key. If the selected element is editable,
787 * then pressing tab key will insert the tab character.
789 g_object_class_install_property(gObjectClass,
790 PROP_ENABLE_TABS_TO_LINKS,
791 g_param_spec_boolean("enable-tabs-to-links",
792 _("Enable tabs to links"),
793 _("Whether to enable tabs to links"),
795 readWriteConstructParamFlags));
798 * WebKitSettings:enable-dns-prefetching:
800 * Determines whether or not to prefetch domain names. DNS prefetching attempts
801 * to resolve domain names before a user tries to follow a link.
803 g_object_class_install_property(gObjectClass,
804 PROP_ENABLE_DNS_PREFETCHING,
805 g_param_spec_boolean("enable-dns-prefetching",
806 _("Enable DNS prefetching"),
807 _("Whether to enable DNS prefetching"),
809 readWriteConstructParamFlags));
812 * WebKitSettings:enable-caret-browsing:
814 * Whether to enable accessibility enhanced keyboard navigation.
816 g_object_class_install_property(gObjectClass,
817 PROP_ENABLE_CARET_BROWSING,
818 g_param_spec_boolean("enable-caret-browsing",
819 _("Enable Caret Browsing"),
820 _("Whether to enable accessibility enhanced keyboard navigation"),
822 readWriteConstructParamFlags));
825 * WebKitSettings:enable-fullscreen:
827 * Whether to enable the Javascript Fullscreen API. The API
828 * allows any HTML element to request fullscreen display. See also
829 * the current draft of the spec:
830 * http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
832 g_object_class_install_property(gObjectClass,
833 PROP_ENABLE_FULLSCREEN,
834 g_param_spec_boolean("enable-fullscreen",
835 _("Enable Fullscreen"),
836 _("Whether to enable the Javascriipt Fullscreen API"),
838 readWriteConstructParamFlags));
841 * WebKitSettings:print-backgrounds:
843 * Whether background images should be drawn during printing.
845 g_object_class_install_property(gObjectClass,
846 PROP_PRINT_BACKGROUNDS,
847 g_param_spec_boolean("print-backgrounds",
848 _("Print Backgrounds"),
849 _("Whether background images should be drawn during printing"),
851 readWriteConstructParamFlags));
854 * WebKitSettings:enable-webaudio:
857 * Enable or disable support for WebAudio on pages. WebAudio is an
858 * experimental proposal for allowing web pages to generate Audio
859 * WAVE data from JavaScript. The standard is currently a
860 * work-in-progress by the W3C Audio Working Group.
862 * See also https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
864 g_object_class_install_property(gObjectClass,
865 PROP_ENABLE_WEBAUDIO,
866 g_param_spec_boolean("enable-webaudio",
867 _("Enable WebAudio"),
868 _("Whether WebAudio content should be handled"),
870 readWriteConstructParamFlags));
873 * WebKitSettings:enable-webgl:
875 * Enable or disable support for WebGL on pages. WebGL is an experimental
876 * proposal for allowing web pages to use OpenGL ES-like calls directly. The
877 * standard is currently a work-in-progress by the Khronos Group.
879 g_object_class_install_property(gObjectClass,
881 g_param_spec_boolean("enable-webgl",
883 _("Whether WebGL content should be rendered"),
885 readWriteConstructParamFlags));
888 * WebKitSettings:allow-modal-dialogs:
890 * Determine whether it's allowed to create and run modal dialogs
891 * from a #WebKitWebView through JavaScript with
892 * <function>window.showModalDialog</function>. If it's set to
893 * %FALSE, the associated #WebKitWebView won't be able to create
894 * new modal dialogs, so not even the #WebKitWebView::create
895 * signal will be emitted.
897 g_object_class_install_property(gObjectClass,
898 PROP_ALLOW_MODAL_DIALOGS,
899 g_param_spec_boolean("allow-modal-dialogs",
900 _("Allow modal dialogs"),
901 _("Whether it is possible to create modal dialogs"),
903 readWriteConstructParamFlags));
906 * WebKitSettings:zoom-text-only:
908 * Whether #WebKitWebView:zoom-level affects only the
909 * text of the page or all the contents. Other contents containing text
910 * like form controls will be also affected by zoom factor when
911 * this property is enabled.
913 g_object_class_install_property(gObjectClass,
915 g_param_spec_boolean("zoom-text-only",
917 _("Whether zoom level of web view changes only the text size"),
919 readWriteConstructParamFlags));
922 * WebKitSettings:javascript-can-access-clipboard:
924 * Whether JavaScript can access the clipboard. The default value is %FALSE. If
925 * set to %TRUE, document.execCommand() allows cut, copy and paste commands.
928 g_object_class_install_property(gObjectClass,
929 PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD,
930 g_param_spec_boolean("javascript-can-access-clipboard",
931 _("JavaScript can access clipboard"),
932 _("Whether JavaScript can access Clipboard"),
934 readWriteConstructParamFlags));
937 * WebKitSettings:media-playback-requires-user-gesture:
939 * Whether a user gesture (such as clicking the play button)
940 * would be required to start media playback or load media. This is off
941 * by default, so media playback could start automatically.
942 * Setting it on requires a gesture by the user to start playback, or to
945 g_object_class_install_property(gObjectClass,
946 PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE,
947 g_param_spec_boolean("media-playback-requires-user-gesture",
948 _("Media playback requires user gesture"),
949 _("Whether media playback requires user gesture"),
951 readWriteConstructParamFlags));
954 * WebKitSettings:media-playback-allows-inline
956 * Whether media playback is full-screen only or inline playback is allowed.
957 * This is %TRUE by default, so media playback can be inline. Setting it to
958 * %FALSE allows specifying that media playback should be always fullscreen.
960 g_object_class_install_property(gObjectClass,
961 PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
962 g_param_spec_boolean("media-playback-allows-inline",
963 _("Media playback allows inline"),
964 _("Whether media playback allows inline"),
966 readWriteConstructParamFlags));
969 * WebKitSettings:draw-compositing-indicators:
971 * Whether to draw compositing borders and repaint counters on layers drawn
972 * with accelerated compositing. This is useful for debugging issues related
973 * to web content that is composited with the GPU.
975 g_object_class_install_property(gObjectClass,
976 PROP_DRAW_COMPOSITING_INDICATORS,
977 g_param_spec_boolean("draw-compositing-indicators",
978 _("Draw compositing indicators"),
979 _("Whether to draw compositing borders and repaint counters"),
981 readWriteConstructParamFlags));
984 * WebKitSettings:enable-site-specific-quirks:
986 * Whether to turn on site-specific quirks. Turning this on will
987 * tell WebKit to use some site-specific workarounds for
988 * better web compatibility. For example, older versions of
989 * MediaWiki will incorrectly send to WebKit a css file with KHTML
990 * workarounds. By turning on site-specific quirks, WebKit will
991 * special-case this and other cases to make some specific sites work.
993 g_object_class_install_property(gObjectClass,
994 PROP_ENABLE_SITE_SPECIFIC_QUIRKS,
995 g_param_spec_boolean("enable-site-specific-quirks",
996 _("Enable Site Specific Quirks"),
997 _("Enables the site-specific compatibility workarounds"),
999 readWriteConstructParamFlags));
1002 * WebKitSettings:enable-page-cache:
1004 * Enable or disable the page cache. Disabling the page cache is
1005 * generally only useful for special circumstances like low-memory
1006 * scenarios or special purpose applications like static HTML
1007 * viewers. This setting only controls the Page Cache, this cache
1008 * is different than the disk-based or memory-based traditional
1009 * resource caches, its point is to make going back and forth
1010 * between pages much faster. For details about the different types
1011 * of caches and their purposes see:
1012 * http://webkit.org/blog/427/webkit-page-cache-i-the-basics/
1014 g_object_class_install_property(gObjectClass,
1015 PROP_ENABLE_PAGE_CACHE,
1016 g_param_spec_boolean("enable-page-cache",
1017 _("Enable page cache"),
1018 _("Whether the page cache should be used"),
1020 readWriteConstructParamFlags));
1023 * WebKitSettings:user-agent:
1025 * The user-agent string used by WebKit. Unusual user-agent strings may cause web
1026 * content to render incorrectly or fail to run, as many web pages are written to
1027 * parse the user-agent strings of only the most popular browsers. Therefore, it's
1028 * typically better to not completely override the standard user-agent, but to use
1029 * webkit_settings_set_user_agent_with_application_details() instead.
1031 * If this property is set to the empty string or %NULL, it will revert to the standard
1034 g_object_class_install_property(gObjectClass,
1036 g_param_spec_string("user-agent",
1037 _("User agent string"),
1038 _("The user agent string"),
1039 0, // A null string forces the standard user agent.
1040 readWriteConstructParamFlags));
1042 g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
1045 static void webkit_settings_init(WebKitSettings* settings)
1047 WebKitSettingsPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(settings, WEBKIT_TYPE_SETTINGS, WebKitSettingsPrivate);
1048 settings->priv = priv;
1049 new (priv) WebKitSettingsPrivate();
1051 priv->preferences = adoptWK(WKPreferencesCreate());
1053 WKRetainPtr<WKStringRef> defaultFontFamilyRef = adoptWK(WKPreferencesCopyStandardFontFamily(priv->preferences.get()));
1054 priv->defaultFontFamily = WebKit::toImpl(defaultFontFamilyRef.get())->string().utf8();
1056 WKRetainPtr<WKStringRef> monospaceFontFamilyRef = adoptWK(WKPreferencesCopyFixedFontFamily(priv->preferences.get()));
1057 priv->monospaceFontFamily = WebKit::toImpl(monospaceFontFamilyRef.get())->string().utf8();
1059 WKRetainPtr<WKStringRef> serifFontFamilyRef = adoptWK(WKPreferencesCopySerifFontFamily(priv->preferences.get()));
1060 priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
1062 WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = adoptWK(WKPreferencesCopySansSerifFontFamily(priv->preferences.get()));
1063 priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
1065 WKRetainPtr<WKStringRef> cursiveFontFamilyRef = adoptWK(WKPreferencesCopyCursiveFontFamily(priv->preferences.get()));
1066 priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
1068 WKRetainPtr<WKStringRef> fantasyFontFamilyRef = adoptWK(WKPreferencesCopyFantasyFontFamily(priv->preferences.get()));
1069 priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
1071 WKRetainPtr<WKStringRef> pictographFontFamilyRef = adoptWK(WKPreferencesCopyPictographFontFamily(priv->preferences.get()));
1072 priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
1074 WKRetainPtr<WKStringRef> defaultCharsetRef = adoptWK(WKPreferencesCopyDefaultTextEncodingName(priv->preferences.get()));
1075 priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
1078 void webkitSettingsAttachSettingsToPage(WebKitSettings* settings, WKPageRef wkPage)
1080 WebKitSettingsPrivate* priv = settings->priv;
1081 WKPageGroupSetPreferences(WKPageGetPageGroup(wkPage), priv->preferences.get());
1082 WebKit::toImpl(wkPage)->setCanRunModal(priv->allowModalDialogs);
1084 ASSERT(!priv->userAgent.isNull());
1085 WKRetainPtr<WKStringRef> userAgent = adoptWK(WKStringCreateWithUTF8CString(priv->userAgent.data()));
1086 WKPageSetCustomUserAgent(wkPage, userAgent.get());
1090 * webkit_settings_new:
1092 * Creates a new #WebKitSettings instance with default values. It must
1093 * be manually attached to a #WebKitWebView.
1094 * See also webkit_settings_new_with_settings().
1096 * Returns: a new #WebKitSettings instance.
1098 WebKitSettings* webkit_settings_new()
1100 return WEBKIT_SETTINGS(g_object_new(WEBKIT_TYPE_SETTINGS, NULL));
1104 * webkit_settings_new_with_settings:
1105 * @first_setting_name: name of first setting to set
1106 * @...: value of first setting, followed by more settings,
1109 * Creates a new #WebKitSettings instance with the given settings. It must
1110 * be manually attached to a #WebKitWebView.
1112 * Returns: a new #WebKitSettings instance.
1114 WebKitSettings* webkit_settings_new_with_settings(const gchar* firstSettingName, ...)
1117 va_start(args, firstSettingName);
1118 WebKitSettings* settings = WEBKIT_SETTINGS(g_object_new_valist(WEBKIT_TYPE_SETTINGS, firstSettingName, args));
1124 * webkit_settings_get_enable_javascript:
1125 * @settings: a #WebKitSettings
1127 * Get the #WebKitSettings:enable-javascript property.
1129 * Returns: %TRUE If JavaScript is enabled or %FALSE otherwise.
1131 gboolean webkit_settings_get_enable_javascript(WebKitSettings* settings)
1133 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1135 return WKPreferencesGetJavaScriptEnabled(settings->priv->preferences.get());
1139 * webkit_settings_set_enable_javascript:
1140 * @settings: a #WebKitSettings
1141 * @enabled: Value to be set
1143 * Set the #WebKitSettings:enable-javascript property.
1145 void webkit_settings_set_enable_javascript(WebKitSettings* settings, gboolean enabled)
1147 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1149 WebKitSettingsPrivate* priv = settings->priv;
1150 bool currentValue = WKPreferencesGetJavaScriptEnabled(priv->preferences.get());
1151 if (currentValue == enabled)
1154 WKPreferencesSetJavaScriptEnabled(priv->preferences.get(), enabled);
1155 g_object_notify(G_OBJECT(settings), "enable-javascript");
1159 * webkit_settings_get_auto_load_images:
1160 * @settings: a #WebKitSettings
1162 * Get the #WebKitSettings:auto-load-images property.
1164 * Returns: %TRUE If auto loading of images is enabled or %FALSE otherwise.
1166 gboolean webkit_settings_get_auto_load_images(WebKitSettings* settings)
1168 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1170 return WKPreferencesGetLoadsImagesAutomatically(settings->priv->preferences.get());
1174 * webkit_settings_set_auto_load_images:
1175 * @settings: a #WebKitSettings
1176 * @enabled: Value to be set
1178 * Set the #WebKitSettings:auto-load-images property.
1180 void webkit_settings_set_auto_load_images(WebKitSettings* settings, gboolean enabled)
1182 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1184 WebKitSettingsPrivate* priv = settings->priv;
1185 bool currentValue = WKPreferencesGetLoadsImagesAutomatically(priv->preferences.get());
1186 if (currentValue == enabled)
1189 WKPreferencesSetLoadsImagesAutomatically(priv->preferences.get(), enabled);
1190 g_object_notify(G_OBJECT(settings), "auto-load-images");
1194 * webkit_settings_get_load_icons_ignoring_image_load_setting:
1195 * @settings: a #WebKitSettings
1197 * Get the #WebKitSettings:load-icons-ignoring-image-load-setting property.
1199 * Returns: %TRUE If site icon can be loaded irrespective of image loading preference or %FALSE otherwise.
1201 gboolean webkit_settings_get_load_icons_ignoring_image_load_setting(WebKitSettings* settings)
1203 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1205 return WKPreferencesGetLoadsSiteIconsIgnoringImageLoadingPreference(settings->priv->preferences.get());
1209 * webkit_settings_set_load_icons_ignoring_image_load_setting:
1210 * @settings: a #WebKitSettings
1211 * @enabled: Value to be set
1213 * Set the #WebKitSettings:load-icons-ignoring-image-load-setting property.
1215 void webkit_settings_set_load_icons_ignoring_image_load_setting(WebKitSettings* settings, gboolean enabled)
1217 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1219 WebKitSettingsPrivate* priv = settings->priv;
1220 bool currentValue = WKPreferencesGetLoadsSiteIconsIgnoringImageLoadingPreference(priv->preferences.get());
1221 if (currentValue == enabled)
1224 WKPreferencesSetLoadsSiteIconsIgnoringImageLoadingPreference(priv->preferences.get(), enabled);
1225 g_object_notify(G_OBJECT(settings), "load-icons-ignoring-image-load-setting");
1229 * webkit_settings_get_enable_offline_web_application_cache:
1230 * @settings: a #WebKitSettings
1232 * Get the #WebKitSettings:enable-offline-web-application-cache property.
1234 * Returns: %TRUE If HTML5 offline web application cache support is enabled or %FALSE otherwise.
1236 gboolean webkit_settings_get_enable_offline_web_application_cache(WebKitSettings* settings)
1238 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1240 return WKPreferencesGetOfflineWebApplicationCacheEnabled(settings->priv->preferences.get());
1244 * webkit_settings_set_enable_offline_web_application_cache:
1245 * @settings: a #WebKitSettings
1246 * @enabled: Value to be set
1248 * Set the #WebKitSettings:enable-offline-web-application-cache property.
1250 void webkit_settings_set_enable_offline_web_application_cache(WebKitSettings* settings, gboolean enabled)
1252 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1254 WebKitSettingsPrivate* priv = settings->priv;
1255 bool currentValue = WKPreferencesGetOfflineWebApplicationCacheEnabled(priv->preferences.get());
1256 if (currentValue == enabled)
1259 WKPreferencesSetOfflineWebApplicationCacheEnabled(priv->preferences.get(), enabled);
1260 g_object_notify(G_OBJECT(settings), "enable-offline-web-application-cache");
1264 * webkit_settings_get_enable_html5_local_storage:
1265 * @settings: a #WebKitSettings
1267 * Get the #WebKitSettings:enable-html5-local-storage property.
1269 * Returns: %TRUE If HTML5 local storage support is enabled or %FALSE otherwise.
1271 gboolean webkit_settings_get_enable_html5_local_storage(WebKitSettings* settings)
1273 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1275 return WKPreferencesGetLocalStorageEnabled(settings->priv->preferences.get());
1279 * webkit_settings_set_enable_html5_local_storage:
1280 * @settings: a #WebKitSettings
1281 * @enabled: Value to be set
1283 * Set the #WebKitSettings:enable-html5-local-storage property.
1285 void webkit_settings_set_enable_html5_local_storage(WebKitSettings* settings, gboolean enabled)
1287 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1289 WebKitSettingsPrivate* priv = settings->priv;
1290 bool currentValue = WKPreferencesGetLocalStorageEnabled(priv->preferences.get());
1291 if (currentValue == enabled)
1294 WKPreferencesSetLocalStorageEnabled(priv->preferences.get(), enabled);
1295 g_object_notify(G_OBJECT(settings), "enable-html5-local-storage");
1299 * webkit_settings_get_enable_html5_database:
1300 * @settings: a #WebKitSettings
1302 * Get the #WebKitSettings:enable-html5-database property.
1304 * Returns: %TRUE If HTML5 database support is enabled or %FALSE otherwise.
1306 gboolean webkit_settings_get_enable_html5_database(WebKitSettings* settings)
1308 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1310 return WKPreferencesGetDatabasesEnabled(settings->priv->preferences.get());
1314 * webkit_settings_set_enable_html5_database:
1315 * @settings: a #WebKitSettings
1316 * @enabled: Value to be set
1318 * Set the #WebKitSettings:enable-html5-database property.
1320 void webkit_settings_set_enable_html5_database(WebKitSettings* settings, gboolean enabled)
1322 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1324 WebKitSettingsPrivate* priv = settings->priv;
1325 bool currentValue = WKPreferencesGetDatabasesEnabled(priv->preferences.get());
1326 if (currentValue == enabled)
1329 WKPreferencesSetDatabasesEnabled(priv->preferences.get(), enabled);
1330 g_object_notify(G_OBJECT(settings), "enable-html5-database");
1334 * webkit_settings_get_enable_xss_auditor:
1335 * @settings: a #WebKitSettings
1337 * Get the #WebKitSettings:enable-xss-auditor property.
1339 * Returns: %TRUE If XSS auditing is enabled or %FALSE otherwise.
1341 gboolean webkit_settings_get_enable_xss_auditor(WebKitSettings* settings)
1343 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1345 return WKPreferencesGetXSSAuditorEnabled(settings->priv->preferences.get());
1349 * webkit_settings_set_enable_xss_auditor:
1350 * @settings: a #WebKitSettings
1351 * @enabled: Value to be set
1353 * Set the #WebKitSettings:enable-xss-auditor property.
1355 void webkit_settings_set_enable_xss_auditor(WebKitSettings* settings, gboolean enabled)
1357 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1359 WebKitSettingsPrivate* priv = settings->priv;
1360 bool currentValue = WKPreferencesGetXSSAuditorEnabled(priv->preferences.get());
1361 if (currentValue == enabled)
1364 WKPreferencesSetXSSAuditorEnabled(priv->preferences.get(), enabled);
1365 g_object_notify(G_OBJECT(settings), "enable-xss-auditor");
1369 * webkit_settings_get_enable_frame_flattening:
1370 * @settings: a #WebKitSettings
1372 * Get the #WebKitSettings:enable-frame-flattening property.
1374 * Returns: %TRUE If frame flattening is enabled or %FALSE otherwise.
1377 gboolean webkit_settings_get_enable_frame_flattening(WebKitSettings* settings)
1379 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1381 return WKPreferencesGetFrameFlatteningEnabled(settings->priv->preferences.get());
1385 * webkit_settings_set_enable_frame_flattening:
1386 * @settings: a #WebKitSettings
1387 * @enabled: Value to be set
1389 * Set the #WebKitSettings:enable-frame-flattening property.
1391 void webkit_settings_set_enable_frame_flattening(WebKitSettings* settings, gboolean enabled)
1393 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1395 WebKitSettingsPrivate* priv = settings->priv;
1396 bool currentValue = WKPreferencesGetFrameFlatteningEnabled(priv->preferences.get());
1397 if (currentValue == enabled)
1400 WKPreferencesSetFrameFlatteningEnabled(priv->preferences.get(), enabled);
1401 g_object_notify(G_OBJECT(settings), "enable-frame-flattening");
1405 * webkit_settings_get_enable_plugins:
1406 * @settings: a #WebKitSettings
1408 * Get the #WebKitSettings:enable-plugins property.
1410 * Returns: %TRUE If plugins are enabled or %FALSE otherwise.
1412 gboolean webkit_settings_get_enable_plugins(WebKitSettings* settings)
1414 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1416 return WKPreferencesGetPluginsEnabled(settings->priv->preferences.get());
1420 * webkit_settings_set_enable_plugins:
1421 * @settings: a #WebKitSettings
1422 * @enabled: Value to be set
1424 * Set the #WebKitSettings:enable-plugins property.
1426 void webkit_settings_set_enable_plugins(WebKitSettings* settings, gboolean enabled)
1428 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1430 WebKitSettingsPrivate* priv = settings->priv;
1431 bool currentValue = WKPreferencesGetPluginsEnabled(priv->preferences.get());
1432 if (currentValue == enabled)
1435 WKPreferencesSetPluginsEnabled(priv->preferences.get(), enabled);
1436 g_object_notify(G_OBJECT(settings), "enable-plugins");
1440 * webkit_settings_get_enable_java:
1441 * @settings: a #WebKitSettings
1443 * Get the #WebKitSettings:enable-java property.
1445 * Returns: %TRUE If Java is enabled or %FALSE otherwise.
1447 gboolean webkit_settings_get_enable_java(WebKitSettings* settings)
1449 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1451 return WKPreferencesGetJavaEnabled(settings->priv->preferences.get());
1455 * webkit_settings_set_enable_java:
1456 * @settings: a #WebKitSettings
1457 * @enabled: Value to be set
1459 * Set the #WebKitSettings:enable-java property.
1461 void webkit_settings_set_enable_java(WebKitSettings* settings, gboolean enabled)
1463 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1465 WebKitSettingsPrivate* priv = settings->priv;
1466 bool currentValue = WKPreferencesGetJavaEnabled(priv->preferences.get());
1467 if (currentValue == enabled)
1470 WKPreferencesSetJavaEnabled(priv->preferences.get(), enabled);
1471 g_object_notify(G_OBJECT(settings), "enable-java");
1475 * webkit_settings_get_javascript_can_open_windows_automatically:
1476 * @settings: a #WebKitSettings
1478 * Get the #WebKitSettings:javascript-can-open-windows-automatically property.
1480 * Returns: %TRUE If JavaScript can open window automatically or %FALSE otherwise.
1482 gboolean webkit_settings_get_javascript_can_open_windows_automatically(WebKitSettings* settings)
1484 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1486 return WKPreferencesGetJavaScriptCanOpenWindowsAutomatically(settings->priv->preferences.get());
1490 * webkit_settings_set_javascript_can_open_windows_automatically:
1491 * @settings: a #WebKitSettings
1492 * @enabled: Value to be set
1494 * Set the #WebKitSettings:javascript-can-open-windows-automatically property.
1496 void webkit_settings_set_javascript_can_open_windows_automatically(WebKitSettings* settings, gboolean enabled)
1498 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1500 WebKitSettingsPrivate* priv = settings->priv;
1501 bool currentValue = WKPreferencesGetJavaScriptCanOpenWindowsAutomatically(priv->preferences.get());
1502 if (currentValue == enabled)
1505 WKPreferencesSetJavaScriptCanOpenWindowsAutomatically(priv->preferences.get(), enabled);
1506 g_object_notify(G_OBJECT(settings), "javascript-can-open-windows-automatically");
1510 * webkit_settings_get_enable_hyperlink_auditing:
1511 * @settings: a #WebKitSettings
1513 * Get the #WebKitSettings:enable-hyperlink-auditing property.
1515 * Returns: %TRUE If hyper link auditing is enabled or %FALSE otherwise.
1517 gboolean webkit_settings_get_enable_hyperlink_auditing(WebKitSettings* settings)
1519 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1521 return WKPreferencesGetHyperlinkAuditingEnabled(settings->priv->preferences.get());
1525 * webkit_settings_set_enable_hyperlink_auditing:
1526 * @settings: a #WebKitSettings
1527 * @enabled: Value to be set
1529 * Set the #WebKitSettings:enable-hyperlink-auditing property.
1531 void webkit_settings_set_enable_hyperlink_auditing(WebKitSettings* settings, gboolean enabled)
1533 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1535 WebKitSettingsPrivate* priv = settings->priv;
1536 bool currentValue = WKPreferencesGetHyperlinkAuditingEnabled(priv->preferences.get());
1537 if (currentValue == enabled)
1540 WKPreferencesSetHyperlinkAuditingEnabled(priv->preferences.get(), enabled);
1541 g_object_notify(G_OBJECT(settings), "enable-hyperlink-auditing");
1545 * webkit_web_settings_get_default_font_family:
1546 * @settings: a #WebKitSettings
1548 * Gets the #WebKitSettings:default-font-family property.
1550 * Returns: The default font family used to display content that does not specify a font.
1552 const gchar* webkit_settings_get_default_font_family(WebKitSettings* settings)
1554 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1556 return settings->priv->defaultFontFamily.data();
1560 * webkit_settings_set_default_font_family:
1561 * @settings: a #WebKitSettings
1562 * @default_font_family: the new default font family
1564 * Set the #WebKitSettings:default-font-family property.
1566 void webkit_settings_set_default_font_family(WebKitSettings* settings, const gchar* defaultFontFamily)
1568 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1569 g_return_if_fail(defaultFontFamily);
1571 WebKitSettingsPrivate* priv = settings->priv;
1572 if (!g_strcmp0(priv->defaultFontFamily.data(), defaultFontFamily))
1575 WKRetainPtr<WKStringRef> standardFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(defaultFontFamily));
1576 WKPreferencesSetStandardFontFamily(priv->preferences.get(), standardFontFamilyRef.get());
1577 priv->defaultFontFamily = WebKit::toImpl(standardFontFamilyRef.get())->string().utf8();
1579 g_object_notify(G_OBJECT(settings), "default-font-family");
1583 * webkit_settings_get_monospace_font_family:
1584 * @settings: a #WebKitSettings
1586 * Gets the #WebKitSettings:monospace-font-family property.
1588 * Returns: Default font family used to display content marked with monospace font.
1590 const gchar* webkit_settings_get_monospace_font_family(WebKitSettings* settings)
1592 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1594 return settings->priv->monospaceFontFamily.data();
1598 * webkit_settings_set_monospace_font_family:
1599 * @settings: a #WebKitSettings
1600 * @monospace_font_family: the new default monospace font family
1602 * Set the #WebKitSettings:monospace-font-family property.
1604 void webkit_settings_set_monospace_font_family(WebKitSettings* settings, const gchar* monospaceFontFamily)
1606 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1607 g_return_if_fail(monospaceFontFamily);
1609 WebKitSettingsPrivate* priv = settings->priv;
1610 if (!g_strcmp0(priv->monospaceFontFamily.data(), monospaceFontFamily))
1613 WKRetainPtr<WKStringRef> fixedFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(monospaceFontFamily));
1614 WKPreferencesSetFixedFontFamily(priv->preferences.get(), fixedFontFamilyRef.get());
1615 priv->monospaceFontFamily = WebKit::toImpl(fixedFontFamilyRef.get())->string().utf8();
1617 g_object_notify(G_OBJECT(settings), "monospace-font-family");
1621 * webkit_settings_get_serif_font_family:
1622 * @settings: a #WebKitSettings
1624 * Gets the #WebKitSettings:serif-font-family property.
1626 * Returns: The default font family used to display content marked with serif font.
1628 const gchar* webkit_settings_get_serif_font_family(WebKitSettings* settings)
1630 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1632 return settings->priv->serifFontFamily.data();
1636 * webkit_settings_set_serif_font_family:
1637 * @settings: a #WebKitSettings
1638 * @serif_font_family: the new default serif font family
1640 * Set the #WebKitSettings:serif-font-family property.
1642 void webkit_settings_set_serif_font_family(WebKitSettings* settings, const gchar* serifFontFamily)
1644 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1645 g_return_if_fail(serifFontFamily);
1647 WebKitSettingsPrivate* priv = settings->priv;
1648 if (!g_strcmp0(priv->serifFontFamily.data(), serifFontFamily))
1651 WKRetainPtr<WKStringRef> serifFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(serifFontFamily));
1652 WKPreferencesSetSerifFontFamily(priv->preferences.get(), serifFontFamilyRef.get());
1653 priv->serifFontFamily = WebKit::toImpl(serifFontFamilyRef.get())->string().utf8();
1655 g_object_notify(G_OBJECT(settings), "serif-font-family");
1659 * webkit_settings_get_sans_serif_font_family:
1660 * @settings: a #WebKitSettings
1662 * Gets the #WebKitSettings:sans-serif-font-family property.
1664 * Returns: The default font family used to display content marked with sans-serif font.
1666 const gchar* webkit_settings_get_sans_serif_font_family(WebKitSettings* settings)
1668 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1670 return settings->priv->sansSerifFontFamily.data();
1674 * webkit_settings_set_sans_serif_font_family:
1675 * @settings: a #WebKitSettings
1676 * @sans_serif_font_family: the new default sans-serif font family
1678 * Set the #WebKitSettings:sans-serif-font-family property.
1680 void webkit_settings_set_sans_serif_font_family(WebKitSettings* settings, const gchar* sansSerifFontFamily)
1682 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1683 g_return_if_fail(sansSerifFontFamily);
1685 WebKitSettingsPrivate* priv = settings->priv;
1686 if (!g_strcmp0(priv->sansSerifFontFamily.data(), sansSerifFontFamily))
1689 WKRetainPtr<WKStringRef> sansSerifFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(sansSerifFontFamily));
1690 WKPreferencesSetSansSerifFontFamily(priv->preferences.get(), sansSerifFontFamilyRef.get());
1691 priv->sansSerifFontFamily = WebKit::toImpl(sansSerifFontFamilyRef.get())->string().utf8();
1693 g_object_notify(G_OBJECT(settings), "sans-serif-font-family");
1697 * webkit_settings_get_cursive_font_family:
1698 * @settings: a #WebKitSettings
1700 * Gets the #WebKitSettings:cursive-font-family property.
1702 * Returns: The default font family used to display content marked with cursive font.
1704 const gchar* webkit_settings_get_cursive_font_family(WebKitSettings* settings)
1706 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1708 return settings->priv->cursiveFontFamily.data();
1712 * webkit_settings_set_cursive_font_family:
1713 * @settings: a #WebKitSettings
1714 * @cursive_font_family: the new default cursive font family
1716 * Set the #WebKitSettings:cursive-font-family property.
1718 void webkit_settings_set_cursive_font_family(WebKitSettings* settings, const gchar* cursiveFontFamily)
1720 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1721 g_return_if_fail(cursiveFontFamily);
1723 WebKitSettingsPrivate* priv = settings->priv;
1724 if (!g_strcmp0(priv->cursiveFontFamily.data(), cursiveFontFamily))
1727 WKRetainPtr<WKStringRef> cursiveFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(cursiveFontFamily));
1728 WKPreferencesSetCursiveFontFamily(priv->preferences.get(), cursiveFontFamilyRef.get());
1729 priv->cursiveFontFamily = WebKit::toImpl(cursiveFontFamilyRef.get())->string().utf8();
1731 g_object_notify(G_OBJECT(settings), "cursive-font-family");
1735 * webkit_settings_get_fantasy_font_family:
1736 * @settings: a #WebKitSettings
1738 * Gets the #WebKitSettings:fantasy-font-family property.
1740 * Returns: The default font family used to display content marked with fantasy font.
1742 const gchar* webkit_settings_get_fantasy_font_family(WebKitSettings* settings)
1744 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1746 return settings->priv->fantasyFontFamily.data();
1750 * webkit_settings_set_fantasy_font_family:
1751 * @settings: a #WebKitSettings
1752 * @fantasy_font_family: the new default fantasy font family
1754 * Set the #WebKitSettings:fantasy-font-family property.
1756 void webkit_settings_set_fantasy_font_family(WebKitSettings* settings, const gchar* fantasyFontFamily)
1758 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1759 g_return_if_fail(fantasyFontFamily);
1761 WebKitSettingsPrivate* priv = settings->priv;
1762 if (!g_strcmp0(priv->fantasyFontFamily.data(), fantasyFontFamily))
1765 WKRetainPtr<WKStringRef> fantasyFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(fantasyFontFamily));
1766 WKPreferencesSetFantasyFontFamily(priv->preferences.get(), fantasyFontFamilyRef.get());
1767 priv->fantasyFontFamily = WebKit::toImpl(fantasyFontFamilyRef.get())->string().utf8();
1769 g_object_notify(G_OBJECT(settings), "fantasy-font-family");
1773 * webkit_settings_get_pictograph_font_family:
1774 * @settings: a #WebKitSettings
1776 * Gets the #WebKitSettings:pictograph-font-family property.
1778 * Returns: The default font family used to display content marked with pictograph font.
1780 const gchar* webkit_settings_get_pictograph_font_family(WebKitSettings* settings)
1782 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1784 return settings->priv->pictographFontFamily.data();
1788 * webkit_settings_set_pictograph_font_family:
1789 * @settings: a #WebKitSettings
1790 * @pictograph_font_family: the new default pictograph font family
1792 * Set the #WebKitSettings:pictograph-font-family property.
1794 void webkit_settings_set_pictograph_font_family(WebKitSettings* settings, const gchar* pictographFontFamily)
1796 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1797 g_return_if_fail(pictographFontFamily);
1799 WebKitSettingsPrivate* priv = settings->priv;
1800 if (!g_strcmp0(priv->pictographFontFamily.data(), pictographFontFamily))
1803 WKRetainPtr<WKStringRef> pictographFontFamilyRef = adoptWK(WKStringCreateWithUTF8CString(pictographFontFamily));
1804 WKPreferencesSetPictographFontFamily(priv->preferences.get(), pictographFontFamilyRef.get());
1805 priv->pictographFontFamily = WebKit::toImpl(pictographFontFamilyRef.get())->string().utf8();
1807 g_object_notify(G_OBJECT(settings), "pictograph-font-family");
1811 * webkit_settings_get_default_font_size:
1812 * @settings: a #WebKitSettings
1814 * Gets the #WebKitSettings:default-font-size property.
1816 * Returns: The default font size.
1818 guint32 webkit_settings_get_default_font_size(WebKitSettings* settings)
1820 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1822 return WKPreferencesGetDefaultFontSize(settings->priv->preferences.get());
1826 * webkit_settings_set_default_font_size:
1827 * @settings: a #WebKitSettings
1828 * @font_size: default font size to be set in pixels
1830 * Set the #WebKitSettings:default-font-size property.
1832 void webkit_settings_set_default_font_size(WebKitSettings* settings, guint32 fontSize)
1834 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1836 WebKitSettingsPrivate* priv = settings->priv;
1838 uint32_t currentSize = WKPreferencesGetDefaultFontSize(priv->preferences.get());
1839 if (currentSize == fontSize)
1842 WKPreferencesSetDefaultFontSize(priv->preferences.get(), fontSize);
1843 g_object_notify(G_OBJECT(settings), "default-font-size");
1847 * webkit_settings_get_default_monospace_font_size:
1848 * @settings: a #WebKitSettings
1850 * Gets the #WebKitSettings:default-monospace-font-size property.
1852 * Returns: Default monospace font size.
1854 guint32 webkit_settings_get_default_monospace_font_size(WebKitSettings* settings)
1856 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1858 return WKPreferencesGetDefaultFixedFontSize(settings->priv->preferences.get());
1862 * webkit_settings_set_default_monospace_font_size:
1863 * @settings: a #WebKitSettings
1864 * @font_size: default monospace font size to be set in pixels
1866 * Set the #WebKitSettings:default-monospace-font-size property.
1868 void webkit_settings_set_default_monospace_font_size(WebKitSettings* settings, guint32 fontSize)
1870 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1872 WebKitSettingsPrivate* priv = settings->priv;
1874 uint32_t currentSize = WKPreferencesGetDefaultFixedFontSize(priv->preferences.get());
1875 if (currentSize == fontSize)
1878 WKPreferencesSetDefaultFixedFontSize(priv->preferences.get(), fontSize);
1879 g_object_notify(G_OBJECT(settings), "default-monospace-font-size");
1883 * webkit_settings_get_minimum_font_size:
1884 * @settings: a #WebKitSettings
1886 * Gets the #WebKitSettings:minimum-font-size property.
1888 * Returns: Minimum font size.
1890 guint32 webkit_settings_get_minimum_font_size(WebKitSettings* settings)
1892 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1894 return WKPreferencesGetMinimumFontSize(settings->priv->preferences.get());
1898 * webkit_settings_set_minimum_font_size:
1899 * @settings: a #WebKitSettings
1900 * @font_size: minimum font size to be set in points
1902 * Set the #WebKitSettings:minimum-font-size property.
1904 void webkit_settings_set_minimum_font_size(WebKitSettings* settings, guint32 fontSize)
1906 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1908 WebKitSettingsPrivate* priv = settings->priv;
1910 uint32_t currentSize = WKPreferencesGetMinimumFontSize(priv->preferences.get());
1911 if (currentSize == fontSize)
1914 WKPreferencesSetMinimumFontSize(priv->preferences.get(), fontSize);
1915 g_object_notify(G_OBJECT(settings), "minimum-font-size");
1919 * webkit_settings_get_default_charset:
1920 * @settings: a #WebKitSettings
1922 * Gets the #WebKitSettings:default-charset property.
1924 * Returns: Default charset.
1926 const gchar* webkit_settings_get_default_charset(WebKitSettings* settings)
1928 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
1930 return settings->priv->defaultCharset.data();
1934 * webkit_settings_set_default_charset:
1935 * @settings: a #WebKitSettings
1936 * @default_charset: default charset to be set
1938 * Set the #WebKitSettings:default-charset property.
1940 void webkit_settings_set_default_charset(WebKitSettings* settings, const gchar* defaultCharset)
1942 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1943 g_return_if_fail(defaultCharset);
1945 WebKitSettingsPrivate* priv = settings->priv;
1946 if (!g_strcmp0(priv->defaultCharset.data(), defaultCharset))
1949 WKRetainPtr<WKStringRef> defaultCharsetRef = adoptWK(WKStringCreateWithUTF8CString(defaultCharset));
1950 WKPreferencesSetDefaultTextEncodingName(priv->preferences.get(), defaultCharsetRef.get());
1951 priv->defaultCharset = WebKit::toImpl(defaultCharsetRef.get())->string().utf8();
1953 g_object_notify(G_OBJECT(settings), "default-charset");
1957 * webkit_settings_get_enable_private_browsing:
1958 * @settings: a #WebKitSettings
1960 * Get the #WebKitSettings:enable-private-browsing property.
1962 * Returns: %TRUE If private browsing is enabled or %FALSE otherwise.
1964 gboolean webkit_settings_get_enable_private_browsing(WebKitSettings* settings)
1966 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
1968 return WKPreferencesGetPrivateBrowsingEnabled(settings->priv->preferences.get());
1972 * webkit_settings_set_private_caret_browsing:
1973 * @settings: a #WebKitSettings
1974 * @enabled: Value to be set
1976 * Set the #WebKitSettings:enable-private-browsing property.
1978 void webkit_settings_set_enable_private_browsing(WebKitSettings* settings, gboolean enabled)
1980 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
1982 WebKitSettingsPrivate* priv = settings->priv;
1983 bool currentValue = WKPreferencesGetPrivateBrowsingEnabled(priv->preferences.get());
1984 if (currentValue == enabled)
1987 WKPreferencesSetPrivateBrowsingEnabled(priv->preferences.get(), enabled);
1988 g_object_notify(G_OBJECT(settings), "enable-private-browsing");
1992 * webkit_settings_get_enable_developer_extras:
1993 * @settings: a #WebKitSettings
1995 * Get the #WebKitSettings:enable-developer-extras property.
1997 * Returns: %TRUE If developer extras is enabled or %FALSE otherwise.
1999 gboolean webkit_settings_get_enable_developer_extras(WebKitSettings* settings)
2001 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2003 return WKPreferencesGetDeveloperExtrasEnabled(settings->priv->preferences.get());
2007 * webkit_settings_set_enable_developer_extras:
2008 * @settings: a #WebKitSettings
2009 * @enabled: Value to be set
2011 * Set the #WebKitSettings:enable-developer-extras property.
2013 void webkit_settings_set_enable_developer_extras(WebKitSettings* settings, gboolean enabled)
2015 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2017 WebKitSettingsPrivate* priv = settings->priv;
2018 bool currentValue = WKPreferencesGetDeveloperExtrasEnabled(priv->preferences.get());
2019 if (currentValue == enabled)
2022 WKPreferencesSetDeveloperExtrasEnabled(priv->preferences.get(), enabled);
2023 g_object_notify(G_OBJECT(settings), "enable-developer-extras");
2027 * webkit_settings_get_enable_resizable_text_areas:
2028 * @settings: a #WebKitSettings
2030 * Get the #WebKitSettings:enable-resizable-text-areas property.
2032 * Returns: %TRUE If text areas can be resized or %FALSE otherwise.
2034 gboolean webkit_settings_get_enable_resizable_text_areas(WebKitSettings* settings)
2036 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2038 return WKPreferencesGetTextAreasAreResizable(settings->priv->preferences.get());
2042 * webkit_settings_set_enable_resizable_text_areas:
2043 * @settings: a #WebKitSettings
2044 * @enabled: Value to be set
2046 * Set the #WebKitSettings:enable-resizable-text-areas property.
2048 void webkit_settings_set_enable_resizable_text_areas(WebKitSettings* settings, gboolean enabled)
2050 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2052 WebKitSettingsPrivate* priv = settings->priv;
2053 bool currentValue = WKPreferencesGetTextAreasAreResizable(priv->preferences.get());
2054 if (currentValue == enabled)
2057 WKPreferencesSetTextAreasAreResizable(priv->preferences.get(), enabled);
2058 g_object_notify(G_OBJECT(settings), "enable-resizable-text-areas");
2062 * webkit_settings_get_enable_tabs_to_links:
2063 * @settings: a #WebKitSettings
2065 * Get the #WebKitSettings:enable-tabs-to-links property.
2067 * Returns: %TRUE If tabs to link is enabled or %FALSE otherwise.
2069 gboolean webkit_settings_get_enable_tabs_to_links(WebKitSettings* settings)
2071 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2073 return WKPreferencesGetTabsToLinks(settings->priv->preferences.get());
2077 * webkit_settings_set_enable_tabs_to_links:
2078 * @settings: a #WebKitSettings
2079 * @enabled: Value to be set
2081 * Set the #WebKitSettings:enable-tabs-to-links property.
2083 void webkit_settings_set_enable_tabs_to_links(WebKitSettings* settings, gboolean enabled)
2085 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2087 WebKitSettingsPrivate* priv = settings->priv;
2088 bool currentValue = WKPreferencesGetTabsToLinks(priv->preferences.get());
2089 if (currentValue == enabled)
2092 WKPreferencesSetTabsToLinks(priv->preferences.get(), enabled);
2093 g_object_notify(G_OBJECT(settings), "enable-tabs-to-links");
2097 * webkit_settings_get_enable_dns_prefetching:
2098 * @settings: a #WebKitSettings
2100 * Get the #WebKitSettings:enable-dns-prefetching property.
2102 * Returns: %TRUE If DNS prefetching is enabled or %FALSE otherwise.
2104 gboolean webkit_settings_get_enable_dns_prefetching(WebKitSettings* settings)
2106 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2108 return WKPreferencesGetDNSPrefetchingEnabled(settings->priv->preferences.get());
2112 * webkit_settings_set_enable_dns_prefetching:
2113 * @settings: a #WebKitSettings
2114 * @enabled: Value to be set
2116 * Set the #WebKitSettings:enable-dns-prefetching property.
2118 void webkit_settings_set_enable_dns_prefetching(WebKitSettings* settings, gboolean enabled)
2120 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2122 WebKitSettingsPrivate* priv = settings->priv;
2123 bool currentValue = WKPreferencesGetDNSPrefetchingEnabled(priv->preferences.get());
2124 if (currentValue == enabled)
2127 WKPreferencesSetDNSPrefetchingEnabled(priv->preferences.get(), enabled);
2128 g_object_notify(G_OBJECT(settings), "enable-dns-prefetching");
2132 * webkit_settings_get_enable_caret_browsing:
2133 * @settings: a #WebKitSettings
2135 * Get the #WebKitSettings:enable-caret-browsing property.
2137 * Returns: %TRUE If caret browsing is enabled or %FALSE otherwise.
2139 gboolean webkit_settings_get_enable_caret_browsing(WebKitSettings* settings)
2141 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2143 return WKPreferencesGetCaretBrowsingEnabled(settings->priv->preferences.get());
2147 * webkit_settings_set_enable_caret_browsing:
2148 * @settings: a #WebKitSettings
2149 * @enabled: Value to be set
2151 * Set the #WebKitSettings:enable-caret-browsing property.
2153 void webkit_settings_set_enable_caret_browsing(WebKitSettings* settings, gboolean enabled)
2155 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2157 WebKitSettingsPrivate* priv = settings->priv;
2158 bool currentValue = WKPreferencesGetCaretBrowsingEnabled(priv->preferences.get());
2159 if (currentValue == enabled)
2162 WKPreferencesSetCaretBrowsingEnabled(priv->preferences.get(), enabled);
2163 g_object_notify(G_OBJECT(settings), "enable-caret-browsing");
2167 * webkit_settings_get_enable_fullscreen:
2168 * @settings: a #WebKitSettings
2170 * Get the #WebKitSettings:enable-fullscreen property.
2172 * Returns: %TRUE If fullscreen support is enabled or %FALSE otherwise.
2174 gboolean webkit_settings_get_enable_fullscreen(WebKitSettings* settings)
2176 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2178 return WKPreferencesGetFullScreenEnabled(settings->priv->preferences.get());
2182 * webkit_settings_set_enable_fullscreen:
2183 * @settings: a #WebKitSettings
2184 * @enabled: Value to be set
2186 * Set the #WebKitSettings:enable-fullscreen property.
2188 void webkit_settings_set_enable_fullscreen(WebKitSettings* settings, gboolean enabled)
2190 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2192 WebKitSettingsPrivate* priv = settings->priv;
2193 bool currentValue = WKPreferencesGetFullScreenEnabled(priv->preferences.get());
2194 if (currentValue == enabled)
2197 WKPreferencesSetFullScreenEnabled(priv->preferences.get(), enabled);
2198 g_object_notify(G_OBJECT(settings), "enable-fullscreen");
2202 * webkit_settings_get_print_backgrounds:
2203 * @settings: a #WebKitSettings
2205 * Get the #WebKitSettings:print-backgrounds property.
2207 * Returns: %TRUE If background images should be printed or %FALSE otherwise.
2209 gboolean webkit_settings_get_print_backgrounds(WebKitSettings* settings)
2211 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2213 return WKPreferencesGetShouldPrintBackgrounds(settings->priv->preferences.get());
2217 * webkit_settings_set_print_backgrounds:
2218 * @settings: a #WebKitSettings
2219 * @print_backgrounds: Value to be set
2221 * Set the #WebKitSettings:print-backgrounds property.
2223 void webkit_settings_set_print_backgrounds(WebKitSettings* settings, gboolean printBackgrounds)
2225 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2227 WebKitSettingsPrivate* priv = settings->priv;
2228 bool currentValue = WKPreferencesGetShouldPrintBackgrounds(priv->preferences.get());
2229 if (currentValue == printBackgrounds)
2232 WKPreferencesSetShouldPrintBackgrounds(priv->preferences.get(), printBackgrounds);
2233 g_object_notify(G_OBJECT(settings), "print-backgrounds");
2237 * webkit_settings_get_enable_webaudio:
2238 * @settings: a #WebKitSettings
2240 * Get the #WebKitSettings:enable-webaudio property.
2242 * Returns: %TRUE If webaudio support is enabled or %FALSE otherwise.
2244 gboolean webkit_settings_get_enable_webaudio(WebKitSettings* settings)
2246 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2248 return WKPreferencesGetWebAudioEnabled(settings->priv->preferences.get());
2252 * webkit_settings_set_enable_webaudio:
2253 * @settings: a #WebKitSettings
2254 * @enabled: Value to be set
2256 * Set the #WebKitSettings:enable-webaudio property.
2258 void webkit_settings_set_enable_webaudio(WebKitSettings* settings, gboolean enabled)
2260 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2262 WebKitSettingsPrivate* priv = settings->priv;
2263 bool currentValue = WKPreferencesGetWebAudioEnabled(priv->preferences.get());
2264 if (currentValue == enabled)
2267 WKPreferencesSetWebAudioEnabled(priv->preferences.get(), enabled);
2268 g_object_notify(G_OBJECT(settings), "enable-webaudio");
2272 * webkit_settings_get_enable_webgl:
2273 * @settings: a #WebKitSettings
2275 * Get the #WebKitSettings:enable-webgl property.
2277 * Returns: %TRUE If webgl support is enabled or %FALSE otherwise.
2279 gboolean webkit_settings_get_enable_webgl(WebKitSettings* settings)
2281 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2283 return WKPreferencesGetWebGLEnabled(settings->priv->preferences.get());
2287 * webkit_settings_set_enable_webgl:
2288 * @settings: a #WebKitSettings
2289 * @enabled: Value to be set
2291 * Set the #WebKitSettings:enable-webgl property.
2293 void webkit_settings_set_enable_webgl(WebKitSettings* settings, gboolean enabled)
2295 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2297 WebKitSettingsPrivate* priv = settings->priv;
2298 bool currentValue = WKPreferencesGetWebGLEnabled(priv->preferences.get());
2299 if (currentValue == enabled)
2302 WKPreferencesSetWebGLEnabled(priv->preferences.get(), enabled);
2303 g_object_notify(G_OBJECT(settings), "enable-webgl");
2307 * webkit_settings_set_allow_modal_dialogs:
2308 * @settings: a #WebKitSettings
2309 * @allowed: Value to be set
2311 * Set the #WebKitSettings:allow-modal-dialogs property.
2313 void webkit_settings_set_allow_modal_dialogs(WebKitSettings* settings, gboolean allowed)
2315 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2317 WebKitSettingsPrivate* priv = settings->priv;
2318 if (priv->allowModalDialogs == allowed)
2321 priv->allowModalDialogs = allowed;
2322 g_object_notify(G_OBJECT(settings), "allow-modal-dialogs");
2326 * webkit_settings_get_allow_modal_dialogs:
2327 * @settings: a #WebKitSettings
2329 * Get the #WebKitSettings:allow-modal-dialogs property.
2331 * Returns: %TRUE if it's allowed to create and run modal dialogs or %FALSE otherwise.
2333 gboolean webkit_settings_get_allow_modal_dialogs(WebKitSettings* settings)
2335 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2336 return settings->priv->allowModalDialogs;
2340 * webkit_settings_set_zoom_text_only:
2341 * @settings: a #WebKitSettings
2342 * @zoom_text_only: Value to be set
2344 * Set the #WebKitSettings:zoom-text-only property.
2346 void webkit_settings_set_zoom_text_only(WebKitSettings* settings, gboolean zoomTextOnly)
2348 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2350 WebKitSettingsPrivate* priv = settings->priv;
2351 if (priv->zoomTextOnly == zoomTextOnly)
2354 priv->zoomTextOnly = zoomTextOnly;
2355 g_object_notify(G_OBJECT(settings), "zoom-text-only");
2359 * webkit_settings_get_zoom_text_only:
2360 * @settings: a #WebKitSettings
2362 * Get the #WebKitSettings:zoom-text-only property.
2364 * Returns: %TRUE If zoom level of the view should only affect the text
2365 * or %FALSE if all view contents should be scaled.
2367 gboolean webkit_settings_get_zoom_text_only(WebKitSettings* settings)
2369 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2371 return settings->priv->zoomTextOnly;
2375 * webkit_settings_get_javascript_can_access_clipboard:
2376 * @settings: a #WebKitSettings
2378 * Get the #WebKitSettings:javascript-can-access-clipboard property.
2380 * Returns: %TRUE If javascript-can-access-clipboard is enabled or %FALSE otherwise.
2382 gboolean webkit_settings_get_javascript_can_access_clipboard(WebKitSettings* settings)
2384 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2386 return WKPreferencesGetJavaScriptCanAccessClipboard(settings->priv->preferences.get())
2387 && WKPreferencesGetDOMPasteAllowed(settings->priv->preferences.get());
2391 * webkit_settings_set_javascript_can_access_clipboard:
2392 * @settings: a #WebKitSettings
2393 * @enabled: Value to be set
2395 * Set the #WebKitSettings:javascript-can-access-clipboard property.
2397 void webkit_settings_set_javascript_can_access_clipboard(WebKitSettings* settings, gboolean enabled)
2399 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2401 WebKitSettingsPrivate* priv = settings->priv;
2402 bool currentValue = WKPreferencesGetJavaScriptCanAccessClipboard(priv->preferences.get())
2403 && WKPreferencesGetDOMPasteAllowed(priv->preferences.get());
2404 if (currentValue == enabled)
2407 WKPreferencesSetJavaScriptCanAccessClipboard(priv->preferences.get(), enabled);
2408 WKPreferencesSetDOMPasteAllowed(priv->preferences.get(), enabled);
2410 g_object_notify(G_OBJECT(settings), "javascript-can-access-clipboard");
2414 * webkit_settings_set_media_playback_requires_user_gesture:
2415 * @settings: a #WebKitSettings
2416 * @enabled: Value to be set
2418 * Set the #WebKitSettings:media-playback-requires-user-gesture property.
2420 void webkit_settings_set_media_playback_requires_user_gesture(WebKitSettings* settings, gboolean enabled)
2422 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2424 WebKitSettingsPrivate* priv = settings->priv;
2425 bool currentValue = WKPreferencesGetMediaPlaybackRequiresUserGesture(priv->preferences.get());
2426 if (currentValue == enabled)
2429 WKPreferencesSetMediaPlaybackRequiresUserGesture(priv->preferences.get(), enabled);
2431 g_object_notify(G_OBJECT(settings), "media-playback-requires-user-gesture");
2435 * webkit_settings_get_media_playback_requires_user_gesture:
2436 * @settings: a #WebKitSettings
2438 * Get the #WebKitSettings:media-playback-requires-user-gesture property.
2440 * Returns: %TRUE If an user gesture is needed to play or load media
2441 * or %FALSE if no user gesture is needed.
2443 gboolean webkit_settings_get_media_playback_requires_user_gesture(WebKitSettings* settings)
2445 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2447 return WKPreferencesGetMediaPlaybackRequiresUserGesture(settings->priv->preferences.get());
2451 * webkit_settings_set_media_playback_allows_inline:
2452 * @settings: a #WebKitSettings
2453 * @enabled: Value to be set
2455 * Set the #WebKitSettings:media-playback-allows-inline property.
2457 void webkit_settings_set_media_playback_allows_inline(WebKitSettings* settings, gboolean enabled)
2459 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2461 WebKitSettingsPrivate* priv = settings->priv;
2462 bool currentValue = WKPreferencesGetMediaPlaybackAllowsInline(priv->preferences.get());
2463 if (currentValue == enabled)
2466 WKPreferencesSetMediaPlaybackAllowsInline(priv->preferences.get(), enabled);
2468 g_object_notify(G_OBJECT(settings), "media-playback-allows-inline");
2472 * webkit_settings_get_media_playback_allows_inline:
2473 * @settings: a #WebKitSettings
2475 * Get the #WebKitSettings:media-playback-allows-inline property.
2477 * Returns: %TRUE If inline playback is allowed for media
2478 * or %FALSE if only fullscreen playback is allowed.
2480 gboolean webkit_settings_get_media_playback_allows_inline(WebKitSettings* settings)
2482 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), TRUE);
2484 return WKPreferencesGetMediaPlaybackAllowsInline(settings->priv->preferences.get());
2488 * webkit_settings_set_draw_compositing_indicators:
2489 * @settings: a #WebKitSettings
2490 * @enabled: Value to be set
2492 * Set the #WebKitSettings:draw-compositing-indicators property.
2494 void webkit_settings_set_draw_compositing_indicators(WebKitSettings* settings, gboolean enabled)
2496 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2498 WebKitSettingsPrivate* priv = settings->priv;
2499 if (WKPreferencesGetCompositingBordersVisible(priv->preferences.get()) == enabled
2500 && WKPreferencesGetCompositingRepaintCountersVisible(priv->preferences.get()) == enabled)
2503 WKPreferencesSetCompositingBordersVisible(priv->preferences.get(), enabled);
2504 WKPreferencesSetCompositingRepaintCountersVisible(priv->preferences.get(), enabled);
2505 g_object_notify(G_OBJECT(settings), "draw-compositing-indicators");
2509 * webkit_settings_get_draw_compositing_indicators:
2510 * @settings: a #WebKitSettings
2512 * Get the #WebKitSettings:draw-compositing-indicators property.
2514 * Returns: %TRUE If compositing borders are drawn or %FALSE otherwise.
2516 gboolean webkit_settings_get_draw_compositing_indicators(WebKitSettings* settings)
2518 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2519 return WKPreferencesGetCompositingBordersVisible(settings->priv->preferences.get())
2520 && WKPreferencesGetCompositingRepaintCountersVisible(settings->priv->preferences.get());
2524 * webkit_settings_get_enable_site_specific_quirks:
2525 * @settings: a #WebKitSettings
2527 * Get the #WebKitSettings:enable-site-specific-quirks property.
2529 * Returns: %TRUE if site specific quirks are enabled or %FALSE otherwise.
2531 gboolean webkit_settings_get_enable_site_specific_quirks(WebKitSettings* settings)
2533 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2535 return WKPreferencesGetNeedsSiteSpecificQuirks(settings->priv->preferences.get());
2539 * webkit_settings_set_enable_site_specific_quirks:
2540 * @settings: a #WebKitSettings
2541 * @enabled: Value to be set
2543 * Set the #WebKitSettings:enable-site-specific-quirks property.
2545 void webkit_settings_set_enable_site_specific_quirks(WebKitSettings* settings, gboolean enabled)
2547 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2549 WebKitSettingsPrivate* priv = settings->priv;
2550 bool currentValue = WKPreferencesGetNeedsSiteSpecificQuirks(priv->preferences.get());
2551 if (currentValue == enabled)
2554 WKPreferencesSetNeedsSiteSpecificQuirks(priv->preferences.get(), enabled);
2555 g_object_notify(G_OBJECT(settings), "enable-site-specific-quirks");
2559 * webkit_settings_get_enable_page_cache:
2560 * @settings: a #WebKitSettings
2562 * Get the #WebKitSettings:enable-page-cache property.
2564 * Returns: %TRUE if page cache enabled or %FALSE otherwise.
2566 gboolean webkit_settings_get_enable_page_cache(WebKitSettings* settings)
2568 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
2570 return WKPreferencesGetPageCacheEnabled(settings->priv->preferences.get());
2574 * webkit_settings_set_enable_page_cache:
2575 * @settings: a #WebKitSettings
2576 * @enabled: Value to be set
2578 * Set the #WebKitSettings:enable-page-cache property.
2580 void webkit_settings_set_enable_page_cache(WebKitSettings* settings, gboolean enabled)
2582 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2584 WebKitSettingsPrivate* priv = settings->priv;
2585 bool currentValue = WKPreferencesGetPageCacheEnabled(priv->preferences.get());
2586 if (currentValue == enabled)
2589 WKPreferencesSetPageCacheEnabled(priv->preferences.get(), enabled);
2590 g_object_notify(G_OBJECT(settings), "enable-page-cache");
2594 * webkit_settings_get_user_agent:
2595 * @settings: a #WebKitSettings
2597 * Get the #WebKitSettings:user-agent property.
2599 * Returns: The current value of the user-agent property.
2601 const char* webkit_settings_get_user_agent(WebKitSettings* settings)
2603 g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), 0);
2605 WebKitSettingsPrivate* priv = settings->priv;
2606 ASSERT(!priv->userAgent.isNull());
2607 return priv->userAgent.data();
2611 * webkit_settings_set_user_agent:
2612 * @settings: a #WebKitSettings
2613 * @user_agent: (allow-none): The new custom user agent string or %NULL to use the default user agent
2615 * Set the #WebKitSettings:user-agent property.
2617 void webkit_settings_set_user_agent(WebKitSettings* settings, const char* userAgent)
2619 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2621 WebKitSettingsPrivate* priv = settings->priv;
2622 CString newUserAgent = (!userAgent || !strlen(userAgent)) ? WebCore::standardUserAgent("").utf8() : userAgent;
2623 if (newUserAgent == priv->userAgent)
2626 priv->userAgent = newUserAgent;
2627 g_object_notify(G_OBJECT(settings), "user-agent");
2631 * webkit_settings_set_user_agent_with_application_details:
2632 * @settings: a #WebKitSettings
2633 * @application_name: (allow-none): The application name used for the user agent or %NULL to use the default user agent.
2634 * @application_version: (allow-none): The application version for the user agent or %NULL to user the default version.
2636 * Set the #WebKitSettings:user-agent property by appending the application details to the default user
2637 * agent. If no application name or version is given, the default user agent used will be used. If only
2638 * the version is given, the default engine version is used with the given application name.
2640 void webkit_settings_set_user_agent_with_application_details(WebKitSettings* settings, const char* applicationName, const char* applicationVersion)
2642 g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
2644 CString newUserAgent = WebCore::standardUserAgent(String::fromUTF8(applicationName), String::fromUTF8(applicationVersion)).utf8();
2645 webkit_settings_set_user_agent(settings, newUserAgent.data());