OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/proxy/ppb_flash_proxy.h" | 5 #include "ppapi/proxy/ppb_flash_proxy.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/time.h" | 9 #include "base/time.h" |
10 #include "ppapi/c/dev/ppb_font_dev.h" | 10 #include "ppapi/c/dev/ppb_font_dev.h" |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 ProxyAutoLock lock; | 191 ProxyAutoLock lock; |
192 std::string args = ProxyModule::GetInstance()->GetFlashCommandLineArgs(); | 192 std::string args = ProxyModule::GetInstance()->GetFlashCommandLineArgs(); |
193 return StringVar::StringToPPVar(args); | 193 return StringVar::StringToPPVar(args); |
194 } | 194 } |
195 | 195 |
196 void PreLoadFontWin(const void* logfontw) { | 196 void PreLoadFontWin(const void* logfontw) { |
197 ProxyAutoLock lock; | 197 ProxyAutoLock lock; |
198 PluginGlobals::Get()->plugin_proxy_delegate()->PreCacheFont(logfontw); | 198 PluginGlobals::Get()->plugin_proxy_delegate()->PreCacheFont(logfontw); |
199 } | 199 } |
200 | 200 |
| 201 PP_Bool IsRectTopmost(PP_Instance instance, const PP_Rect* rect) { |
| 202 PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); |
| 203 if (!dispatcher) |
| 204 return PP_FALSE; |
| 205 PP_Bool result = PP_FALSE; |
| 206 dispatcher->Send(new PpapiHostMsg_PPBFlash_IsRectTopmost( |
| 207 API_ID_PPB_FLASH, instance, *rect, &result)); |
| 208 return result; |
| 209 } |
| 210 |
| 211 int32_t InvokePrinting(PP_Instance instance) { |
| 212 PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); |
| 213 if (!dispatcher) |
| 214 return PP_ERROR_BADARGUMENT; |
| 215 |
| 216 // TODO(viettrungluu): Implement me. |
| 217 |
| 218 return PP_ERROR_NOTSUPPORTED; |
| 219 } |
| 220 |
| 221 void UpdateActivity(PP_Instance instance) { |
| 222 // TODO(viettrungluu): Implement me. |
| 223 } |
| 224 |
201 const PPB_Flash_11 flash_interface_11 = { | 225 const PPB_Flash_11 flash_interface_11 = { |
202 &SetInstanceAlwaysOnTop, | 226 &SetInstanceAlwaysOnTop, |
203 &DrawGlyphs11, | 227 &DrawGlyphs11, |
204 &GetProxyForURL, | 228 &GetProxyForURL, |
205 &Navigate11, | 229 &Navigate11, |
206 &RunMessageLoop, | 230 &RunMessageLoop, |
207 &QuitMessageLoop, | 231 &QuitMessageLoop, |
208 &GetLocalTimeZoneOffset, | 232 &GetLocalTimeZoneOffset, |
209 &GetCommandLineArgs | 233 &GetCommandLineArgs |
210 }; | 234 }; |
211 | 235 |
212 const PPB_Flash flash_interface_12 = { | 236 const PPB_Flash_12_0 flash_interface_12_0 = { |
213 &SetInstanceAlwaysOnTop, | 237 &SetInstanceAlwaysOnTop, |
214 &DrawGlyphs, | 238 &DrawGlyphs, |
215 &GetProxyForURL, | 239 &GetProxyForURL, |
216 &Navigate, | 240 &Navigate, |
217 &RunMessageLoop, | 241 &RunMessageLoop, |
218 &QuitMessageLoop, | 242 &QuitMessageLoop, |
219 &GetLocalTimeZoneOffset, | 243 &GetLocalTimeZoneOffset, |
220 &GetCommandLineArgs, | 244 &GetCommandLineArgs, |
221 &PreLoadFontWin | 245 &PreLoadFontWin |
222 }; | 246 }; |
223 | 247 |
| 248 const PPB_Flash_12_1 flash_interface_12_1 = { |
| 249 &SetInstanceAlwaysOnTop, |
| 250 &DrawGlyphs, |
| 251 &GetProxyForURL, |
| 252 &Navigate, |
| 253 &RunMessageLoop, |
| 254 &QuitMessageLoop, |
| 255 &GetLocalTimeZoneOffset, |
| 256 &GetCommandLineArgs, |
| 257 &PreLoadFontWin, |
| 258 &IsRectTopmost, |
| 259 &InvokePrinting, |
| 260 &UpdateActivity |
| 261 }; |
| 262 |
224 } // namespace | 263 } // namespace |
225 | 264 |
226 PPB_Flash_Proxy::PPB_Flash_Proxy(Dispatcher* dispatcher) | 265 PPB_Flash_Proxy::PPB_Flash_Proxy(Dispatcher* dispatcher) |
227 : InterfaceProxy(dispatcher), | 266 : InterfaceProxy(dispatcher), |
228 ppb_flash_impl_(NULL) { | 267 ppb_flash_impl_(NULL) { |
229 if (!dispatcher->IsPlugin()) | 268 if (!dispatcher->IsPlugin()) |
230 ppb_flash_impl_ = static_cast<const PPB_Flash*>( | 269 ppb_flash_impl_ = static_cast<const PPB_Flash*>( |
231 dispatcher->local_get_interface()(PPB_FLASH_INTERFACE)); | 270 dispatcher->local_get_interface()(PPB_FLASH_INTERFACE)); |
232 } | 271 } |
233 | 272 |
234 PPB_Flash_Proxy::~PPB_Flash_Proxy() { | 273 PPB_Flash_Proxy::~PPB_Flash_Proxy() { |
235 } | 274 } |
236 | 275 |
237 // static | 276 // static |
238 const PPB_Flash_11* PPB_Flash_Proxy::GetInterface11() { | 277 const PPB_Flash_11* PPB_Flash_Proxy::GetInterface11() { |
239 return &flash_interface_11; | 278 return &flash_interface_11; |
240 } | 279 } |
241 | 280 |
242 // static | 281 // static |
243 const PPB_Flash* PPB_Flash_Proxy::GetInterface12_0() { | 282 const PPB_Flash_12_0* PPB_Flash_Proxy::GetInterface12_0() { |
244 return &flash_interface_12; | 283 return &flash_interface_12_0; |
| 284 } |
| 285 |
| 286 // static |
| 287 const PPB_Flash_12_1* PPB_Flash_Proxy::GetInterface12_1() { |
| 288 return &flash_interface_12_1; |
245 } | 289 } |
246 | 290 |
247 bool PPB_Flash_Proxy::OnMessageReceived(const IPC::Message& msg) { | 291 bool PPB_Flash_Proxy::OnMessageReceived(const IPC::Message& msg) { |
248 // Prevent the dispatcher from going away during a call to Navigate. | 292 // Prevent the dispatcher from going away during a call to Navigate. |
249 // This must happen OUTSIDE of OnMsgNavigate since the handling code use | 293 // This must happen OUTSIDE of OnMsgNavigate since the handling code use |
250 // the dispatcher upon return of the function (sending the reply message). | 294 // the dispatcher upon return of the function (sending the reply message). |
251 ScopedModuleReference death_grip(dispatcher()); | 295 ScopedModuleReference death_grip(dispatcher()); |
252 | 296 |
253 bool handled = true; | 297 bool handled = true; |
254 IPC_BEGIN_MESSAGE_MAP(PPB_Flash_Proxy, msg) | 298 IPC_BEGIN_MESSAGE_MAP(PPB_Flash_Proxy, msg) |
255 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_SetInstanceAlwaysOnTop, | 299 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_SetInstanceAlwaysOnTop, |
256 OnMsgSetInstanceAlwaysOnTop) | 300 OnMsgSetInstanceAlwaysOnTop) |
257 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_DrawGlyphs, | 301 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_DrawGlyphs, |
258 OnMsgDrawGlyphs) | 302 OnMsgDrawGlyphs) |
259 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_GetProxyForURL, | 303 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_GetProxyForURL, |
260 OnMsgGetProxyForURL) | 304 OnMsgGetProxyForURL) |
261 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_Navigate, OnMsgNavigate) | 305 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_Navigate, OnMsgNavigate) |
262 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_RunMessageLoop, | 306 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_RunMessageLoop, |
263 OnMsgRunMessageLoop) | 307 OnMsgRunMessageLoop) |
264 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_QuitMessageLoop, | 308 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_QuitMessageLoop, |
265 OnMsgQuitMessageLoop) | 309 OnMsgQuitMessageLoop) |
266 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_GetLocalTimeZoneOffset, | 310 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_GetLocalTimeZoneOffset, |
267 OnMsgGetLocalTimeZoneOffset) | 311 OnMsgGetLocalTimeZoneOffset) |
| 312 IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFlash_IsRectTopmost, |
| 313 OnMsgIsRectTopmost) |
268 IPC_MESSAGE_UNHANDLED(handled = false) | 314 IPC_MESSAGE_UNHANDLED(handled = false) |
269 IPC_END_MESSAGE_MAP() | 315 IPC_END_MESSAGE_MAP() |
270 // TODO(brettw) handle bad messages! | 316 // TODO(brettw) handle bad messages! |
271 return handled; | 317 return handled; |
272 } | 318 } |
273 | 319 |
274 void PPB_Flash_Proxy::OnMsgSetInstanceAlwaysOnTop( | 320 void PPB_Flash_Proxy::OnMsgSetInstanceAlwaysOnTop( |
275 PP_Instance instance, | 321 PP_Instance instance, |
276 PP_Bool on_top) { | 322 PP_Bool on_top) { |
277 ppb_flash_impl_->SetInstanceAlwaysOnTop(instance, on_top); | 323 ppb_flash_impl_->SetInstanceAlwaysOnTop(instance, on_top); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 void PPB_Flash_Proxy::OnMsgQuitMessageLoop(PP_Instance instance) { | 397 void PPB_Flash_Proxy::OnMsgQuitMessageLoop(PP_Instance instance) { |
352 ppb_flash_impl_->QuitMessageLoop(instance); | 398 ppb_flash_impl_->QuitMessageLoop(instance); |
353 } | 399 } |
354 | 400 |
355 void PPB_Flash_Proxy::OnMsgGetLocalTimeZoneOffset(PP_Instance instance, | 401 void PPB_Flash_Proxy::OnMsgGetLocalTimeZoneOffset(PP_Instance instance, |
356 PP_Time t, | 402 PP_Time t, |
357 double* result) { | 403 double* result) { |
358 *result = ppb_flash_impl_->GetLocalTimeZoneOffset(instance, t); | 404 *result = ppb_flash_impl_->GetLocalTimeZoneOffset(instance, t); |
359 } | 405 } |
360 | 406 |
| 407 void PPB_Flash_Proxy::OnMsgIsRectTopmost(PP_Instance instance, |
| 408 PP_Rect rect, |
| 409 PP_Bool* result) { |
| 410 *result = ppb_flash_impl_->IsRectTopmost(instance, &rect); |
| 411 } |
| 412 |
361 } // namespace proxy | 413 } // namespace proxy |
362 } // namespace ppapi | 414 } // namespace ppapi |
OLD | NEW |