| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PPAPI_NACL_IRT_PLUGIN_STARTUP_H_ |
| #define PPAPI_NACL_IRT_PLUGIN_STARTUP_H_ |
| |
| #include "ipc/ipc_channel_handle.h" |
| #include "ppapi/proxy/ppapi_proxy_export.h" |
| |
| namespace base { |
| class Thread; |
| class WaitableEvent; |
| } // namespace base |
| |
| namespace ppapi { |
| |
| class ManifestService; |
| |
| // Sets the IPC channels for the browser and the renderer. |
| // This will be used for non-SFI mode. Must be called before the |
| // ppapi_start() IRT interface is called. |
| PPAPI_PROXY_EXPORT void SetIPCChannelHandles( |
| IPC::ChannelHandle browser_ipc_handle, |
| IPC::ChannelHandle renderer_ipc_handle, |
| IPC::ChannelHandle manifest_service_handle); |
| |
| // Runs start up procedure for the plugin. |
| // Specifically, start background IO thread for IPC, and prepare |
| // shutdown event instance. |
| PPAPI_PROXY_EXPORT void StartUpPlugin(); |
| |
| // Returns IPC channel handle for PPAPI to the browser. |
| IPC::ChannelHandle GetBrowserIPCChannelHandle(); |
| |
| // Returns IPC channel handle for PPAPI to the renderer. |
| IPC::ChannelHandle GetRendererIPCChannelHandle(); |
| |
| // Returns the shutdown event instance for the plugin. |
| // Must be called after StartUpPlugin(). |
| base::WaitableEvent* GetShutdownEvent(); |
| |
| // Returns the IOThread for the plugin. Must be called after StartUpPlugin(). |
| base::Thread* GetIOThread(); |
| |
| // Returns the ManifestService interface. To use this, manifest_service_handle |
| // needs to be set via SetIPCChannelHandles. Must be called after |
| // StartUpPlugin(). |
| // If not available, returns NULL. |
| ManifestService* GetManifestService(); |
| |
| } // namespace ppapi |
| |
| #endif // PPAPI_NACL_IRT_PLUGIN_STARTUP_H_ |