• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 APPS_SHELL_RENDERER_SHELL_CONTENT_RENDERER_CLIENT_H_
6 #define APPS_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 class Dispatcher;
15 class DispatcherDelegate;
16 }
17 
18 namespace apps {
19 
20 class ShellExtensionsClient;
21 class ShellExtensionsRendererClient;
22 class ShellRendererMainDelegate;
23 
24 // Renderer initialization and runtime support for app_shell.
25 class ShellContentRendererClient : public content::ContentRendererClient {
26  public:
27   explicit ShellContentRendererClient(
28       scoped_ptr<ShellRendererMainDelegate> delegate);
29   virtual ~ShellContentRendererClient();
30 
31   // content::ContentRendererClient implementation:
32   virtual void RenderThreadStarted() OVERRIDE;
33   virtual void RenderFrameCreated(content::RenderFrame* render_frame) OVERRIDE;
34   virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE;
35   virtual bool WillSendRequest(blink::WebFrame* frame,
36                                content::PageTransition transition_type,
37                                const GURL& url,
38                                const GURL& first_party_for_cookies,
39                                GURL* new_url) OVERRIDE;
40   virtual void DidCreateScriptContext(blink::WebFrame* frame,
41                                       v8::Handle<v8::Context> context,
42                                       int extension_group,
43                                       int world_id) OVERRIDE;
44   virtual bool ShouldEnableSiteIsolationPolicy() const OVERRIDE;
45 
46  private:
47   scoped_ptr<ShellRendererMainDelegate> delegate_;
48   scoped_ptr<ShellExtensionsClient> extensions_client_;
49   scoped_ptr<ShellExtensionsRendererClient> extensions_renderer_client_;
50   scoped_ptr<extensions::DispatcherDelegate> extension_dispatcher_delegate_;
51   scoped_ptr<extensions::Dispatcher> extension_dispatcher_;
52 
53   DISALLOW_COPY_AND_ASSIGN(ShellContentRendererClient);
54 };
55 
56 }  // namespace apps
57 
58 #endif  // APPS_SHELL_RENDERER_SHELL_CONTENT_RENDERER_CLIENT_H_
59