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

Side by Side Diff: chrome/browser/chromeos/tab_closeable_state_watcher.cc

Issue 8342048: Make NotificationService an interface in the content namespace, and switch callers to use it. Mov... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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 | 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 #include "chrome/browser/chromeos/tab_closeable_state_watcher.h" 5 #include "chrome/browser/chromeos/tab_closeable_state_watcher.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/browser_shutdown.h" 8 #include "chrome/browser/browser_shutdown.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/tabs/tab_strip_model.h" 10 #include "chrome/browser/tabs/tab_strip_model.h"
11 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 11 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
12 #include "chrome/common/chrome_notification_types.h" 12 #include "chrome/common/chrome_notification_types.h"
13 #include "chrome/common/chrome_switches.h" 13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/url_constants.h" 14 #include "chrome/common/url_constants.h"
15 #include "content/browser/tab_contents/tab_contents.h" 15 #include "content/browser/tab_contents/tab_contents.h"
16 #include "content/browser/tab_contents/tab_contents_view.h" 16 #include "content/browser/tab_contents/tab_contents_view.h"
17 #include "content/common/notification_service.h" 17 #include "content/public/browser/notification_service.h"
18 18
19 namespace chromeos { 19 namespace chromeos {
20 20
21 //////////////////////////////////////////////////////////////////////////////// 21 ////////////////////////////////////////////////////////////////////////////////
22 // TabCloseableStateWatcher::TabStripWatcher, public: 22 // TabCloseableStateWatcher::TabStripWatcher, public:
23 23
24 TabCloseableStateWatcher::TabStripWatcher::TabStripWatcher( 24 TabCloseableStateWatcher::TabStripWatcher::TabStripWatcher(
25 TabCloseableStateWatcher* main_watcher, const Browser* browser) 25 TabCloseableStateWatcher* main_watcher, const Browser* browser)
26 : main_watcher_(main_watcher), 26 : main_watcher_(main_watcher),
27 browser_(browser) { 27 browser_(browser) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 TabCloseableStateWatcher::TabCloseableStateWatcher() 66 TabCloseableStateWatcher::TabCloseableStateWatcher()
67 : can_close_tab_(true), 67 : can_close_tab_(true),
68 signing_off_(false), 68 signing_off_(false),
69 guest_session_( 69 guest_session_(
70 CommandLine::ForCurrentProcess()->HasSwitch( 70 CommandLine::ForCurrentProcess()->HasSwitch(
71 switches::kGuestSession)), 71 switches::kGuestSession)),
72 waiting_for_browser_(false) { 72 waiting_for_browser_(false) {
73 BrowserList::AddObserver(this); 73 BrowserList::AddObserver(this);
74 notification_registrar_.Add(this, content::NOTIFICATION_APP_EXITING, 74 notification_registrar_.Add(this, content::NOTIFICATION_APP_EXITING,
75 NotificationService::AllSources()); 75 content::NotificationService::AllSources());
76 } 76 }
77 77
78 TabCloseableStateWatcher::~TabCloseableStateWatcher() { 78 TabCloseableStateWatcher::~TabCloseableStateWatcher() {
79 BrowserList::RemoveObserver(this); 79 BrowserList::RemoveObserver(this);
80 if (!browser_shutdown::ShuttingDownWithoutClosingBrowsers()) 80 if (!browser_shutdown::ShuttingDownWithoutClosingBrowsers())
81 DCHECK(tabstrip_watchers_.empty()); 81 DCHECK(tabstrip_watchers_.empty());
82 } 82 }
83 83
84 bool TabCloseableStateWatcher::CanCloseTab(const Browser* browser) const { 84 bool TabCloseableStateWatcher::CanCloseTab(const Browser* browser) const {
85 return browser->is_type_tabbed() ? 85 return browser->is_type_tabbed() ?
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 SetCloseableState(new_can_close); 254 SetCloseableState(new_can_close);
255 } 255 }
256 256
257 void TabCloseableStateWatcher::SetCloseableState(bool closeable) { 257 void TabCloseableStateWatcher::SetCloseableState(bool closeable) {
258 if (can_close_tab_ == closeable) // No change in state. 258 if (can_close_tab_ == closeable) // No change in state.
259 return; 259 return;
260 260
261 can_close_tab_ = closeable; 261 can_close_tab_ = closeable;
262 262
263 // Notify of change in tab closeable state. 263 // Notify of change in tab closeable state.
264 NotificationService::current()->Notify( 264 content::NotificationService::current()->Notify(
265 chrome::NOTIFICATION_TAB_CLOSEABLE_STATE_CHANGED, 265 chrome::NOTIFICATION_TAB_CLOSEABLE_STATE_CHANGED,
266 NotificationService::AllSources(), 266 content::NotificationService::AllSources(),
267 content::Details<bool>(&can_close_tab_)); 267 content::Details<bool>(&can_close_tab_));
268 } 268 }
269 269
270 bool TabCloseableStateWatcher::CanCloseBrowserImpl( 270 bool TabCloseableStateWatcher::CanCloseBrowserImpl(
271 const Browser* browser, 271 const Browser* browser,
272 BrowserActionType* action_type) { 272 BrowserActionType* action_type) {
273 *action_type = NONE; 273 *action_type = NONE;
274 274
275 // If we're waiting for a new browser allow the close. 275 // If we're waiting for a new browser allow the close.
276 if (waiting_for_browser_) 276 if (waiting_for_browser_)
(...skipping 25 matching lines...) Expand all
302 if (!can_close_tab_) 302 if (!can_close_tab_)
303 return false; 303 return false;
304 304
305 // Otherwise, close existing tabs, and deny closing of browser. 305 // Otherwise, close existing tabs, and deny closing of browser.
306 // TabClosingAt will open NTP when the last tab is being closed. 306 // TabClosingAt will open NTP when the last tab is being closed.
307 *action_type = OPEN_NTP; 307 *action_type = OPEN_NTP;
308 return false; 308 return false;
309 } 309 }
310 310
311 } // namespace chromeos 311 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698