Home | History | Annotate | Download | only in proxy
      1 // Copyright (c) 2011 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_PPP_INSTANCE_PROXY_H_
      6 #define PPAPI_PROXY_PPP_INSTANCE_PROXY_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/memory/scoped_ptr.h"
     12 #include "ppapi/c/pp_instance.h"
     13 #include "ppapi/c/pp_resource.h"
     14 #include "ppapi/c/pp_var.h"
     15 #include "ppapi/proxy/interface_proxy.h"
     16 #include "ppapi/shared_impl/host_resource.h"
     17 #include "ppapi/shared_impl/ppp_instance_combined.h"
     18 
     19 struct PP_Rect;
     20 
     21 namespace ppapi {
     22 
     23 struct URLResponseInfoData;
     24 struct ViewData;
     25 
     26 namespace proxy {
     27 
     28 class PPP_Instance_Proxy : public InterfaceProxy {
     29  public:
     30   explicit PPP_Instance_Proxy(Dispatcher* dispatcher);
     31   virtual ~PPP_Instance_Proxy();
     32 
     33   static const PPP_Instance* GetInstanceInterface();
     34 
     35   PPP_Instance_Combined* ppp_instance_target() const {
     36     return combined_interface_.get();
     37   }
     38 
     39   // InterfaceProxy implementation.
     40   virtual bool OnMessageReceived(const IPC::Message& msg);
     41 
     42  private:
     43   // Message handlers.
     44   void OnPluginMsgDidCreate(PP_Instance instance,
     45                             const std::vector<std::string>& argn,
     46                             const std::vector<std::string>& argv,
     47                             PP_Bool* result);
     48   void OnPluginMsgDidDestroy(PP_Instance instance);
     49   void OnPluginMsgDidChangeView(PP_Instance instance,
     50                                 const ViewData& new_data,
     51                                 PP_Bool flash_fullscreen);
     52   void OnPluginMsgDidChangeFocus(PP_Instance instance, PP_Bool has_focus);
     53   void OnPluginMsgHandleDocumentLoad(PP_Instance instance,
     54                                      int pending_loader_host_id,
     55                                      const URLResponseInfoData& data);
     56 
     57   scoped_ptr<PPP_Instance_Combined> combined_interface_;
     58 };
     59 
     60 }  // namespace proxy
     61 }  // namespace ppapi
     62 
     63 #endif  // PPAPI_PROXY_PPP_INSTANCE_PROXY_H_
     64