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 #include "extensions/browser/test_extensions_browser_client.h" 6 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 12 using content::BrowserContext; 13 14 namespace extensions { 15 16 TestExtensionsBrowserClient::TestExtensionsBrowserClient( 17 BrowserContext* main_context) 18 : main_context_(main_context), 19 incognito_context_(NULL), 20 process_manager_delegate_(NULL), 21 extension_system_factory_(NULL) { 22 DCHECK(main_context_); 23 DCHECK(!main_context_->IsOffTheRecord()); 24 } 25 26 TestExtensionsBrowserClient::~TestExtensionsBrowserClient() {} 27 28 void TestExtensionsBrowserClient::SetIncognitoContext(BrowserContext* context) { 29 // If a context is provided it must be off-the-record. 30 DCHECK(!context || context->IsOffTheRecord()); 31 incognito_context_ = context; 32 } 33 34 bool TestExtensionsBrowserClient::IsShuttingDown() { return false; } 35 36 bool TestExtensionsBrowserClient::AreExtensionsDisabled( 37 const base::CommandLine& command_line, 38 BrowserContext* context) { 39 return false; 40 } 41 42 bool TestExtensionsBrowserClient::IsValidContext(BrowserContext* context) { 43 return context == main_context_ || 44 (incognito_context_ && context == incognito_context_); 45 } 46 47 bool TestExtensionsBrowserClient::IsSameContext(BrowserContext* first, 48 BrowserContext* second) { 49 DCHECK(first); 50 DCHECK(second); 51 return first == second || 52 (first == main_context_ && second == incognito_context_) || 53 (first == incognito_context_ && second == main_context_); 54 } 55 56 bool TestExtensionsBrowserClient::HasOffTheRecordContext( 57 BrowserContext* context) { 58 return context == main_context_ && incognito_context_ != NULL; 59 } 60 61 BrowserContext* TestExtensionsBrowserClient::GetOffTheRecordContext( 62 BrowserContext* context) { 63 if (context == main_context_) 64 return incognito_context_; 65 return NULL; 66 } 67 68 BrowserContext* TestExtensionsBrowserClient::GetOriginalContext( 69 BrowserContext* context) { 70 return main_context_; 71 } 72 73 bool TestExtensionsBrowserClient::IsGuestSession( 74 BrowserContext* context) const { 75 return false; 76 } 77 78 bool TestExtensionsBrowserClient::IsExtensionIncognitoEnabled( 79 const std::string& extension_id, 80 content::BrowserContext* context) const { 81 return false; 82 } 83 84 bool TestExtensionsBrowserClient::CanExtensionCrossIncognito( 85 const extensions::Extension* extension, 86 content::BrowserContext* context) const { 87 return false; 88 } 89 90 net::URLRequestJob* 91 TestExtensionsBrowserClient::MaybeCreateResourceBundleRequestJob( 92 net::URLRequest* request, 93 net::NetworkDelegate* network_delegate, 94 const base::FilePath& directory_path, 95 const std::string& content_security_policy, 96 bool send_cors_header) { 97 return NULL; 98 } 99 100 bool TestExtensionsBrowserClient::AllowCrossRendererResourceLoad( 101 net::URLRequest* request, 102 bool is_incognito, 103 const Extension* extension, 104 InfoMap* extension_info_map) { 105 return false; 106 } 107 108 PrefService* TestExtensionsBrowserClient::GetPrefServiceForContext( 109 BrowserContext* context) { 110 return NULL; 111 } 112 113 void TestExtensionsBrowserClient::GetEarlyExtensionPrefsObservers( 114 content::BrowserContext* context, 115 std::vector<ExtensionPrefsObserver*>* observers) const {} 116 117 ProcessManagerDelegate* TestExtensionsBrowserClient::GetProcessManagerDelegate() 118 const { 119 return process_manager_delegate_; 120 } 121 122 scoped_ptr<ExtensionHostDelegate> 123 TestExtensionsBrowserClient::CreateExtensionHostDelegate() { 124 return scoped_ptr<ExtensionHostDelegate>(); 125 } 126 127 bool TestExtensionsBrowserClient::DidVersionUpdate(BrowserContext* context) { 128 return false; 129 } 130 131 void TestExtensionsBrowserClient::PermitExternalProtocolHandler() { 132 } 133 134 scoped_ptr<AppSorting> TestExtensionsBrowserClient::CreateAppSorting() { 135 return scoped_ptr<AppSorting>(); 136 } 137 138 bool TestExtensionsBrowserClient::IsRunningInForcedAppMode() { return false; } 139 140 ApiActivityMonitor* TestExtensionsBrowserClient::GetApiActivityMonitor( 141 BrowserContext* context) { 142 return NULL; 143 } 144 145 ExtensionSystemProvider* 146 TestExtensionsBrowserClient::GetExtensionSystemFactory() { 147 DCHECK(extension_system_factory_); 148 return extension_system_factory_; 149 } 150 151 void TestExtensionsBrowserClient::RegisterExtensionFunctions( 152 ExtensionFunctionRegistry* registry) const {} 153 154 scoped_ptr<RuntimeAPIDelegate> 155 TestExtensionsBrowserClient::CreateRuntimeAPIDelegate( 156 content::BrowserContext* context) const { 157 return scoped_ptr<RuntimeAPIDelegate>(new TestRuntimeAPIDelegate()); 158 } 159 160 ComponentExtensionResourceManager* 161 TestExtensionsBrowserClient::GetComponentExtensionResourceManager() { 162 return NULL; 163 } 164 165 void TestExtensionsBrowserClient::BroadcastEventToRenderers( 166 const std::string& event_name, 167 scoped_ptr<base::ListValue> args) { 168 } 169 170 net::NetLog* TestExtensionsBrowserClient::GetNetLog() { 171 return NULL; 172 } 173 174 } // namespace extensions 175