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 CONTENT_SHELL_SHELL_CONTENT_RENDERER_CLIENT_H_ 6 #define CONTENT_SHELL_SHELL_CONTENT_RENDERER_CLIENT_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "base/platform_file.h" 11 #include "content/public/renderer/content_renderer_client.h" 12 13 namespace blink { 14 class WebFrame; 15 class WebPlugin; 16 struct WebPluginParams; 17 } 18 19 namespace WebTestRunner { 20 class WebTestProxyBase; 21 } 22 23 namespace content { 24 25 class MockWebClipboardImpl; 26 class ShellRenderProcessObserver; 27 28 class ShellContentRendererClient : public ContentRendererClient { 29 public: 30 static ShellContentRendererClient* Get(); 31 32 ShellContentRendererClient(); 33 virtual ~ShellContentRendererClient(); 34 35 // ContentRendererClient implementation. 36 virtual void RenderThreadStarted() OVERRIDE; 37 virtual void RenderViewCreated(RenderView* render_view) OVERRIDE; 38 virtual bool OverrideCreatePlugin( 39 RenderFrame* render_frame, 40 blink::WebFrame* frame, 41 const blink::WebPluginParams& params, 42 blink::WebPlugin** plugin) OVERRIDE; 43 virtual blink::WebMediaStreamCenter* OverrideCreateWebMediaStreamCenter( 44 blink::WebMediaStreamCenterClient* client) OVERRIDE; 45 virtual blink::WebRTCPeerConnectionHandler* 46 OverrideCreateWebRTCPeerConnectionHandler( 47 blink::WebRTCPeerConnectionHandlerClient* client) OVERRIDE; 48 virtual blink::WebMIDIAccessor* OverrideCreateMIDIAccessor( 49 blink::WebMIDIAccessorClient* client) OVERRIDE; 50 virtual blink::WebAudioDevice* OverrideCreateAudioDevice( 51 double sample_rate) OVERRIDE; 52 virtual blink::WebClipboard* OverrideWebClipboard() OVERRIDE; 53 virtual blink::WebThemeEngine* OverrideThemeEngine() OVERRIDE; 54 virtual bool AllowBrowserPlugin( 55 blink::WebPluginContainer* container) OVERRIDE; 56 57 private: 58 void WebTestProxyCreated(RenderView* render_view, 59 WebTestRunner::WebTestProxyBase* proxy); 60 61 scoped_ptr<ShellRenderProcessObserver> shell_observer_; 62 scoped_ptr<MockWebClipboardImpl> clipboard_; 63 }; 64 65 } // namespace content 66 67 #endif // CONTENT_SHELL_SHELL_CONTENT_RENDERER_CLIENT_H_ 68