diff options
Diffstat (limited to 'chromium/content/shell/renderer/shell_content_renderer_client.cc')
-rw-r--r-- | chromium/content/shell/renderer/shell_content_renderer_client.cc | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/chromium/content/shell/renderer/shell_content_renderer_client.cc b/chromium/content/shell/renderer/shell_content_renderer_client.cc deleted file mode 100644 index d04cbfc2f24..00000000000 --- a/chromium/content/shell/renderer/shell_content_renderer_client.cc +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/shell/renderer/shell_content_renderer_client.h" - -#include "base/callback.h" -#include "base/command_line.h" -#include "base/debug/debugger.h" -#include "content/public/common/content_constants.h" -#include "content/public/common/content_switches.h" -#include "content/public/renderer/render_view.h" -#include "content/public/test/layouttest_support.h" -#include "content/shell/common/shell_switches.h" -#include "content/shell/renderer/shell_render_process_observer.h" -#include "content/shell/renderer/shell_render_view_observer.h" -#include "content/shell/renderer/webkit_test_runner.h" -#include "content/test/mock_webclipboard_impl.h" -#include "third_party/WebKit/public/platform/WebMediaStreamCenter.h" -#include "third_party/WebKit/public/testing/WebTestInterfaces.h" -#include "third_party/WebKit/public/testing/WebTestProxy.h" -#include "third_party/WebKit/public/testing/WebTestRunner.h" -#include "third_party/WebKit/public/web/WebPluginParams.h" -#include "third_party/WebKit/public/web/WebView.h" -#include "v8/include/v8.h" - -using blink::WebAudioDevice; -using blink::WebClipboard; -using blink::WebFrame; -using blink::WebMIDIAccessor; -using blink::WebMIDIAccessorClient; -using blink::WebMediaStreamCenter; -using blink::WebMediaStreamCenterClient; -using blink::WebPlugin; -using blink::WebPluginParams; -using blink::WebRTCPeerConnectionHandler; -using blink::WebRTCPeerConnectionHandlerClient; -using blink::WebThemeEngine; -using WebTestRunner::WebTestDelegate; -using WebTestRunner::WebTestInterfaces; -using WebTestRunner::WebTestProxyBase; - -namespace content { - -namespace { -ShellContentRendererClient* g_renderer_client; -} - -ShellContentRendererClient* ShellContentRendererClient::Get() { - return g_renderer_client; -} - -ShellContentRendererClient::ShellContentRendererClient() { - DCHECK(!g_renderer_client); - g_renderer_client = this; - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { - EnableWebTestProxyCreation( - base::Bind(&ShellContentRendererClient::WebTestProxyCreated, - base::Unretained(this))); - } -} - -ShellContentRendererClient::~ShellContentRendererClient() { - g_renderer_client = NULL; -} - -void ShellContentRendererClient::RenderThreadStarted() { - shell_observer_.reset(new ShellRenderProcessObserver()); -#if defined(OS_MACOSX) - // We need to call this once before the sandbox was initialized to cache the - // value. - base::debug::BeingDebugged(); -#endif -} - -void ShellContentRendererClient::RenderViewCreated(RenderView* render_view) { - new ShellRenderViewObserver(render_view); - - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return; - WebKitTestRunner* test_runner = WebKitTestRunner::Get(render_view); - test_runner->Reset(); - render_view->GetWebView()->setSpellCheckClient( - test_runner->proxy()->spellCheckClient()); - render_view->GetWebView()->setValidationMessageClient( - test_runner->proxy()->validationMessageClient()); - render_view->GetWebView()->setPermissionClient( - ShellRenderProcessObserver::GetInstance()->test_interfaces()->testRunner() - ->webPermissions()); - WebTestDelegate* delegate = - ShellRenderProcessObserver::GetInstance()->test_delegate(); - if (delegate == static_cast<WebTestDelegate*>(test_runner)) - ShellRenderProcessObserver::GetInstance()->SetMainWindow(render_view); -} - -bool ShellContentRendererClient::OverrideCreatePlugin( - RenderFrame* render_frame, - WebFrame* frame, - const WebPluginParams& params, - WebPlugin** plugin) { - std::string mime_type = params.mimeType.utf8(); - if (mime_type == content::kBrowserPluginMimeType) { - // Allow browser plugin in content_shell only if it is forced by flag. - // Returning true here disables the plugin. - return !CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableBrowserPluginForAllViewTypes); - } - return false; -} - -WebMediaStreamCenter* -ShellContentRendererClient::OverrideCreateWebMediaStreamCenter( - WebMediaStreamCenterClient* client) { - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return NULL; -#if defined(ENABLE_WEBRTC) - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - return interfaces->createMediaStreamCenter(client); -#else - return NULL; -#endif -} - -WebRTCPeerConnectionHandler* -ShellContentRendererClient::OverrideCreateWebRTCPeerConnectionHandler( - WebRTCPeerConnectionHandlerClient* client) { - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return NULL; -#if defined(ENABLE_WEBRTC) - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - return interfaces->createWebRTCPeerConnectionHandler(client); -#else - return NULL; -#endif -} - -WebMIDIAccessor* -ShellContentRendererClient::OverrideCreateMIDIAccessor( - WebMIDIAccessorClient* client) { - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - return interfaces->createMIDIAccessor(client); -} - -WebAudioDevice* -ShellContentRendererClient::OverrideCreateAudioDevice( - double sample_rate) { - WebTestInterfaces* interfaces = - ShellRenderProcessObserver::GetInstance()->test_interfaces(); - return interfaces->createAudioDevice(sample_rate); -} - -WebClipboard* ShellContentRendererClient::OverrideWebClipboard() { - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return NULL; - if (!clipboard_) - clipboard_.reset(new MockWebClipboardImpl); - return clipboard_.get(); -} - -WebThemeEngine* ShellContentRendererClient::OverrideThemeEngine() { - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return NULL; - return ShellRenderProcessObserver::GetInstance()->test_interfaces() - ->themeEngine(); -} - -void ShellContentRendererClient::WebTestProxyCreated(RenderView* render_view, - WebTestProxyBase* proxy) { - WebKitTestRunner* test_runner = new WebKitTestRunner(render_view); - test_runner->set_proxy(proxy); - if (!ShellRenderProcessObserver::GetInstance()->test_delegate()) - ShellRenderProcessObserver::GetInstance()->SetTestDelegate(test_runner); - proxy->setInterfaces( - ShellRenderProcessObserver::GetInstance()->test_interfaces()); - test_runner->proxy()->setDelegate( - ShellRenderProcessObserver::GetInstance()->test_delegate()); -} - -bool ShellContentRendererClient::AllowBrowserPlugin( - blink::WebPluginContainer* container) { - if (CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableBrowserPluginForAllViewTypes)) { - // Allow BrowserPlugin if forced by command line flag. This is generally - // true for tests. - return true; - } - return ContentRendererClient::AllowBrowserPlugin(container); -} - -} // namespace content |