Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: extensions/browser/process_manager.h

Issue 60613004: Add KeepaliveImpulse to extension process manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tapted comments addressed Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 EXTENSIONS_BROWSER_PROCESS_MANAGER_H_ 5 #ifndef EXTENSIONS_BROWSER_PROCESS_MANAGER_H_
6 #define EXTENSIONS_BROWSER_PROCESS_MANAGER_H_ 6 #define EXTENSIONS_BROWSER_PROCESS_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 79
80 // Returns true if the (lazy) background host for the given extension has 80 // Returns true if the (lazy) background host for the given extension has
81 // already been sent the unload event and is shutting down. 81 // already been sent the unload event and is shutting down.
82 bool IsBackgroundHostClosing(const std::string& extension_id); 82 bool IsBackgroundHostClosing(const std::string& extension_id);
83 83
84 // Getter and setter for the lazy background page's keepalive count. This is 84 // Getter and setter for the lazy background page's keepalive count. This is
85 // the count of how many outstanding "things" are keeping the page alive. 85 // the count of how many outstanding "things" are keeping the page alive.
86 // When this reaches 0, we will begin the process of shutting down the page. 86 // When this reaches 0, we will begin the process of shutting down the page.
87 // "Things" include pending events, resource loads, and API calls. 87 // "Things" include pending events, resource loads, and API calls.
88 int GetLazyKeepaliveCount(const Extension* extension); 88 int GetLazyKeepaliveCount(const Extension* extension);
89 int IncrementLazyKeepaliveCount(const Extension* extension); 89 void IncrementLazyKeepaliveCount(const Extension* extension);
90 int DecrementLazyKeepaliveCount(const Extension* extension); 90 void DecrementLazyKeepaliveCount(const Extension* extension);
91 91
92 void IncrementLazyKeepaliveCountForView( 92 void IncrementLazyKeepaliveCountForView(
93 content::RenderViewHost* render_view_host); 93 content::RenderViewHost* render_view_host);
94 94
95 // Keeps a background page alive. Unlike IncrementLazyKeepaliveCount, these
96 // impulses will only keep the page alive for a limited amount of time unless
97 // called regularly.
98 void KeepaliveImpulse(const Extension* extension);
99
95 // Handles a response to the ShouldSuspend message, used for lazy background 100 // Handles a response to the ShouldSuspend message, used for lazy background
96 // pages. 101 // pages.
97 void OnShouldSuspendAck(const std::string& extension_id, int sequence_id); 102 void OnShouldSuspendAck(const std::string& extension_id, int sequence_id);
98 103
99 // Same as above, for the Suspend message. 104 // Same as above, for the Suspend message.
100 void OnSuspendAck(const std::string& extension_id); 105 void OnSuspendAck(const std::string& extension_id);
101 106
102 // Tracks network requests for a given RenderViewHost, used to know 107 // Tracks network requests for a given RenderViewHost, used to know
103 // when network activity is idle for lazy background pages. 108 // when network activity is idle for lazy background pages.
104 void OnNetworkRequestStarted(content::RenderViewHost* render_view_host); 109 void OnNetworkRequestStarted(content::RenderViewHost* render_view_host);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 typedef std::map<ExtensionId, BackgroundPageData> BackgroundPageDataMap; 162 typedef std::map<ExtensionId, BackgroundPageData> BackgroundPageDataMap;
158 typedef std::map<content::RenderViewHost*, 163 typedef std::map<content::RenderViewHost*,
159 extensions::ViewType> ExtensionRenderViews; 164 extensions::ViewType> ExtensionRenderViews;
160 165
161 // Called just after |host| is created so it can be registered in our lists. 166 // Called just after |host| is created so it can be registered in our lists.
162 void OnBackgroundHostCreated(ExtensionHost* host); 167 void OnBackgroundHostCreated(ExtensionHost* host);
163 168
164 // Close the given |host| iff it's a background page. 169 // Close the given |host| iff it's a background page.
165 void CloseBackgroundHost(ExtensionHost* host); 170 void CloseBackgroundHost(ExtensionHost* host);
166 171
172 // Internal implementation of DecrementLazyKeepaliveCount with an
173 // |extension_id| known to have a lazy background page.
174 void DecrementLazyKeepaliveCount(const std::string& extension_id);
175
176 // Checks if keepalive impulses have occured, and adjusts keep alive count.
177 void OnKeepaliveImpulseCheck();
178
167 // These are called when the extension transitions between idle and active. 179 // These are called when the extension transitions between idle and active.
168 // They control the process of closing the background page when idle. 180 // They control the process of closing the background page when idle.
169 void OnLazyBackgroundPageIdle(const std::string& extension_id, 181 void OnLazyBackgroundPageIdle(const std::string& extension_id,
170 int sequence_id); 182 int sequence_id);
171 void OnLazyBackgroundPageActive(const std::string& extension_id); 183 void OnLazyBackgroundPageActive(const std::string& extension_id);
172 void CloseLazyBackgroundPageNow(const std::string& extension_id, 184 void CloseLazyBackgroundPageNow(const std::string& extension_id,
173 int sequence_id); 185 int sequence_id);
174 186
175 // Potentially registers a RenderViewHost, if it is associated with an 187 // Potentially registers a RenderViewHost, if it is associated with an
176 // extension. Does nothing if this is not an extension renderer. 188 // extension. Does nothing if this is not an extension renderer.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 base::Callback<void(content::DevToolsAgentHost*, bool)> devtools_callback_; 224 base::Callback<void(content::DevToolsAgentHost*, bool)> devtools_callback_;
213 225
214 base::WeakPtrFactory<ProcessManager> weak_ptr_factory_; 226 base::WeakPtrFactory<ProcessManager> weak_ptr_factory_;
215 227
216 DISALLOW_COPY_AND_ASSIGN(ProcessManager); 228 DISALLOW_COPY_AND_ASSIGN(ProcessManager);
217 }; 229 };
218 230
219 } // namespace extensions 231 } // namespace extensions
220 232
221 #endif // EXTENSIONS_BROWSER_PROCESS_MANAGER_H_ 233 #endif // EXTENSIONS_BROWSER_PROCESS_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698