summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/extension_settings_backend.cc96
-rw-r--r--chrome/browser/extensions/extension_settings_backend.h32
-rw-r--r--chrome/browser/extensions/extension_settings_leveldb_storage_unittest.cc7
-rw-r--r--chrome/browser/extensions/extension_settings_noop_storage.cc45
-rw-r--r--chrome/browser/extensions/extension_settings_quota_unittest.cc4
-rw-r--r--chrome/browser/extensions/extension_settings_storage.h7
-rw-r--r--chrome/browser/extensions/extension_settings_storage_cache.cc6
-rw-r--r--chrome/browser/extensions/extension_settings_storage_cache_unittest.cc (renamed from chrome/browser/extensions/extension_settings_cached_noop_storage_unittest.cc)11
-rw-r--r--chrome/browser/extensions/extension_settings_storage_unittest.cc12
-rw-r--r--chrome/browser/extensions/extension_settings_storage_unittest.h4
-rw-r--r--chrome/browser/extensions/extension_settings_sync_unittest.cc1
-rw-r--r--chrome/browser/extensions/in_memory_extension_settings_storage.cc69
-rw-r--r--chrome/browser/extensions/in_memory_extension_settings_storage.h (renamed from chrome/browser/extensions/extension_settings_noop_storage.h)18
-rw-r--r--chrome/browser/extensions/in_memory_extension_settings_storage_unittest.cc (renamed from chrome/browser/extensions/extension_settings_cached_leveldb_storage_unittest.cc)9
-rw-r--r--chrome/chrome_browser.gypi4
-rw-r--r--chrome/chrome_tests.gypi6
16 files changed, 128 insertions, 203 deletions
diff --git a/chrome/browser/extensions/extension_settings_backend.cc b/chrome/browser/extensions/extension_settings_backend.cc
index 843e328..7dacd2a 100644
--- a/chrome/browser/extensions/extension_settings_backend.cc
+++ b/chrome/browser/extensions/extension_settings_backend.cc
@@ -12,9 +12,9 @@
#include "base/memory/linked_ptr.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/extension_settings_leveldb_storage.h"
-#include "chrome/browser/extensions/extension_settings_noop_storage.h"
#include "chrome/browser/extensions/extension_settings_storage_cache.h"
#include "chrome/browser/extensions/extension_settings_sync_util.h"
+#include "chrome/browser/extensions/in_memory_extension_settings_storage.h"
#include "chrome/common/extensions/extension.h"
#include "content/browser/browser_thread.h"
#include "third_party/leveldatabase/src/include/leveldb/iterator.h"
@@ -41,89 +41,35 @@ SyncableExtensionSettingsStorage*
ExtensionSettingsBackend::GetOrCreateStorageWithSyncData(
const std::string& extension_id, const DictionaryValue& sync_data) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- SyncableExtensionSettingsStorage* storage = GetOrCreateAndInitStorage(
- ExtensionSettingsStorage::LEVELDB,
- true,
- extension_id,
- sync_data);
- if (!storage) {
- // Fall back to an in-memory storage area (cached NOOP).
- // It's ok for these to be synced, it just means that on next starting up
- // extensions will see the "old" settings, then overwritten (and notified)
- // when the sync changes come through.
- storage = GetOrCreateAndInitStorage(
- ExtensionSettingsStorage::NOOP,
- true,
- extension_id,
- sync_data);
- DCHECK(storage);
- }
- return storage;
-}
-
-ExtensionSettingsStorage* ExtensionSettingsBackend::GetStorageForTesting(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id) const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DictionaryValue empty;
- ExtensionSettingsStorage* storage =
- GetOrCreateAndInitStorage(type, cached, extension_id, empty);
- DCHECK(storage);
- return storage;
-}
-SyncableExtensionSettingsStorage*
-ExtensionSettingsBackend::GetOrCreateAndInitStorage(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id,
- const DictionaryValue& initial_sync_data) const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- StorageObjMap::iterator existing = storage_objs_.find(extension_id);
- if (existing != storage_objs_.end()) {
- return existing->second.get();
+ linked_ptr<SyncableExtensionSettingsStorage> syncable_storage =
+ storage_objs_[extension_id];
+ if (syncable_storage.get()) {
+ return syncable_storage.get();
}
- return CreateAndInitStorage(type, cached, extension_id, initial_sync_data);
-}
-SyncableExtensionSettingsStorage*
-ExtensionSettingsBackend::CreateAndInitStorage(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id,
- const DictionaryValue& initial_sync_data) const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DCHECK_EQ(0u, storage_objs_.count(extension_id));
- ExtensionSettingsStorage* storage = NULL;
- switch (type) {
- case ExtensionSettingsStorage::NOOP:
- storage = new ExtensionSettingsNoopStorage();
- break;
- case ExtensionSettingsStorage::LEVELDB:
- storage = ExtensionSettingsLeveldbStorage::Create(
- base_path_, extension_id);
- break;
- default:
- NOTREACHED();
- }
- if (!storage) {
- return NULL;
- }
- if (cached) {
+ ExtensionSettingsStorage* storage =
+ ExtensionSettingsLeveldbStorage::Create(base_path_, extension_id);
+ if (storage) {
storage = new ExtensionSettingsStorageCache(storage);
+ } else {
+ // Failed to create a leveldb storage area, create an in-memory one.
+ // It's ok for these to be synced, it just means that on next starting up
+ // extensions will see the "old" settings, then overwritten (and notified)
+ // when the sync changes come through.
+ storage = new InMemoryExtensionSettingsStorage();
}
- SyncableExtensionSettingsStorage* synced_storage =
- new SyncableExtensionSettingsStorage(extension_id, storage);
+ syncable_storage =
+ linked_ptr<SyncableExtensionSettingsStorage>(
+ new SyncableExtensionSettingsStorage(extension_id, storage));
if (sync_processor_) {
// TODO(kalman): do something if StartSyncing fails.
- ignore_result(
- synced_storage->StartSyncing(initial_sync_data, sync_processor_));
+ ignore_result(syncable_storage->StartSyncing(sync_data, sync_processor_));
}
- storage_objs_[extension_id] =
- linked_ptr<SyncableExtensionSettingsStorage>(synced_storage);
- return synced_storage;
+
+ storage_objs_[extension_id] = syncable_storage;
+ return syncable_storage.get();
}
std::set<std::string> ExtensionSettingsBackend::GetKnownExtensionIDs() const {
diff --git a/chrome/browser/extensions/extension_settings_backend.h b/chrome/browser/extensions/extension_settings_backend.h
index 4b11fadf..43b90a3 100644
--- a/chrome/browser/extensions/extension_settings_backend.h
+++ b/chrome/browser/extensions/extension_settings_backend.h
@@ -28,21 +28,12 @@ class ExtensionSettingsBackend : public SyncableService {
// Gets a weak reference to the storage area for a given extension.
// Must be run on the FILE thread.
//
- // By default this will be of a cached LEVELDB storage, but on failure to
- // create a leveldb instance will fall back to cached NOOP storage.
+ // By default this will be an ExtensionSettingsLeveldbStorage, but on
+ // failure to create a leveldb instance will fall back to
+ // InMemoryExtensionSettingsStorage.
ExtensionSettingsStorage* GetStorage(
const std::string& extension_id) const;
- // Gets a weak reference to the storage area for a given extension, with a
- // specific type and whether it should be wrapped in a cache.
- //
- // Use this for testing; if the given type fails to be created (e.g. if
- // leveldb creation fails) then a DCHECK will fail.
- ExtensionSettingsStorage* GetStorageForTesting(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id) const;
-
// SyncableService implementation.
virtual SyncDataList GetAllSyncData(syncable::ModelType type) const OVERRIDE;
virtual SyncError MergeDataAndStartSyncing(
@@ -63,23 +54,6 @@ class ExtensionSettingsBackend : public SyncableService {
SyncableExtensionSettingsStorage* GetOrCreateStorageWithSyncData(
const std::string& extension_id, const DictionaryValue& sync_data) const;
- // If a storage area exists in the cache, returns the cached storage area.
- // Otherwise tries to create one using CreateAndInitStorage.
- SyncableExtensionSettingsStorage* GetOrCreateAndInitStorage(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id,
- const DictionaryValue& initial_sync_data) const;
-
- // Creates a storage area of a given type, optionally wrapped in a cache.
- // Returns NULL if creation fails. Otherwise, adds the new storage area to
- // the cache and initializes sync if sync is enabled.
- SyncableExtensionSettingsStorage* CreateAndInitStorage(
- ExtensionSettingsStorage::Type type,
- bool cached,
- const std::string& extension_id,
- const DictionaryValue& initial_sync_data) const;
-
// Gets all extension IDs known to extension settings. This may not be all
// installed extensions.
std::set<std::string> GetKnownExtensionIDs() const;
diff --git a/chrome/browser/extensions/extension_settings_leveldb_storage_unittest.cc b/chrome/browser/extensions/extension_settings_leveldb_storage_unittest.cc
index ff49d13..393a859 100644
--- a/chrome/browser/extensions/extension_settings_leveldb_storage_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_leveldb_storage_unittest.cc
@@ -4,12 +4,13 @@
#include "chrome/browser/extensions/extension_settings_storage_unittest.h"
+#include "chrome/browser/extensions/extension_settings_leveldb_storage.h"
+
namespace {
ExtensionSettingsStorage* Param(
- const ExtensionSettingsBackend& backend, const std::string& extension_id) {
- return backend.GetStorageForTesting(
- ExtensionSettingsStorage::LEVELDB, false, extension_id);
+ const FilePath& file_path, const std::string& extension_id) {
+ return ExtensionSettingsLeveldbStorage::Create(file_path, extension_id);
}
} // namespace
diff --git a/chrome/browser/extensions/extension_settings_noop_storage.cc b/chrome/browser/extensions/extension_settings_noop_storage.cc
deleted file mode 100644
index 3e1199b..0000000
--- a/chrome/browser/extensions/extension_settings_noop_storage.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) 2011 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/browser/extensions/extension_settings_noop_storage.h"
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Get(
- const std::string& key) {
- return Result(new DictionaryValue());
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Get(
- const std::vector<std::string>& keys) {
- return Result(new DictionaryValue());
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Get() {
- return Result(new DictionaryValue());
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Set(
- const std::string& key, const Value& value) {
- DictionaryValue* settings = new DictionaryValue();
- settings->SetWithoutPathExpansion(key, value.DeepCopy());
- return Result(settings);
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Set(
- const DictionaryValue& settings) {
- return Result(settings.DeepCopy());
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Remove(
- const std::string& key) {
- return Result(NULL);
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Remove(
- const std::vector<std::string>& keys) {
- return Result(NULL);
-}
-
-ExtensionSettingsStorage::Result ExtensionSettingsNoopStorage::Clear() {
- return Result(NULL);
-}
diff --git a/chrome/browser/extensions/extension_settings_quota_unittest.cc b/chrome/browser/extensions/extension_settings_quota_unittest.cc
index 49ec32f..213d0ac 100644
--- a/chrome/browser/extensions/extension_settings_quota_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_quota_unittest.cc
@@ -11,7 +11,7 @@
#include "chrome/browser/extensions/extension_settings_backend.h"
#include "chrome/browser/extensions/extension_settings_storage_cache.h"
#include "chrome/browser/extensions/extension_settings_storage_quota_enforcer.h"
-#include "chrome/browser/extensions/extension_settings_noop_storage.h"
+#include "chrome/browser/extensions/in_memory_extension_settings_storage.h"
class ExtensionSettingsQuotaUnittest : public testing::Test {
public:
@@ -21,7 +21,7 @@ class ExtensionSettingsQuotaUnittest : public testing::Test {
byte_value_256_(new ListValue()),
delegate_(
new ExtensionSettingsStorageCache(
- new ExtensionSettingsNoopStorage())) {
+ new InMemoryExtensionSettingsStorage())) {
for (int i = 1; i < 89; ++i) {
byte_value_256_->Append(Value::CreateIntegerValue(i));
}
diff --git a/chrome/browser/extensions/extension_settings_storage.h b/chrome/browser/extensions/extension_settings_storage.h
index 1a5311fe..e1393ca 100644
--- a/chrome/browser/extensions/extension_settings_storage.h
+++ b/chrome/browser/extensions/extension_settings_storage.h
@@ -16,13 +16,6 @@
// destructions.
class ExtensionSettingsStorage {
public:
- // The different types of extension settings storage.
- enum Type {
- NONE,
- NOOP,
- LEVELDB
- };
-
// The result of an operation.
//
// Supports lightweight copying.
diff --git a/chrome/browser/extensions/extension_settings_storage_cache.cc b/chrome/browser/extensions/extension_settings_storage_cache.cc
index 2b5cedab..441cb5b 100644
--- a/chrome/browser/extensions/extension_settings_storage_cache.cc
+++ b/chrome/browser/extensions/extension_settings_storage_cache.cc
@@ -63,12 +63,6 @@ ExtensionSettingsStorage::Result ExtensionSettingsStorageCache::Get() {
}
cache_.MergeDictionary(result.GetSettings());
- // Hack so that the cached settings are used when the delegate is a no-op
- // storage, in which case Get() will always return empty settings.
- if (result.GetSettings()->empty()) {
- return Result(cache_.DeepCopy());
- }
-
return result;
}
diff --git a/chrome/browser/extensions/extension_settings_cached_noop_storage_unittest.cc b/chrome/browser/extensions/extension_settings_storage_cache_unittest.cc
index 71d9671..f14ca79 100644
--- a/chrome/browser/extensions/extension_settings_cached_noop_storage_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_storage_cache_unittest.cc
@@ -4,17 +4,20 @@
#include "chrome/browser/extensions/extension_settings_storage_unittest.h"
+#include "chrome/browser/extensions/extension_settings_storage_cache.h"
+#include "chrome/browser/extensions/in_memory_extension_settings_storage.h"
+
namespace {
ExtensionSettingsStorage* Param(
- const ExtensionSettingsBackend& backend, const std::string& extension_id) {
- return backend.GetStorageForTesting(
- ExtensionSettingsStorage::NOOP, true, extension_id);
+ const FilePath& file_path, const std::string& extension_id) {
+ return new ExtensionSettingsStorageCache(
+ new InMemoryExtensionSettingsStorage());
}
} // namespace
INSTANTIATE_TEST_CASE_P(
- ExtensionSettingsCachedNoopStorage,
+ ExtensionSettingsStorageCache,
ExtensionSettingsStorageTest,
testing::Values(&Param));
diff --git a/chrome/browser/extensions/extension_settings_storage_unittest.cc b/chrome/browser/extensions/extension_settings_storage_unittest.cc
index bd8cf5b..5e4e5a2 100644
--- a/chrome/browser/extensions/extension_settings_storage_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_storage_unittest.cc
@@ -7,7 +7,6 @@
#include "base/json/json_writer.h"
#include "base/file_util.h"
#include "base/values.h"
-#include "chrome/browser/extensions/extension_settings_backend.h"
// Gets the pretty-printed JSON for a value.
static std::string GetJSON(const Value& value) {
@@ -80,19 +79,10 @@ ExtensionSettingsStorageTest::~ExtensionSettingsStorageTest() {}
void ExtensionSettingsStorageTest::SetUp() {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
- // TODO(kalman): Use ExtensionSettingsFrontend here? It would test more code
- // paths.
- backend_.reset(new ExtensionSettingsBackend(temp_dir_.path()));
- storage_ = (GetParam())(*backend_, "fakeExtension");
+ storage_ = (GetParam())(temp_dir_.path(), "fakeExtension");
ASSERT_TRUE(storage_ != NULL);
}
-void ExtensionSettingsStorageTest::TearDown() {
- // Must do this explicitly here so that it's destroyed before the
- // message loops are.
- backend_.reset();
-}
-
TEST_P(ExtensionSettingsStorageTest, GetWhenEmpty) {
ASSERT_PRED_FORMAT2(SettingsEq, empty_dict_.get(), storage_->Get(key1_));
ASSERT_PRED_FORMAT2(SettingsEq,
diff --git a/chrome/browser/extensions/extension_settings_storage_unittest.h b/chrome/browser/extensions/extension_settings_storage_unittest.h
index a0c2610..51877ce 100644
--- a/chrome/browser/extensions/extension_settings_storage_unittest.h
+++ b/chrome/browser/extensions/extension_settings_storage_unittest.h
@@ -18,7 +18,7 @@
// Parameter type for the value-parameterized tests.
typedef ExtensionSettingsStorage* (*ExtensionSettingsStorageTestParam)(
- const ExtensionSettingsBackend& backend, const std::string& extension_id);
+ const FilePath& file_path, const std::string& extension_id);
// Test fixture for ExtensionSettingsStorage tests. Tests are defined in
// extension_settings_storage_unittest.cc with configurations for both cached
@@ -30,7 +30,6 @@ class ExtensionSettingsStorageTest
virtual ~ExtensionSettingsStorageTest();
virtual void SetUp() OVERRIDE;
- virtual void TearDown() OVERRIDE;
protected:
ExtensionSettingsStorage* storage_;
@@ -57,7 +56,6 @@ class ExtensionSettingsStorageTest
private:
ScopedTempDir temp_dir_;
- scoped_ptr<ExtensionSettingsBackend> backend_;
// Need these so that the DCHECKs for running on FILE or UI threads pass.
MessageLoop message_loop_;
diff --git a/chrome/browser/extensions/extension_settings_sync_unittest.cc b/chrome/browser/extensions/extension_settings_sync_unittest.cc
index 1b69d7b..f9b34f9 100644
--- a/chrome/browser/extensions/extension_settings_sync_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_sync_unittest.cc
@@ -13,7 +13,6 @@
#include "base/task.h"
#include "chrome/browser/extensions/extension_settings_backend.h"
#include "chrome/browser/extensions/extension_settings_storage_cache.h"
-#include "chrome/browser/extensions/extension_settings_noop_storage.h"
#include "chrome/browser/extensions/extension_settings_sync_util.h"
#include "chrome/browser/extensions/syncable_extension_settings_storage.h"
#include "chrome/browser/sync/api/sync_change_processor.h"
diff --git a/chrome/browser/extensions/in_memory_extension_settings_storage.cc b/chrome/browser/extensions/in_memory_extension_settings_storage.cc
new file mode 100644
index 0000000..f467f31
--- /dev/null
+++ b/chrome/browser/extensions/in_memory_extension_settings_storage.cc
@@ -0,0 +1,69 @@
+// Copyright (c) 2011 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/browser/extensions/in_memory_extension_settings_storage.h"
+
+namespace {
+
+std::vector<std::string> CreateVector(const std::string& string) {
+ std::vector<std::string> strings;
+ strings.push_back(string);
+ return strings;
+}
+
+} // namespace
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Get(
+ const std::string& key) {
+ return Get(CreateVector(key));
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Get(
+ const std::vector<std::string>& keys) {
+ DictionaryValue* settings = new DictionaryValue();
+ for (std::vector<std::string>::const_iterator it = keys.begin();
+ it != keys.end(); ++it) {
+ Value* value = NULL;
+ if (storage_.GetWithoutPathExpansion(*it, &value)) {
+ settings->SetWithoutPathExpansion(*it, value->DeepCopy());
+ }
+ }
+ return Result(settings);
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Get() {
+ return Result(storage_.DeepCopy());
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Set(
+ const std::string& key, const Value& value) {
+ DictionaryValue settings;
+ settings.SetWithoutPathExpansion(key, value.DeepCopy());
+ return Set(settings);
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Set(
+ const DictionaryValue& settings) {
+ storage_.MergeDictionary(&settings);
+ return Result(settings.DeepCopy());
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Remove(
+ const std::string& key) {
+ return Remove(CreateVector(key));
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Remove(
+ const std::vector<std::string>& keys) {
+ for (std::vector<std::string>::const_iterator it = keys.begin();
+ it != keys.end(); ++it) {
+ storage_.RemoveWithoutPathExpansion(*it, NULL);
+ }
+ return Result(NULL);
+}
+
+ExtensionSettingsStorage::Result InMemoryExtensionSettingsStorage::Clear() {
+ storage_.Clear();
+ return Result(NULL);
+}
diff --git a/chrome/browser/extensions/extension_settings_noop_storage.h b/chrome/browser/extensions/in_memory_extension_settings_storage.h
index 0396273..e879cfa 100644
--- a/chrome/browser/extensions/extension_settings_noop_storage.h
+++ b/chrome/browser/extensions/in_memory_extension_settings_storage.h
@@ -2,19 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SETTINGS_NOOP_STORAGE_H_
-#define CHROME_BROWSER_EXTENSIONS_EXTENSION_SETTINGS_NOOP_STORAGE_H_
+#ifndef CHROME_BROWSER_EXTENSIONS_IN_MEMORY_EXTENSION_SETTINGS_STORAGE_H_
+#define CHROME_BROWSER_EXTENSIONS_IN_MEMORY_EXTENSION_SETTINGS_STORAGE_H_
#pragma once
#include "base/compiler_specific.h"
#include "chrome/browser/extensions/extension_settings_storage.h"
-// Implementation of ExtensionSettingsStorage which does nothing, but behaves
-// as though each Get/Set were successful.
-// Intended to be wrapped by a Cache for trivial in-memory storage.
-class ExtensionSettingsNoopStorage : public ExtensionSettingsStorage {
+// In-memory storage, as opposed to ExtensionSettingsLeveldbStorage.
+class InMemoryExtensionSettingsStorage : public ExtensionSettingsStorage {
public:
- ExtensionSettingsNoopStorage() {}
+ InMemoryExtensionSettingsStorage() {}
// ExtensionSettingsStorage implementation.
virtual Result Get(const std::string& key) OVERRIDE;
@@ -27,7 +25,9 @@ class ExtensionSettingsNoopStorage : public ExtensionSettingsStorage {
virtual Result Clear() OVERRIDE;
private:
- DISALLOW_COPY_AND_ASSIGN(ExtensionSettingsNoopStorage);
+ DictionaryValue storage_;
+
+ DISALLOW_COPY_AND_ASSIGN(InMemoryExtensionSettingsStorage);
};
-#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SETTINGS_NOOP_STORAGE_H_
+#endif // CHROME_BROWSER_EXTENSIONS_IN_MEMORY_EXTENSION_SETTINGS_STORAGE_H_
diff --git a/chrome/browser/extensions/extension_settings_cached_leveldb_storage_unittest.cc b/chrome/browser/extensions/in_memory_extension_settings_storage_unittest.cc
index 436d806..723099d 100644
--- a/chrome/browser/extensions/extension_settings_cached_leveldb_storage_unittest.cc
+++ b/chrome/browser/extensions/in_memory_extension_settings_storage_unittest.cc
@@ -4,17 +4,18 @@
#include "chrome/browser/extensions/extension_settings_storage_unittest.h"
+#include "chrome/browser/extensions/in_memory_extension_settings_storage.h"
+
namespace {
ExtensionSettingsStorage* Param(
- const ExtensionSettingsBackend& backend, const std::string& extension_id) {
- return backend.GetStorageForTesting(
- ExtensionSettingsStorage::LEVELDB, true, extension_id);
+ const FilePath& file_path, const std::string& extension_id) {
+ return new InMemoryExtensionSettingsStorage();
}
} // namespace
INSTANTIATE_TEST_CASE_P(
- ExtensionSettingsCachedLeveldbStorage,
+ InMemoryExtensionSettingsStorage,
ExtensionSettingsStorageTest,
testing::Values(&Param));
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 3192607..3d1d683 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1089,8 +1089,6 @@
'browser/extensions/extension_settings_frontend.h',
'browser/extensions/extension_settings_api.cc',
'browser/extensions/extension_settings_api.h',
- 'browser/extensions/extension_settings_noop_storage.cc',
- 'browser/extensions/extension_settings_noop_storage.h',
'browser/extensions/extension_settings_storage.cc',
'browser/extensions/extension_settings_storage.h',
'browser/extensions/extension_settings_storage_cache.cc',
@@ -1178,6 +1176,8 @@
'browser/extensions/file_reader.h',
'browser/extensions/image_loading_tracker.cc',
'browser/extensions/image_loading_tracker.h',
+ 'browser/extensions/in_memory_extension_settings_storage.cc',
+ 'browser/extensions/in_memory_extension_settings_storage.h',
'browser/extensions/key_identifier_conversion_views.cc',
'browser/extensions/key_identifier_conversion_views.h',
'browser/extensions/pack_extension_job.cc',
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 4728861..a3bd85e 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1053,6 +1053,7 @@
'../third_party/cld/cld.gyp:cld',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
+ '../third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
'../third_party/libjingle/libjingle.gyp:libjingle',
'../third_party/libxml/libxml.gyp:libxml',
'../ui/gfx/gl/gl.gyp:gl',
@@ -1248,10 +1249,9 @@
'browser/extensions/extension_prefs_unittest.cc',
'browser/extensions/extension_process_manager_unittest.cc',
'browser/extensions/extension_proxy_api_helpers_unittest.cc',
- 'browser/extensions/extension_settings_cached_leveldb_storage_unittest.cc',
- 'browser/extensions/extension_settings_cached_noop_storage_unittest.cc',
'browser/extensions/extension_settings_leveldb_storage_unittest.cc',
'browser/extensions/extension_settings_quota_unittest.cc',
+ 'browser/extensions/extension_settings_storage_cache_unittest.cc',
'browser/extensions/extension_settings_storage_unittest.h',
'browser/extensions/extension_settings_storage_unittest.cc',
'browser/extensions/extension_settings_sync_unittest.cc',
@@ -1268,6 +1268,7 @@
'browser/extensions/external_policy_extension_loader_unittest.cc',
'browser/extensions/file_reader_unittest.cc',
'browser/extensions/image_loading_tracker_unittest.cc',
+ 'browser/extensions/in_memory_extension_settings_storage_unittest.cc',
'browser/extensions/key_identifier_conversion_views_unittest.cc',
'browser/extensions/sandboxed_extension_unpacker_unittest.cc',
'browser/extensions/user_script_listener_unittest.cc',
@@ -2993,6 +2994,7 @@
'../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest',
'../third_party/bzip2/bzip2.gyp:bzip2',
+ '../third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
'../third_party/libjingle/libjingle.gyp:libjingle',
'profile_import',
'syncapi_core',