Title: [244260] trunk
Revision
244260
Author
[email protected]
Date
2019-04-15 07:41:17 -0700 (Mon, 15 Apr 2019)

Log Message

[GTK][WPE] Add enable-media websetting
https://bugs.webkit.org/show_bug.cgi?id=196863

Reviewed by Michael Catanzaro.

Source/WebKit:

It can be useful for headless browsers, for instance. The setting is enabled by default.

* Shared/WebPreferences.yaml:
* UIProcess/API/glib/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_media):
(webkit_settings_set_enable_media):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/wpe/WebKitSettings.h:
* UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings): Add test for the enable-media web-setting.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (244259 => 244260)


--- trunk/Source/WebKit/ChangeLog	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/ChangeLog	2019-04-15 14:41:17 UTC (rev 244260)
@@ -1,3 +1,24 @@
+2019-04-15  Philippe Normand  <[email protected]>
+
+        [GTK][WPE] Add enable-media websetting
+        https://bugs.webkit.org/show_bug.cgi?id=196863
+
+        Reviewed by Michael Catanzaro.
+
+        It can be useful for headless browsers, for instance. The setting is enabled by default.
+
+        * Shared/WebPreferences.yaml:
+        * UIProcess/API/glib/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_media):
+        (webkit_settings_set_enable_media):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+        * UIProcess/API/wpe/WebKitSettings.h:
+        * UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
+
 2019-04-14  Rob Buis  <[email protected]>
 
         Link prefetch not useful for top-level navigation

Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (244259 => 244260)


--- trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-04-15 14:41:17 UTC (rev 244260)
@@ -524,6 +524,12 @@
   webcoreBinding: RuntimeEnabledFeatures
   condition: ENABLE(MEDIA_STREAM)
 
+MediaEnabled:
+  type: bool
+  defaultValue: true
+  webcoreName: mediaEnabled
+  condition: ENABLE(VIDEO)
+
 ScreenCaptureEnabled:
   type: bool
   defaultValue: true

Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp (244259 => 244260)


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp	2019-04-15 14:41:17 UTC (rev 244260)
@@ -167,6 +167,7 @@
     PROP_ENABLE_BACK_FORWARD_NAVIGATION_GESTURES,
 #endif
     PROP_ENABLE_JAVASCRIPT_MARKUP,
+    PROP_ENABLE_MEDIA,
 };
 
 static void webKitSettingsDispose(GObject* object)
@@ -393,6 +394,9 @@
     case PROP_ENABLE_JAVASCRIPT_MARKUP:
         webkit_settings_set_enable_javascript_markup(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_MEDIA:
+        webkit_settings_set_enable_media(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -578,6 +582,9 @@
     case PROP_ENABLE_JAVASCRIPT_MARKUP:
         g_value_set_boolean(value, webkit_settings_get_enable_javascript_markup(settings));
         break;
+    case PROP_ENABLE_MEDIA:
+        g_value_set_boolean(value, webkit_settings_get_enable_media(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -1493,6 +1500,24 @@
             _("Enable _javascript_ in document markup."),
             TRUE,
             readWriteConstructParamFlags));
+
+    /**
+     * WebKitSettings:enable-media:
+     *
+     * Enable or disable support for media playback on pages. This setting is enabled by
+     * default. Disabling it means <audio>, <track> and <video> elements will have
+     * playback support disabled.
+     *
+     * Since: 2.26
+     */
+    g_object_class_install_property(gObjectClass,
+        PROP_ENABLE_MEDIA,
+        g_param_spec_boolean("enable-media",
+            _("Enable media"),
+            _("Whether media content should be handled"),
+            TRUE,
+            readWriteConstructParamFlags));
+
 }
 
 WebPreferences* webkitSettingsGetPreferences(WebKitSettings* settings)
@@ -3674,3 +3699,42 @@
     priv->preferences->setJavaScriptMarkupEnabled(enabled);
     g_object_notify(G_OBJECT(settings), "enable-_javascript_-markup");
 }
