New issue
Advanced search Search tips

Issue 652856 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Close EME sessions on CDM crash

Project Member Reported by jrumm...@chromium.org, Oct 4 2016

Issue description

The EME specification specifies that a session may be closed at any time, including "when system resources are lost" [1]. If the CDM crashes Chrome should close any existing MediaKeySession objects, to indicate that they are no longer available.

[1] http://w3c.github.io/encrypted-media/#session-closed
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 16 2016

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

commit 35c1aa881f655468ebafcf68e51ae2180f67a833
Author: jrummell <jrummell@chromium.org>
Date: Wed Nov 16 00:49:15 2016

EME: Close existing sessions on CDM failure

When the CDM crashes, any existing open sessions should be closed.

BUG= 652856 
TEST=new EME tests pass

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

[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/chrome/browser/media/encrypted_media_browsertest.cc
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/content/renderer/pepper/content_decryptor_delegate.cc
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/content/renderer/pepper/content_decryptor_delegate.h
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/base/BUILD.gn
[add] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/base/cdm_session_tracker.cc
[add] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/base/cdm_session_tracker.h
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/mojo/clients/mojo_cdm.cc
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/mojo/clients/mojo_cdm.h
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/test/data/eme_player_js/clearkey_player.js
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/test/data/eme_player_js/globals.js
[modify] https://crrev.com/35c1aa881f655468ebafcf68e51ae2180f67a833/media/test/data/eme_player_js/player_utils.js

Status: Fixed (was: Available)
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 7 2016

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

commit 1f3429ba51d768e7461bb702afb74b234efb7337
Author: xhwang <xhwang@chromium.org>
Date: Wed Dec 07 04:16:01 2016

media: Avoid access violation in MojoCdm after connection error

Upon connection error during CDM initialization, after we rejected and
dropped the promise, MojoCdm could be destructed. We should not try to
close pending sessions in this case, and in fact we shouldn't have any
sessions open before the CDM is successfully initialized.

Added a unittest to cover the case where CDM creation failed due to
connection error.

BUG= 652856 , 657069 
TEST=Manually tested. Also added a new unittest.

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

[modify] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/base/cdm_session_tracker.cc
[modify] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/base/cdm_session_tracker.h
[modify] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/mojo/BUILD.gn
[modify] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/mojo/clients/mojo_cdm.cc
[modify] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/mojo/clients/mojo_cdm.h
[add] https://crrev.com/1f3429ba51d768e7461bb702afb74b234efb7337/media/mojo/clients/mojo_cdm_unittest.cc

Sign in to add a comment