diff options
author | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 16:26:09 +0000 |
---|---|---|
committer | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 16:26:09 +0000 |
commit | ef9bba156249c4c90d2477d9d0f61b2297538c55 (patch) | |
tree | e9dffaf7221803e19136b955062c3920b9916eca /chrome/browser/extensions/extension_pref_value_map.h | |
parent | efdb7e7199b5f4ecae006c437ea2edc6b1c2e758 (diff) | |
download | chromium_src-ef9bba156249c4c90d2477d9d0f61b2297538c55.zip chromium_src-ef9bba156249c4c90d2477d9d0f61b2297538c55.tar.gz chromium_src-ef9bba156249c4c90d2477d9d0f61b2297538c55.tar.bz2 |
Make ExtensionPrefValueMap a ProfileKeyedService.
BUG=104095
TEST=no
Review URL: http://codereview.chromium.org/9764006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131136 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_pref_value_map.h')
-rw-r--r-- | chrome/browser/extensions/extension_pref_value_map.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/chrome/browser/extensions/extension_pref_value_map.h b/chrome/browser/extensions/extension_pref_value_map.h index 54538e4..2a168ad 100644 --- a/chrome/browser/extensions/extension_pref_value_map.h +++ b/chrome/browser/extensions/extension_pref_value_map.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. @@ -10,8 +10,11 @@ #include <set> #include <string> +#include "base/observer_list.h" #include "base/time.h" -#include "chrome/browser/prefs/value_map_pref_store.h" +#include "base/values.h" +#include "chrome/browser/prefs/pref_value_map.h" +#include "chrome/browser/profiles/profile_keyed_service.h" #include "chrome/browser/extensions/extension_prefs_scope.h" // Non-persistent data container that is shared by ExtensionPrefStores. All @@ -43,7 +46,7 @@ // .reg = regular value // .inc = incognito value // Extension B has higher precedence than A. -class ExtensionPrefValueMap { +class ExtensionPrefValueMap : public ProfileKeyedService { public: // Observer interface for monitoring ExtensionPrefValueMap. class Observer { @@ -64,6 +67,9 @@ class ExtensionPrefValueMap { ExtensionPrefValueMap(); virtual ~ExtensionPrefValueMap(); + // ProfileKeyedService implementation. + virtual void Shutdown() OVERRIDE; + // Set an extension preference |value| for |key| of extension |ext_id|. // Takes ownership of |value|. // Note that regular extension pref values need to be reported to @@ -163,6 +169,11 @@ class ExtensionPrefValueMap { // are stored in ExtensionPrefStores. ExtensionEntryMap entries_; + // In normal Profile shutdown, Shutdown() notifies observers that we are + // being destroyed. In tests, it isn't called, so the notification must + // be done in the destructor. This bit tracks whether it has been done yet. + bool destroyed_; + ObserverList<Observer, true> observers_; DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMap); |