Index: ppapi/proxy/ppb_flash_proxy.cc |
diff --git a/ppapi/proxy/ppb_flash_proxy.cc b/ppapi/proxy/ppb_flash_proxy.cc |
index 6ff1cb5b584c4fd45c380c993da955b6638b77a5..ab90cde175bc18e1823b2ef16a8d711093dfc73a 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 ppb_flash = { |
&SetInstanceAlwaysOnTop, |
&DrawGlyphs, |
@@ -247,6 +266,8 @@ const PPB_Flash ppb_flash = { |
&GetModuleLocalDirContents, |
&FreeModuleLocalDirContents, |
&NavigateToURL, |
+ &RunMessageLoop, |
+ &QuitMessageLoop, |
}; |
} // namespace |
@@ -289,6 +310,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! |
@@ -405,5 +430,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 |