blob: 1431f169c832f3c6a61cfe0eeea4556b01f7eb6c [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;
dcheng9168b2f2014-10-21 12:38:2448 bool IsGuestSession(content::BrowserContext* context) const override;
49 bool IsExtensionIncognitoEnabled(
[email protected]b9f6ba32014-03-10 18:34:0850 const std::string& extension_id,
mostynb0eac4e1b2014-10-03 16:32:1951 content::BrowserContext* context) const override;
dcheng9168b2f2014-10-21 12:38:2452 bool CanExtensionCrossIncognito(
[email protected]b9f6ba32014-03-10 18:34:0853 const extensions::Extension* extension,
mostynb0eac4e1b2014-10-03 16:32:1954 content::BrowserContext* context) const override;
dcheng9168b2f2014-10-21 12:38:2455 net::URLRequestJob* MaybeCreateResourceBundleRequestJob(
[email protected]1791e6c92014-04-11 08:29:0156 net::URLRequest* request,
57 net::NetworkDelegate* network_delegate,
58 const base::FilePath& directory_path,
59 const std::string& content_security_policy,
mostynb0eac4e1b2014-10-03 16:32:1960 bool send_cors_header) override;
dcheng9168b2f2014-10-21 12:38:2461 bool AllowCrossRendererResourceLoad(net::URLRequest* request,
62 bool is_incognito,
63 const Extension* extension,
64 InfoMap* extension_info_map) override;
65 PrefService* GetPrefServiceForContext(
mostynb0eac4e1b2014-10-03 16:32:1966 content::BrowserContext* context) override;
dcheng9168b2f2014-10-21 12:38:2467 void GetEarlyExtensionPrefsObservers(
[email protected]d31e2482014-04-02 22:52:2068 content::BrowserContext* context,
mostynb0eac4e1b2014-10-03 16:32:1969 std::vector<ExtensionPrefsObserver*>* observers) const override;
dcheng9168b2f2014-10-21 12:38:2470 ProcessManagerDelegate* GetProcessManagerDelegate() const override;
71 scoped_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate() override;
72 bool DidVersionUpdate(content::BrowserContext* context) override;
73 void PermitExternalProtocolHandler() override;
74 scoped_ptr<AppSorting> CreateAppSorting() override;
75 bool IsRunningInForcedAppMode() override;
76 ApiActivityMonitor* GetApiActivityMonitor(
mostynb0eac4e1b2014-10-03 16:32:1977 content::BrowserContext* context) override;
dcheng9168b2f2014-10-21 12:38:2478 ExtensionSystemProvider* GetExtensionSystemFactory() override;
79 void RegisterExtensionFunctions(
mostynb0eac4e1b2014-10-03 16:32:1980 ExtensionFunctionRegistry* registry) const override;
dcheng9168b2f2014-10-21 12:38:2481 scoped_ptr<RuntimeAPIDelegate> CreateRuntimeAPIDelegate(
mostynb0eac4e1b2014-10-03 16:32:1982 content::BrowserContext* context) const override;
mukaiee458c92015-01-06 01:30:3383 const ComponentExtensionResourceManager*
84 GetComponentExtensionResourceManager() override;
dcheng9168b2f2014-10-21 12:38:2485 void BroadcastEventToRenderers(const std::string& event_name,
86 scoped_ptr<base::ListValue> args) override;
87 net::NetLog* GetNetLog() override;
88 ExtensionCache* GetExtensionCache() override;
89 bool IsBackgroundUpdateAllowed() override;
90 bool IsMinBrowserVersionSupported(const std::string& min_version) override;
[email protected]b9f6ba32014-03-10 18:34:0891
92 private:
93 content::BrowserContext* main_context_; // Not owned.
94 content::BrowserContext* incognito_context_; // Not owned, defaults to NULL.
95
[email protected]6b54fda2014-07-22 02:13:4796 // Not owned, defaults to NULL.
97 ProcessManagerDelegate* process_manager_delegate_;
98
[email protected]9fc5bdc82014-08-03 23:49:2699 // Not owned, defaults to NULL.
100 ExtensionSystemProvider* extension_system_factory_;
101
rockotffa65b12014-10-14 17:19:06102 scoped_ptr<ExtensionCache> extension_cache_;
103
[email protected]b9f6ba32014-03-10 18:34:08104 DISALLOW_COPY_AND_ASSIGN(TestExtensionsBrowserClient);
105};
106
107} // namespace extensions
108
109#endif // EXTENSIONS_BROWSER_TEST_EXTENSIONS_BROWSER_CLIENT_H_