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_SHELL_BROWSER_SHELL_EXTENSIONS_BROWSER_CLIENT_H_
6 #define EXTENSIONS_SHELL_BROWSER_SHELL_EXTENSIONS_BROWSER_CLIENT_H_
8 #include "base/compiler_specific.h"
9 #include "extensions/browser/extensions_browser_client.h"
13 namespace extensions
{
15 class ExtensionsAPIClient
;
17 // An ExtensionsBrowserClient that supports a single content::BrowserContent
18 // with no related incognito context.
19 class ShellExtensionsBrowserClient
: public ExtensionsBrowserClient
{
21 // |context| is the single BrowserContext used for IsValidContext() below.
22 explicit ShellExtensionsBrowserClient(content::BrowserContext
* context
);
23 virtual ~ShellExtensionsBrowserClient();
25 // ExtensionsBrowserClient overrides:
26 virtual bool IsShuttingDown() OVERRIDE
;
27 virtual bool AreExtensionsDisabled(const base::CommandLine
& command_line
,
28 content::BrowserContext
* context
) OVERRIDE
;
29 virtual bool IsValidContext(content::BrowserContext
* context
) OVERRIDE
;
30 virtual bool IsSameContext(content::BrowserContext
* first
,
31 content::BrowserContext
* second
) OVERRIDE
;
32 virtual bool HasOffTheRecordContext(
33 content::BrowserContext
* context
) OVERRIDE
;
34 virtual content::BrowserContext
* GetOffTheRecordContext(
35 content::BrowserContext
* context
) OVERRIDE
;
36 virtual content::BrowserContext
* GetOriginalContext(
37 content::BrowserContext
* context
) OVERRIDE
;
38 virtual bool IsGuestSession(content::BrowserContext
* context
) const OVERRIDE
;
39 virtual bool IsExtensionIncognitoEnabled(
40 const std::string
& extension_id
,
41 content::BrowserContext
* context
) const OVERRIDE
;
42 virtual bool CanExtensionCrossIncognito(
43 const Extension
* extension
,
44 content::BrowserContext
* context
) const OVERRIDE
;
45 virtual bool IsWebViewRequest(net::URLRequest
* request
) const OVERRIDE
;
46 virtual net::URLRequestJob
* MaybeCreateResourceBundleRequestJob(
47 net::URLRequest
* request
,
48 net::NetworkDelegate
* network_delegate
,
49 const base::FilePath
& directory_path
,
50 const std::string
& content_security_policy
,
51 bool send_cors_header
) OVERRIDE
;
52 virtual bool AllowCrossRendererResourceLoad(
53 net::URLRequest
* request
,
55 const Extension
* extension
,
56 InfoMap
* extension_info_map
) OVERRIDE
;
57 virtual PrefService
* GetPrefServiceForContext(
58 content::BrowserContext
* context
) OVERRIDE
;
59 virtual void GetEarlyExtensionPrefsObservers(
60 content::BrowserContext
* context
,
61 std::vector
<ExtensionPrefsObserver
*>* observers
) const OVERRIDE
;
62 virtual ProcessManagerDelegate
* GetProcessManagerDelegate() const OVERRIDE
;
63 virtual scoped_ptr
<ExtensionHostDelegate
> CreateExtensionHostDelegate()
65 virtual bool DidVersionUpdate(content::BrowserContext
* context
) OVERRIDE
;
66 virtual scoped_ptr
<AppSorting
> CreateAppSorting() OVERRIDE
;
67 virtual bool IsRunningInForcedAppMode() OVERRIDE
;
68 virtual ApiActivityMonitor
* GetApiActivityMonitor(
69 content::BrowserContext
* context
) OVERRIDE
;
70 virtual ExtensionSystemProvider
* GetExtensionSystemFactory() OVERRIDE
;
71 virtual void RegisterExtensionFunctions(
72 ExtensionFunctionRegistry
* registry
) const OVERRIDE
;
73 virtual scoped_ptr
<RuntimeAPIDelegate
> CreateRuntimeAPIDelegate(
74 content::BrowserContext
* context
) const OVERRIDE
;
75 virtual ComponentExtensionResourceManager
*
76 GetComponentExtensionResourceManager() OVERRIDE
;
77 virtual net::NetLog
* GetNetLog() OVERRIDE
;
80 // The single BrowserContext for app_shell. Not owned.
81 content::BrowserContext
* browser_context_
;
83 // Support for extension APIs.
84 scoped_ptr
<ExtensionsAPIClient
> api_client_
;
86 // The PrefService for |browser_context_|.
87 scoped_ptr
<PrefService
> prefs_
;
89 DISALLOW_COPY_AND_ASSIGN(ShellExtensionsBrowserClient
);
92 } // namespace extensions
94 #endif // EXTENSIONS_SHELL_BROWSER_SHELL_EXTENSIONS_BROWSER_CLIENT_H_