New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 616233 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

EME: Update MediaKeySystemConfiguration defaults; require non-empty capabilities

Project Member Reported by ddorwin@chromium.org, May 31 2016

Issue description

https://github.com/w3c/encrypted-media/issues/178#issuecomment-222203751 changes the default values for several MediaKeySystemConfiguration members. They default to an empty sequence rather than "not present."

In addition, at least one of `audioCapabilities` and `videoCapabilities` must be non-empty. (We could treat the absence of one as meaning no playback of that type is necessary.) This also guarantees that the expected robustness is always defined (see the discussion in  issue 577777 ).

The requirement that capabilities be specified will need to be phased in with a deprecation message when neither is specified.
 
Cc: joeyparrish@chromium.org halliwell@chromium.org faniel@chromium.org ericde@chromium.org
Labels: -Pri-2 M-55 Pri-1
Owner: jrumm...@chromium.org
 Issue 605661  is another spec compatibility issue that requires client updates. We should try to address them at the same time.

We need to a) communicate this and b) add a use counter. I'm assigning this to M55 for the latter. Once that's complete, we can move it to M56.
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2737b99610b13c7fcaad6ec3041cce4b538b372f

commit 2737b99610b13c7fcaad6ec3041cce4b538b372f
Author: jrummell <jrummell@chromium.org>
Date: Mon Oct 03 23:30:18 2016

EME: Update MediaKeySystemConfiguration defaults; check capabilities

The current EME spec has added defaults for some fields in
MediaKeySystemConfiguration, so update the code to specify
the defaults and match the latest algorithm.

As well, at least one of 'audioCapabilities' or 'videoCapabilities'
should be specified, so add a UseCounter if none are provided to
help determine when this can be enforced in the future.

Also update some of the EME tests to provide either
'audioCapabilities' or 'videoCapabilities' (or both)
when calling requestMediaKeySystemAccess().

BUG= 616233 
TEST=EME tests pass

