Index: content/renderer/pepper/host_dispatcher_wrapper.h |
diff --git a/content/renderer/pepper/host_dispatcher_wrapper.h b/content/renderer/pepper/host_dispatcher_wrapper.h |
index e5349178ed2abd35fde3f677527926e54e1b83b3..fc5655de91838c17099ec97a07f65631d6166f1b 100644 |
--- a/content/renderer/pepper/host_dispatcher_wrapper.h |
+++ b/content/renderer/pepper/host_dispatcher_wrapper.h |
@@ -5,7 +5,9 @@ |
#ifndef CONTENT_RENDERER_PEPPER_HOST_DISPATCHER_WRAPPER_H_ |
#define CONTENT_RENDERER_PEPPER_HOST_DISPATCHER_WRAPPER_H_ |
+#include "base/memory/ref_counted.h" |
#include "base/process/process_handle.h" |
+#include "content/renderer/pepper/pepper_hung_plugin_filter.h" |
#include "ppapi/c/pp_instance.h" |
#include "ppapi/c/ppp.h" |
#include "ppapi/proxy/host_dispatcher.h" |
@@ -34,7 +36,7 @@ class HostDispatcherWrapper { |
bool Init(const IPC::ChannelHandle& channel_handle, |
PP_GetInterface_Func local_get_interface, |
const ppapi::Preferences& preferences, |
- PepperHungPluginFilter* filter); |
+ scoped_refptr<PepperHungPluginFilter> filter); |
// Implements GetInterface for the proxied plugin. |
const void* GetProxiedInterface(const char* name); |
@@ -69,6 +71,9 @@ class HostDispatcherWrapper { |
scoped_ptr<ppapi::proxy::HostDispatcher> dispatcher_; |
scoped_ptr<ppapi::proxy::ProxyChannel::Delegate> dispatcher_delegate_; |
+ // We hold the hung_plugin_filter_ to guarantee it outlives |dispatcher_|, |
+ // since it is an observer of |dispatcher_| for sync calls. |
+ scoped_refptr<PepperHungPluginFilter> hung_plugin_filter_; |
}; |
} // namespace content |