Title: [225182] trunk
Revision
225182
Author
[email protected]
Date
2017-11-27 11:36:05 -0800 (Mon, 27 Nov 2017)

Log Message

[GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings
https://bugs.webkit.org/show_bug.cgi?id=18005

Patch by Yacine Bandou <[email protected]> on 2017-11-27
Reviewed by Michael Catanzaro.

Source/WebKit:

EncryptedMedia is an experimental _javascript_ API for playing encrypted media in HTML.
This property will only work as intended if the EncryptedMedia feature is enabled at build time
with the ENABLE_ENCRYPTED_MEDIA flag.

* UIProcess/API/glib/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_encrypted_media):
(webkit_settings_set_enable_encrypted_media):
* 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):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (225181 => 225182)


--- trunk/Source/WebKit/ChangeLog	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Source/WebKit/ChangeLog	2017-11-27 19:36:05 UTC (rev 225182)
@@ -1,3 +1,24 @@
+2017-11-27  Yacine Bandou  <[email protected]>
+
+        [GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=18005
+
+        Reviewed by Michael Catanzaro.
+
+        EncryptedMedia is an experimental _javascript_ API for playing encrypted media in HTML.
+        This property will only work as intended if the EncryptedMedia feature is enabled at build time
+        with the ENABLE_ENCRYPTED_MEDIA flag.
+
+        * UIProcess/API/glib/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_encrypted_media):
+        (webkit_settings_set_enable_encrypted_media):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+        * UIProcess/API/wpe/WebKitSettings.h:
+
 2017-11-27  Tim Horton  <[email protected]>
 
         One too many zeroes in macOS version number in FeatureDefines

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


--- trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp	2017-11-27 19:36:05 UTC (rev 225182)
@@ -152,6 +152,7 @@
     PROP_ENABLE_MEDIA_STREAM,
     PROP_ENABLE_SPATIAL_NAVIGATION,
     PROP_ENABLE_MEDIASOURCE,
+    PROP_ENABLE_ENCRYPTED_MEDIA,
     PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS,
     PROP_ALLOW_UNIVERSAL_ACCESS_FROM_FILE_URLS,
 #if PLATFORM(GTK)
@@ -348,6 +349,9 @@
     case PROP_ENABLE_MEDIASOURCE:
         webkit_settings_set_enable_mediasource(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_ENCRYPTED_MEDIA:
+        webkit_settings_set_enable_encrypted_media(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;
@@ -516,6 +520,9 @@
     case PROP_ENABLE_MEDIASOURCE:
         g_value_set_boolean(value, webkit_settings_get_enable_mediasource(settings));
         break;
+    case PROP_ENABLE_ENCRYPTED_MEDIA:
+        g_value_set_boolean(value, webkit_settings_get_enable_encrypted_media(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;
@@ -1283,6 +1290,27 @@
             FALSE,
             readWriteConstructParamFlags));
 
+
+   /**
+     * WebKitSettings:enable-encrypted-media:
+     *
+     * Enable or disable support for Encrypted Media API on pages.
+     * EncryptedMedia is an experimental _javascript_ API for playing encrypted media in HTML.
+     * This property will only work as intended if the EncryptedMedia feature is enabled at build time
+     * with the ENABLE_ENCRYPTED_MEDIA flag.
+     *
+     * See https://www.w3.org/TR/encrypted-media/
+     *
+     * Since: 2.20
+     */
+    g_object_class_install_property(gObjectClass,
+        PROP_ENABLE_ENCRYPTED_MEDIA,
+        g_param_spec_boolean("enable-encrypted-media",
+            _("Enable EncryptedMedia"),
+            _("Whether EncryptedMedia should be enabled."),
+            FALSE,
+            readWriteConstructParamFlags));
+
     /**
      * WebKitSettings:allow-file-access-from-file-urls:
      *
@@ -3141,6 +3169,45 @@
 }
 
 /**
+ * webkit_settings_get_enable_encrypted_media:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-encrypted-media property.
+ *
+ * Returns: %TRUE if EncryptedMedia support is enabled or %FALSE otherwise.
+ *
+ * Since: 2.20
+ */
+gboolean webkit_settings_get_enable_encrypted_media(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return settings->priv->preferences->encryptedMediaAPIEnabled();
+}
+
+
+/**
+ * webkit_settings_set_enable_encrypted_media:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-encrypted-media property.
+ *
+ * Since: 2.20
+ */
+void webkit_settings_set_enable_encrypted_media(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = priv->preferences->encryptedMediaAPIEnabled();
+    if (currentValue == enabled)
+        return;
+
+    priv->preferences->setEncryptedMediaAPIEnabled(enabled);
+    g_object_notify(G_OBJECT(settings), "enable-encrypted-media");
+}
+/**
  * webkit_settings_get_allow_file_access_from_file_urls:
  * @settings: a #WebKitSettings
  *

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


--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h	2017-11-27 19:36:05 UTC (rev 225182)
@@ -431,6 +431,13 @@
                                                                 gboolean        enabled);
 
 WEBKIT_API gboolean
+webkit_settings_get_enable_encrypted_media                     (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_encrypted_media                     (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 (225181 => 225182)


--- trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2017-11-27 19:36:05 UTC (rev 225182)
@@ -462,6 +462,8 @@
 webkit_settings_set_enable_spatial_navigation
 webkit_settings_get_enable_mediasource
 webkit_settings_set_enable_mediasource
+webkit_settings_get_enable_encrypted_media
+webkit_settings_set_enable_encrypted_media
 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 (225181 => 225182)


--- trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h	2017-11-27 19:36:05 UTC (rev 225182)
@@ -415,6 +415,13 @@
                                                                 gboolean        enabled);
 
 WEBKIT_API gboolean
+webkit_settings_get_enable_encrypted_media                     (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_encrypted_media                     (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 (225181 => 225182)


--- trunk/Tools/ChangeLog	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Tools/ChangeLog	2017-11-27 19:36:05 UTC (rev 225182)
@@ -1,3 +1,13 @@
+2017-11-27  Yacine Bandou  <[email protected]>
+
+        [GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=18005
+
+        Reviewed by Michael Catanzaro.
+
+        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
+        (testWebKitSettings):
+
 2017-11-27  Tim Horton  <[email protected]>
 
         One too many zeroes in macOS version number in FeatureDefines

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp (225181 => 225182)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp	2017-11-27 18:33:00 UTC (rev 225181)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp	2017-11-27 19:36:05 UTC (rev 225182)
@@ -317,6 +317,11 @@
     webkit_settings_set_enable_mediasource(settings, TRUE);
     g_assert(webkit_settings_get_enable_mediasource(settings));
 
+    // EncryptedMedia is disabled by default
+    g_assert(!webkit_settings_get_enable_encrypted_media(settings));
+    webkit_settings_set_enable_encrypted_media(settings, TRUE);
+    g_assert(webkit_settings_get_enable_encrypted_media(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