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

Issue 767941 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Feature

Blocking:
issue 469202
issue 478960



Sign in to add a comment

Read persistent-license support info from CDM manifest

Project Member Reported by xhw...@chromium.org, Sep 22 2017

Issue description

To decide whether persistent-license is supported, we need to know whether the registered CDM supports it. This information will be available in CDM's manifest. When we register the CDM, we should also register this information.
 

Comment 1 by xhw...@chromium.org, Sep 22 2017

Blocking: 469202

Comment 2 by xhw...@chromium.org, Sep 22 2017

Blocking: 478960

Comment 3 by xhw...@chromium.org, Sep 25 2017

Cc: -xhw...@chromium.org jrumm...@chromium.org
Owner: xhw...@chromium.org
Status: Started (was: Assigned)
I've started working on this. Assign to myself.
hmchen: As discussed offline in the email thread, we should use x-cdm* for CDM specific fields in the manifest.json file. Also, "offline" is not accurate, we should stick with spec terms. So how about replacing "offline_enabled" with "x-cdm-persistent-license-support" in the manifest.json file?
Note that in issue 469202, we proposed to have

"x-cdm-media-key-session-types": "temporary,persistent-usage-record,persistent-license",

or 

"x-cdm-media-key-session-types": [
  "temporary",
  "persistent-usage-record",
  "persistent-license"
]

Given it's reasonable to assume "temporary" session is always supported, "persistent-usage-record" is not in the current spec. I feel just have a boolean would make things simpler and safer (to parse).
Cc: tinskip@chromium.org
Changing to "x-cdm-persistent-license-support" should be easy. I remember Thomas mentioned "offline" may be already used by some partners. So, I cc'ed Thomas. We can also discuss this in today's meeting.

Comment 7 by xhw...@chromium.org, Oct 10 2017

Labels: -M-63 M-64
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 17 2017

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

commit e722a50fc9d677c6db5f146a689e79ceba1d1142
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Tue Oct 17 09:14:34 2017

media: Add test for persistent license support

This CL updates EncryptedMediaSupportedTypesTest (and related tests
classes) to test persistent license support.

BUG= 767941 
TEST=Add new test cases

Change-Id: Iece24005316ce1e4f09cd807756499d69e4c7821
Reviewed-on: https://chromium-review.googlesource.com/719384
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509332}
[modify] https://crrev.com/e722a50fc9d677c6db5f146a689e79ceba1d1142/chrome/browser/media/encrypted_media_supported_types_browsertest.cc
[modify] https://crrev.com/e722a50fc9d677c6db5f146a689e79ceba1d1142/media/test/data/test_key_system_instantiation.html

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 17 2017

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

commit cd4e1cff8bd01bf4524d60637486bdee2fa4bac5
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Tue Oct 17 19:58:19 2017

media: Get CDM persistent-license support info from manifest.json

- Read the value of "x-cdm-persistent-license-support" from the CDM
  manifest.json file.
- Push this info into WebPluginMimeType additional_param_names and
  additional_param_values when registering the CDM.
- In the renderer process, when registering Widvine key system, read the
  info from additional_param_names and additional_param_values.
- On Linux/ChromeOS, this info is not read from the manifest.json file.
  Rather, it's hard-coded in chrome_content_client.cc. We should
  update this in a future CL once we check in CDMs that supports
  persistent-license. Ultimately we will support component CDM on Linux
  and ChromeOS the CDM registration code will be removed from
  chrome_content_client.cc altogether.

In future CLs, we will implement key system support using CdmRegistry
instead of using WebPluginMimeType. Then we can abandon all the code
related to WebPluginMimeType additional_param_names and
additional_param_values.

BUG= 767941 
TEST=Manually tested on Windows.

Change-Id: Ic9f3ec3ce0f454e170623165f9f046c7e6f0885a
Reviewed-on: https://chromium-review.googlesource.com/719379
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509493}
[modify] https://crrev.com/cd4e1cff8bd01bf4524d60637486bdee2fa4bac5/chrome/browser/component_updater/widevine_cdm_component_installer.cc
[modify] https://crrev.com/cd4e1cff8bd01bf4524d60637486bdee2fa4bac5/chrome/common/chrome_content_client.cc
[modify] https://crrev.com/cd4e1cff8bd01bf4524d60637486bdee2fa4bac5/chrome/renderer/media/chrome_key_systems.cc
[modify] https://crrev.com/cd4e1cff8bd01bf4524d60637486bdee2fa4bac5/third_party/widevine/cdm/widevine_cdm_common.h

Status: Fixed (was: Started)

Sign in to add a comment