automation_browser_tracker.h revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_AUTOMATION_AUTOMATION_BROWSER_TRACKER_H__
6#define CHROME_BROWSER_AUTOMATION_AUTOMATION_BROWSER_TRACKER_H__
7
8#include "chrome/browser/automation/automation_resource_tracker.h"
9#include "chrome/browser/browser.h"
10#include "chrome/common/notification_source.h"
11
12// Tracks Browser objects.
13class AutomationBrowserTracker : public AutomationResourceTracker<Browser*> {
14 public:
15  explicit AutomationBrowserTracker(IPC::Message::Sender* automation)
16      : AutomationResourceTracker<Browser*>(automation) { }
17
18  virtual ~AutomationBrowserTracker() {
19  }
20
21  virtual void AddObserver(Browser* resource) {
22    registrar_.Add(this, NotificationType::BROWSER_CLOSED,
23                   Source<Browser>(resource));
24  }
25
26  virtual void RemoveObserver(Browser* resource) {
27    registrar_.Remove(this, NotificationType::BROWSER_CLOSED,
28                      Source<Browser>(resource));
29  }
30};
31
32#endif  // CHROME_BROWSER_AUTOMATION_AUTOMATION_BROWSER_TRACKER_H__
33