diff options
Diffstat (limited to 'ppapi/proxy/ppb_flash_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_flash_proxy.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ppapi/proxy/ppb_flash_proxy.cc b/ppapi/proxy/ppb_flash_proxy.cc index 7b2e778..e1101f2 100644 --- a/ppapi/proxy/ppb_flash_proxy.cc +++ b/ppapi/proxy/ppb_flash_proxy.cc @@ -5,6 +5,7 @@ #include "ppapi/proxy/ppb_flash_proxy.h" #include "base/logging.h" +#include "base/message_loop.h" #include "build/build_config.h" #include "ppapi/c/dev/pp_file_info_dev.h" #include "ppapi/c/dev/ppb_font_dev.h" @@ -235,6 +236,24 @@ PP_Bool NavigateToURL(PP_Instance instance, return result; } +void RunMessageLoop(PP_Instance instance) { + PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); + if (!dispatcher) + return; + IPC::SyncMessage* msg = new PpapiHostMsg_PPBFlash_RunMessageLoop( + INTERFACE_ID_PPB_FLASH, instance); + msg->EnableMessagePumping(); + dispatcher->Send(msg); +} + +void QuitMessageLoop(PP_Instance instance) { + PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); + if (!dispatcher) + return; + dispatcher->Send(new PpapiHostMsg_PPBFlash_QuitMessageLoop( + INTERFACE_ID_PPB_FLASH, instance)); +} + const PPB_Flash flash_interface = { &SetInstanceAlwaysOnTop, &DrawGlyphs, @@ -247,6 +266,8 @@ const PPB_Flash flash_interface = { &GetModuleLocalDirContents, &FreeModuleLocalDirContents, &NavigateToURL, + &RunMessageLoop, + &QuitMessageLoop, }; InterfaceProxy* CreateFlashProxy(Dispatcher* dispatcher, @@ -298,6 +319,10 @@ bool PPB_Flash_Proxy::OnMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_GetModuleLocalDirContents, OnMsgGetModuleLocalDirContents) IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_NavigateToURL, OnMsgNavigateToURL) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_RunMessageLoop, + OnMsgRunMessageLoop) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_QuitMessageLoop, + OnMsgQuitMessageLoop) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() // TODO(brettw) handle bad messages! @@ -414,5 +439,13 @@ void PPB_Flash_Proxy::OnMsgNavigateToURL(PP_Instance instance, target.c_str()); } +void PPB_Flash_Proxy::OnMsgRunMessageLoop(PP_Instance instance) { + ppb_flash_target()->RunMessageLoop(instance); +} + +void PPB_Flash_Proxy::OnMsgQuitMessageLoop(PP_Instance instance) { + ppb_flash_target()->QuitMessageLoop(instance); +} + } // namespace proxy } // namespace pp |