Home | History | Annotate | Download | only in pepper
      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 CHROME_RENDERER_PEPPER_PEPPER_FLASH_RENDERER_HOST_H_
      6 #define CHROME_RENDERER_PEPPER_PEPPER_FLASH_RENDERER_HOST_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/basictypes.h"
     12 #include "base/memory/weak_ptr.h"
     13 #include "ppapi/host/host_message_context.h"
     14 #include "ppapi/host/resource_host.h"
     15 
     16 struct PP_Rect;
     17 
     18 namespace ppapi {
     19 struct URLRequestInfoData;
     20 }
     21 
     22 namespace ppapi {
     23 namespace proxy {
     24 struct PPBFlash_DrawGlyphs_Params;
     25 }
     26 }
     27 
     28 namespace content {
     29 class RendererPpapiHost;
     30 }
     31 
     32 class PepperFlashRendererHost : public ppapi::host::ResourceHost {
     33  public:
     34   PepperFlashRendererHost(content::RendererPpapiHost* host,
     35                           PP_Instance instance,
     36                           PP_Resource resource);
     37   virtual ~PepperFlashRendererHost();
     38 
     39   // ppapi::host::ResourceHost override.
     40   virtual int32_t OnResourceMessageReceived(
     41       const IPC::Message& msg,
     42       ppapi::host::HostMessageContext* context) OVERRIDE;
     43 
     44  private:
     45   int32_t OnGetProxyForURL(ppapi::host::HostMessageContext* host_context,
     46                            const std::string& url);
     47   int32_t OnSetInstanceAlwaysOnTop(
     48       ppapi::host::HostMessageContext* host_context,
     49       bool on_top);
     50   int32_t OnDrawGlyphs(ppapi::host::HostMessageContext* host_context,
     51                        ppapi::proxy::PPBFlash_DrawGlyphs_Params params);
     52   int32_t OnNavigate(ppapi::host::HostMessageContext* host_context,
     53                      const ppapi::URLRequestInfoData& data,
     54                      const std::string& target,
     55                      bool from_user_action);
     56   int32_t OnIsRectTopmost(ppapi::host::HostMessageContext* host_context,
     57                           const PP_Rect& rect);
     58   int32_t OnInvokePrinting(ppapi::host::HostMessageContext* host_context);
     59 
     60   // A stack of ReplyMessageContexts to track Navigate() calls which have not
     61   // yet been replied to.
     62   std::vector<ppapi::host::ReplyMessageContext> navigate_replies_;
     63 
     64   content::RendererPpapiHost* host_;
     65   base::WeakPtrFactory<PepperFlashRendererHost> weak_factory_;
     66 
     67   DISALLOW_COPY_AND_ASSIGN(PepperFlashRendererHost);
     68 };
     69 
     70 #endif  // CHROME_RENDERER_PEPPER_PEPPER_FLASH_RENDERER_HOST_H_
     71