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);