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