1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file.
4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_GLUE_EXTENSIONS_ACTIVITY_MONITOR_H_
6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#define CHROME_BROWSER_SYNC_GLUE_EXTENSIONS_ACTIVITY_MONITOR_H_
7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/compiler_specific.h"
9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/memory/ref_counted.h"
10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "content/public/browser/notification_observer.h"
11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "content/public/browser/notification_registrar.h"
12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace syncer {
14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class ExtensionsActivity;
15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace browser_sync {
18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Observe and record usage of extension bookmark API.
20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class ExtensionsActivityMonitor : public content::NotificationObserver {
21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public:
22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  ExtensionsActivityMonitor();
23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual ~ExtensionsActivityMonitor();
24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  // content::NotificationObserver implementation.
26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual void Observe(int type,
27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                       const content::NotificationSource& source,
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                       const content::NotificationDetails& details) OVERRIDE;
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  const scoped_refptr<syncer::ExtensionsActivity>& GetExtensionsActivity();
31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private:
33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  scoped_refptr<syncer::ExtensionsActivity> extensions_activity_;
34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  // Used only on UI loop.
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  content::NotificationRegistrar registrar_;
37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)};
38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}  // namespace browser_sync
40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif  // CHROME_BROWSER_SYNC_GLUE_EXTENSIONS_ACTIVITY_MONITOR_H_
42