| // Copyright 2014 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 "extensions/browser/test_extensions_browser_client.h" | 
 |  | 
 | #include "content/public/browser/browser_context.h" | 
 | #include "extensions/browser/app_sorting.h" | 
 | #include "extensions/browser/extension_host_delegate.h" | 
 | #include "extensions/browser/test_runtime_api_delegate.h" | 
 |  | 
 | using content::BrowserContext; | 
 |  | 
 | namespace extensions { | 
 |  | 
 | TestExtensionsBrowserClient::TestExtensionsBrowserClient( | 
 |     BrowserContext* main_context) | 
 |     : main_context_(main_context), | 
 |       incognito_context_(NULL), | 
 |       process_manager_delegate_(NULL), | 
 |       extension_system_factory_(NULL) { | 
 |   DCHECK(main_context_); | 
 |   DCHECK(!main_context_->IsOffTheRecord()); | 
 | } | 
 |  | 
 | TestExtensionsBrowserClient::~TestExtensionsBrowserClient() {} | 
 |  | 
 | void TestExtensionsBrowserClient::SetIncognitoContext(BrowserContext* context) { | 
 |   // If a context is provided it must be off-the-record. | 
 |   DCHECK(!context || context->IsOffTheRecord()); | 
 |   incognito_context_ = context; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsShuttingDown() { return false; } | 
 |  | 
 | bool TestExtensionsBrowserClient::AreExtensionsDisabled( | 
 |     const base::CommandLine& command_line, | 
 |     BrowserContext* context) { | 
 |   return false; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsValidContext(BrowserContext* context) { | 
 |   return context == main_context_ || | 
 |          (incognito_context_ && context == incognito_context_); | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsSameContext(BrowserContext* first, | 
 |                                                 BrowserContext* second) { | 
 |   DCHECK(first); | 
 |   DCHECK(second); | 
 |   return first == second || | 
 |          (first == main_context_ && second == incognito_context_) || | 
 |          (first == incognito_context_ && second == main_context_); | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::HasOffTheRecordContext( | 
 |     BrowserContext* context) { | 
 |   return context == main_context_ && incognito_context_ != NULL; | 
 | } | 
 |  | 
 | BrowserContext* TestExtensionsBrowserClient::GetOffTheRecordContext( | 
 |     BrowserContext* context) { | 
 |   if (context == main_context_) | 
 |     return incognito_context_; | 
 |   return NULL; | 
 | } | 
 |  | 
 | BrowserContext* TestExtensionsBrowserClient::GetOriginalContext( | 
 |     BrowserContext* context) { | 
 |   return main_context_; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsGuestSession( | 
 |     BrowserContext* context) const { | 
 |   return false; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsExtensionIncognitoEnabled( | 
 |     const std::string& extension_id, | 
 |     content::BrowserContext* context) const { | 
 |   return false; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::CanExtensionCrossIncognito( | 
 |     const extensions::Extension* extension, | 
 |     content::BrowserContext* context) const { | 
 |   return false; | 
 | } | 
 |  | 
 | net::URLRequestJob* | 
 | TestExtensionsBrowserClient::MaybeCreateResourceBundleRequestJob( | 
 |     net::URLRequest* request, | 
 |     net::NetworkDelegate* network_delegate, | 
 |     const base::FilePath& directory_path, | 
 |     const std::string& content_security_policy, | 
 |     bool send_cors_header) { | 
 |   return NULL; | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::AllowCrossRendererResourceLoad( | 
 |     net::URLRequest* request, | 
 |     bool is_incognito, | 
 |     const Extension* extension, | 
 |     InfoMap* extension_info_map) { | 
 |   return false; | 
 | } | 
 |  | 
 | PrefService* TestExtensionsBrowserClient::GetPrefServiceForContext( | 
 |     BrowserContext* context) { | 
 |   return NULL; | 
 | } | 
 |  | 
 | void TestExtensionsBrowserClient::GetEarlyExtensionPrefsObservers( | 
 |     content::BrowserContext* context, | 
 |     std::vector<ExtensionPrefsObserver*>* observers) const {} | 
 |  | 
 | ProcessManagerDelegate* TestExtensionsBrowserClient::GetProcessManagerDelegate() | 
 |     const { | 
 |   return process_manager_delegate_; | 
 | } | 
 |  | 
 | scoped_ptr<ExtensionHostDelegate> | 
 | TestExtensionsBrowserClient::CreateExtensionHostDelegate() { | 
 |   return scoped_ptr<ExtensionHostDelegate>(); | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::DidVersionUpdate(BrowserContext* context) { | 
 |   return false; | 
 | } | 
 |  | 
 | void TestExtensionsBrowserClient::PermitExternalProtocolHandler() { | 
 | } | 
 |  | 
 | scoped_ptr<AppSorting> TestExtensionsBrowserClient::CreateAppSorting() { | 
 |   return scoped_ptr<AppSorting>(); | 
 | } | 
 |  | 
 | bool TestExtensionsBrowserClient::IsRunningInForcedAppMode() { return false; } | 
 |  | 
 | ApiActivityMonitor* TestExtensionsBrowserClient::GetApiActivityMonitor( | 
 |     BrowserContext* context) { | 
 |   return NULL; | 
 | } | 
 |  | 
 | ExtensionSystemProvider* | 
 | TestExtensionsBrowserClient::GetExtensionSystemFactory() { | 
 |   DCHECK(extension_system_factory_); | 
 |   return extension_system_factory_; | 
 | } | 
 |  | 
 | void TestExtensionsBrowserClient::RegisterExtensionFunctions( | 
 |     ExtensionFunctionRegistry* registry) const {} | 
 |  | 
 | scoped_ptr<RuntimeAPIDelegate> | 
 | TestExtensionsBrowserClient::CreateRuntimeAPIDelegate( | 
 |     content::BrowserContext* context) const { | 
 |   return scoped_ptr<RuntimeAPIDelegate>(new TestRuntimeAPIDelegate()); | 
 | } | 
 |  | 
 | ComponentExtensionResourceManager* | 
 | TestExtensionsBrowserClient::GetComponentExtensionResourceManager() { | 
 |   return NULL; | 
 | } | 
 |  | 
 | void TestExtensionsBrowserClient::BroadcastEventToRenderers( | 
 |     const std::string& event_name, | 
 |     scoped_ptr<base::ListValue> args) { | 
 | } | 
 |  | 
 | net::NetLog* TestExtensionsBrowserClient::GetNetLog() { | 
 |   return NULL; | 
 | } | 
 |  | 
 | }  // namespace extensions |