Title: [101962] trunk/Source/WebKit2
Revision
101962
Author
[email protected]
Date
2011-12-04 11:09:16 -0800 (Sun, 04 Dec 2011)

Log Message

[WK2][GTK] enable-fullscreen WebSettings
https://bugs.webkit.org/show_bug.cgi?id=73774

Reviewed by Martin Robinson.

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_set_enable_fullscreen):
(webkit_settings_get_enable_fullscreen):
* 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 (101961 => 101962)


--- trunk/Source/WebKit2/ChangeLog	2011-12-04 18:46:11 UTC (rev 101961)
+++ trunk/Source/WebKit2/ChangeLog	2011-12-04 19:09:16 UTC (rev 101962)
@@ -1,3 +1,21 @@
+2011-12-04  Philippe Normand  <[email protected]>
+
+        [WK2][GTK] enable-fullscreen WebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=73774
+
+        Reviewed by Martin Robinson.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_set_enable_fullscreen):
+        (webkit_settings_get_enable_fullscreen):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings):
+
 2011-12-02  Viatcheslav Ostapenko  <[email protected]>
 
         [Qt] [WK2] MiniBrowser --touch asserts in debug build

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2011-12-04 18:46:11 UTC (rev 101961)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2011-12-04 19:09:16 UTC (rev 101962)
@@ -103,6 +103,7 @@
     PROP_ENABLE_TABS_TO_LINKS,
     PROP_ENABLE_DNS_PREFETCHING,
     PROP_ENABLE_CARET_BROWSING,
+    PROP_ENABLE_FULLSCREEN
 };
 
 static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -197,6 +198,9 @@
     case PROP_ENABLE_CARET_BROWSING:
         webkit_settings_set_enable_caret_browsing(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_FULLSCREEN:
+        webkit_settings_set_enable_fullscreen(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -295,6 +299,9 @@
     case PROP_ENABLE_CARET_BROWSING:
         g_value_set_boolean(value, webkit_settings_get_enable_caret_browsing(settings));
         break;
+    case PROP_ENABLE_FULLSCREEN:
+        g_value_set_boolean(value, webkit_settings_get_enable_fullscreen(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -728,6 +735,22 @@
                                                          FALSE,
                                                          readWriteConstructParamFlags));
 
+    /**
+     * WebKitSettings:enable-fullscreen:
+     *
+     * Whether to enable the _javascript_ Fullscreen API. The API
+     * allows any HTML element to request fullscreen display. See also
+     * the current draft of the spec:
+     * http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
+     */
+    g_object_class_install_property(gObjectClass,
+                                    PROP_ENABLE_FULLSCREEN,
+                                    g_param_spec_boolean("enable-fullscreen",
+                                                         _("Enable Fullscreen"),
+                                                         _("Whether to enable the Javascriipt Fullscreen API"),
+                                                         FALSE,
+                                                         readWriteConstructParamFlags));
+
     g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
 }
 
@@ -1672,6 +1695,26 @@
 }
 
 /**
+ * webkit_settings_set_enable_fullscreen
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-fullscreen property.
+ */
+void webkit_settings_set_enable_fullscreen(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = WKPreferencesGetFullScreenEnabled(priv->preferences.get());
+    if (currentValue == enabled)
+        return;
+
+    WKPreferencesSetFullScreenEnabled(priv->preferences.get(), enabled);
+    g_object_notify(G_OBJECT(settings), "enable-fullscreen");
+}
+
+/**
  * webkit_settings_get_enable_developer_extras:
  * @settings: a #WebKitSettings
  *
@@ -1845,3 +1888,18 @@
     WKPreferencesSetCaretBrowsingEnabled(priv->preferences.get(), enabled);
     g_object_notify(G_OBJECT(settings), "enable-caret-browsing");
 }
+
+/**
+ * webkit_settings_get_enable_fullscreen:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-fullscreen property.
+ *
+ * Returns: %TRUE If fullscreen support is enabled or %FALSE otherwise.
+ */
+gboolean webkit_settings_get_enable_fullscreen(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return WKPreferencesGetFullScreenEnabled(settings->priv->preferences.get());
+}

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2011-12-04 18:46:11 UTC (rev 101961)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2011-12-04 19:09:16 UTC (rev 101962)
@@ -279,6 +279,13 @@
 webkit_settings_set_enable_caret_browsing                      (WebKitSettings* settings,
                                                                 gboolean enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_fullscreen                          (WebKitSettings* settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_fullscreen                          (WebKitSettings* settings,
+                                                                gboolean enabled);
+
 G_END_DECLS
 
 #endif /* webkitwebsettings_h */

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2011-12-04 18:46:11 UTC (rev 101961)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2011-12-04 19:09:16 UTC (rev 101962)
@@ -216,6 +216,8 @@
 webkit_settings_set_enable_dns_prefetching
 webkit_settings_get_enable_caret_browsing
 webkit_settings_set_enable_caret_browsing
+webkit_settings_get_enable_fullscreen
+webkit_settings_set_enable_fullscreen
 
 <SUBSECTION Standard>
 WebKitSettingsClass

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2011-12-04 18:46:11 UTC (rev 101961)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2011-12-04 19:09:16 UTC (rev 101962)
@@ -182,6 +182,11 @@
     webkit_settings_set_enable_caret_browsing(settings, TRUE);
     g_assert(webkit_settings_get_enable_caret_browsing(settings));
 
+    // Fullscreen _javascript_ API is disabled by default.
+    g_assert(!webkit_settings_get_enable_fullscreen(settings));
+    webkit_settings_set_enable_fullscreen(settings, TRUE);
+    g_assert(webkit_settings_get_enable_fullscreen(settings));
+
     g_object_unref(G_OBJECT(settings));
 #endif
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to