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