New issue
Advanced search Search tips

Issue 796345 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Add tests for CDM_10 support

Project Member Reported by xhw...@chromium.org, Dec 19 2017

Issue description

CDM_10 support is being developed while CDM_9 is still shipped in production. Also, pepper CDM only supports up to CDM_9. Therefore, it's desirable that we test both CDM_9 and CDM_10 support in Chromium at the same time, to ensure a smooth transition.

This bug tracks the work required to support testing CDM_10 support while maintaining existing CDM_9 tests.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 20 2017

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

commit f878a851b639742ba2a0d9ec9b9e53aef9436c74
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Wed Dec 20 18:39:05 2017

media: Add CdmHostProxy for ClearKeyCdm and friends

Currently we are passing ClearKeyCdmHost* directly to many classes.
Since ClearKeyCdmHost is just a define of a concrete cdm::Host_*
interface, this makes it hard to support multiple CDM interfaces in
ClearKeyCdm.

This CL defines a helper class CdmHostProxy to replace ClearKeyCdmHost
to solve this problem.

BUG= 796345 
TEST=Refactor only. No functionality change.

Change-Id: If3e47553e6b603df9568e49f523832076b2154da
Reviewed-on: https://chromium-review.googlesource.com/835436
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525382}
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/BUILD.gn
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/cdm_file_adapter.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/cdm_file_adapter.h
[add] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/cdm_host_proxy.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/cdm_video_decoder.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/cdm_video_decoder.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/clear_key_cdm.h
[delete] https://crrev.com/9627613e795b896b815ad628fe3d156e7fd8bf0a/media/cdm/ppapi/external_clear_key/clear_key_cdm_common.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/clear_key_persistent_session_cdm.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/clear_key_persistent_session_cdm.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/fake_cdm_video_decoder.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/fake_cdm_video_decoder.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/ffmpeg_cdm_audio_decoder.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/ffmpeg_cdm_audio_decoder.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/ffmpeg_cdm_video_decoder.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/ffmpeg_cdm_video_decoder.h
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/libvpx_cdm_video_decoder.cc
[modify] https://crrev.com/f878a851b639742ba2a0d9ec9b9e53aef9436c74/media/cdm/ppapi/external_clear_key/libvpx_cdm_video_decoder.h

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 20 2017

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

commit e06d02a1656f1638bbd51569e6f4119de4aca03c
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Wed Dec 20 22:11:50 2017

media: Remove fake audio/video decoders from ClearKeyCdm

These fake decoders were used in the early stage of the project and has
not been used for long time. In fact, there's no easy way to enable them
now, possible due to gyp->gn migration. They don't provide much value
either given we already have the "real" decoders.

BUG= 796345 
TEST=Test cleanup

Change-Id: I94d0351ee5ea980a14a673ca30750aea5ea85207
Reviewed-on: https://chromium-review.googlesource.com/836415
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525488}
[modify] https://crrev.com/e06d02a1656f1638bbd51569e6f4119de4aca03c/media/cdm/ppapi/external_clear_key/cdm_video_decoder.cc
[modify] https://crrev.com/e06d02a1656f1638bbd51569e6f4119de4aca03c/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
[modify] https://crrev.com/e06d02a1656f1638bbd51569e6f4119de4aca03c/media/cdm/ppapi/external_clear_key/clear_key_cdm.h
[delete] https://crrev.com/f1bcfadaa3d84f256bb11cfdbd19fd375d5bdd89/media/cdm/ppapi/external_clear_key/fake_cdm_video_decoder.cc
[delete] https://crrev.com/f1bcfadaa3d84f256bb11cfdbd19fd375d5bdd89/media/cdm/ppapi/external_clear_key/fake_cdm_video_decoder.h

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 21 2017

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

commit 76bfc4845b427a79b545c1723c937aea77f6a382
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Thu Dec 21 06:02:37 2017

media: Update ClearKeyCdm to support multiple CDM interfaces

Updates ClearKeyCdm to support both CDM_9 and CDM_10 interfaces. To do
so, CdmHostProxyImpl is added to serve as a proxy to different Host
interfaces.

Also update CdmAdapterTest to test both CDM_9 and CDM_10.

In the future, we should have a better way to signal stable and
experimental CDM interfaces.

BUG= 796345 

