Index: chrome/browser/extensions/extension_process_manager.h |
diff --git a/chrome/browser/extensions/extension_process_manager.h b/chrome/browser/extensions/extension_process_manager.h |
index bbf2109ffaed6da77921a839e61c5abdbfef7788..70a2e28a3b40cb6d7d0d4bc99eb1e2dbbc2034cd 100644 |
--- a/chrome/browser/extensions/extension_process_manager.h |
+++ b/chrome/browser/extensions/extension_process_manager.h |
@@ -97,15 +97,15 @@ class ExtensionProcessManager : public content::NotificationObserver { |
int IncrementLazyKeepaliveCount(const Extension* extension); |
int DecrementLazyKeepaliveCount(const Extension* extension); |
- // These are called when the extension transitions between idle and active. |
- // They control the process of closing the background page when idle. |
- void OnLazyBackgroundPageIdle(const std::string& extension_id); |
- void OnLazyBackgroundPageActive(const std::string& extension_id); |
- |
- // Handle a response to the ShouldClose message, used for lazy background |
+ // Handles a response to the ShouldClose message, used for lazy background |
// pages. |
void OnShouldCloseAck(const std::string& extension_id, int sequence_id); |
+ // Tracks network requests for a given RenderViewHost, used to know |
+ // when network activity is idle for lazy background pages. |
+ void OnNetworkRequestStarted(RenderViewHost* render_view_host); |
+ void OnNetworkRequestDone(RenderViewHost* render_view_host); |
+ |
typedef std::set<ExtensionHost*> ExtensionHostSet; |
typedef ExtensionHostSet::const_iterator const_iterator; |
const_iterator begin() const { return all_hosts_.begin(); } |
@@ -144,14 +144,23 @@ class ExtensionProcessManager : public content::NotificationObserver { |
private: |
// Contains all extension-related RenderViewHost instances for all extensions. |
- typedef std::set<RenderViewHost*> RenderViewHostSet; |
- RenderViewHostSet all_extension_views_; |
+ // We also keep a cache of the host's view type, because that information |
+ // is not accessible at registration/deregistration time. |
+ typedef std::map<RenderViewHost*, content::ViewType> ExtensionRenderViews; |
Yoyo Zhou
2012/03/02 03:10:46
I think this typename should have "Map".
Matt Perry
2012/03/02 20:25:21
I disagree. I don't like putting container types i
Yoyo Zhou
2012/03/02 20:31:58
I don't think that's a significant cost. As someon
|
+ ExtensionRenderViews all_extension_views_; |
// Close the given |host| iff it's a background page. |
void CloseBackgroundHost(ExtensionHost* host); |
- // Excludes background page. |
- bool HasVisibleViews(const std::string& extension_id); |
+ // These are called when the extension transitions between idle and active. |
+ // They control the process of closing the background page when idle. |
+ void OnLazyBackgroundPageIdle(const std::string& extension_id); |
+ void OnLazyBackgroundPageActive(const std::string& extension_id); |
+ |
+ // Updates a potentially-registered RenderViewHost once it has been |
+ // associated with a WebContents. This allows us to gather information that |
+ // was not available when the host was first registered. |
+ void UpdateRegisteredRenderView(RenderViewHost* render_view_host); |
DISALLOW_COPY_AND_ASSIGN(ExtensionProcessManager); |
}; |