Changeset 225182 in webkit


Ignore:
Timestamp:
Nov 27, 2017 11:36:05 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

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

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> 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):

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r225179 r225182  
     12017-11-27  Yacine Bandou  <yacine.bandou_ext@softathome.com>
     2
     3        [GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings
     4        https://bugs.webkit.org/show_bug.cgi?id=18005
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        EncryptedMedia is an experimental JavaScript API for playing encrypted media in HTML.
     9        This property will only work as intended if the EncryptedMedia feature is enabled at build time
     10        with the ENABLE_ENCRYPTED_MEDIA flag.
     11
     12        * UIProcess/API/glib/WebKitSettings.cpp:
     13        (webKitSettingsSetProperty):
     14        (webKitSettingsGetProperty):
     15        (webkit_settings_class_init):
     16        (webkit_settings_get_enable_encrypted_media):
     17        (webkit_settings_set_enable_encrypted_media):
     18        * UIProcess/API/gtk/WebKitSettings.h:
     19        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
     20        * UIProcess/API/wpe/WebKitSettings.h:
     21
    1222017-11-27  Tim Horton  <timothy_horton@apple.com>
    223
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp

    r224872 r225182  
    153153    PROP_ENABLE_SPATIAL_NAVIGATION,
    154154    PROP_ENABLE_MEDIASOURCE,
     155    PROP_ENABLE_ENCRYPTED_MEDIA,
    155156    PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS,
    156157    PROP_ALLOW_UNIVERSAL_ACCESS_FROM_FILE_URLS,
     
    349350        webkit_settings_set_enable_mediasource(settings, g_value_get_boolean(value));
    350351        break;
     352    case PROP_ENABLE_ENCRYPTED_MEDIA:
     353        webkit_settings_set_enable_encrypted_media(settings, g_value_get_boolean(value));
     354        break;
    351355    case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
    352356        webkit_settings_set_allow_file_access_from_file_urls(settings, g_value_get_boolean(value));
     
    516520    case PROP_ENABLE_MEDIASOURCE:
    517521        g_value_set_boolean(value, webkit_settings_get_enable_mediasource(settings));
     522        break;
     523    case PROP_ENABLE_ENCRYPTED_MEDIA:
     524        g_value_set_boolean(value, webkit_settings_get_enable_encrypted_media(settings));
    518525        break;
    519526    case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
     
    12841291            readWriteConstructParamFlags));
    12851292
     1293
     1294   /**
     1295     * WebKitSettings:enable-encrypted-media:
     1296     *
     1297     * Enable or disable support for Encrypted Media API on pages.
     1298     * EncryptedMedia is an experimental JavaScript API for playing encrypted media in HTML.
     1299     * This property will only work as intended if the EncryptedMedia feature is enabled at build time
     1300     * with the ENABLE_ENCRYPTED_MEDIA flag.
     1301     *
     1302     * See https://www.w3.org/TR/encrypted-media/
     1303     *
     1304     * Since: 2.20
     1305     */
     1306    g_object_class_install_property(gObjectClass,
     1307        PROP_ENABLE_ENCRYPTED_MEDIA,
     1308        g_param_spec_boolean("enable-encrypted-media",
     1309            _("Enable EncryptedMedia"),
     1310            _("Whether EncryptedMedia should be enabled."),
     1311            FALSE,
     1312            readWriteConstructParamFlags));
     1313
    12861314    /**
    12871315     * WebKitSettings:allow-file-access-from-file-urls:
     
    31413169}
    31423170
     3171/**
     3172 * webkit_settings_get_enable_encrypted_media:
     3173 * @settings: a #WebKitSettings
     3174 *
     3175 * Get the #WebKitSettings:enable-encrypted-media property.
     3176 *
     3177 * Returns: %TRUE if EncryptedMedia support is enabled or %FALSE otherwise.
     3178 *
     3179 * Since: 2.20
     3180 */
     3181gboolean webkit_settings_get_enable_encrypted_media(WebKitSettings* settings)
     3182{
     3183    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
     3184
     3185    return settings->priv->preferences->encryptedMediaAPIEnabled();
     3186}
     3187
     3188
     3189/**
     3190 * webkit_settings_set_enable_encrypted_media:
     3191 * @settings: a #WebKitSettings
     3192 * @enabled: Value to be set
     3193 *
     3194 * Set the #WebKitSettings:enable-encrypted-media property.
     3195 *
     3196 * Since: 2.20
     3197 */
     3198void webkit_settings_set_enable_encrypted_media(WebKitSettings* settings, gboolean enabled)
     3199{
     3200    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     3201
     3202    WebKitSettingsPrivate* priv = settings->priv;
     3203    bool currentValue = priv->preferences->encryptedMediaAPIEnabled();
     3204    if (currentValue == enabled)
     3205        return;
     3206
     3207    priv->preferences->setEncryptedMediaAPIEnabled(enabled);
     3208    g_object_notify(G_OBJECT(settings), "enable-encrypted-media");
     3209}
    31433210/**
    31443211 * webkit_settings_get_allow_file_access_from_file_urls:
  • trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h

    r224737 r225182  
    432432
    433433WEBKIT_API gboolean
     434webkit_settings_get_enable_encrypted_media                     (WebKitSettings *settings);
     435
     436WEBKIT_API void
     437webkit_settings_set_enable_encrypted_media                     (WebKitSettings *settings,
     438                                                                gboolean        enabled);
     439
     440WEBKIT_API gboolean
    434441webkit_settings_get_allow_file_access_from_file_urls           (WebKitSettings *settings);
    435442
  • trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt

    r225054 r225182  
    463463webkit_settings_get_enable_mediasource
    464464webkit_settings_set_enable_mediasource
     465webkit_settings_get_enable_encrypted_media
     466webkit_settings_set_enable_encrypted_media
    465467webkit_settings_get_allow_file_access_from_file_urls
    466468webkit_settings_set_allow_file_access_from_file_urls
  • trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h

    r218553 r225182  
    416416
    417417WEBKIT_API gboolean
     418webkit_settings_get_enable_encrypted_media                     (WebKitSettings *settings);
     419
     420WEBKIT_API void
     421webkit_settings_set_enable_encrypted_media                     (WebKitSettings *settings,
     422                                                                gboolean        enabled);
     423
     424WEBKIT_API gboolean
    418425webkit_settings_get_allow_file_access_from_file_urls           (WebKitSettings *settings);
    419426
  • trunk/Tools/ChangeLog

    r225179 r225182  
     12017-11-27  Yacine Bandou  <yacine.bandou_ext@softathome.com>
     2
     3        [GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings
     4        https://bugs.webkit.org/show_bug.cgi?id=18005
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
     9        (testWebKitSettings):
     10
    1112017-11-27  Tim Horton  <timothy_horton@apple.com>
    212
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp

    r224776 r225182  
    318318    g_assert(webkit_settings_get_enable_mediasource(settings));
    319319
     320    // EncryptedMedia is disabled by default
     321    g_assert(!webkit_settings_get_enable_encrypted_media(settings));
     322    webkit_settings_set_enable_encrypted_media(settings, TRUE);
     323    g_assert(webkit_settings_get_enable_encrypted_media(settings));
     324
    320325    // File access from file URLs is not allowed by default.
    321326    g_assert(!webkit_settings_get_allow_file_access_from_file_urls(settings));
Note: See TracChangeset for help on using the changeset viewer.