Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Issue 1637083002: Add CdmService to keep track of CDMs (Closed)

Created:
4 years, 11 months ago by jrummell
Modified:
4 years, 8 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, feature-media-reviews_chromium.org, waffles
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add CdmService to keep track of CDMs As media moves to a mojo world, CDMs will be loaded directly into the appropriate process, rather than loaded as pepper plugins. This change adds a class to keep track of the available CDMs. On Win/Mac, the Widevine CDM is updated by the component updater, so it registers (or re-registers) the CDM as it becomes available. On Linux it will be registered if the library is available. Future work: - preload the libraries into whatever process will be used to host the CDM. - keep track of the CDMs that are loaded, so that they are only initialized once. - allow use of External Clear Key CDM for testing. It will be registered if requested using a command line option. BUG=550664 TEST=new content_unittests pass Committed: https://crrev.com/c82f868e10e87ec7394ea7c0663bfbf679677d8d Cr-Commit-Position: refs/heads/master@{#389036}

Patch Set 1 #

Total comments: 32

Patch Set 2 : partial changes #

Patch Set 3 : rebase #

Patch Set 4 : ContentDecryptionModule #

Total comments: 1

Patch Set 5 : rename + simplification #

Total comments: 80

Patch Set 6 : changes + file move #

Total comments: 23

Patch Set 7 : comments #

Patch Set 8 : changes #

Total comments: 27

Patch Set 9 : more changes #

Total comments: 6

Patch Set 10 : test changes #

Patch Set 11 : rebase #

Total comments: 24

Patch Set 12 : changes #

Total comments: 7

Patch Set 13 : remove const #

Total comments: 8

Patch Set 14 : changes #

Patch Set 15 : rebase + add default copy constructor #

