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