Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / renderer / pepper / pepper_flash_renderer_host.h
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_