Review-Url: https://codereview.chromium.org/2349813002
Cr-Commit-Position: refs/heads/master@{#422596}

[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/chrome/browser/media/encrypted_media_browsertest.cc
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/media/blink/key_system_config_selector.cc
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/media/blink/key_system_config_selector_unittest.cc
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/media/test/data/eme_player_js/globals.js
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/media/test/data/eme_player_js/player_utils.js
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/media/test/data/test_key_system_instantiation.html
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/third_party/WebKit/Source/modules/encryptedmedia/MediaKeySystemConfiguration.idl
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/third_party/WebKit/public/platform/WebMediaKeySystemConfiguration.h
[modify] https://crrev.com/2737b99610b13c7fcaad6ec3041cce4b538b372f/tools/metrics/histograms/histograms.xml

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0029a951c862120b5cf7b95cec7cc2a92586270

commit c0029a951c862120b5cf7b95cec7cc2a92586270
Author: jrummell <jrummell@chromium.org>
Date: Thu Oct 06 20:33:51 2016

EME: Check capabilities provided only on success

As some applications are providing multiple configurations for
compatability with previous versions, only check that at least
one capability is provided on success, as that is likely to fail
once Chrome starts following the EME spec strictly. This also
avoids the problem of counting both success and failure for the
same configuration (if multiple configs were provided).

BUG= 616233 
TEST=encrypted media layout tests pass

Review-Url: https://codereview.chromium.org/2397543002
Cr-Commit-Position: refs/heads/master@{#423656}

[modify] https://crrev.com/c0029a951c862120b5cf7b95cec7cc2a92586270/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp

Comment 4 by yucliu@chromium.org, Oct 20 2016

Is there a ETA for force providing audio or video capability?
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0029a951c862120b5cf7b95cec7cc2a92586270

commit c0029a951c862120b5cf7b95cec7cc2a92586270
Author: jrummell <jrummell@chromium.org>
Date: Thu Oct 06 20:33:51 2016

EME: Check capabilities provided only on success

As some applications are providing multiple configurations for
compatability with previous versions, only check that at least
one capability is provided on success, as that is likely to fail
once Chrome starts following the EME spec strictly. This also
avoids the problem of counting both success and failure for the
same configuration (if multiple configs were provided).

BUG= 616233 
TEST=encrypted media layout tests pass

Review-Url: https://codereview.chromium.org/2397543002
Cr-Commit-Position: refs/heads/master@{#423656}

[modify] https://crrev.com/c0029a951c862120b5cf7b95cec7cc2a92586270/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp

Comment 6 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840
Labels: -M-55 M-58
Updating milestone to M58 as Chrome will start enforcing non-empty capabilities then.
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 16 2016

Labels: Merge-Request-56
Requesting permission to merge the deprecation message (#8) into M56, as it references M58. Change includes a trivial test change to avoid the new message.

Comment 10 by dimu@chromium.org, Dec 17 2016

Labels: -Merge-Request-56 Merge-Approved-56 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M56 (branch: 2924)
Project Member

Comment 11 by bugdroid1@chromium.org, Dec 19 2016

Labels: -merge-approved-56 merge-merged-2924
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/733384f70e5fc51d4c93e240d70252d7772d56b8

commit 733384f70e5fc51d4c93e240d70252d7772d56b8
Author: John Rummell <jrummell@chromium.org>
Date: Mon Dec 19 21:34:06 2016

Merge "Add deprecation messages for EME requestMediaKeySystemAccess features"

Add a deprecation message if both 'audioCapabilities' and
'videoCapabilities' passed to navigator.requestMediaKeySystemAccess()
are empty. Support for this non-standard configuration will be removed
in M58.

https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/aG_QGiPErlE

BUG= 616233 
TEST=message logged with EME layout tests

Review-Url: https://codereview.chromium.org/2528563005
Cr-Commit-Position: refs/heads/master@{#439004}
(cherry picked from commit e58fd5bea854bbf7f519f33bbee5c7f458475b3f)

Review-Url: https://codereview.chromium.org/2588153002 .
Cr-Commit-Position: refs/branch-heads/2924@{#556}
Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059}

[modify] https://crrev.com/733384f70e5fc51d4c93e240d70252d7772d56b8/third_party/WebKit/LayoutTests/http/tests/security/powerfulFeatureRestrictions/old-powerful-features-on-insecure-origin-expected.txt
[modify] https://crrev.com/733384f70e5fc51d4c93e240d70252d7772d56b8/third_party/WebKit/LayoutTests/http/tests/security/powerfulFeatureRestrictions/old-powerful-features-on-insecure-origin.html
[modify] https://crrev.com/733384f70e5fc51d4c93e240d70252d7772d56b8/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/733384f70e5fc51d4c93e240d70252d7772d56b8/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93830e41885b6183b52a7cc3e0fe2a4ebb37c910

commit 93830e41885b6183b52a7cc3e0fe2a4ebb37c910
Author: jrummell <jrummell@chromium.org>
Date: Mon Feb 06 23:17:25 2017

EME: Fail requestMediaKeySystemAccess if no capabilities specified

The EME spec requires that at least one of 'audioCapabilities' or
'videoCapabilities' must be specified. There has been a deprecation
message for several releases, so enforce this now.

BUG= 616233 
TEST=EME tests pass

Review-Url: https://codereview.chromium.org/2652373002
Cr-Commit-Position: refs/heads/master@{#448438}

[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/media/blink/key_system_config_selector.cc
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/media/blink/key_system_config_selector_unittest.cc
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/media/test/data/eme_player_js/player_utils.js
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/LayoutTests/http/tests/media/encrypted-media/encrypted-media-encrypted-event-different-origin.html
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/LayoutTests/http/tests/media/encrypted-media/encrypted-media-encrypted-event-same-origin.html
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-requestmediakeysystemaccess.html
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-syntax.html
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/Source/core/frame/Deprecation.cpp
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/93830e41885b6183b52a7cc3e0fe2a4ebb37c910/third_party/WebKit/Source/modules/encryptedmedia/NavigatorRequestMediaKeySystemAccess.cpp

Status: Fixed (was: Available)

Sign in to add a comment