summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/media/media_factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/media/media_factory.cc')
-rw-r--r--chromium/content/renderer/media/media_factory.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/chromium/content/renderer/media/media_factory.cc b/chromium/content/renderer/media/media_factory.cc
index 8228992bfde..bc800288557 100644
--- a/chromium/content/renderer/media/media_factory.cc
+++ b/chromium/content/renderer/media/media_factory.cc
@@ -169,6 +169,11 @@ MediaFactory::~MediaFactory() {
// new tasks using the DecoderFactory will execute, so we don't need to worry
// about additional posted tasks from Stop().
if (decoder_factory_) {
+ // Prevent any new decoders from being created to avoid future access to the
+ // external decoder factory (MojoDecoderFactory) since it requires access to
+ // the (about to be destructed) RenderFrame.
+ decoder_factory_->Shutdown();
+
// DeleteSoon() shouldn't ever fail, we should always have a RenderThread at
// this time and subsequently a media thread. To fail, the media thread must
// be dead/dying (which only happens at ~RenderThreadImpl), in which case