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_ 67