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

Side by Side Diff: content/browser/media/media_web_contents_observer.cc

Issue 325363002: Fix BrowserMediaPlayerManager and BrowserCdmManager destruction order. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments addressed Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | media/base/android/media_source_player.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/media/media_web_contents_observer.h" 5 #include "content/browser/media/media_web_contents_observer.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "content/browser/media/cdm/browser_cdm_manager.h" 9 #include "content/browser/media/cdm/browser_cdm_manager.h"
10 #include "content/common/media/cdm_messages.h" 10 #include "content/common/media/cdm_messages.h"
(...skipping 13 matching lines...) Expand all
24 RenderViewHost* render_view_host) 24 RenderViewHost* render_view_host)
25 : WebContentsObserver(WebContents::FromRenderViewHost(render_view_host)) { 25 : WebContentsObserver(WebContents::FromRenderViewHost(render_view_host)) {
26 } 26 }
27 27
28 MediaWebContentsObserver::~MediaWebContentsObserver() { 28 MediaWebContentsObserver::~MediaWebContentsObserver() {
29 } 29 }
30 30
31 void MediaWebContentsObserver::RenderFrameDeleted( 31 void MediaWebContentsObserver::RenderFrameDeleted(
32 RenderFrameHost* render_frame_host) { 32 RenderFrameHost* render_frame_host) {
33 uintptr_t key = reinterpret_cast<uintptr_t>(render_frame_host); 33 uintptr_t key = reinterpret_cast<uintptr_t>(render_frame_host);
34 cdm_managers_.erase(key); 34 // Always destroy the media players before CDMs because we do not support
35 // detaching CDMs from media players yet. See http://crbug.com/330324
35 #if defined(OS_ANDROID) 36 #if defined(OS_ANDROID)
36 media_player_managers_.erase(key); 37 media_player_managers_.erase(key);
37 #endif 38 #endif
39 cdm_managers_.erase(key);
38 } 40 }
39 41
40 bool MediaWebContentsObserver::OnMessageReceived( 42 bool MediaWebContentsObserver::OnMessageReceived(
41 const IPC::Message& msg, 43 const IPC::Message& msg,
42 RenderFrameHost* render_frame_host) { 44 RenderFrameHost* render_frame_host) {
43 #if defined(OS_ANDROID) 45 #if defined(OS_ANDROID)
44 // Handles MediaPlayer messages first because MediaPlayers messages are much 46 // Handles MediaPlayer messages first because MediaPlayers messages are much
45 // more frequent than CDM messages. 47 // more frequent than CDM messages.
46 if (OnMediaPlayerMessageReceived(msg, render_frame_host)) 48 if (OnMediaPlayerMessageReceived(msg, render_frame_host))
47 return true; 49 return true;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 iter != media_player_managers_.end(); ++iter) { 200 iter != media_player_managers_.end(); ++iter) {
199 BrowserMediaPlayerManager* manager = iter->second; 201 BrowserMediaPlayerManager* manager = iter->second;
200 manager->OnFrameInfoUpdated(); 202 manager->OnFrameInfoUpdated();
201 } 203 }
202 } 204 }
203 #endif // defined(VIDEO_HOLE) 205 #endif // defined(VIDEO_HOLE)
204 206
205 #endif // defined(OS_ANDROID) 207 #endif // defined(OS_ANDROID)
206 208
207 } // namespace content 209 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | media/base/android/media_source_player.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698