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

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

Issue 671653002: Standardize usage of virtual/override/final in chrome/browser/ui/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months 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
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 CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // the tabs in the background. 49 // the tabs in the background.
50 // 4. The browser gets notified that the tab strip is empty and calls 50 // 4. The browser gets notified that the tab strip is empty and calls
51 // CloseFrame where the empty tab strip causes the window to hide. 51 // CloseFrame where the empty tab strip causes the window to hide.
52 // Once the detached tabs finish, the browser calls CloseFrame again and 52 // Once the detached tabs finish, the browser calls CloseFrame again and
53 // the window is finally closed. 53 // the window is finally closed.
54 // 54 //
55 class FastUnloadController : public content::NotificationObserver, 55 class FastUnloadController : public content::NotificationObserver,
56 public TabStripModelObserver { 56 public TabStripModelObserver {
57 public: 57 public:
58 explicit FastUnloadController(Browser* browser); 58 explicit FastUnloadController(Browser* browser);
59 virtual ~FastUnloadController(); 59 ~FastUnloadController() override;
60 60
61 // Returns true if |contents| can be cleanly closed. When |browser_| is being 61 // Returns true if |contents| can be cleanly closed. When |browser_| is being
62 // closed, this function will return false to indicate |contents| should not 62 // closed, this function will return false to indicate |contents| should not
63 // be cleanly closed, since the fast shutdown path will just kill its 63 // be cleanly closed, since the fast shutdown path will just kill its
64 // renderer. 64 // renderer.
65 bool CanCloseContents(content::WebContents* contents); 65 bool CanCloseContents(content::WebContents* contents);
66 66
67 // Returns true if we need to run unload events for the |contents|. 67 // Returns true if we need to run unload events for the |contents|.
68 static bool ShouldRunUnloadEventsHelper(content::WebContents* contents); 68 static bool ShouldRunUnloadEventsHelper(content::WebContents* contents);
69 69
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 108
109 // Returns true if all tabs' beforeunload/unload events have fired. 109 // Returns true if all tabs' beforeunload/unload events have fired.
110 bool HasCompletedUnloadProcessing() const; 110 bool HasCompletedUnloadProcessing() const;
111 111
112 // Clears all the state associated with processing tabs' beforeunload/unload 112 // Clears all the state associated with processing tabs' beforeunload/unload
113 // events since the user cancelled closing the window. 113 // events since the user cancelled closing the window.
114 void CancelWindowClose(); 114 void CancelWindowClose();
115 115
116 private: 116 private:
117 // Overridden from content::NotificationObserver: 117 // Overridden from content::NotificationObserver:
118 virtual void Observe(int type, 118 void Observe(int type,
119 const content::NotificationSource& source, 119 const content::NotificationSource& source,
120 const content::NotificationDetails& details) override; 120 const content::NotificationDetails& details) override;
121 121
122 // Overridden from TabStripModelObserver: 122 // Overridden from TabStripModelObserver:
123 virtual void TabInsertedAt(content::WebContents* contents, 123 void TabInsertedAt(content::WebContents* contents,
124 int index, 124 int index,
125 bool foreground) override; 125 bool foreground) override;
126 virtual void TabDetachedAt(content::WebContents* contents, 126 void TabDetachedAt(content::WebContents* contents, int index) override;
127 int index) override; 127 void TabReplacedAt(TabStripModel* tab_strip_model,
128 virtual void TabReplacedAt(TabStripModel* tab_strip_model, 128 content::WebContents* old_contents,
129 content::WebContents* old_contents, 129 content::WebContents* new_contents,
130 content::WebContents* new_contents, 130 int index) override;
131 int index) override; 131 void TabStripEmpty() override;
132 virtual void TabStripEmpty() override;
133 132
134 void TabAttachedImpl(content::WebContents* contents); 133 void TabAttachedImpl(content::WebContents* contents);
135 void TabDetachedImpl(content::WebContents* contents); 134 void TabDetachedImpl(content::WebContents* contents);
136 135
137 // Detach |contents| and wait for it to finish closing. 136 // Detach |contents| and wait for it to finish closing.
138 // The close must be inititiated outside of this method. 137 // The close must be inititiated outside of this method.
139 // Returns true if it succeeds. 138 // Returns true if it succeeds.
140 bool DetachWebContents(content::WebContents* contents); 139 bool DetachWebContents(content::WebContents* contents);
141 140
142 // Processes the next tab that needs it's beforeunload/unload event fired. 141 // Processes the next tab that needs it's beforeunload/unload event fired.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 scoped_ptr<DetachedWebContentsDelegate> detached_delegate_; 196 scoped_ptr<DetachedWebContentsDelegate> detached_delegate_;
198 197
199 base::WeakPtrFactory<FastUnloadController> weak_factory_; 198 base::WeakPtrFactory<FastUnloadController> weak_factory_;
200 199
201 DISALLOW_COPY_AND_ASSIGN(FastUnloadController); 200 DISALLOW_COPY_AND_ASSIGN(FastUnloadController);
202 }; 201 };
203 202
204 } // namespace chrome 203 } // namespace chrome
205 204
206 #endif // CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_ 205 #endif // CHROME_BROWSER_UI_FAST_UNLOAD_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698