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.
5 #include "extensions/browser/test_extensions_browser_client.h"
7 #include "content/public/browser/browser_context.h"
8 #include "extensions/browser/app_sorting.h"
9 #include "extensions/browser/extension_host_delegate.h"
10 #include "extensions/browser/test_runtime_api_delegate.h"
11 #include "extensions/browser/updater/null_extension_cache.h"
13 using content::BrowserContext
;
15 namespace extensions
{
17 TestExtensionsBrowserClient::TestExtensionsBrowserClient(
18 BrowserContext
* main_context
)
19 : main_context_(main_context
),
20 incognito_context_(NULL
),
21 process_manager_delegate_(NULL
),
22 extension_system_factory_(NULL
),
23 extension_cache_(new NullExtensionCache
) {
24 DCHECK(main_context_
);
25 DCHECK(!main_context_
->IsOffTheRecord());
28 TestExtensionsBrowserClient::~TestExtensionsBrowserClient() {}
30 void TestExtensionsBrowserClient::SetIncognitoContext(BrowserContext
* context
) {
31 // If a context is provided it must be off-the-record.
32 DCHECK(!context
|| context
->IsOffTheRecord());
33 incognito_context_
= context
;
36 bool TestExtensionsBrowserClient::IsShuttingDown() { return false; }
38 bool TestExtensionsBrowserClient::AreExtensionsDisabled(
39 const base::CommandLine
& command_line
,
40 BrowserContext
* context
) {
44 bool TestExtensionsBrowserClient::IsValidContext(BrowserContext
* context
) {
45 return context
== main_context_
||
46 (incognito_context_
&& context
== incognito_context_
);
49 bool TestExtensionsBrowserClient::IsSameContext(BrowserContext
* first
,
50 BrowserContext
* second
) {
53 return first
== second
||
54 (first
== main_context_
&& second
== incognito_context_
) ||
55 (first
== incognito_context_
&& second
== main_context_
);
58 bool TestExtensionsBrowserClient::HasOffTheRecordContext(
59 BrowserContext
* context
) {
60 return context
== main_context_
&& incognito_context_
!= NULL
;
63 BrowserContext
* TestExtensionsBrowserClient::GetOffTheRecordContext(
64 BrowserContext
* context
) {
65 if (context
== main_context_
)
66 return incognito_context_
;
70 BrowserContext
* TestExtensionsBrowserClient::GetOriginalContext(
71 BrowserContext
* context
) {
75 #if defined(OS_CHROMEOS)
76 std::string
TestExtensionsBrowserClient::GetUserIdHashFromContext(
77 content::BrowserContext
* context
) {
82 bool TestExtensionsBrowserClient::IsGuestSession(
83 BrowserContext
* context
) const {
87 bool TestExtensionsBrowserClient::IsExtensionIncognitoEnabled(
88 const std::string
& extension_id
,
89 content::BrowserContext
* context
) const {
93 bool TestExtensionsBrowserClient::CanExtensionCrossIncognito(
94 const extensions::Extension
* extension
,
95 content::BrowserContext
* context
) const {
100 TestExtensionsBrowserClient::MaybeCreateResourceBundleRequestJob(
101 net::URLRequest
* request
,
102 net::NetworkDelegate
* network_delegate
,
103 const base::FilePath
& directory_path
,
104 const std::string
& content_security_policy
,
105 bool send_cors_header
) {
109 bool TestExtensionsBrowserClient::AllowCrossRendererResourceLoad(
110 net::URLRequest
* request
,
112 const Extension
* extension
,
113 InfoMap
* extension_info_map
) {
117 PrefService
* TestExtensionsBrowserClient::GetPrefServiceForContext(
118 BrowserContext
* context
) {
122 void TestExtensionsBrowserClient::GetEarlyExtensionPrefsObservers(
123 content::BrowserContext
* context
,
124 std::vector
<ExtensionPrefsObserver
*>* observers
) const {}
126 ProcessManagerDelegate
* TestExtensionsBrowserClient::GetProcessManagerDelegate()
128 return process_manager_delegate_
;
131 scoped_ptr
<ExtensionHostDelegate
>
132 TestExtensionsBrowserClient::CreateExtensionHostDelegate() {
133 return scoped_ptr
<ExtensionHostDelegate
>();
136 bool TestExtensionsBrowserClient::DidVersionUpdate(BrowserContext
* context
) {
140 void TestExtensionsBrowserClient::PermitExternalProtocolHandler() {
143 scoped_ptr
<AppSorting
> TestExtensionsBrowserClient::CreateAppSorting(
144 content::BrowserContext
* context
) {
145 return scoped_ptr
<AppSorting
>();
148 bool TestExtensionsBrowserClient::IsRunningInForcedAppMode() { return false; }
150 ApiActivityMonitor
* TestExtensionsBrowserClient::GetApiActivityMonitor(
151 BrowserContext
* context
) {
155 ExtensionSystemProvider
*
156 TestExtensionsBrowserClient::GetExtensionSystemFactory() {
157 DCHECK(extension_system_factory_
);
158 return extension_system_factory_
;
161 void TestExtensionsBrowserClient::RegisterExtensionFunctions(
162 ExtensionFunctionRegistry
* registry
) const {}
164 void TestExtensionsBrowserClient::RegisterMojoServices(
165 content::RenderFrameHost
* render_frame_host
,
166 const Extension
* extension
) const {
169 scoped_ptr
<RuntimeAPIDelegate
>
170 TestExtensionsBrowserClient::CreateRuntimeAPIDelegate(
171 content::BrowserContext
* context
) const {
172 return scoped_ptr
<RuntimeAPIDelegate
>(new TestRuntimeAPIDelegate());
175 const ComponentExtensionResourceManager
*
176 TestExtensionsBrowserClient::GetComponentExtensionResourceManager() {
180 void TestExtensionsBrowserClient::BroadcastEventToRenderers(
181 events::HistogramValue histogram_value
,
182 const std::string
& event_name
,
183 scoped_ptr
<base::ListValue
> args
) {}
185 net::NetLog
* TestExtensionsBrowserClient::GetNetLog() {
189 ExtensionCache
* TestExtensionsBrowserClient::GetExtensionCache() {
190 return extension_cache_
.get();
193 bool TestExtensionsBrowserClient::IsBackgroundUpdateAllowed() {
197 bool TestExtensionsBrowserClient::IsMinBrowserVersionSupported(
198 const std::string
& min_version
) {
202 ExtensionWebContentsObserver
*
203 TestExtensionsBrowserClient::GetExtensionWebContentsObserver(
204 content::WebContents
* web_contents
) {
208 } // namespace extensions