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. |