Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Unified Diff: content/browser/dom_storage/local_storage_context_mojo_unittest.cc

Issue 2722293002: Fix lifetime of leveldb::MojoEnv instances. (Closed)
Patch Set: annotate leaks Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/dom_storage/local_storage_context_mojo_unittest.cc
diff --git a/content/browser/dom_storage/local_storage_context_mojo_unittest.cc b/content/browser/dom_storage/local_storage_context_mojo_unittest.cc
index 05733f82c0af5eec19534a7f1b132b1e3fff8370..a8b3a773f14d9588fbb53671c79ef2be7acd8dab 100644
--- a/content/browser/dom_storage/local_storage_context_mojo_unittest.cc
+++ b/content/browser/dom_storage/local_storage_context_mojo_unittest.cc
@@ -4,11 +4,13 @@
#include "content/browser/dom_storage/local_storage_context_mojo.h"
+#include "base/debug/leak_annotations.h"
#include "base/files/file_enumerator.h"
#include "base/files/scoped_temp_dir.h"
#include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "components/filesystem/public/interfaces/file_system.mojom.h"
+#include "components/leveldb/env_mojo.h"
#include "components/leveldb/public/cpp/util.h"
#include "content/browser/dom_storage/dom_storage_area.h"
#include "content/browser/dom_storage/dom_storage_context_impl.h"
@@ -617,7 +619,10 @@ class ServiceTestClient : public service_manager::test::ServiceTestClient,
service_manager::mojom::ServiceFactory> {
public:
explicit ServiceTestClient(service_manager::test::ServiceTest* test)
- : service_manager::test::ServiceTestClient(test) {
+ : service_manager::test::ServiceTestClient(test),
+ leveldb_env_(new leveldb::MojoEnv(
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE))) {
+ ANNOTATE_LEAKING_OBJECT_PTR(leveldb_env_);
registry_.AddInterface<service_manager::mojom::ServiceFactory>(this);
}
~ServiceTestClient() override {}
@@ -635,7 +640,7 @@ class ServiceTestClient : public service_manager::test::ServiceTestClient,
if (name == file::mojom::kServiceName) {
file_service_context_.reset(new service_manager::ServiceContext(
file::CreateFileService(
- BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE),
+ leveldb_env_,
BrowserThread::GetTaskRunnerForThread(BrowserThread::DB)),
std::move(request)));
}
@@ -651,6 +656,7 @@ class ServiceTestClient : public service_manager::test::ServiceTestClient,
mojo::BindingSet<service_manager::mojom::ServiceFactory>
service_factory_bindings_;
std::unique_ptr<service_manager::ServiceContext> file_service_context_;
+ leveldb::MojoEnv* leveldb_env_;
};
} // namespace
@@ -818,10 +824,8 @@ TEST_F(LocalStorageContextMojoTestWithService, InvalidVersionOnDisk) {
{
// Mess up version number in database.
- leveldb_env::ChromiumEnv env;
leveldb::DB* db = nullptr;
leveldb::Options options;
- options.env = &env;
base::FilePath db_path =
temp_path().Append(test_path).Append(FILE_PATH_LITERAL("leveldb"));
ASSERT_TRUE(leveldb::DB::Open(options, db_path.AsUTF8Unsafe(), &db).ok());

Powered by Google App Engine
This is Rietveld 408576698