+
+/**
+ * webkit_settings_get_enable_media:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-media property.
+ *
+ * Returns: %TRUE if media support is enabled or %FALSE otherwise.
+ *
+ * Since: 2.26
+ */
+gboolean webkit_settings_get_enable_media(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return settings->priv->preferences->mediaEnabled();
+}
+
+/**
+ * webkit_settings_set_enable_media:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-media property.
+ *
+ * Since: 2.26
+ */
+void webkit_settings_set_enable_media(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = priv->preferences->mediaEnabled();
+    if (currentValue == enabled)
+        return;
+
+    priv->preferences->setMediaEnabled(enabled);
+    g_object_notify(G_OBJECT(settings), "enable-media");
+}

Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h (244259 => 244260)


--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h	2019-04-15 14:41:17 UTC (rev 244260)
@@ -492,6 +492,13 @@
 webkit_settings_set_enable_javascript_markup                   (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_media                               (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_media                               (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

Modified: trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt (244259 => 244260)


--- trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2019-04-15 14:41:17 UTC (rev 244260)
@@ -535,6 +535,8 @@
 webkit_settings_set_enable_back_forward_navigation_gestures
 webkit_settings_font_size_to_points
 webkit_settings_font_size_to_pixels
+webkit_settings_get_enable_media
+webkit_settings_set_enable_media
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h (244259 => 244260)


--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h	2019-04-15 14:41:17 UTC (rev 244260)
@@ -449,6 +449,13 @@
 webkit_settings_set_enable_javascript_markup                   (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_media                               (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_media                               (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

Modified: trunk/Source/WebKit/UIProcess/API/wpe/docs/wpe-1.0-sections.txt (244259 => 244260)


--- trunk/Source/WebKit/UIProcess/API/wpe/docs/wpe-1.0-sections.txt	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Source/WebKit/UIProcess/API/wpe/docs/wpe-1.0-sections.txt	2019-04-15 14:41:17 UTC (rev 244260)
@@ -522,6 +522,8 @@
 webkit_settings_set_allow_file_access_from_file_urls
 webkit_settings_get_allow_universal_access_from_file_urls
 webkit_settings_set_allow_universal_access_from_file_urls
+webkit_settings_get_enable_media
+webkit_settings_set_enable_media
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Tools/ChangeLog (244259 => 244260)


--- trunk/Tools/ChangeLog	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Tools/ChangeLog	2019-04-15 14:41:17 UTC (rev 244260)
@@ -1,3 +1,13 @@
+2019-04-15  Philippe Normand  <[email protected]>
+
+        [GTK][WPE] Add enable-media websetting
+        https://bugs.webkit.org/show_bug.cgi?id=196863
+
+        Reviewed by Michael Catanzaro.
+
+        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
+        (testWebKitSettings): Add test for the enable-media web-setting.
+
 2019-04-14  Wenson Hsieh  <[email protected]>
 
         API test WKAttachmentTests.AddAttachmentToConnectedImageElement is a flaky failure on Mac Release builds

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp (244259 => 244260)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp	2019-04-15 11:49:12 UTC (rev 244259)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp	2019-04-15 14:41:17 UTC (rev 244260)
@@ -339,6 +339,11 @@
     webkit_settings_set_allow_universal_access_from_file_urls(settings, TRUE);
     g_assert_true(webkit_settings_get_allow_universal_access_from_file_urls(settings));
 
+    // Media is enabled by default.
+    g_assert_true(webkit_settings_get_enable_media(settings));
+    webkit_settings_set_enable_media(settings, FALSE);
+    g_assert_false(webkit_settings_get_enable_media(settings));
+
 #if PLATFORM(GTK)
     // Ondemand is the default hardware acceleration policy.
     g_assert_cmpuint(webkit_settings_get_hardware_acceleration_policy(settings), ==, WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to