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..917b89d7d2355969d6c04bb52a951b07415eeaed 100644 |
--- a/chromecast/browser/cast_browser_main_parts.cc |
+++ b/chromecast/browser/cast_browser_main_parts.cc |
@@ -34,6 +34,7 @@ |
#include "chromecast/browser/url_request_context_factory.h" |
#include "chromecast/common/platform_client_auth.h" |
#include "chromecast/media/base/key_systems_common.h" |
+#include "chromecast/media/base/media_message_loop.h" |
#include "chromecast/net/connectivity_checker.h" |
#include "chromecast/public/cast_media_shlib.h" |
#include "chromecast/public/cast_sys_info.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::MediaMessageLoop::GetTaskRunner()->PostTask( |
+ FROM_HERE, base::Bind(&media::CastMediaShlib::Finalize)); |
} |
} // namespace shell |