diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
commit | 1b914638db989aaa98631a1c1e02c7b2d44805d8 (patch) | |
tree | 87f4fd2c7b38db320079a5de8877890d2ca3c485 /Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp | |
parent | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (diff) | |
download | qtwebkit-1b914638db989aaa98631a1c1e02c7b2d44805d8.tar.gz |
Imported WebKit commit 9a52e27980f47e8b0d8f8b7cc0fd7b5741bceb92 (http://svn.webkit.org/repository/webkit/trunk@116736)
New snapshot to include QDeclarative* -> QQml* build fixes
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp | 122 |
1 files changed, 121 insertions, 1 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp index 8bec722b3..5c027044b 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp @@ -106,7 +106,9 @@ enum { PROP_ENABLE_WEBAUDIO, PROP_ENABLE_WEBGL, PROP_ZOOM_TEXT_ONLY, - PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD + PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD, + PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE, + PROP_MEDIA_PLAYBACK_ALLOWS_INLINE }; static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec) @@ -219,6 +221,12 @@ static void webKitSettingsSetProperty(GObject* object, guint propId, const GValu case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD: webkit_settings_set_javascript_can_access_clipboard(settings, g_value_get_boolean(value)); break; + case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE: + webkit_settings_set_media_playback_requires_user_gesture(settings, g_value_get_boolean(value)); + break; + case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE: + webkit_settings_set_media_playback_allows_inline(settings, g_value_get_boolean(value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); break; @@ -335,6 +343,12 @@ static void webKitSettingsGetProperty(GObject* object, guint propId, GValue* val case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD: g_value_set_boolean(value, webkit_settings_get_javascript_can_access_clipboard(settings)); break; + case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE: + g_value_set_boolean(value, webkit_settings_get_media_playback_requires_user_gesture(settings)); + break; + case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE: + g_value_set_boolean(value, webkit_settings_get_media_playback_allows_inline(settings)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); break; @@ -862,6 +876,38 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass) FALSE, readWriteConstructParamFlags)); + /** + * WebKitSettings:media-playback-requires-user-gesture: + * + * Whether a user gesture (such as clicking the play button) + * would be required to start media playback or load media. This is off + * by default, so media playback could start automatically. + * Setting it on requires a gesture by the user to start playback, or to + * load the media. + */ + g_object_class_install_property(gObjectClass, + PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE, + g_param_spec_boolean("media-playback-requires-user-gesture", + _("Media playback requires user gesture"), + _("Whether media playback requires user gesture"), + FALSE, + readWriteConstructParamFlags)); + + /** + * WebKitSettings:media-playback-allows-inline + * + * Whether media playback is full-screen only or inline playback is allowed. + * This is %TRUE by default, so media playback can be inline. Setting it to + * %FALSE allows specifying that media playback should be always fullscreen. + */ + g_object_class_install_property(gObjectClass, + PROP_MEDIA_PLAYBACK_ALLOWS_INLINE, + g_param_spec_boolean("media-playback-allows-inline", + _("Media playback allows inline"), + _("Whether media playback allows inline"), + TRUE, + readWriteConstructParamFlags)); + g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate)); } @@ -2193,3 +2239,77 @@ void webkit_settings_set_javascript_can_access_clipboard(WebKitSettings* setting g_object_notify(G_OBJECT(settings), "javascript-can-access-clipboard"); } + +/** + * webkit_settings_set_media_playback_requires_user_gesture: + * @settings: a #WebKitSettings + * @enabled: Value to be set + * + * Set the #WebKitSettings:media-playback-requires-user-gesture property. + */ +void webkit_settings_set_media_playback_requires_user_gesture(WebKitSettings* settings, gboolean enabled) +{ + g_return_if_fail(WEBKIT_IS_SETTINGS(settings)); + + WebKitSettingsPrivate* priv = settings->priv; + bool currentValue = WKPreferencesGetMediaPlaybackRequiresUserGesture(priv->preferences.get()); + if (currentValue == enabled) + return; + + WKPreferencesSetMediaPlaybackRequiresUserGesture(priv->preferences.get(), enabled); + + g_object_notify(G_OBJECT(settings), "media-playback-requires-user-gesture"); +} + +/** + * webkit_settings_get_media_playback_requires_user_gesture: + * @settings: a #WebKitSettings + * + * Get the #WebKitSettings:media-playback-requires-user-gesture property. + * + * Returns: %TRUE If an user gesture is needed to play or load media + * or %FALSE if no user gesture is needed. + */ +gboolean webkit_settings_get_media_playback_requires_user_gesture(WebKitSettings* settings) +{ + g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE); + + return WKPreferencesGetMediaPlaybackRequiresUserGesture(settings->priv->preferences.get()); +} + +/** + * webkit_settings_set_media_playback_allows_inline: + * @settings: a #WebKitSettings + * @enabled: Value to be set + * + * Set the #WebKitSettings:media-playback-allows-inline property. + */ +void webkit_settings_set_media_playback_allows_inline(WebKitSettings* settings, gboolean enabled) +{ + g_return_if_fail(WEBKIT_IS_SETTINGS(settings)); + + WebKitSettingsPrivate* priv = settings->priv; + bool currentValue = WKPreferencesGetMediaPlaybackAllowsInline(priv->preferences.get()); + if (currentValue == enabled) + return; + + WKPreferencesSetMediaPlaybackAllowsInline(priv->preferences.get(), enabled); + + g_object_notify(G_OBJECT(settings), "media-playback-allows-inline"); +} + +/** + * webkit_settings_get_media_playback_allows_inline: + * @settings: a #WebKitSettings + * + * Get the #WebKitSettings:media-playback-allows-inline property. + * + * Returns: %TRUE If inline playback is allowed for media + * or %FALSE if only fullscreen playback is allowed. + */ +gboolean webkit_settings_get_media_playback_allows_inline(WebKitSettings* settings) +{ + g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), TRUE); + + return WKPreferencesGetMediaPlaybackAllowsInline(settings->priv->preferences.get()); +} |