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

Side by Side Diff: chrome/browser/ui/browser_list.h

Issue 8590003: chrome: Remove 11 exit time destructors and 4 static initializers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: no gyp changes :-( Created 9 years, 1 month 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_UI_BROWSER_LIST_H_ 5 #ifndef CHROME_BROWSER_UI_BROWSER_LIST_H_
6 #define CHROME_BROWSER_UI_BROWSER_LIST_H_ 6 #define CHROME_BROWSER_UI_BROWSER_LIST_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 static void StartKeepAlive(); 163 static void StartKeepAlive();
164 164
165 // Stops keeping the application alive after the last Browser is closed. 165 // Stops keeping the application alive after the last Browser is closed.
166 // Should match a previous call to StartKeepAlive(). 166 // Should match a previous call to StartKeepAlive().
167 static void EndKeepAlive(); 167 static void EndKeepAlive();
168 168
169 // Returns true if application will continue running after the last Browser 169 // Returns true if application will continue running after the last Browser
170 // closes. 170 // closes.
171 static bool WillKeepAlive(); 171 static bool WillKeepAlive();
172 172
173 // Browsers are added to |browsers_| before they have constructed windows, 173 // Browsers are added to the list before they have constructed windows,
174 // so the |window()| member function may return NULL. 174 // so the |window()| member function may return NULL.
175 static const_iterator begin() { return browsers_.begin(); } 175 static const_iterator begin();
176 static const_iterator end() { return browsers_.end(); } 176 static const_iterator end();
177 177
178 static bool empty() { return browsers_.empty(); } 178 static bool empty();
179 static size_t size() { return browsers_.size(); } 179 static size_t size();
180 180
181 // Returns iterated access to list of open browsers ordered by when 181 // Returns iterated access to list of open browsers ordered by when
182 // they were last active. The underlying data structure is a vector 182 // they were last active. The underlying data structure is a vector
183 // and we push_back on recent access so a reverse iterator gives the 183 // and we push_back on recent access so a reverse iterator gives the
184 // latest accessed browser first. 184 // latest accessed browser first.
185 static const_reverse_iterator begin_last_active() { 185 static const_reverse_iterator begin_last_active();
186 return last_active_browsers_.rbegin(); 186 static const_reverse_iterator end_last_active();
187 }
188
189 static const_reverse_iterator end_last_active() {
190 return last_active_browsers_.rend();
191 }
192 187
193 // Return the number of browsers with the following profile which are 188 // Return the number of browsers with the following profile which are
194 // currently open. 189 // currently open.
195 static size_t GetBrowserCount(Profile* profile); 190 static size_t GetBrowserCount(Profile* profile);
196 191
197 // Return the number of browsers with the following profile and type which are 192 // Return the number of browsers with the following profile and type which are
198 // currently open. 193 // currently open.
199 static size_t GetBrowserCountForType(Profile* profile, bool match_tabbed); 194 static size_t GetBrowserCountForType(Profile* profile, bool match_tabbed);
200 195
201 // Returns true if at least one incognito session is active. 196 // Returns true if at least one incognito session is active.
202 static bool IsOffTheRecordSessionActive(); 197 static bool IsOffTheRecordSessionActive();
203 198
204 // Returns true if at least one incognito session is active for |profile|. 199 // Returns true if at least one incognito session is active for |profile|.
205 static bool IsOffTheRecordSessionActiveForProfile(Profile* profile); 200 static bool IsOffTheRecordSessionActiveForProfile(Profile* profile);
206 201
207 // Send out notifications. 202 // Send out notifications.
208 // For ChromeOS, also request session manager to end the session. 203 // For ChromeOS, also request session manager to end the session.
209 static void NotifyAndTerminate(bool fast_path); 204 static void NotifyAndTerminate(bool fast_path);
210 205
211 // Called once there are no more browsers open and the application is exiting. 206 // Called once there are no more browsers open and the application is exiting.
212 static void AllBrowsersClosedAndAppExiting(); 207 static void AllBrowsersClosedAndAppExiting();
213 208
214 private: 209 private:
215 // Helper method to remove a browser instance from a list of browsers 210 // Helper method to remove a browser instance from a list of browsers
216 static void RemoveBrowserFrom(Browser* browser, BrowserVector* browser_list); 211 static void RemoveBrowserFrom(Browser* browser, BrowserVector* browser_list);
217 static void MarkAsCleanShutdown(); 212 static void MarkAsCleanShutdown();
218 static void AttemptExitInternal(); 213 static void AttemptExitInternal();
219 214
220 static BrowserVector browsers_;
221 static BrowserVector last_active_browsers_;
222 static ObserverList<Observer> observers_;
223
224 // Counter of calls to StartKeepAlive(). If non-zero, the application will 215 // Counter of calls to StartKeepAlive(). If non-zero, the application will
225 // continue running after the last browser has exited. 216 // continue running after the last browser has exited.
226 static int keep_alive_count_; 217 static int keep_alive_count_;
227 }; 218 };
228 219
229 class TabContentsWrapper; 220 class TabContentsWrapper;
230 221
231 // Iterates through all web view hosts in all browser windows. Because the 222 // Iterates through all web view hosts in all browser windows. Because the
232 // renderers act asynchronously, getting a host through this interface does 223 // renderers act asynchronously, getting a host through this interface does
233 // not guarantee that the renderer is ready to go. Doing anything to affect 224 // not guarantee that the renderer is ready to go. Doing anything to affect
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 // iterator over the TabContentsWrappers doing background printing. 282 // iterator over the TabContentsWrappers doing background printing.
292 std::set<TabContentsWrapper*>::const_iterator bg_printing_iterator_; 283 std::set<TabContentsWrapper*>::const_iterator bg_printing_iterator_;
293 284
294 // Current TabContents, or NULL if we're at the end of the list. This can 285 // Current TabContents, or NULL if we're at the end of the list. This can
295 // be extracted given the browser iterator and index, but it's nice to cache 286 // be extracted given the browser iterator and index, but it's nice to cache
296 // this since the caller may access the current host many times. 287 // this since the caller may access the current host many times.
297 TabContentsWrapper* cur_; 288 TabContentsWrapper* cur_;
298 }; 289 };
299 290
300 #endif // CHROME_BROWSER_UI_BROWSER_LIST_H_ 291 #endif // CHROME_BROWSER_UI_BROWSER_LIST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698