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

Side by Side Diff: content/browser/media/cdm/browser_cdm_manager.cc

Issue 733533002: Do not start RunLoop of MessagePumpForUI in NestedMessagePumpAndroid (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix failure of FrameTreeBrowserTest.FrameTreeAfterCrash Created 6 years, 1 month 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
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/cdm/browser_cdm_manager.h" 5 #include "content/browser/media/cdm/browser_cdm_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/task_runner.h" 10 #include "base/task_runner.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 // This may overwrite an existing entry of |render_process_id| if the 74 // This may overwrite an existing entry of |render_process_id| if the
75 // previous process crashed and didn't cleanup its child frames. For example, 75 // previous process crashed and didn't cleanup its child frames. For example,
76 // see FrameTreeBrowserTest.FrameTreeAfterCrash test. 76 // see FrameTreeBrowserTest.FrameTreeAfterCrash test.
77 g_browser_cdm_manager_map.Get()[render_process_id] = this; 77 g_browser_cdm_manager_map.Get()[render_process_id] = this;
78 } 78 }
79 79
80 BrowserCdmManager::~BrowserCdmManager() { 80 BrowserCdmManager::~BrowserCdmManager() {
81 DCHECK_CURRENTLY_ON(BrowserThread::UI); 81 DCHECK_CURRENTLY_ON(BrowserThread::UI);
82 DCHECK(g_browser_cdm_manager_map.Get().count(render_process_id_)); 82 DCHECK(g_browser_cdm_manager_map.Get().count(render_process_id_));
83 83
84 g_browser_cdm_manager_map.Get().erase(render_process_id_); 84 // If an entry of |render_process_id| was overwritten, we shouldn't remove
85 // the entry. For example, see FrameTreeBrowserTest.FrameTreeAfterCrash test.
ncarter (slow) 2014/11/17 18:47:01 Link to http://crbug.com/430251 here, seems to be
Jaekyun Seok (inactive) 2014/11/18 03:10:06 Done.
86 if (g_browser_cdm_manager_map.Get()[render_process_id_] == this)
87 g_browser_cdm_manager_map.Get().erase(render_process_id_);
85 } 88 }
86 89
87 // Makes sure BrowserCdmManager is always deleted on the Browser UI thread. 90 // Makes sure BrowserCdmManager is always deleted on the Browser UI thread.
88 void BrowserCdmManager::OnDestruct() const { 91 void BrowserCdmManager::OnDestruct() const {
89 if (BrowserThread::CurrentlyOn(BrowserThread::UI)) { 92 if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
90 delete this; 93 delete this;
91 } else { 94 } else {
92 BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this); 95 BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, this);
93 } 96 }
94 } 97 }
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 DLOG(WARNING) << "No CDM found for: " << render_frame_id << ", " << cdm_id; 377 DLOG(WARNING) << "No CDM found for: " << render_frame_id << ", " << cdm_id;
375 SendSessionError(render_frame_id, cdm_id, session_id); 378 SendSessionError(render_frame_id, cdm_id, session_id);
376 return; 379 return;
377 } 380 }
378 381
379 // This could fail, in which case a SessionError will be fired. 382 // This could fail, in which case a SessionError will be fired.
380 cdm->CreateSession(session_id, content_type, &init_data[0], init_data.size()); 383 cdm->CreateSession(session_id, content_type, &init_data[0], init_data.size());
381 } 384 }
382 385
383 } // namespace content 386 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698