Changeset 234038 in webkit


Ignore:
Timestamp:
Jul 20, 2018 2:00:15 AM (6 years ago)
Author:
Philippe Normand
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.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r234027 r234038  
     12018-07-20  Philippe Normand  <pnormand@igalia.com>
     2
     3        [GTK][WPE] enable-media-capabilities websetting
     4        https://bugs.webkit.org/show_bug.cgi?id=187847
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Add a new WebKitSetting for the MediaCapabilities spec defined in:
     9        https://wicg.github.io/media-capabilities/
     10
     11        * UIProcess/API/glib/WebKitSettings.cpp:
     12        (webKitSettingsSetProperty):
     13        (webKitSettingsGetProperty):
     14        (webkit_settings_class_init):
     15        (webkit_settings_get_enable_media_capabilities):
     16        (webkit_settings_set_enable_media_capabilities):
     17        * UIProcess/API/gtk/WebKitSettings.h:
     18        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
     19        * UIProcess/API/wpe/WebKitSettings.h:
     20
    1212018-07-20  Carlos Garcia Campos  <cgarcia@igalia.com>
    222
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp

    r231004 r234038  
    156156    PROP_ENABLE_MEDIASOURCE,
    157157    PROP_ENABLE_ENCRYPTED_MEDIA,
     158    PROP_ENABLE_MEDIA_CAPABILITIES,
    158159    PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS,
    159160    PROP_ALLOW_UNIVERSAL_ACCESS_FROM_FILE_URLS,
     
    357358        webkit_settings_set_enable_encrypted_media(settings, g_value_get_boolean(value));
    358359        break;
     360    case PROP_ENABLE_MEDIA_CAPABILITIES:
     361        webkit_settings_set_enable_media_capabilities(settings, g_value_get_boolean(value));
     362        break;
    359363    case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
    360364        webkit_settings_set_allow_file_access_from_file_urls(settings, g_value_get_boolean(value));
     
    529533    case PROP_ENABLE_ENCRYPTED_MEDIA:
    530534        g_value_set_boolean(value, webkit_settings_get_enable_encrypted_media(settings));
     535        break;
     536    case PROP_ENABLE_MEDIA_CAPABILITIES:
     537        g_value_set_boolean(value, webkit_settings_get_enable_media_capabilities(settings));
    531538        break;
    532539    case PROP_ALLOW_FILE_ACCESS_FROM_FILE_URLS:
     
    13211328
    13221329    /**
     1330     * WebKitSettings:enable-media-capabilities:
     1331     *
     1332     * Enable or disable support for MediaCapabilities on pages. This
     1333     * specification intends to provide APIs to allow websites to make an optimal
     1334     * decision when picking media content for the user. The APIs will expose
     1335     * information about the decoding and encoding capabilities for a given format
     1336     * but also output capabilities to find the best match based on the device’s
     1337     * display.
     1338     *
     1339     * See also https://wicg.github.io/media-capabilities/
     1340     *
     1341     * Since: 2.22
     1342     */
     1343    g_object_class_install_property(gObjectClass,
     1344        PROP_ENABLE_MEDIA_CAPABILITIES,
     1345        g_param_spec_boolean("enable-media-capabilities",
     1346            _("Enable MediaCapabilities"),
     1347            _("Whether MediaCapabilities should be enabled."),
     1348            FALSE,
     1349            readWriteConstructParamFlags));
     1350
     1351    /**
    13231352     * WebKitSettings:allow-file-access-from-file-urls:
    13241353     *
     
    32183247    g_object_notify(G_OBJECT(settings), "enable-encrypted-media");
    32193248}
     3249
     3250/**
     3251 * webkit_settings_get_enable_media_capabilities:
     3252 * @settings: a #WebKitSettings
     3253 *
     3254 * Get the #WebKitSettings:enable-media-capabilities property.
     3255 *
     3256 * Returns: %TRUE if MediaCapabilities support is enabled or %FALSE otherwise.
     3257 *
     3258 * Since: 2.22
     3259 */
     3260gboolean webkit_settings_get_enable_media_capabilities(WebKitSettings* settings)
     3261{
     3262    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
     3263
     3264    return settings->priv->preferences->mediaCapabilitiesEnabled();
     3265}
     3266
     3267
     3268/**
     3269 * webkit_settings_set_enable_media_capabilities:
     3270 * @settings: a #WebKitSettings
     3271 * @enabled: Value to be set
     3272 *
     3273 * Set the #WebKitSettings:enable-media-capabilities property.
     3274 *
     3275 * Since: 2.22
     3276 */
     3277void webkit_settings_set_enable_media_capabilities(WebKitSettings* settings, gboolean enabled)
     3278{
     3279    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
     3280
     3281    WebKitSettingsPrivate* priv = settings->priv;
     3282    bool currentValue = priv->preferences->mediaCapabilitiesEnabled();
     3283    if (currentValue == enabled)
     3284        return;
     3285
     3286    priv->preferences->setMediaCapabilitiesEnabled(enabled);
     3287    g_object_notify(G_OBJECT(settings), "enable-media-capabilities");
     3288}
     3289
    32203290/**
    32213291 * webkit_settings_get_allow_file_access_from_file_urls:
  • trunk/Source/WebKit/UIProcess/API/gtk/WebKitSettings.h

    r227607 r234038  
    439439
    440440WEBKIT_API gboolean
     441webkit_settings_get_enable_media_capabilities                  (WebKitSettings *settings);
     442
     443WEBKIT_API void
     444webkit_settings_set_enable_media_capabilities                  (WebKitSettings *settings,
     445                                                                gboolean        enabled);
     446
     447WEBKIT_API gboolean
    441448webkit_settings_get_allow_file_access_from_file_urls           (WebKitSettings *settings);
    442449
  • trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt

    r232671 r234038  
    469469webkit_settings_get_enable_encrypted_media
    470470webkit_settings_set_enable_encrypted_media
     471webkit_settings_get_enable_media_capabilities
     472webkit_settings_set_enable_media_capabilities
    471473webkit_settings_get_allow_file_access_from_file_urls
    472474webkit_settings_set_allow_file_access_from_file_urls
  • trunk/Source/WebKit/UIProcess/API/wpe/WebKitSettings.h

    r231004 r234038  
    416416
    417417WEBKIT_API gboolean
     418webkit_settings_get_enable_media_capabilities                  (WebKitSettings *settings);
     419
     420WEBKIT_API void
     421webkit_settings_set_enable_media_capabilities                  (WebKitSettings *settings,
     422                                                                gboolean        enabled);
     423
     424WEBKIT_API gboolean
    418425webkit_settings_get_allow_file_access_from_file_urls           (WebKitSettings *settings);
    419426
  • trunk/Tools/ChangeLog

    r234025 r234038  
     12018-07-20  Philippe Normand  <pnormand@igalia.com>
     2
     3        [GTK][WPE] enable-media-capabilities websetting
     4        https://bugs.webkit.org/show_bug.cgi?id=187847
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
     9        (testWebKitSettings): Unit test for the new enable-media-capabilities setting.
     10
    1112018-07-19  Carlos Garcia Campos  <cgarcia@igalia.com>
    212
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp

    r231004 r234038  
    325325    g_assert(webkit_settings_get_enable_encrypted_media(settings));
    326326
     327    // MediaCapabilities is disabled by default
     328    g_assert(!webkit_settings_get_enable_media_capabilities(settings));
     329    webkit_settings_set_enable_media_capabilities(settings, TRUE);
     330    g_assert(webkit_settings_get_enable_media_capabilities(settings));
     331
    327332    // File access from file URLs is not allowed by default.
    328333    g_assert(!webkit_settings_get_allow_file_access_from_file_urls(settings));
Note: See TracChangeset for help on using the changeset viewer.