| Index: chrome/browser/nacl_host/nacl_process_host.h
|
| ===================================================================
|
| --- chrome/browser/nacl_host/nacl_process_host.h (revision 154143)
|
| +++ chrome/browser/nacl_host/nacl_process_host.h (working copy)
|
| @@ -26,6 +26,10 @@
|
| class BrowserChildProcessHost;
|
| }
|
|
|
| +namespace IPC {
|
| +class ChannelProxy;
|
| +}
|
| +
|
| // Represents the browser side of the browser <--> NaCl communication
|
| // channel. There will be one NaClProcessHost per NaCl process
|
| // The browser is responsible for starting the NaCl process
|
| @@ -60,12 +64,25 @@
|
| bool Send(IPC::Message* msg);
|
|
|
| private:
|
| + friend class PluginListener;
|
| +
|
| // Internal class that holds the nacl::Handle objecs so that
|
| // nacl_process_host.h doesn't include NaCl headers. Needed since it's
|
| // included by src\content, which can't depend on the NaCl gyp file because it
|
| // depends on chrome.gyp (circular dependency).
|
| struct NaClInternal;
|
|
|
| + // PluginListener that forwards any messages from untrusted code that aren't
|
| + // handled by the PepperMessageFilter to us.
|
| + class PluginListener : public IPC::Listener {
|
| + public:
|
| + explicit PluginListener(NaClProcessHost* host);
|
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
| + private:
|
| + // Non-owning pointer so we can forward messages to the host.
|
| + NaClProcessHost* host_;
|
| + };
|
| +
|
| #if defined(OS_WIN)
|
| // Create command line for launching loader under nacl-gdb.
|
| scoped_ptr<CommandLine> GetCommandForLaunchWithGdb(const FilePath& nacl_gdb,
|
| @@ -113,7 +130,11 @@
|
| IPC::Message* reply_msg);
|
| #endif
|
|
|
| + // Called when a PPAPI IPC channel has been created.
|
| void OnPpapiChannelCreated(const IPC::ChannelHandle& channel_handle);
|
| + // Called by PluginListener, so messages from the untrusted side of
|
| + // the IPC proxy can be handled.
|
| + bool OnUntrustedMessageForwarded(const IPC::Message& msg);
|
|
|
| GURL manifest_url_;
|
|
|
| @@ -159,6 +180,11 @@
|
|
|
| bool enable_ipc_proxy_;
|
|
|
| + // Channel proxy to terminate the NaCl-Browser PPAPI channel.
|
| + scoped_ptr<IPC::ChannelProxy> ipc_proxy_channel_;
|
| + // Plugin listener, to forward browser channel messages to us.
|
| + PluginListener ipc_plugin_listener_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NaClProcessHost);
|
| };
|
|
|
|
|