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 3 // found in the LICENSE file. 4 5 #ifndef PPAPI_PROXY_FLASH_RESOURCE_H_ 6 #define PPAPI_PROXY_FLASH_RESOURCE_H_ 7 8 #include <stdint.h> 9 10 #include "base/macros.h" 11 #include "ppapi/c/pp_instance.h" 12 #include "ppapi/c/pp_var.h" 13 #include "ppapi/c/private/ppb_flash.h" 14 #include "ppapi/proxy/connection.h" 15 #include "ppapi/proxy/plugin_resource.h" 16 #include "ppapi/thunk/ppb_flash_functions_api.h" 17 18 namespace ppapi { 19 namespace proxy { 20 21 class PluginDispatcher; 22 23 class FlashResource 24 : public PluginResource, 25 public thunk::PPB_Flash_Functions_API { 26 public: 27 FlashResource(Connection connection, 28 PP_Instance instance, 29 PluginDispatcher* plugin_dispatcher); 30 ~FlashResource() override; 31 32 // Resource override. 33 thunk::PPB_Flash_Functions_API* AsPPB_Flash_Functions_API() override; 34 35 // PPB_Flash_Functions_API implementation. 36 PP_Var GetProxyForURL(PP_Instance instance, const std::string& url) override; 37 void UpdateActivity(PP_Instance instance) override; 38 PP_Bool SetCrashData(PP_Instance instance, 39 PP_FlashCrashKey key, 40 PP_Var value) override; 41 double GetLocalTimeZoneOffset(PP_Instance instance, PP_Time t) override; 42 PP_Var GetSetting(PP_Instance instance, PP_FlashSetting setting) override; 43 void SetInstanceAlwaysOnTop(PP_Instance instance, PP_Bool on_top) override; 44 PP_Bool DrawGlyphs( 45 PP_Instance instance, 46 PP_Resource pp_image_data, 47 const PP_BrowserFont_Trusted_Description* font_desc, 48 uint32_t color, 49 const PP_Point* position, 50 const PP_Rect* clip, 51 const float transformation[3][3], 52 PP_Bool allow_subpixel_aa, 53 uint32_t glyph_count, 54 const uint16_t glyph_indices[], 55 const PP_Point glyph_advances[]) override; 56 int32_t Navigate(PP_Instance instance, 57 PP_Resource request_info, 58 const char* target, 59 PP_Bool from_user_action) override; 60 PP_Bool IsRectTopmost(PP_Instance instance, const PP_Rect* rect) override; 61 void InvokePrinting(PP_Instance instance) override; 62 63 private: 64 // Non-owning pointer to the PluginDispatcher that owns this object. 65 PluginDispatcher* plugin_dispatcher_; 66 67 DISALLOW_COPY_AND_ASSIGN(FlashResource); 68 }; 69 70 } // namespace proxy 71 } // namespace ppapi 72 73 #endif // PPAPI_PROXY_FLASH_RESOURCE_H_ 74