Index: chromecast/browser/cast_browser_main_parts.cc |
diff --git a/chromecast/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc |
index 046e3ba40757bcaddb9f3902864cd358a2af9f67..70649b404dc886ffef5d466048221f96b7c44038 100644 |
--- a/chromecast/browser/cast_browser_main_parts.cc |
+++ b/chromecast/browser/cast_browser_main_parts.cc |
@@ -27,6 +27,7 @@ |
#include "chromecast/browser/cast_browser_process.h" |
#include "chromecast/browser/cast_net_log.h" |
#include "chromecast/browser/devtools/remote_debugging_server.h" |
+#include "chromecast/browser/media/cma_message_loop.h" |
#include "chromecast/browser/metrics/cast_metrics_prefs.h" |
#include "chromecast/browser/metrics/cast_metrics_service_client.h" |
#include "chromecast/browser/pref_service_helper.h" |
@@ -390,7 +391,10 @@ void CastBrowserMainParts::PostMainMessageLoopRun() { |
DeregisterKillOnAlarm(); |
#endif |
- media::CastMediaShlib::Finalize(); |
+ // Finalize CastMediaShlib on media thread to ensure it's not accessed |
+ // after Finalize. |
+ chromecast::media::CmaMessageLoop::GetTaskRunner()->PostTask( |
+ FROM_HERE, base::Bind(&media::CastMediaShlib::Finalize)); |
} |
} // namespace shell |