tab_closeable_state_watcher.cc revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/tab_closeable_state_watcher.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/command_line.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/common/chrome_switches.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_CHROMEOS) 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/tab_closeable_state_watcher.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // defined(OS_CHROMEOS) 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch//////////////////////////////////////////////////////////////////////////////// 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// TabCloseableStateWatcher, static: 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch::TabCloseableStateWatcher* ::TabCloseableStateWatcher::Create() { 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ::TabCloseableStateWatcher* watcher = NULL; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_CHROMEOS) 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // We only watch closeable state of tab on chromeos, and only when it's not 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // disabled (tests will have the disable switch). 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (!CommandLine::ForCurrentProcess()->HasSwitch( 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch switches::kDisableTabCloseableStateWatcher)) 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch watcher = new chromeos::TabCloseableStateWatcher(); 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // OS_CHROMEOS 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (!watcher) 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch watcher = new ::TabCloseableStateWatcher(); 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return watcher; 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenbool TabCloseableStateWatcher::CanCloseTab(const Browser* browser) const { 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return true; 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenbool TabCloseableStateWatcher::CanCloseBrowser(Browser* browser) { 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return true; 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 38