Change-Id: I066f26aa333287aca572262592d80ad1a136803c
Reviewed-on: https://chromium-review.googlesource.com/837861
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525627}
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/cdm_adapter.cc
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/cdm_adapter.h
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/cdm_adapter_unittest.cc
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/cdm_wrapper.h
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/ppapi/BUILD.gn
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/ppapi/clear_key_cdm/cdm_host_proxy.h
[add] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/ppapi/clear_key_cdm/cdm_host_proxy_impl.h
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.cc
[modify] https://crrev.com/76bfc4845b427a79b545c1723c937aea77f6a382/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.h

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 22 2017

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

commit daf577fa2783b4c321ac679f8f709a22ebafd8fe
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Fri Dec 22 02:04:25 2017

media: Add CdmProxyTest

- Add EncryptedMediaTestExperimentalCdmInterface to support testing
  ClearKeyCdm using experimental CDM interface.
- Add CdmProxyTest to support testing CdmProxy in ClearKeyCdm.

Currently the test only covers a failure case (mojo connection failed).
In the next CL, more test steps will be added.

BUG= 796345 

Change-Id: Ie80fc33a1a211f94c02c82f27c81374740fad5db
Reviewed-on: https://chromium-review.googlesource.com/840787
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525900}
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/chrome/browser/media/encrypted_media_browsertest.cc
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/chrome/renderer/media/chrome_key_systems.cc
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/cdm/ppapi/BUILD.gn
[add] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/cdm/ppapi/clear_key_cdm/cdm_proxy_test.cc
[add] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/cdm/ppapi/clear_key_cdm/cdm_proxy_test.h
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.cc
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.h
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/test/data/eme_player_js/globals.js
[modify] https://crrev.com/daf577fa2783b4c321ac679f8f709a22ebafd8fe/media/test/data/eme_player_js/player_utils.js

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 22 2017

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

commit fac3c54487a8efc13e401478a292962d4677c2ea
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Fri Dec 22 04:32:32 2017

media: Misc cleanups for ClearKeyCdm

- Use initializer to initialize class members.
- Move cdm_file_io_test.* to media/cdm/ppapi/clear_key_cdm/
- Add media/cdm/ppapi/clear_key_cdm/BUILD.gn

BUG= 796345 

Change-Id: I33a184c4aeedb6dd37468fd93d5536de4531684c
Reviewed-on: https://chromium-review.googlesource.com/841108
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525929}
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/BUILD.gn
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/BUILD.gn
[add] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/BUILD.gn
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/cdm_file_adapter.h
[rename] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/cdm_file_io_test.cc
[rename] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/cdm_file_io_test.h
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.cc
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.h
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/clear_key_persistent_session_cdm.h
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/ffmpeg_cdm_audio_decoder.h
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/ffmpeg_cdm_video_decoder.cc
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/ffmpeg_cdm_video_decoder.h
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/libvpx_cdm_video_decoder.cc
[modify] https://crrev.com/fac3c54487a8efc13e401478a292962d4677c2ea/media/cdm/ppapi/clear_key_cdm/libvpx_cdm_video_decoder.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 9 2018

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

commit 018c447e2075da988ffdbf508f05c1de0b33addb
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Tue Jan 09 01:18:02 2018

media: Support async Initialize() in CDM_10

- Roll CDM interface version.
- Update Chromium to support the new async Initialize() call in CDM_10.
- Also fix a static_cast bug in clear_key_cdm.cc.
- Also add CdmPromiseAdapter::kInvalidPromiseId to help check the
  validity of promise IDs.

BUG=733821, 796345 

Change-Id: If5f1e9cb88378e8af7226e6ea8f9321577d38022
Reviewed-on: https://chromium-review.googlesource.com/851339
Reviewed-by: John Rummell <jrummell@chromium.org>
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527847}
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/DEPS
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/base/cdm_promise_adapter.cc
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/base/cdm_promise_adapter.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/cdm_adapter.cc
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/cdm_adapter.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/cdm_wrapper.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/ppapi/clear_key_cdm/cdm_host_proxy.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/ppapi/clear_key_cdm/cdm_host_proxy_impl.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.cc
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/ppapi/clear_key_cdm/clear_key_cdm.h
[modify] https://crrev.com/018c447e2075da988ffdbf508f05c1de0b33addb/media/cdm/ppapi/ppapi_cdm_adapter.cc

Comment 8 by xhw...@chromium.org, Jan 25 2018

Status: Fixed (was: Started)
Tests for CdmProxy related changes are added. For other features we'll track the tests with feature together. 

Sign in to add a comment