diff --git a/dom/plugins/ipc/PluginModuleParent.cpp b/dom/plugins/ipc/PluginModuleParent.cpp index e114ef88414d..e0f1b8327b78 100755 --- a/dom/plugins/ipc/PluginModuleParent.cpp +++ b/dom/plugins/ipc/PluginModuleParent.cpp @@ -897,6 +897,13 @@ CreateFlashMinidump(DWORD processId, ThreadId childThread, bool PluginModuleChromeParent::ShouldContinueFromReplyTimeout() { + if (mIsFlashPlugin) { + MessageLoop::current()->PostTask( + FROM_HERE, + mTaskFactory.NewRunnableMethod( + &PluginModuleChromeParent::NotifyFlashHang)); + } + #ifdef XP_WIN if (LaunchHangUI()) { return true; @@ -1279,6 +1286,15 @@ PluginModuleChromeParent::ActorDestroy(ActorDestroyReason why) PluginModuleParent::ActorDestroy(why); } +void +PluginModuleParent::NotifyFlashHang() +{ + nsCOMPtr obs = services::GetObserverService(); + if (obs) { + obs->NotifyObservers(nullptr, "flash-plugin-hang", nullptr); + } +} + void PluginModuleParent::NotifyPluginCrashed() { diff --git a/dom/plugins/ipc/PluginModuleParent.h b/dom/plugins/ipc/PluginModuleParent.h index 28c3f3515ba7..33c07e87ac64 100644 --- a/dom/plugins/ipc/PluginModuleParent.h +++ b/dom/plugins/ipc/PluginModuleParent.h @@ -259,6 +259,7 @@ protected: void InitAsyncSurrogates(); protected: + void NotifyFlashHang(); void NotifyPluginCrashed(); void OnInitFailure();