Index: content/browser/media/android/browser_media_player_manager.cc |
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc |
index 669cc6046c5b83e8be0023a9a15d94acfeffacd3..a754fa89bd8ed66e9aa793291695e8e4cd0555bd 100644 |
--- a/content/browser/media/android/browser_media_player_manager.cc |
+++ b/content/browser/media/android/browser_media_player_manager.cc |
@@ -149,6 +149,7 @@ bool BrowserMediaPlayerManager::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyMediaPlayer, OnDestroyPlayer) |
IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyAllMediaPlayers, |
DestroyAllMediaPlayers) |
+ IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_SetCdm, OnSetCdm) |
IPC_MESSAGE_HANDLER(CdmHostMsg_InitializeCdm, OnInitializeCdm) |
IPC_MESSAGE_HANDLER(CdmHostMsg_CreateSession, OnCreateSession) |
IPC_MESSAGE_HANDLER(CdmHostMsg_UpdateSession, OnUpdateSession) |
@@ -520,10 +521,14 @@ void BrowserMediaPlayerManager::OnInitialize( |
RenderProcessHostImpl* host = static_cast<RenderProcessHostImpl*>( |
web_contents()->GetRenderProcessHost()); |
- AddPlayer(CreateMediaPlayer( |
+ MediaPlayerAndroid* player = CreateMediaPlayer( |
type, player_id, url, first_party_for_cookies, demuxer_client_id, |
host->GetBrowserContext()->IsOffTheRecord(), this, |
- host->browser_demuxer_android())); |
+ host->browser_demuxer_android()); |
+ if (!player) |
+ return; |
+ |
+ AddPlayer(player); |
} |
void BrowserMediaPlayerManager::OnStart(int player_id) { |
@@ -588,9 +593,6 @@ void BrowserMediaPlayerManager::OnInitializeCdm(int cdm_id, |
} |
AddDrmBridge(cdm_id, key_system, frame_url); |
- // In EME v0.1b MediaKeys lives in the media element. So the |cdm_id| |
- // is the same as the |player_id|. |
- OnSetMediaKeys(cdm_id, cdm_id); |
} |
void BrowserMediaPlayerManager::OnCreateSession( |
@@ -794,13 +796,14 @@ void BrowserMediaPlayerManager::RemoveDrmBridge(int cdm_id) { |
} |
} |
-void BrowserMediaPlayerManager::OnSetMediaKeys(int player_id, int cdm_id) { |
- MediaPlayerAndroid* player = GetPlayer(player_id); |
+void BrowserMediaPlayerManager::OnSetCdm(int player_id, int cdm_id) { |
MediaDrmBridge* drm_bridge = GetDrmBridge(cdm_id); |
- if (!player || !drm_bridge) { |
- DVLOG(1) << "OnSetMediaKeys(): Player and MediaKeys must be present."; |
+ MediaPlayerAndroid* player = GetPlayer(player_id); |
ddorwin
2014/03/18 22:51:08
nit: The old order of player then bridge seems bet
xhwang
2014/03/25 21:49:50
Done.
|
+ if (!drm_bridge || !player) { |
ddorwin
2014/03/18 22:51:08
Should we be DCHECKing that player was found per t
xhwang
2014/03/25 21:49:50
hmm, I don't remember the ordering discussion now
|
+ DVLOG(1) << "MediaDrmBridge and MediaPlayerAndroid must be present!"; |
return; |
} |
+ |
// TODO(qinmin): add the logic to decide whether we should create the |
// fullscreen surface for EME lv1. |
player->SetDrmBridge(drm_bridge); |