| Index: chrome/common/worker_thread_ticker.cc | 
| diff --git a/chrome/common/worker_thread_ticker.cc b/chrome/common/worker_thread_ticker.cc | 
| deleted file mode 100644 | 
| index 8b78d9798387834db9adb976fd681804a6ec14d5..0000000000000000000000000000000000000000 | 
| --- a/chrome/common/worker_thread_ticker.cc | 
| +++ /dev/null | 
| @@ -1,97 +0,0 @@ | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#include "chrome/common/worker_thread_ticker.h" | 
| - | 
| -#include <algorithm> | 
| - | 
| -#include "base/bind.h" | 
| -#include "base/bind_helpers.h" | 
| -#include "base/location.h" | 
| -#include "base/logging.h" | 
| -#include "base/single_thread_task_runner.h" | 
| -#include "base/threading/thread.h" | 
| - | 
| -WorkerThreadTicker::WorkerThreadTicker(int tick_interval) | 
| -    : timer_thread_("worker_thread_ticker"), | 
| -      is_running_(false), | 
| -      tick_interval_(base::TimeDelta::FromMilliseconds(tick_interval)) { | 
| -} | 
| - | 
| -WorkerThreadTicker::~WorkerThreadTicker() { | 
| -  Stop(); | 
| -} | 
| - | 
| -bool WorkerThreadTicker::RegisterTickHandler(Callback *tick_handler) { | 
| -  DCHECK(tick_handler); | 
| -  base::AutoLock lock(lock_); | 
| -  // You cannot change the list of handlers when the timer is running. | 
| -  // You need to call Stop first. | 
| -  if (IsRunning()) | 
| -    return false; | 
| -  tick_handler_list_.push_back(tick_handler); | 
| -  return true; | 
| -} | 
| - | 
| -bool WorkerThreadTicker::UnregisterTickHandler(Callback *tick_handler) { | 
| -  DCHECK(tick_handler); | 
| -  base::AutoLock lock(lock_); | 
| -  // You cannot change the list of handlers when the timer is running. | 
| -  // You need to call Stop first. | 
| -  if (IsRunning()) { | 
| -    return false; | 
| -  } | 
| -  TickHandlerListType::iterator index = std::remove(tick_handler_list_.begin(), | 
| -                                                    tick_handler_list_.end(), | 
| -                                                    tick_handler); | 
| -  if (index == tick_handler_list_.end()) { | 
| -    return false; | 
| -  } | 
| -  tick_handler_list_.erase(index, tick_handler_list_.end()); | 
| -  return true; | 
| -} | 
| - | 
| -bool WorkerThreadTicker::Start() { | 
| -  // Do this in a lock because we don't want 2 threads to | 
| -  // call Start at the same time | 
| -  base::AutoLock lock(lock_); | 
| -  if (IsRunning()) | 
| -    return false; | 
| -  if (!timer_thread_.Start()) | 
| -    return false; | 
| -  is_running_ = true; | 
| -  ScheduleTimerTask(); | 
| -  return true; | 
| -} | 
| - | 
| -bool WorkerThreadTicker::Stop() { | 
| -  // Do this in a lock because we don't want 2 threads to | 
| -  // call Stop at the same time | 
| -  base::AutoLock lock(lock_); | 
| -  if (!IsRunning()) | 
| -    return false; | 
| -  is_running_ = false; | 
| -  timer_thread_.Stop(); | 
| -  return true; | 
| -} | 
| - | 
| -void WorkerThreadTicker::ScheduleTimerTask() { | 
| -  timer_thread_.task_runner()->PostDelayedTask( | 
| -      FROM_HERE, | 
| -      base::Bind(&WorkerThreadTicker::TimerTask, base::Unretained(this)), | 
| -      tick_interval_); | 
| -} | 
| - | 
| -void WorkerThreadTicker::TimerTask() { | 
| -  // When the ticker is running, the handler list CANNOT be modified. | 
| -  // So we can do the enumeration safely without a lock | 
| -  const TickHandlerListType& handlers = tick_handler_list_; | 
| -  for (TickHandlerListType::const_iterator i = handlers.begin(); | 
| -       i != handlers.end(); ++i) { | 
| -    (*i)->OnTick(); | 
| -  } | 
| - | 
| -  ScheduleTimerTask(); | 
| -} | 
| - | 
|  |