Chromium Code Reviews| Index: content/browser/media/cdm/browser_cdm_manager.cc |
| diff --git a/content/browser/media/cdm/browser_cdm_manager.cc b/content/browser/media/cdm/browser_cdm_manager.cc |
| index d3d4630cb08b54547ac2494d541e47b9589d7875..25569521556dd50106380ae464b87daf188dbbf5 100644 |
| --- a/content/browser/media/cdm/browser_cdm_manager.cc |
| +++ b/content/browser/media/cdm/browser_cdm_manager.cc |
| @@ -81,7 +81,11 @@ BrowserCdmManager::~BrowserCdmManager() { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| DCHECK(g_browser_cdm_manager_map.Get().count(render_process_id_)); |
| - g_browser_cdm_manager_map.Get().erase(render_process_id_); |
| + // If an entry of |render_process_id| was overwritten, we shouldn't remove |
| + // the entry. For example, see FrameTreeBrowserTest.FrameTreeAfterCrash test, |
| + // and http://crbug.com/430251. |
| + if (g_browser_cdm_manager_map.Get()[render_process_id_] == this) |
|
Sami
2014/11/18 12:02:25
Should this change be in a different patch? It see
ncarter (slow)
2014/11/18 18:02:53
I believe the fix (which runs some DeleteSoons tha
Jaekyun Seok (inactive)
2014/11/18 22:38:22
Right, this fix exposes the same issue to bug 4302
|
| + g_browser_cdm_manager_map.Get().erase(render_process_id_); |
| } |
| // Makes sure BrowserCdmManager is always deleted on the Browser UI thread. |