New issue
Advanced search Search tips

Issue 636116 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Aug 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Widevine robustness strings not supported on Android in M49-M51

Project Member Reported by ddorwin@chromium.org, Aug 9 2016

Issue description

Version: 51.0.2704.106, probably M50 and M49
OS: Android

What steps will reproduce the problem?
Run the following:
var options = [
  { initDataTypes: ['cenc'],
    audioCapabilities: [ {
      contentType: 'audio/mp4; codecs="mp4a.40.2"',
      robustness: 'SW_SECURE_CRYPTO'
    }]
  }   
];
navigator.requestMediaKeySystemAccess('com.widevine.alpha', options)
.then(mediaKeySystemAccess => console.log('success'))
.catch(e => console.log(e));

What is the expected output?
"success"

What do you see instead?
"DOMException: None of the requested configurations were supported.
Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: undefined}"

Please use labels and text to provide additional information.
This works on Linux 51.0.2704.106 and in M52 and M54 on Android.

If `robustness` is omitted or the empty string, the call succeeds.

 
The cause is Android-only logic [1] modified in https://codereview.chromium.org/1586043003.

The `|| !IsClearKey(key_system))` means that Widevine will always fall into the if block and return `HW_SECURE_CODECS_REQUIRED`.

The reason the empty or absent robustness string works is that the empty string is special cased [2] and not passed to the above logic. (See also  https://crbug.com/577777#c13 .)


In M52, the refactoring for  issue 457438  moved the Widevine logic to its own file, simplifying this logic and fixing the bug.

[1] https://chromium.googlesource.com/chromium/src/+/51.0.2704.106/media/base/key_systems.cc#686
[2] https://chromium.googlesource.com/chromium/src/+/51.0.2704.106/media/blink/key_system_config_selector.cc#395

Comment 2 Deleted

Labels: -49 M-50
This was inadvertently fixed in M52, but I'm marking it obsolete since it was never fixed in the affected versions.

Sign in to add a comment