Chromium Code Reviews| Index: content/browser/renderer_host/pepper/browser_ppapi_host_impl.h |
| diff --git a/content/browser/renderer_host/pepper/browser_ppapi_host_impl.h b/content/browser/renderer_host/pepper/browser_ppapi_host_impl.h |
| index 5d953422c1bedacae428d8adbc7720a0471fff8d..e4eb41624f9985c35bac7a824fee006d662a0a50 100644 |
| --- a/content/browser/renderer_host/pepper/browser_ppapi_host_impl.h |
| +++ b/content/browser/renderer_host/pepper/browser_ppapi_host_impl.h |
| @@ -23,14 +23,18 @@ |
| namespace content { |
| -class CONTENT_EXPORT BrowserPpapiHostImpl : public BrowserPpapiHost { |
| +class CONTENT_EXPORT BrowserPpapiHostImpl : public BrowserPpapiHost |
| +{ |
| public: |
| + // |delegate| will be owned by BrowserPpapiHostImpl, is optional and may be |
| + // NULL, and is used only for OnIdleState for NaCl extensions. |
| // The creator is responsible for calling set_plugin_process_handle as soon |
| // as it is known (we start the process asynchronously so it won't be known |
| // when this object is created). |
| // |external_plugin| signfies that this is a proxy created for an embedder's |
| // plugin, i.e. using BrowserPpapiHost::CreateExternalPluginProcess. |
| BrowserPpapiHostImpl( |
| + BrowserPpapiHost::Delegate* delegate, |
| IPC::Sender* sender, |
| const ppapi::PpapiPermissions& permissions, |
| const std::string& plugin_name, |
| @@ -67,6 +71,9 @@ class CONTENT_EXPORT BrowserPpapiHostImpl : public BrowserPpapiHost { |
| const PepperRendererInstanceData& instance_data); |
| void DeleteInstance(PP_Instance instance); |
| + // Called to handle the idle state of the plugin changing. |
| + void OnIdleState(bool idle); |
| + |
| scoped_refptr<IPC::ChannelProxy::MessageFilter> message_filter() { |
| return message_filter_; |
| } |
| @@ -83,8 +90,10 @@ class CONTENT_EXPORT BrowserPpapiHostImpl : public BrowserPpapiHost { |
| // reference. To avoid that, define a message filter object. |
| class HostMessageFilter : public IPC::ChannelProxy::MessageFilter { |
| public: |
| - explicit HostMessageFilter(ppapi::host::PpapiHost* ppapi_host) |
| - : ppapi_host_(ppapi_host) {} |
| + explicit HostMessageFilter(BrowserPpapiHostImpl* host, |
|
dmichael (off chromium)
2013/11/06 22:39:21
nit: explicit not necessary now w/2 params
scheib
2013/11/15 01:22:17
Done.
|
| + ppapi::host::PpapiHost* ppapi_host) |
| + : browser_ppapi_host_impl_(host), |
| + ppapi_host_(ppapi_host) {} |
| // IPC::ChannelProxy::MessageFilter. |
| virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; |
| @@ -93,9 +102,13 @@ class CONTENT_EXPORT BrowserPpapiHostImpl : public BrowserPpapiHost { |
| private: |
| virtual ~HostMessageFilter() {} |
| + void OnIdleState(bool idle); |
| + |
| + BrowserPpapiHostImpl* browser_ppapi_host_impl_; // Not owned; |
| ppapi::host::PpapiHost* ppapi_host_; |
| }; |
| + scoped_ptr<BrowserPpapiHost::Delegate> delegate_; |
| scoped_ptr<ppapi::host::PpapiHost> ppapi_host_; |
| base::ProcessHandle plugin_process_handle_; |
| std::string plugin_name_; |