Title: [108512] trunk/Source/WebKit2
Revision
108512
Author
commit-qu...@webkit.org
Date
2012-02-22 09:44:16 -0800 (Wed, 22 Feb 2012)

Log Message

[GTK][WK2] Add WebGL WebSetting.
https://bugs.webkit.org/show_bug.cgi?id=79217

Patch by Antaryami Pandia <antaryami.pan...@motorola.com> on 2012-02-22
Reviewed by Martin Robinson.

Add a WebSetting to enable/disable Webgl.

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_set_enable_webaudio):
(webkit_settings_get_enable_webgl):
(webkit_settings_set_enable_webgl):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (108511 => 108512)


--- trunk/Source/WebKit2/ChangeLog	2012-02-22 17:39:03 UTC (rev 108511)
+++ trunk/Source/WebKit2/ChangeLog	2012-02-22 17:44:16 UTC (rev 108512)
@@ -1,3 +1,24 @@
+2012-02-22  Antaryami Pandia  <antaryami.pan...@motorola.com>
+
+        [GTK][WK2] Add WebGL WebSetting.
+        https://bugs.webkit.org/show_bug.cgi?id=79217
+
+        Reviewed by Martin Robinson.
+
+        Add a WebSetting to enable/disable Webgl.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_set_enable_webaudio):
+        (webkit_settings_get_enable_webgl):
+        (webkit_settings_set_enable_webgl):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings):
+
 2012-02-22  Kenneth Rohde Christiansen  <kenn...@webkit.org>
 
         [Qt] Disregard previous backing store as soon as possible

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp (108511 => 108512)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2012-02-22 17:39:03 UTC (rev 108511)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2012-02-22 17:44:16 UTC (rev 108512)
@@ -102,7 +102,8 @@
     PROP_ENABLE_CARET_BROWSING,
     PROP_ENABLE_FULLSCREEN,
     PROP_PRINT_BACKGROUNDS,
-    PROP_ENABLE_WEBAUDIO
+    PROP_ENABLE_WEBAUDIO,
+    PROP_ENABLE_WEBGL
 };
 
 static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -206,6 +207,9 @@
     case PROP_ENABLE_WEBAUDIO:
         webkit_settings_set_enable_webaudio(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_WEBGL:
+        webkit_settings_set_enable_webgl(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -313,6 +317,9 @@
     case PROP_ENABLE_WEBAUDIO:
         g_value_set_boolean(value, webkit_settings_get_enable_webaudio(settings));
         break;
+    case PROP_ENABLE_WEBGL:
+        g_value_set_boolean(value, webkit_settings_get_enable_webgl(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -794,6 +801,21 @@
                                                          FALSE,
                                                          readWriteConstructParamFlags));
 
+    /**
+    * WebKitSettings:enable-webgl:
+    *
+    * Enable or disable support for WebGL on pages. WebGL is an experimental
+    * proposal for allowing web pages to use OpenGL ES-like calls directly. The
+    * standard is currently a work-in-progress by the Khronos Group.
+    */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_ENABLE_WEBGL,
+                                    g_param_spec_boolean("enable-webgl",
+                                                         _("Enable WebGL"),
+                                                         _("Whether WebGL content should be rendered"),
+                                                         FALSE,
+                                                         readWriteConstructParamFlags));
+
     g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
 }
 
@@ -2016,3 +2038,38 @@
     WKPreferencesSetWebAudioEnabled(priv->preferences.get(), enabled);
     g_object_notify(G_OBJECT(settings), "enable-webaudio");
 }
+
+/**
+ * webkit_settings_get_enable_webgl:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-webgl property.
+ *
+ * Returns: %TRUE If webgl support is enabled or %FALSE otherwise.
+ */
+gboolean webkit_settings_get_enable_webgl(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return WKPreferencesGetWebGLEnabled(settings->priv->preferences.get());
+}
+
+/**
+ * webkit_settings_set_enable_webgl:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-webgl property.
+ */
+void webkit_settings_set_enable_webgl(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = WKPreferencesGetWebGLEnabled(priv->preferences.get());
+    if (currentValue == enabled)
+        return;
+
+    WKPreferencesSetWebGLEnabled(priv->preferences.get(), enabled);
+    g_object_notify(G_OBJECT(settings), "enable-webgl");
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h (108511 => 108512)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2012-02-22 17:39:03 UTC (rev 108511)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2012-02-22 17:44:16 UTC (rev 108512)
@@ -300,6 +300,13 @@
 webkit_settings_set_enable_webaudio                            (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_webgl                               (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_webgl                               (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (108511 => 108512)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-02-22 17:39:03 UTC (rev 108511)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2012-02-22 17:44:16 UTC (rev 108512)
@@ -218,6 +218,8 @@
 webkit_settings_set_print_backgrounds
 webkit_settings_get_enable_webaudio
 webkit_settings_set_enable_webaudio
+webkit_settings_get_enable_webgl
+webkit_settings_set_enable_webgl
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp (108511 => 108512)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2012-02-22 17:39:03 UTC (rev 108511)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2012-02-22 17:44:16 UTC (rev 108512)
@@ -194,6 +194,11 @@
     webkit_settings_set_enable_webaudio(settings, TRUE);
     g_assert(webkit_settings_get_enable_webaudio(settings));
 
+    // WebGL is disabled by default.
+    g_assert(!webkit_settings_get_enable_webgl(settings));
+    webkit_settings_set_enable_webgl(settings, TRUE);
+    g_assert(webkit_settings_get_enable_webgl(settings));
+
     g_object_unref(G_OBJECT(settings));
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to