Title: [234038] trunk
Revision
234038
Author
[email protected]
Date
2018-07-20 02:00:15 -0700 (Fri, 20 Jul 2018)

Log Message

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

Reviewed by Carlos Garcia Campos.

Source/WebKit:

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:

Tools:

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings): Unit test for the new enable-media-capabilities setting.

Modified Paths

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);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to