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 #ifndef EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_
6 #define EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_
8 #include "base/compiler_specific.h"
9 #include "extensions/browser/extensions_browser_client.h"
11 namespace extensions {
13 // A simplified ExtensionsBrowserClient for a single normal browser context and
14 // an optional incognito browser context associated with it. A test that uses
15 // this class should call ExtensionsBrowserClient::Set() with its instance.
16 class TestExtensionsBrowserClient : public ExtensionsBrowserClient {
18 // |main_context| is required and must not be an incognito context.
19 explicit TestExtensionsBrowserClient(content::BrowserContext* main_context);
20 virtual ~TestExtensionsBrowserClient();
22 void set_process_manager_delegate(ProcessManagerDelegate* delegate) {
23 process_manager_delegate_ = delegate;
25 void set_extension_system_factory(ExtensionSystemProvider* factory) {
26 extension_system_factory_ = factory;
29 // Associates an incognito context with |main_context_|.
30 void SetIncognitoContext(content::BrowserContext* incognito_context);
32 // ExtensionsBrowserClient overrides:
33 virtual bool IsShuttingDown() OVERRIDE;
34 virtual bool AreExtensionsDisabled(const base::CommandLine& command_line,
35 content::BrowserContext* context) OVERRIDE;
36 virtual bool IsValidContext(content::BrowserContext* context) OVERRIDE;
37 virtual bool IsSameContext(content::BrowserContext* first,
38 content::BrowserContext* second) OVERRIDE;
39 virtual bool HasOffTheRecordContext(content::BrowserContext* context)
41 virtual content::BrowserContext* GetOffTheRecordContext(
42 content::BrowserContext* context) OVERRIDE;
43 virtual content::BrowserContext* GetOriginalContext(
44 content::BrowserContext* context) OVERRIDE;
45 virtual bool IsGuestSession(content::BrowserContext* context) const OVERRIDE;
46 virtual bool IsExtensionIncognitoEnabled(
47 const std::string& extension_id,
48 content::BrowserContext* context) const OVERRIDE;
49 virtual bool CanExtensionCrossIncognito(
50 const extensions::Extension* extension,
51 content::BrowserContext* context) const OVERRIDE;
52 virtual net::URLRequestJob* MaybeCreateResourceBundleRequestJob(
53 net::URLRequest* request,
54 net::NetworkDelegate* network_delegate,
55 const base::FilePath& directory_path,
56 const std::string& content_security_policy,
57 bool send_cors_header) OVERRIDE;
58 virtual bool AllowCrossRendererResourceLoad(net::URLRequest* request,
60 const Extension* extension,
61 InfoMap* extension_info_map)
63 virtual PrefService* GetPrefServiceForContext(
64 content::BrowserContext* context) OVERRIDE;
65 virtual void GetEarlyExtensionPrefsObservers(
66 content::BrowserContext* context,
67 std::vector<ExtensionPrefsObserver*>* observers) const OVERRIDE;
68 virtual ProcessManagerDelegate* GetProcessManagerDelegate() const OVERRIDE;
69 virtual scoped_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate()
71 virtual bool DidVersionUpdate(content::BrowserContext* context) OVERRIDE;
72 virtual void PermitExternalProtocolHandler() OVERRIDE;
73 virtual scoped_ptr<AppSorting> CreateAppSorting() OVERRIDE;
74 virtual bool IsRunningInForcedAppMode() OVERRIDE;
75 virtual ApiActivityMonitor* GetApiActivityMonitor(
76 content::BrowserContext* context) OVERRIDE;
77 virtual ExtensionSystemProvider* GetExtensionSystemFactory() OVERRIDE;
78 virtual void RegisterExtensionFunctions(
79 ExtensionFunctionRegistry* registry) const OVERRIDE;
80 virtual scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate(
81 content::BrowserContext* context) const OVERRIDE;
82 virtual ComponentExtensionResourceManager*
83 GetComponentExtensionResourceManager() OVERRIDE;
84 virtual void BroadcastEventToRenderers(
85 const std::string& event_name,
86 scoped_ptr<base::ListValue> args) OVERRIDE;
87 virtual net::NetLog* GetNetLog() OVERRIDE;
90 content::BrowserContext* main_context_; // Not owned.
91 content::BrowserContext* incognito_context_; // Not owned, defaults to NULL.
93 // Not owned, defaults to NULL.
94 ProcessManagerDelegate* process_manager_delegate_;
96 // Not owned, defaults to NULL.
97 ExtensionSystemProvider* extension_system_factory_;
99 DISALLOW_COPY_AND_ASSIGN(TestExtensionsBrowserClient);
102 } // namespace extensions
104 #endif // EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_