Diff
Modified: trunk/Source/WebKit/ChangeLog (234037 => 234038)
--- trunk/Source/WebKit/ChangeLog 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Source/WebKit/ChangeLog 2018-07-20 09:00:15 UTC (rev 234038)
@@ -1,3 +1,23 @@
+2018-07-20 Philippe Normand <[email protected]>
+
+ [GTK][WPE] enable-media-capabilities websetting
+ https://bugs.webkit.org/show_bug.cgi?id=187847
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add a new WebKitSetting for the MediaCapabilities spec defined in:
+ https://wicg.github.io/media-capabilities/
+
+ * UIProcess/API/glib/WebKitSettings.cpp:
+ (webKitSettingsSetProperty):
+ (webKitSettingsGetProperty):
+ (webkit_settings_class_init):
+ (webkit_settings_get_enable_media_capabilities):
+ (webkit_settings_set_enable_media_capabilities):
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+ * UIProcess/API/wpe/WebKitSettings.h:
+
2018-07-20 Carlos Garcia Campos <[email protected]>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.5 release.
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp (234037 => 234038)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2018-07-20 09:00:15 UTC (rev 234038)
@@ -155,6 +155,7 @@
PROP_ENABLE_SPATIAL_NAVIGATION,
PROP_ENABLE_MEDIASOURCE,
PROP_ENABLE_ENCRYPTED_MEDIA,
+ PROP_ENABLE_MEDIA_CAPABILITIES,
PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS,
PROP_ALLOW_UNIVERSAL_ACCESS_FROM_FILE_URLS,
#if PLATFORM(GTK)
@@ -356,6 +357,9 @@
case PROP_ENABLE_ENCRYPTED_MEDIA:
webkit_settings_set_enable_encrypted_media(settings, g_value_get_boolean(value));
break;
+ case PROP_ENABLE_MEDIA_CAPABILITIES:
+ webkit_settings_set_enable_media_capabilities(settings, g_value_get_boolean(value));
+ break;
case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
webkit_settings_set_allow_file_access_from_file_urls(settings, g_value_get_boolean(value));
break;
@@ -529,6 +533,9 @@
case PROP_ENABLE_ENCRYPTED_MEDIA:
g_value_set_boolean(value, webkit_settings_get_enable_encrypted_media(settings));
break;
+ case PROP_ENABLE_MEDIA_CAPABILITIES:
+ g_value_set_boolean(value, webkit_settings_get_enable_media_capabilities(settings));
+ break;
case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
g_value_set_boolean(value, webkit_settings_get_allow_file_access_from_file_urls(settings));
break;
@@ -1320,6 +1327,28 @@
readWriteConstructParamFlags));
/**
+ * WebKitSettings:enable-media-capabilities:
+ *
+ * Enable or disable support for MediaCapabilities on pages. This
+ * specification intends to provide APIs to allow websites to make an optimal
+ * decision when picking media content for the user. The APIs will expose
+ * information about the decoding and encoding capabilities for a given format
+ * but also output capabilities to find the best match based on the device’s
+ * display.
+ *
+ * See also https://wicg.github.io/media-capabilities/
+ *
+ * Since: 2.22
+ */
+ g_object_class_install_property(gObjectClass,
+ PROP_ENABLE_MEDIA_CAPABILITIES,
+ g_param_spec_boolean("enable-media-capabilities",
+ _("Enable MediaCapabilities"),
+ _("Whether MediaCapabilities should be enabled."),
+ FALSE,
+ readWriteConstructParamFlags));
+
+ /**
* WebKitSettings:allow-file-access-from-file-urls:
*
* Whether file access is allowed from file URLs. By default, when
@@ -3217,7 +3246,48 @@
priv->preferences->setEncryptedMediaAPIEnabled(enabled);
g_object_notify(G_OBJECT(settings), "enable-encrypted-media");
}
+
/**
+ * webkit_settings_get_enable_media_capabilities:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-media-capabilities property.
+ *
+ * Returns: %TRUE if MediaCapabilities support is enabled or %FALSE otherwise.
+ *
+ * Since: 2.22
+ */
+gboolean webkit_settings_get_enable_media_capabilities(WebKitSettings* settings)
+{
+ g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+ return settings->priv->preferences->mediaCapabilitiesEnabled();
+}
+
+
+/**
+ * webkit_settings_set_enable_media_capabilities:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-media-capabilities property.
+ *
+ * Since: 2.22
+ */
+void webkit_settings_set_enable_media_capabilities(WebKitSettings* settings, gboolean enabled)
+{
+ g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+ WebKitSettingsPrivate* priv = settings->priv;
+ bool currentValue = priv->preferences->mediaCapabilitiesEnabled();
+ if (currentValue == enabled)
+ return;
+
+ priv->preferences->setMediaCapabilitiesEnabled(enabled);
+ g_object_notify(G_OBJECT(settings), "enable-media-capabilities");
+}
+
+/**
* webkit_settings_get_allow_file_access_from_file_urls:
* @settings: a #WebKitSettings
*
Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h (234037 => 234038)
--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h 2018-07-20 09:00:15 UTC (rev 234038)
@@ -438,6 +438,13 @@
gboolean enabled);
WEBKIT_API gboolean
+webkit_settings_get_enable_media_capabilities (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_media_capabilities (WebKitSettings *settings,
+ gboolean enabled);
+
+WEBKIT_API gboolean
webkit_settings_get_allow_file_access_from_file_urls (WebKitSettings *settings);
WEBKIT_API void
Modified: trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt (234037 => 234038)
--- trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt 2018-07-20 09:00:15 UTC (rev 234038)
@@ -468,6 +468,8 @@
webkit_settings_set_enable_mediasource
webkit_settings_get_enable_encrypted_media
webkit_settings_set_enable_encrypted_media
+webkit_settings_get_enable_media_capabilities
+webkit_settings_set_enable_media_capabilities
webkit_settings_get_allow_file_access_from_file_urls
webkit_settings_set_allow_file_access_from_file_urls
webkit_settings_get_allow_universal_access_from_file_urls
Modified: trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h (234037 => 234038)
--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h 2018-07-20 09:00:15 UTC (rev 234038)
@@ -415,6 +415,13 @@
gboolean enabled);
WEBKIT_API gboolean
+webkit_settings_get_enable_media_capabilities (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_media_capabilities (WebKitSettings *settings,
+ gboolean enabled);
+
+WEBKIT_API gboolean
webkit_settings_get_allow_file_access_from_file_urls (WebKitSettings *settings);
WEBKIT_API void
Modified: trunk/Tools/ChangeLog (234037 => 234038)
--- trunk/Tools/ChangeLog 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Tools/ChangeLog 2018-07-20 09:00:15 UTC (rev 234038)
@@ -1,3 +1,13 @@
+2018-07-20 Philippe Normand <[email protected]>
+
+ [GTK][WPE] enable-media-capabilities websetting
+ https://bugs.webkit.org/show_bug.cgi?id=187847
+
+ Reviewed by Carlos Garcia Campos.
+
+ * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
+ (testWebKitSettings): Unit test for the new enable-media-capabilities setting.
+
2018-07-19 Carlos Garcia Campos <[email protected]>
[GLIB] jsc_context_evaluate_in_object() should receive an instance when a JSCClass is given
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp (234037 => 234038)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp 2018-07-20 08:05:59 UTC (rev 234037)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp 2018-07-20 09:00:15 UTC (rev 234038)
@@ -324,6 +324,11 @@
webkit_settings_set_enable_encrypted_media(settings, TRUE);
g_assert(webkit_settings_get_enable_encrypted_media(settings));
+ // MediaCapabilities is disabled by default
+ g_assert(!webkit_settings_get_enable_media_capabilities(settings));
+ webkit_settings_set_enable_media_capabilities(settings, TRUE);
+ g_assert(webkit_settings_get_enable_media_capabilities(settings));
+
// File access from file URLs is not allowed by default.
g_assert(!webkit_settings_get_allow_file_access_from_file_urls(settings));
webkit_settings_set_allow_file_access_from_file_urls(settings, TRUE);