Commit 81b307ad authored by Evan Stade's avatar Evan Stade Committed by Chromium LUCI CQ

[Code health] Fix gn check issues in //extensions/browser/value_store

This required adding deps, which in turn created circular includes. To
address this, the patch
* moves settings_namespace.{cc,} into the //extensions/browser target
* passes the task runner from GetExtensionFileTaskRunner() as a
  parameter into value store code

Bug: 1158986
Change-Id: I91ae5c90d82c5cbe5eb1d2a62cd1dd65a003e74c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2601640Reviewed-by: default avatarErik Staab <estaab@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#841134}
parent c5f9e043
...@@ -138,7 +138,6 @@ no_check_targets = [ ...@@ -138,7 +138,6 @@ no_check_targets = [
"//extensions/browser/api/webcam_private:*", # 8 errors "//extensions/browser/api/webcam_private:*", # 8 errors
"//extensions/browser/api:*", # 7 errors "//extensions/browser/api:*", # 7 errors
"//extensions/browser/updater:*", # 31 errors "//extensions/browser/updater:*", # 31 errors
"//extensions/browser/value_store:*", # 5 errors
"//extensions/browser:*", # 20 errors "//extensions/browser:*", # 20 errors
"//extensions:*", # 75 errors "//extensions:*", # 75 errors
"//headless:*", # 167 errors "//headless:*", # 167 errors
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_map.h"
#include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/policy_types.h"
#include "extensions/browser/api/storage/backend_task_runner.h" #include "extensions/browser/api/storage/backend_task_runner.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/browser/value_store/value_store_change.h" #include "extensions/browser/value_store/value_store_change.h"
namespace extensions { namespace extensions {
......
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
#include "components/sync/test/model/sync_error_factory_mock.h" #include "components/sync/test/model/sync_error_factory_mock.h"
#include "content/public/test/browser_test.h" #include "content/public/test/browser_test.h"
#include "extensions/browser/api/storage/backend_task_runner.h" #include "extensions/browser/api/storage/backend_task_runner.h"
#include "extensions/browser/api/storage/settings_namespace.h"
#include "extensions/browser/api/storage/storage_frontend.h" #include "extensions/browser/api/storage/storage_frontend.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
#include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/common/value_builder.h" #include "extensions/common/value_builder.h"
#include "extensions/test/extension_test_message_listener.h" #include "extensions/test/extension_test_message_listener.h"
#include "extensions/test/result_catcher.h" #include "extensions/test/result_catcher.h"
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "components/sync/model/sync_data.h" #include "components/sync/model/sync_data.h"
#include "components/sync/protocol/extension_setting_specifics.pb.h" #include "components/sync/protocol/extension_setting_specifics.pb.h"
#include "extensions/browser/api/storage/backend_task_runner.h" #include "extensions/browser/api/storage/backend_task_runner.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
namespace extensions { namespace extensions {
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "components/sync/model/sync_error.h" #include "components/sync/model/sync_error.h"
#include "components/sync/protocol/extension_setting_specifics.pb.h" #include "components/sync/protocol/extension_setting_specifics.pb.h"
#include "extensions/browser/api/storage/backend_task_runner.h" #include "extensions/browser/api/storage/backend_task_runner.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
namespace extensions { namespace extensions {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include "build/chromeos_buildflags.h" #include "build/chromeos_buildflags.h"
#include "extensions/browser/api/clipboard/clipboard_api.h" #include "extensions/browser/api/clipboard/clipboard_api.h"
#include "extensions/browser/api/declarative_content/content_rules_registry.h" #include "extensions/browser/api/declarative_content/content_rules_registry.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/common/api/clipboard.h" #include "extensions/common/api/clipboard.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "extensions/common/extension_id.h" #include "extensions/common/extension_id.h"
......
...@@ -13,8 +13,6 @@ source_set("storage") { ...@@ -13,8 +13,6 @@ source_set("storage") {
"backend_task_runner.h", "backend_task_runner.h",
"local_value_store_cache.cc", "local_value_store_cache.cc",
"local_value_store_cache.h", "local_value_store_cache.h",
"settings_namespace.cc",
"settings_namespace.h",
"settings_observer.h", "settings_observer.h",
"settings_storage_quota_enforcer.cc", "settings_storage_quota_enforcer.cc",
"settings_storage_quota_enforcer.h", "settings_storage_quota_enforcer.h",
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_OBSERVER_H_ #define EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_OBSERVER_H_
#include "base/observer_list_threadsafe.h" #include "base/observer_list_threadsafe.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
namespace extensions { namespace extensions {
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "extensions/browser/api/storage/settings_namespace.h"
#include "extensions/browser/event_router.h" #include "extensions/browser/event_router.h"
#include "extensions/browser/mock_extension_system.h" #include "extensions/browser/mock_extension_system.h"
#include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/browser/value_store/value_store_factory.h" #include "extensions/browser/value_store/value_store_factory.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "extensions/browser/api/storage/settings_namespace.h"
#include "extensions/browser/api/storage/settings_observer.h" #include "extensions/browser/api/storage/settings_observer.h"
#include "extensions/browser/extension_function.h" #include "extensions/browser/extension_function.h"
#include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/browser/value_store/value_store.h" #include "extensions/browser/value_store/value_store.h"
namespace extensions { namespace extensions {
......
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "extensions/browser/api/storage/settings_namespace.h"
#include "extensions/browser/api/storage/settings_observer.h" #include "extensions/browser/api/storage/settings_observer.h"
#include "extensions/browser/api/storage/value_store_cache.h" #include "extensions/browser/api/storage/value_store_cache.h"
#include "extensions/browser/browser_context_keyed_api_factory.h" #include "extensions/browser/browser_context_keyed_api_factory.h"
#include "extensions/browser/value_store/settings_namespace.h"
namespace content { namespace content {
class BrowserContext; class BrowserContext;
......
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
#include "content/public/test/test_browser_context.h" #include "content/public/test/test_browser_context.h"
#include "content/public/test/test_utils.h" #include "content/public/test/test_utils.h"
#include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/api/storage/settings_namespace.h"
#include "extensions/browser/api/storage/settings_test_util.h" #include "extensions/browser/api/storage/settings_test_util.h"
#include "extensions/browser/extensions_test.h" #include "extensions/browser/extensions_test.h"
#include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/browser/value_store/value_store.h" #include "extensions/browser/value_store/value_store.h"
#include "extensions/browser/value_store/value_store_factory_impl.h" #include "extensions/browser/value_store/value_store_factory_impl.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
#include "content/public/browser/notification_service.h" #include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h" #include "content/public/browser/notification_types.h"
#include "extensions/browser/extension_file_task_runner.h"
#include "extensions/browser/value_store/value_store_factory.h" #include "extensions/browser/value_store/value_store_factory.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
...@@ -74,8 +75,11 @@ StateStore::StateStore(content::BrowserContext* context, ...@@ -74,8 +75,11 @@ StateStore::StateStore(content::BrowserContext* context,
const scoped_refptr<ValueStoreFactory>& store_factory, const scoped_refptr<ValueStoreFactory>& store_factory,
ValueStoreFrontend::BackendType backend_type, ValueStoreFrontend::BackendType backend_type,
bool deferred_load) bool deferred_load)
: store_(new ValueStoreFrontend(store_factory, backend_type)), : store_(
task_queue_(new DelayedTaskQueue()) { std::make_unique<ValueStoreFrontend>(store_factory,
backend_type,
GetExtensionFileTaskRunner())),
task_queue_(std::make_unique<DelayedTaskQueue>()) {
extension_registry_observer_.Add(ExtensionRegistry::Get(context)); extension_registry_observer_.Add(ExtensionRegistry::Get(context));
if (deferred_load) { if (deferred_load) {
......
...@@ -17,6 +17,8 @@ source_set("value_store") { ...@@ -17,6 +17,8 @@ source_set("value_store") {
"leveldb_scoped_database.h", "leveldb_scoped_database.h",
"leveldb_value_store.cc", "leveldb_value_store.cc",
"leveldb_value_store.h", "leveldb_value_store.h",
"settings_namespace.cc",
"settings_namespace.h",
"value_store.cc", "value_store.cc",
"value_store.h", "value_store.h",
"value_store_change.cc", "value_store_change.cc",
...@@ -30,6 +32,7 @@ source_set("value_store") { ...@@ -30,6 +32,7 @@ source_set("value_store") {
deps = [ deps = [
"//base", "//base",
"//content/public/browser",
"//extensions/common", "//extensions/common",
"//third_party/leveldatabase", "//third_party/leveldatabase",
] ]
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
#include "base/notreached.h" #include "base/notreached.h"
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_NAMESPACE_H_ #ifndef EXTENSIONS_BROWSER_VALUE_STORE_SETTINGS_NAMESPACE_H_
#define EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_NAMESPACE_H_ #define EXTENSIONS_BROWSER_VALUE_STORE_SETTINGS_NAMESPACE_H_
#include <string> #include <string>
...@@ -31,4 +31,4 @@ Namespace FromString(const std::string& ns_string); ...@@ -31,4 +31,4 @@ Namespace FromString(const std::string& ns_string);
} // namespace extensions } // namespace extensions
#endif // EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_NAMESPACE_H_ #endif // EXTENSIONS_BROWSER_VALUE_STORE_SETTINGS_NAMESPACE_H_
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <set> #include <set>
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "extensions/browser/api/storage/settings_namespace.h" #include "extensions/browser/value_store/settings_namespace.h"
#include "extensions/common/extension_id.h" #include "extensions/common/extension_id.h"
class ValueStore; class ValueStore;
......
...@@ -11,26 +11,28 @@ ...@@ -11,26 +11,28 @@
#include "base/logging.h" #include "base/logging.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/scoped_refptr.h" #include "base/memory/scoped_refptr.h"
#include "base/sequenced_task_runner.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "extensions/browser/api/storage/backend_task_runner.h"
#include "extensions/browser/value_store/leveldb_value_store.h" #include "extensions/browser/value_store/leveldb_value_store.h"
#include "extensions/browser/value_store/value_store_factory.h" #include "extensions/browser/value_store/value_store_factory.h"
using content::BrowserThread; using content::BrowserThread;
using extensions::ValueStoreFactory;
using extensions::IsOnBackendSequence; namespace extensions {
using extensions::GetBackendTaskRunner;
class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
public: public:
Backend(const scoped_refptr<ValueStoreFactory>& store_factory, Backend(const scoped_refptr<ValueStoreFactory>& store_factory,
BackendType backend_type) BackendType backend_type,
: store_factory_(store_factory), backend_type_(backend_type) {} const scoped_refptr<base::SequencedTaskRunner>& task_runner)
: store_factory_(store_factory),
backend_type_(backend_type),
task_runner_(task_runner) {}
void Get(const std::string& key, ValueStoreFrontend::ReadCallback callback) { void Get(const std::string& key, ValueStoreFrontend::ReadCallback callback) {
DCHECK(IsOnBackendSequence()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
LazyInit(); LazyInit();
ValueStore::ReadResult result = storage_->Get(key); ValueStore::ReadResult result = storage_->Get(key);
...@@ -50,7 +52,7 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { ...@@ -50,7 +52,7 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
} }
void Set(const std::string& key, std::unique_ptr<base::Value> value) { void Set(const std::string& key, std::unique_ptr<base::Value> value) {
DCHECK(IsOnBackendSequence()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
LazyInit(); LazyInit();
// We don't need the old value, so skip generating changes. // We don't need the old value, so skip generating changes.
ValueStore::WriteResult result = storage_->Set( ValueStore::WriteResult result = storage_->Set(
...@@ -61,7 +63,7 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { ...@@ -61,7 +63,7 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
} }
void Remove(const std::string& key) { void Remove(const std::string& key) {
DCHECK(IsOnBackendSequence()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
LazyInit(); LazyInit();
storage_->Remove(key); storage_->Remove(key);
} }
...@@ -70,12 +72,12 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { ...@@ -70,12 +72,12 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
friend class base::RefCountedThreadSafe<Backend>; friend class base::RefCountedThreadSafe<Backend>;
virtual ~Backend() { virtual ~Backend() {
if (storage_ && !IsOnBackendSequence()) if (storage_ && !task_runner_->RunsTasksInCurrentSequence())
GetBackendTaskRunner()->DeleteSoon(FROM_HERE, storage_.release()); task_runner_->DeleteSoon(FROM_HERE, storage_.release());
} }
void LazyInit() { void LazyInit() {
DCHECK(IsOnBackendSequence()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
if (storage_) if (storage_)
return; return;
TRACE_EVENT0("ValueStoreFrontend::Backend", "LazyInit"); TRACE_EVENT0("ValueStoreFrontend::Backend", "LazyInit");
...@@ -100,6 +102,8 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { ...@@ -100,6 +102,8 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
scoped_refptr<ValueStoreFactory> store_factory_; scoped_refptr<ValueStoreFactory> store_factory_;
BackendType backend_type_; BackendType backend_type_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
// The actual ValueStore that handles persisting the data to disk. Used // The actual ValueStore that handles persisting the data to disk. Used
// exclusively on the backend sequence. // exclusively on the backend sequence.
std::unique_ptr<ValueStore> storage_; std::unique_ptr<ValueStore> storage_;
...@@ -111,8 +115,12 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> { ...@@ -111,8 +115,12 @@ class ValueStoreFrontend::Backend : public base::RefCountedThreadSafe<Backend> {
ValueStoreFrontend::ValueStoreFrontend( ValueStoreFrontend::ValueStoreFrontend(
const scoped_refptr<ValueStoreFactory>& store_factory, const scoped_refptr<ValueStoreFactory>& store_factory,
BackendType backend_type) BackendType backend_type,
: backend_(base::MakeRefCounted<Backend>(store_factory, backend_type)) { const scoped_refptr<base::SequencedTaskRunner>& task_runner)
: backend_(base::MakeRefCounted<Backend>(store_factory,
backend_type,
task_runner)),
task_runner_(task_runner) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
} }
...@@ -123,7 +131,7 @@ ValueStoreFrontend::~ValueStoreFrontend() { ...@@ -123,7 +131,7 @@ ValueStoreFrontend::~ValueStoreFrontend() {
void ValueStoreFrontend::Get(const std::string& key, ReadCallback callback) { void ValueStoreFrontend::Get(const std::string& key, ReadCallback callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
GetBackendTaskRunner()->PostTask( task_runner_->PostTask(
FROM_HERE, base::BindOnce(&ValueStoreFrontend::Backend::Get, backend_, FROM_HERE, base::BindOnce(&ValueStoreFrontend::Backend::Get, backend_,
key, std::move(callback))); key, std::move(callback)));
} }
...@@ -132,7 +140,7 @@ void ValueStoreFrontend::Set(const std::string& key, ...@@ -132,7 +140,7 @@ void ValueStoreFrontend::Set(const std::string& key,
std::unique_ptr<base::Value> value) { std::unique_ptr<base::Value> value) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
GetBackendTaskRunner()->PostTask( task_runner_->PostTask(
FROM_HERE, base::BindOnce(&ValueStoreFrontend::Backend::Set, backend_, FROM_HERE, base::BindOnce(&ValueStoreFrontend::Backend::Set, backend_,
key, std::move(value))); key, std::move(value)));
} }
...@@ -140,7 +148,9 @@ void ValueStoreFrontend::Set(const std::string& key, ...@@ -140,7 +148,9 @@ void ValueStoreFrontend::Set(const std::string& key,
void ValueStoreFrontend::Remove(const std::string& key) { void ValueStoreFrontend::Remove(const std::string& key) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
GetBackendTaskRunner()->PostTask( task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&ValueStoreFrontend::Backend::Remove, backend_, key)); base::BindOnce(&ValueStoreFrontend::Backend::Remove, backend_, key));
} }
} // namespace extensions
...@@ -14,9 +14,12 @@ ...@@ -14,9 +14,12 @@
#include "base/values.h" #include "base/values.h"
#include "extensions/browser/value_store/value_store.h" #include "extensions/browser/value_store/value_store.h"
namespace base {
class SequencedTaskRunner;
}
namespace extensions { namespace extensions {
class ValueStoreFactory; class ValueStoreFactory;
} // namespace extensions
// A frontend for a LeveldbValueStore, for use on the UI thread. // A frontend for a LeveldbValueStore, for use on the UI thread.
class ValueStoreFrontend { class ValueStoreFrontend {
...@@ -28,7 +31,8 @@ class ValueStoreFrontend { ...@@ -28,7 +31,8 @@ class ValueStoreFrontend {
ValueStoreFrontend( ValueStoreFrontend(
const scoped_refptr<extensions::ValueStoreFactory>& store_factory, const scoped_refptr<extensions::ValueStoreFactory>& store_factory,
BackendType backend_type); BackendType backend_type,
const scoped_refptr<base::SequencedTaskRunner>& task_runner);
~ValueStoreFrontend(); ~ValueStoreFrontend();
// Retrieves a value from the database asynchronously, passing a copy to // Retrieves a value from the database asynchronously, passing a copy to
...@@ -48,7 +52,11 @@ class ValueStoreFrontend { ...@@ -48,7 +52,11 @@ class ValueStoreFrontend {
// on the FILE thread. // on the FILE thread.
scoped_refptr<Backend> backend_; scoped_refptr<Backend> backend_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
DISALLOW_COPY_AND_ASSIGN(ValueStoreFrontend); DISALLOW_COPY_AND_ASSIGN(ValueStoreFrontend);
}; };
} // namespace extensions
#endif // EXTENSIONS_BROWSER_VALUE_STORE_VALUE_STORE_FRONTEND_H_ #endif // EXTENSIONS_BROWSER_VALUE_STORE_VALUE_STORE_FRONTEND_H_
...@@ -13,10 +13,13 @@ ...@@ -13,10 +13,13 @@
#include "base/path_service.h" #include "base/path_service.h"
#include "content/public/test/browser_task_environment.h" #include "content/public/test/browser_task_environment.h"
#include "content/public/test/test_utils.h" #include "content/public/test/test_utils.h"
#include "extensions/browser/extension_file_task_runner.h"
#include "extensions/browser/value_store/test_value_store_factory.h" #include "extensions/browser/value_store/test_value_store_factory.h"
#include "extensions/common/extension_paths.h" #include "extensions/common/extension_paths.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace extensions {
class ValueStoreFrontendTest : public testing::Test { class ValueStoreFrontendTest : public testing::Test {
public: public:
ValueStoreFrontendTest() {} ValueStoreFrontendTest() {}
...@@ -43,8 +46,9 @@ class ValueStoreFrontendTest : public testing::Test { ...@@ -43,8 +46,9 @@ class ValueStoreFrontendTest : public testing::Test {
// Reset the value store, reloading the DB from disk. // Reset the value store, reloading the DB from disk.
void ResetStorage() { void ResetStorage() {
storage_.reset(new ValueStoreFrontend( storage_ = std::make_unique<ValueStoreFrontend>(
factory_, ValueStoreFrontend::BackendType::RULES)); factory_, ValueStoreFrontend::BackendType::RULES,
GetExtensionFileTaskRunner());
} }
bool Get(const std::string& key, std::unique_ptr<base::Value>* output) { bool Get(const std::string& key, std::unique_ptr<base::Value>* output) {
...@@ -112,3 +116,5 @@ TEST_F(ValueStoreFrontendTest, ChangesPersistAfterReload) { ...@@ -112,3 +116,5 @@ TEST_F(ValueStoreFrontendTest, ChangesPersistAfterReload) {
ASSERT_FALSE(Get("key2", &value)); ASSERT_FALSE(Get("key2", &value));
} }
} // namespace extensions
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment