Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / extensions / shell / renderer / shell_content_renderer_client.h
1 // Copyright 2014 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 EXTENSIONS_SHELL_RENDERER_SHELL_CONTENT_RENDERER_CLIENT_H_
6 #define EXTENSIONS_SHELL_RENDERER_SHELL_CONTENT_RENDERER_CLIENT_H_
7
8 #include "base/compiler_specific.h"
9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "content/public/renderer/content_renderer_client.h"
12
13 namespace extensions {
14
15 class Dispatcher;
16 class DispatcherDelegate;
17 class ShellExtensionsClient;
18 class ShellExtensionsRendererClient;
19 class ShellRendererMainDelegate;
20
21 // Renderer initialization and runtime support for app_shell.
22 class ShellContentRendererClient : public content::ContentRendererClient {
23  public:
24   ShellContentRendererClient();
25   virtual ~ShellContentRendererClient();
26
27   // content::ContentRendererClient implementation:
28   virtual void RenderThreadStarted() OVERRIDE;
29   virtual void RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE;
30   virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
31   virtual bool OverrideCreatePlugin(content::RenderFrame* render_frame,
32                                     blink::WebLocalFrame* frame,
33                                     const blink::WebPluginParams& params,
34                                     blink::WebPlugin** plugin) OVERRIDE;
35   virtual blink::WebPlugin* CreatePluginReplacement(
36       content::RenderFrame* render_frame,
37       const base::FilePath& plugin_path) OVERRIDE;
38   virtual bool WillSendRequest(blink::WebFrame* frame,
39                                ui::PageTransition transition_type,
40                                const GURL& url,
41                                const GURL& first_party_for_cookies,
42                                GURL* new_url) OVERRIDE;
43   virtual void DidCreateScriptContext(blink::WebFrame* frame,
44                                       v8::Handle<v8::Context> context,
45                                       int extension_group,
46                                       int world_id) OVERRIDE;
47   virtual const void* CreatePPAPIInterface(
48       const std::string& interface_name) OVERRIDE;
49   virtual bool IsExternalPepperPlugin(const std::string& module_name) OVERRIDE;
50   virtual bool ShouldEnableSiteIsolationPolicy() const OVERRIDE;
51   virtual content::BrowserPluginDelegate* CreateBrowserPluginDelegate(
52       content::RenderFrame* render_frame,
53       const std::string& mime_type) OVERRIDE;
54
55  private:
56   scoped_ptr<ShellExtensionsClient> extensions_client_;
57   scoped_ptr<ShellExtensionsRendererClient> extensions_renderer_client_;
58   scoped_ptr<DispatcherDelegate> extension_dispatcher_delegate_;
59   scoped_ptr<Dispatcher> extension_dispatcher_;
60
61   DISALLOW_COPY_AND_ASSIGN(ShellContentRendererClient);
62 };
63
64 }  // namespace extensions
65
66 #endif  // EXTENSIONS_SHELL_RENDERER_SHELL_CONTENT_RENDERER_CLIENT_H_