blob: 9adf4d55f4b7570085541702047ff2f25654af25 [file] [log] [blame]
[email protected]b9f6ba32014-03-10 18:34:081// 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#ifndef EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_
6#define EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_
7
8#include "base/compiler_specific.h"
9#include "extensions/browser/extensions_browser_client.h"
rockotffa65b12014-10-14 17:19:0610#include "extensions/browser/updater/extension_cache.h"
[email protected]b9f6ba32014-03-10 18:34:0811
12namespace extensions {
13
14// A simplified ExtensionsBrowserClient for a single normal browser context and
15// an optional incognito browser context associated with it. A test that uses
16// this class should call ExtensionsBrowserClient::Set() with its instance.
17class TestExtensionsBrowserClient : public ExtensionsBrowserClient {
18 public:
[email protected]6b54fda2014-07-22 02:13:4719 // |main_context| is required and must not be an incognito context.
[email protected]883346042014-06-03 12:04:3320 explicit TestExtensionsBrowserClient(content::BrowserContext* main_context);
dcheng9168b2f2014-10-21 12:38:2421 ~TestExtensionsBrowserClient() override;
[email protected]b9f6ba32014-03-10 18:34:0822
[email protected]6b54fda2014-07-22 02:13:4723 void set_process_manager_delegate(ProcessManagerDelegate* delegate) {
24 process_manager_delegate_ = delegate;
25 }
[email protected]9fc5bdc82014-08-03 23:49:2626 void set_extension_system_factory(ExtensionSystemProvider* factory) {
27 extension_system_factory_ = factory;
28 }
rockotffa65b12014-10-14 17:19:0629 void set_extension_cache(scoped_ptr<ExtensionCache> extension_cache) {
30 extension_cache_ = extension_cache.Pass();
31 }
[email protected]6b54fda2014-07-22 02:13:4732
[email protected]b9f6ba32014-03-10 18:34:0833 // Associates an incognito context with |main_context_|.
34 void SetIncognitoContext(content::BrowserContext* incognito_context);
35
36 // ExtensionsBrowserClient overrides:
dcheng9168b2f2014-10-21 12:38:2437 bool IsShuttingDown() override;
38 bool AreExtensionsDisabled(const base::CommandLine& command_line,
39 content::BrowserContext* context) override;
40 bool IsValidContext(content::BrowserContext* context) override;
41 bool IsSameContext(content::BrowserContext* first,
42 content::BrowserContext* second) override;
43 bool HasOffTheRecordContext(content::BrowserContext* context) override;
44 content::BrowserContext* GetOffTheRecordContext(
mostynb0eac4e1b2014-10-03 16:32:1945 content::BrowserContext* context) override;
dcheng9168b2f2014-10-21 12:38:2446 content::BrowserContext* GetOriginalContext(
mostynb0eac4e1b2014-10-03 16:32:1947 content::BrowserContext* context) override;
stevenjbd194dd1362015-01-28 17:30:0848#if defined(OS_CHROMEOS)
49 std::string GetUserIdHashFromContext(
50 content::BrowserContext* context) override;
51#endif
dcheng9168b2f2014-10-21 12:38:2452 bool IsGuestSession(content::BrowserContext* context) const override;
53 bool IsExtensionIncognitoEnabled(
[email protected]b9f6ba32014-03-10 18:34:0854 const std::string& extension_id,
mostynb0eac4e1b2014-10-03 16:32:1955 content::BrowserContext* context) const override;
dcheng9168b2f2014-10-21 12:38:2456 bool CanExtensionCrossIncognito(
[email protected]b9f6ba32014-03-10 18:34:0857 const extensions::Extension* extension,
mostynb0eac4e1b2014-10-03 16:32:1958 content::BrowserContext* context) const override;
dcheng9168b2f2014-10-21 12:38:2459 net::URLRequestJob* MaybeCreateResourceBundleRequestJob(
[email protected]1791e6c92014-04-11 08:29:0160 net::URLRequest* request,
61 net::NetworkDelegate* network_delegate,
62 const base::FilePath& directory_path,
63 const std::string& content_security_policy,
mostynb0eac4e1b2014-10-03 16:32:1964 bool send_cors_header) override;
dcheng9168b2f2014-10-21 12:38:2465 bool AllowCrossRendererResourceLoad(net::URLRequest* request,
66 bool is_incognito,
67 const Extension* extension,
68 InfoMap* extension_info_map) override;
69 PrefService* GetPrefServiceForContext(
mostynb0eac4e1b2014-10-03 16:32:1970 content::BrowserContext* context) override;
dcheng9168b2f2014-10-21 12:38:2471 void GetEarlyExtensionPrefsObservers(
[email protected]d31e2482014-04-02 22:52:2072 content::BrowserContext* context,
mostynb0eac4e1b2014-10-03 16:32:1973 std::vector<ExtensionPrefsObserver*>* observers) const override;
dcheng9168b2f2014-10-21 12:38:2474 ProcessManagerDelegate* GetProcessManagerDelegate() const override;
75 scoped_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate() override;
76 bool DidVersionUpdate(content::BrowserContext* context) override;
77 void PermitExternalProtocolHandler() override;
78 scoped_ptr<AppSorting> CreateAppSorting() override;
79 bool IsRunningInForcedAppMode() override;
80 ApiActivityMonitor* GetApiActivityMonitor(
mostynb0eac4e1b2014-10-03 16:32:1981 content::BrowserContext* context) override;
dcheng9168b2f2014-10-21 12:38:2482 ExtensionSystemProvider* GetExtensionSystemFactory() override;
83 void RegisterExtensionFunctions(
mostynb0eac4e1b2014-10-03 16:32:1984 ExtensionFunctionRegistry* registry) const override;
kmarshall166e5b42015-04-03 22:29:4385 void RegisterMojoServices(content::RenderFrameHost* render_frame_host,
86 const Extension* extension) const override;
dcheng9168b2f2014-10-21 12:38:2487 scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate(
mostynb0eac4e1b2014-10-03 16:32:1988 content::BrowserContext* context) const override;
mukaiee458c92015-01-06 01:30:3389 const ComponentExtensionResourceManager*
90 GetComponentExtensionResourceManager() override;
dcheng9168b2f2014-10-21 12:38:2491 void BroadcastEventToRenderers(const std::string& event_name,
92 scoped_ptr<base::ListValue> args) override;
93 net::NetLog* GetNetLog() override;
94 ExtensionCache* GetExtensionCache() override;
95 bool IsBackgroundUpdateAllowed() override;
96 bool IsMinBrowserVersionSupported(const std::string& min_version) override;
rdevlin.cronincb2ec659a2015-06-10 23:32:4197 ExtensionWebContentsObserver* GetExtensionWebContentsObserver(
98 content::WebContents* web_contents) override;
[email protected]b9f6ba32014-03-10 18:34:0899
100 private:
101 content::BrowserContext* main_context_; // Not owned.
102 content::BrowserContext* incognito_context_; // Not owned, defaults to NULL.
103
[email protected]6b54fda2014-07-22 02:13:47104 // Not owned, defaults to NULL.
105 ProcessManagerDelegate* process_manager_delegate_;
106
[email protected]9fc5bdc82014-08-03 23:49:26107 // Not owned, defaults to NULL.
108 ExtensionSystemProvider* extension_system_factory_;
109
rockotffa65b12014-10-14 17:19:06110 scoped_ptr<ExtensionCache> extension_cache_;
111
[email protected]b9f6ba32014-03-10 18:34:08112 DISALLOW_COPY_AND_ASSIGN(TestExtensionsBrowserClient);
113};
114
115} // namespace extensions
116
117#endif // EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_