OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <set> | 10 #include <set> |
(...skipping 24 matching lines...) Expand all Loading... |
35 typedef std::set<ExtensionHost*> ExtensionHostSet; | 35 typedef std::set<ExtensionHost*> ExtensionHostSet; |
36 typedef ExtensionHostSet::const_iterator const_iterator; | 36 typedef ExtensionHostSet::const_iterator const_iterator; |
37 | 37 |
38 static ExtensionProcessManager* Create(Profile* profile); | 38 static ExtensionProcessManager* Create(Profile* profile); |
39 virtual ~ExtensionProcessManager(); | 39 virtual ~ExtensionProcessManager(); |
40 | 40 |
41 const ExtensionHostSet& background_hosts() const { | 41 const ExtensionHostSet& background_hosts() const { |
42 return background_hosts_; | 42 return background_hosts_; |
43 } | 43 } |
44 | 44 |
45 const ExtensionHostSet& platform_app_hosts() const { | |
46 return platform_app_hosts_; | |
47 } | |
48 | |
49 typedef std::set<content::RenderViewHost*> ViewSet; | 45 typedef std::set<content::RenderViewHost*> ViewSet; |
50 const ViewSet GetAllViews() const; | 46 const ViewSet GetAllViews() const; |
51 | 47 |
52 // Creates a new ExtensionHost with its associated view, grouping it in the | 48 // Creates a new ExtensionHost with its associated view, grouping it in the |
53 // appropriate SiteInstance (and therefore process) based on the URL and | 49 // appropriate SiteInstance (and therefore process) based on the URL and |
54 // profile. | 50 // profile. |
55 virtual ExtensionHost* CreateViewHost(const Extension* extension, | 51 virtual ExtensionHost* CreateViewHost(const Extension* extension, |
56 const GURL& url, | 52 const GURL& url, |
57 Browser* browser, | 53 Browser* browser, |
58 content::ViewType view_type); | 54 content::ViewType view_type); |
59 ExtensionHost* CreateViewHost(const GURL& url, | 55 ExtensionHost* CreateViewHost(const GURL& url, |
60 Browser* browser, | 56 Browser* browser, |
61 content::ViewType view_type); | 57 content::ViewType view_type); |
62 ExtensionHost* CreatePopupHost(const Extension* extension, | 58 ExtensionHost* CreatePopupHost(const Extension* extension, |
63 const GURL& url, | 59 const GURL& url, |
64 Browser* browser); | 60 Browser* browser); |
65 ExtensionHost* CreatePopupHost(const GURL& url, Browser* browser); | 61 ExtensionHost* CreatePopupHost(const GURL& url, Browser* browser); |
66 ExtensionHost* CreateDialogHost(const GURL& url, Browser* browser); | 62 ExtensionHost* CreateDialogHost(const GURL& url, Browser* browser); |
67 ExtensionHost* CreateInfobarHost(const Extension* extension, | 63 ExtensionHost* CreateInfobarHost(const Extension* extension, |
68 const GURL& url, | 64 const GURL& url, |
69 Browser* browser); | 65 Browser* browser); |
70 ExtensionHost* CreateInfobarHost(const GURL& url, | 66 ExtensionHost* CreateInfobarHost(const GURL& url, |
71 Browser* browser); | 67 Browser* browser); |
72 ExtensionHost* CreateShellHost(const Extension* extension, const GURL& url); | |
73 | 68 |
74 // Open the extension's options page. | 69 // Open the extension's options page. |
75 void OpenOptionsPage(const Extension* extension, Browser* browser); | 70 void OpenOptionsPage(const Extension* extension, Browser* browser); |
76 | 71 |
77 // Creates a new UI-less extension instance. Like CreateViewHost, but not | 72 // Creates a new UI-less extension instance. Like CreateViewHost, but not |
78 // displayed anywhere. | 73 // displayed anywhere. |
79 virtual void CreateBackgroundHost(const Extension* extension, | 74 virtual void CreateBackgroundHost(const Extension* extension, |
80 const GURL& url); | 75 const GURL& url); |
81 | 76 |
82 // Gets the ExtensionHost for the background page for an extension, or NULL if | 77 // Gets the ExtensionHost for the background page for an extension, or NULL if |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 | 140 |
146 // Gets the profile associated with site_instance_ and all other | 141 // Gets the profile associated with site_instance_ and all other |
147 // related SiteInstances. | 142 // related SiteInstances. |
148 Profile* GetProfile() const; | 143 Profile* GetProfile() const; |
149 | 144 |
150 content::NotificationRegistrar registrar_; | 145 content::NotificationRegistrar registrar_; |
151 | 146 |
152 // The set of ExtensionHosts running viewless background extensions. | 147 // The set of ExtensionHosts running viewless background extensions. |
153 ExtensionHostSet background_hosts_; | 148 ExtensionHostSet background_hosts_; |
154 | 149 |
155 // The set of ExtensionHosts running platform apps. | |
156 ExtensionHostSet platform_app_hosts_; | |
157 | |
158 // A SiteInstance related to the SiteInstance for all extensions in | 150 // A SiteInstance related to the SiteInstance for all extensions in |
159 // this profile. We create it in such a way that a new | 151 // this profile. We create it in such a way that a new |
160 // browsing instance is created. This controls process grouping. | 152 // browsing instance is created. This controls process grouping. |
161 scoped_refptr<content::SiteInstance> site_instance_; | 153 scoped_refptr<content::SiteInstance> site_instance_; |
162 | 154 |
163 private: | 155 private: |
164 // Extra information we keep for each extension's background page. | 156 // Extra information we keep for each extension's background page. |
165 struct BackgroundPageData; | 157 struct BackgroundPageData; |
166 typedef std::string ExtensionId; | 158 typedef std::string ExtensionId; |
167 typedef std::map<ExtensionId, BackgroundPageData> BackgroundPageDataMap; | 159 typedef std::map<ExtensionId, BackgroundPageData> BackgroundPageDataMap; |
(...skipping 21 matching lines...) Expand all Loading... |
189 // associated with a WebContents. This allows us to gather information that | 181 // associated with a WebContents. This allows us to gather information that |
190 // was not available when the host was first registered. | 182 // was not available when the host was first registered. |
191 void UpdateRegisteredRenderView(content::RenderViewHost* render_view_host); | 183 void UpdateRegisteredRenderView(content::RenderViewHost* render_view_host); |
192 | 184 |
193 BackgroundPageDataMap background_page_data_; | 185 BackgroundPageDataMap background_page_data_; |
194 | 186 |
195 DISALLOW_COPY_AND_ASSIGN(ExtensionProcessManager); | 187 DISALLOW_COPY_AND_ASSIGN(ExtensionProcessManager); |
196 }; | 188 }; |
197 | 189 |
198 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ | 190 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PROCESS_MANAGER_H_ |
OLD | NEW |