content_client.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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#include "content/public/common/content_client.h" 6 7#include "base/logging.h" 8#include "base/strings/string_piece.h" 9#include "ui/gfx/image/image.h" 10#include "webkit/common/user_agent/user_agent.h" 11 12#if defined(ENABLE_PLUGINS) 13#include "webkit/plugins/ppapi/host_globals.h" 14#endif 15 16namespace content { 17 18static ContentClient* g_client; 19 20class InternalTestInitializer { 21 public: 22 static ContentBrowserClient* SetBrowser(ContentBrowserClient* b) { 23 ContentBrowserClient* rv = g_client->browser_; 24 g_client->browser_ = b; 25 return rv; 26 } 27 28 static ContentRendererClient* SetRenderer(ContentRendererClient* r) { 29 ContentRendererClient* rv = g_client->renderer_; 30 g_client->renderer_ = r; 31 return rv; 32 } 33}; 34 35void SetContentClient(ContentClient* client) { 36 g_client = client; 37 38 // Set the default user agent as provided by the client. We need to make 39 // sure this is done before webkit_glue::GetUserAgent() is called (so that 40 // the UA doesn't change). 41 if (client) { 42 webkit_glue::SetUserAgent(client->GetUserAgent(), false); 43 } 44} 45 46ContentClient* GetContentClient() { 47 return g_client; 48} 49 50ContentBrowserClient* SetBrowserClientForTesting(ContentBrowserClient* b) { 51 return InternalTestInitializer::SetBrowser(b); 52} 53 54ContentRendererClient* SetRendererClientForTesting(ContentRendererClient* r) { 55 return InternalTestInitializer::SetRenderer(r); 56} 57 58const std::string& GetUserAgent(const GURL& url) { 59 DCHECK(g_client); 60 return webkit_glue::GetUserAgent(url); 61} 62 63webkit::ppapi::HostGlobals* GetHostGlobals() { 64#if defined(ENABLE_PLUGINS) 65 return webkit::ppapi::HostGlobals::Get(); 66#else 67 return NULL; 68#endif 69} 70 71ContentClient::ContentClient() 72 : browser_(NULL), plugin_(NULL), renderer_(NULL), utility_(NULL) { 73} 74 75ContentClient::~ContentClient() { 76} 77 78bool ContentClient::CanSendWhileSwappedOut(const IPC::Message* message) { 79 return false; 80} 81 82bool ContentClient::CanHandleWhileSwappedOut(const IPC::Message& message) { 83 return false; 84} 85 86std::string ContentClient::GetProduct() const { 87 return std::string(); 88} 89 90std::string ContentClient::GetUserAgent() const { 91 return std::string(); 92} 93 94string16 ContentClient::GetLocalizedString(int message_id) const { 95 return string16(); 96} 97 98base::StringPiece ContentClient::GetDataResource( 99 int resource_id, 100 ui::ScaleFactor scale_factor) const { 101 return base::StringPiece(); 102} 103 104base::RefCountedStaticMemory* ContentClient::GetDataResourceBytes( 105 int resource_id) const { 106 return NULL; 107} 108 109gfx::Image& ContentClient::GetNativeImageNamed(int resource_id) const { 110 CR_DEFINE_STATIC_LOCAL(gfx::Image, kEmptyImage, ()); 111 return kEmptyImage; 112} 113 114std::string ContentClient::GetProcessTypeNameInEnglish(int type) { 115 NOTIMPLEMENTED(); 116 return std::string(); 117} 118 119#if defined(OS_MACOSX) && !defined(OS_IOS) 120bool ContentClient::GetSandboxProfileForSandboxType( 121 int sandbox_type, 122 int* sandbox_profile_resource_id) const { 123 return false; 124} 125 126std::string ContentClient::GetCarbonInterposePath() const { 127 return std::string(); 128} 129#endif 130 131} // namespace content 132