Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / extensions / shell / browser / shell_content_browser_client.h
blob1b5fbac3bfc44b2dece36a2eacd1239a223b4e87
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_CONTENT_BROWSER_CLIENT_H_
6 #define EXTENSIONS_SHELL_BROWSER_SHELL_CONTENT_BROWSER_CLIENT_H_
8 #include "base/compiler_specific.h"
9 #include "content/public/browser/content_browser_client.h"
11 class GURL;
13 namespace base {
14 class CommandLine;
17 namespace content {
18 class BrowserContext;
21 namespace extensions {
22 class Extension;
23 class ShellBrowserMainDelegate;
24 class ShellBrowserMainParts;
26 // Content module browser process support for app_shell.
27 class ShellContentBrowserClient : public content::ContentBrowserClient {
28 public:
29 explicit ShellContentBrowserClient(
30 ShellBrowserMainDelegate* browser_main_delegate);
31 virtual ~ShellContentBrowserClient();
33 // Returns the single instance.
34 static ShellContentBrowserClient* Get();
36 // Returns the single browser context for app_shell.
37 content::BrowserContext* GetBrowserContext();
39 // content::ContentBrowserClient overrides.
40 virtual content::BrowserMainParts* CreateBrowserMainParts(
41 const content::MainFunctionParams& parameters) OVERRIDE;
42 virtual void RenderProcessWillLaunch(
43 content::RenderProcessHost* host) OVERRIDE;
44 virtual bool ShouldUseProcessPerSite(content::BrowserContext* browser_context,
45 const GURL& effective_url) OVERRIDE;
46 virtual net::URLRequestContextGetter* CreateRequestContext(
47 content::BrowserContext* browser_context,
48 content::ProtocolHandlerMap* protocol_handlers,
49 content::URLRequestInterceptorScopedVector request_interceptors) OVERRIDE;
50 // TODO(jamescook): Quota management?
51 // TODO(jamescook): Speech recognition?
52 virtual bool IsHandledURL(const GURL& url) OVERRIDE;
53 virtual void SiteInstanceGotProcess(
54 content::SiteInstance* site_instance) OVERRIDE;
55 virtual void SiteInstanceDeleting(
56 content::SiteInstance* site_instance) OVERRIDE;
57 virtual void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
58 int child_process_id) OVERRIDE;
59 virtual content::BrowserPpapiHost* GetExternalBrowserPpapiHost(
60 int plugin_process_id) OVERRIDE;
61 virtual void GetAdditionalAllowedSchemesForFileSystem(
62 std::vector<std::string>* additional_schemes) OVERRIDE;
64 private:
65 // Appends command line switches for a renderer process.
66 void AppendRendererSwitches(base::CommandLine* command_line);
68 // Returns the extension or app associated with |site_instance| or NULL.
69 const Extension* GetExtension(content::SiteInstance* site_instance);
71 // Owned by content::BrowserMainLoop.
72 ShellBrowserMainParts* browser_main_parts_;
74 // Owned by ShellBrowserMainParts.
75 ShellBrowserMainDelegate* browser_main_delegate_;
77 DISALLOW_COPY_AND_ASSIGN(ShellContentBrowserClient);
80 } // namespace extensions
82 #endif // EXTENSIONS_SHELL_BROWSER_SHELL_CONTENT_BROWSER_CLIENT_H_