1e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch// found in the LICENSE file.
4e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
5e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#ifndef EXTENSIONS_BROWSER_EXTENSION_PREFS_OBSERVER_H_
6e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#define EXTENSIONS_BROWSER_EXTENSION_PREFS_OBSERVER_H_
7e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
8e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#include <string>
9e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
10e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#include "base/time/time.h"
11e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
12e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdochnamespace extensions {
13e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
14e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdochclass ExtensionPrefs;
15e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
16e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdochclass ExtensionPrefsObserver {
17e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch public:
18e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  // Called when the reasons for an extension being disabled have changed.
19e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual void OnExtensionDisableReasonsChanged(const std::string& extension_id,
20e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                                int disabled_reasons) {}
21e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
22e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  // Called when an extension is registered with ExtensionPrefs.
23e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual void OnExtensionRegistered(const std::string& extension_id,
24e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                     const base::Time& install_time,
25e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                     bool is_enabled) {}
26e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
27e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  // Called when an extension's prefs have been loaded.
28e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual void OnExtensionPrefsLoaded(const std::string& extension_id,
29e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                      const ExtensionPrefs* prefs) {}
30e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
31e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  // Called when an extension's prefs are deleted.
32e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual void OnExtensionPrefsDeleted(const std::string& extension_id) {}
33e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
34e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  // Called when an extension's enabled state pref is changed.
35e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  virtual void OnExtensionStateChanged(const std::string& extension_id,
36e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                       bool state) {}
37e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch};
38e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
39e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch}  // namespace extensions
40e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
41e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#endif  // EXTENSIONS_BROWSER_EXTENSION_PREFS_OBSERVER_H_
42