Unified diffs Side-by-side diffs Delta from patch set Stats (+446 lines, -75 lines) Patch
M chrome/browser/component_updater/widevine_cdm_component_installer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 chunks +36 lines, -32 lines 0 comments Download
M chrome/common/chrome_content_client.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/common/chrome_content_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +81 lines, -43 lines 0 comments Download
M content/browser/browser_main_loop.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +11 lines, -0 lines 0 comments Download
A content/browser/media/cdm_service_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +43 lines, -0 lines 0 comments Download
A content/browser/media/cdm_service_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +46 lines, -0 lines 0 comments Download
A content/browser/media/cdm_service_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +105 lines, -0 lines 0 comments Download
A content/common/media/cdm_info.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +22 lines, -0 lines 0 comments Download
M content/content_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M content/content_common.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -0 lines 0 comments Download
M content/content_tests.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
A content/public/browser/cdm_service.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +42 lines, -0 lines 0 comments Download
A content/public/common/cdm_info.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +44 lines, -0 lines 0 comments Download
M content/public/common/content_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/widevine/cdm/widevine_cdm_common.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 54 (14 generated)
jrummell
PTAL. This is just the registration of key systems, independent of the pepper plugins.
4 years, 11 months ago (2016-01-26 19:14:01 UTC) #2
ddorwin
Can we transition entirely from one registration API to another rather than maintaining two (and ...
4 years, 11 months ago (2016-01-26 20:21:53 UTC) #3
xhwang
Thanks! I only review the new interfaces/classes and didn't review the test and registration calls. ...
4 years, 10 months ago (2016-01-29 07:43:07 UTC) #4
jrummell
Updated. Renamed to ContentDecryptionModuleRegistration, etc. so the previous PS aren't that useful. ECK removed, for ...
4 years, 9 months ago (2016-03-04 01:19:41 UTC) #7
xhwang
+ddorwin for high level review I only skimmed the CL. Here are some high level ...
4 years, 9 months ago (2016-03-05 00:10:02 UTC) #9
ddorwin
On 2016/03/05 00:10:02, xhwang wrote: > +ddorwin for high level review > > I only ...
4 years, 9 months ago (2016-03-05 01:20:10 UTC) #10
xhwang
On 2016/03/05 01:20:10, ddorwin wrote: > On 2016/03/05 00:10:02, xhwang wrote: > > +ddorwin for ...
4 years, 9 months ago (2016-03-05 01:29:21 UTC) #11
jrummell
Updated. These changes simply handle the registration of Widevine, nothing else. Also updated the description ...
4 years, 9 months ago (2016-03-17 21:03:50 UTC) #13
ddorwin
This is a good start. Mostly minor comments. Let's discuss the commit message too. I ...
4 years, 9 months ago (2016-03-18 19:24:19 UTC) #15
xhwang
I only reviewed content/public API and part of component updater. https://chromiumcodereview.appspot.com/1637083002/diff/80001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): https://chromiumcodereview.appspot.com/1637083002/diff/80001/chrome/browser/component_updater/widevine_cdm_component_installer.cc#newcode200 ...
4 years, 9 months ago (2016-03-18 19:35:39 UTC) #16
ddorwin
https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc File chrome/common/chrome_content_client.cc (right): https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc#newcode108 chrome/common/chrome_content_client.cc:108: if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, cdm_adapter_path)) { This code will compile on ...
4 years, 9 months ago (2016-03-18 20:38:53 UTC) #17
ddorwin
https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc File chrome/common/chrome_content_client.cc (right): https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc#newcode108 chrome/common/chrome_content_client.cc:108: if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, cdm_adapter_path)) { On 2016/03/18 20:38:53, ddorwin wrote: ...
4 years, 9 months ago (2016-03-18 20:48:56 UTC) #18
xhwang
https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc File chrome/common/chrome_content_client.cc (right): https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc#newcode108 chrome/common/chrome_content_client.cc:108: if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, cdm_adapter_path)) { On 2016/03/18 20:48:56, ddorwin wrote: ...
4 years, 9 months ago (2016-03-18 20:57:59 UTC) #19
ddorwin
https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc File chrome/common/chrome_content_client.cc (right): https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc#newcode108 chrome/common/chrome_content_client.cc:108: if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, cdm_adapter_path)) { On 2016/03/18 20:57:58, xhwang wrote: ...
4 years, 9 months ago (2016-03-18 22:22:11 UTC) #20
xhwang
https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc File chrome/common/chrome_content_client.cc (right): https://codereview.chromium.org/1637083002/diff/80001/chrome/common/chrome_content_client.cc#newcode108 chrome/common/chrome_content_client.cc:108: if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, cdm_adapter_path)) { On 2016/03/18 22:22:11, ddorwin wrote: ...
4 years, 9 months ago (2016-03-18 23:16:02 UTC) #21
jrummell
Updated. I moved the cdmservice files to match what the pluginservice does. initdatatypes is gone. ...
4 years, 9 months ago (2016-03-23 21:38:10 UTC) #22
xhwang
Thanks! I only reviewed the content public interface. https://chromiumcodereview.appspot.com/1637083002/diff/100001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://chromiumcodereview.appspot.com/1637083002/diff/100001/content/public/browser/cdm_service.h#newcode15 content/public/browser/cdm_service.h:15: class ...
4 years, 9 months ago (2016-03-26 07:46:35 UTC) #23
jrummell
Looks like I just updated comments, and replied to the other questions. https://codereview.chromium.org/1637083002/diff/100001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h ...
4 years, 8 months ago (2016-03-29 23:48:45 UTC) #24
xhwang
More discussion on the interface. Thanks for the patience! https://chromiumcodereview.appspot.com/1637083002/diff/100001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://chromiumcodereview.appspot.com/1637083002/diff/100001/content/public/browser/cdm_service.h#newcode15 content/public/browser/cdm_service.h:15: ...
4 years, 8 months ago (2016-03-30 05:11:18 UTC) #25
jrummell
Updated. https://codereview.chromium.org/1637083002/diff/100001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://codereview.chromium.org/1637083002/diff/100001/content/public/browser/cdm_service.h#newcode15 content/public/browser/cdm_service.h:15: class CONTENT_EXPORT CdmService { On 2016/03/30 05:11:18, xhwang ...
4 years, 8 months ago (2016-04-01 21:15:53 UTC) #26
xhwang
Sorry for the delay. Mostly looking good with a few comments. https://chromiumcodereview.appspot.com/1637083002/diff/140001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): ...
4 years, 8 months ago (2016-04-13 00:22:13 UTC) #27
jrummell
Updated. https://codereview.chromium.org/1637083002/diff/140001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): https://codereview.chromium.org/1637083002/diff/140001/chrome/browser/component_updater/widevine_cdm_component_installer.cc#newcode226 chrome/browser/component_updater/widevine_cdm_component_installer.cc:226: adapter_install_path.DirName().AppendASCII(kWidevineCdmFileName); On 2016/04/13 00:22:12, xhwang wrote: > This ...
4 years, 8 months ago (2016-04-14 01:32:16 UTC) #28
xhwang
looking good. I only have a few comments on the test. https://chromiumcodereview.appspot.com/1637083002/diff/140001/content/browser/media/cdm_service_impl_unittest.cc File content/browser/media/cdm_service_impl_unittest.cc (right): ...
4 years, 8 months ago (2016-04-14 06:20:27 UTC) #29
jrummell
Updated. https://codereview.chromium.org/1637083002/diff/160001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): https://codereview.chromium.org/1637083002/diff/160001/chrome/browser/component_updater/widevine_cdm_component_installer.cc#newcode224 chrome/browser/component_updater/widevine_cdm_component_installer.cc:224: // actual Widevine library, not the adapter. On ...
4 years, 8 months ago (2016-04-14 23:58:28 UTC) #30
xhwang
LGTM, thanks!
4 years, 8 months ago (2016-04-15 00:02:20 UTC) #31
jrummell
Adding OWNERS. +sorin@ for chrome/browser/component_updater/widevine_cdm_component_installer.cc +thestig@ for chrome/common/* +sievers@ for content/
4 years, 8 months ago (2016-04-15 01:03:24 UTC) #33
Sorin Jianu
lgtm Thank you! Minor style issues below, please consider fixing as you wish. https://codereview.chromium.org/1637083002/diff/200001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File ...
4 years, 8 months ago (2016-04-15 01:53:26 UTC) #34
jrummell
Updated. https://codereview.chromium.org/1637083002/diff/200001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): https://codereview.chromium.org/1637083002/diff/200001/chrome/browser/component_updater/widevine_cdm_component_installer.cc#newcode116 chrome/browser/component_updater/widevine_cdm_component_installer.cc:116: base::string16 codecs, On 2016/04/15 01:53:26, Sorin Jianu wrote: ...
4 years, 8 months ago (2016-04-18 20:39:47 UTC) #35
no sievers
https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h#newcode15 content/public/browser/cdm_service.h:15: Can you also put a small comment, at least ...
4 years, 8 months ago (2016-04-18 21:24:21 UTC) #36
jrummell
Updated. https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h#newcode15 content/public/browser/cdm_service.h:15: On 2016/04/18 21:24:21, sievers wrote: > Can you ...
4 years, 8 months ago (2016-04-19 23:20:39 UTC) #37
Lei Zhang
https://codereview.chromium.org/1637083002/diff/240001/chrome/browser/component_updater/widevine_cdm_component_installer.cc File chrome/browser/component_updater/widevine_cdm_component_installer.cc (right): https://codereview.chromium.org/1637083002/diff/240001/chrome/browser/component_updater/widevine_cdm_component_installer.cc#newcode194 chrome/browser/component_updater/widevine_cdm_component_installer.cc:194: if (manifest.GetString(kCdmCodecsListName, &codecs)) { GetStringASCII(), then in RegisterWidevineCdmWithChrome() omit ...
4 years, 8 months ago (2016-04-19 23:46:18 UTC) #38
no sievers
https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h File content/public/browser/cdm_service.h (right): https://codereview.chromium.org/1637083002/diff/220001/content/public/browser/cdm_service.h#newcode34 content/public/browser/cdm_service.h:34: On 2016/04/19 23:20:39, jrummell wrote: > On 2016/04/18 21:24:21, ...
4 years, 8 months ago (2016-04-20 00:03:35 UTC) #39
jrummell
Updated. > But I'm wondering why you need two public APIs. It's just a bit ...
4 years, 8 months ago (2016-04-20 21:08:44 UTC) #40
Lei Zhang
chrome/ lgtm
4 years, 8 months ago (2016-04-20 21:31:56 UTC) #41
no sievers
lgtm
4 years, 8 months ago (2016-04-21 23:14:43 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1637083002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1637083002/260001
4 years, 8 months ago (2016-04-22 00:15:35 UTC) #45
commit-bot: I haz the power
Try jobs failed on following builders: ios_rel_device_gn on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_gn/builds/23379) ios_rel_device_ninja on tryserver.chromium.mac (JOB_FAILED, ...
4 years, 8 months ago (2016-04-22 00:18:43 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1637083002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1637083002/280001
4 years, 8 months ago (2016-04-22 05:48:24 UTC) #50
commit-bot: I haz the power
Committed patchset #15 (id:280001)
4 years, 8 months ago (2016-04-22 06:15:01 UTC) #52
commit-bot: I haz the power
4 years, 8 months ago (2016-04-22 19:44:41 UTC) #54
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/c82f868e10e87ec7394ea7c0663bfbf679677d8d
Cr-Commit-Position: refs/heads/master@{#389036}

Powered by Google App Engine
This is Rietveld 408576698