| Index: components/profile_service/profile_app.cc
|
| diff --git a/components/profile_service/profile_app.cc b/components/profile_service/profile_app.cc
|
| index 27491db5e910d27946721e9031860a493591c71b..7ec091a94a0622de3162dd36f8905a279c897bdf 100644
|
| --- a/components/profile_service/profile_app.cc
|
| +++ b/components/profile_service/profile_app.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/lazy_instance.h"
|
| #include "components/leveldb/leveldb_service_impl.h"
|
| +#include "components/profile_service/leveldb_thread.h"
|
| #include "components/profile_service/profile_service_impl.h"
|
| #include "mojo/shell/public/cpp/connection.h"
|
|
|
| @@ -39,7 +40,6 @@ void ProfileApp::Initialize(mojo::Connector* connector,
|
| const mojo::Identity& identity,
|
| uint32_t id) {
|
| tracing_.Initialize(connector, identity.name());
|
| - leveldb_service_.reset(new leveldb::LevelDBServiceImpl);
|
|
|
| auto it = g_user_id_to_data_dir.Get().find(identity.user_id());
|
| DCHECK(it != g_user_id_to_data_dir.Get().end());
|
| @@ -57,13 +57,21 @@ void ProfileApp::Create(mojo::Connection* connection,
|
| // No, we need one of these per connection.
|
| new ProfileServiceImpl(connection,
|
| std::move(request),
|
| + ref_factory_.CreateRef(),
|
| profile_data_dir_,
|
| lock_table_.get());
|
| }
|
|
|
| void ProfileApp::Create(mojo::Connection* connection,
|
| leveldb::LevelDBServiceRequest request) {
|
| - leveldb_bindings_.AddBinding(leveldb_service_.get(), std::move(request));
|
| + if (!leveldb_thread_) {
|
| + leveldb_thread_ = new LevelDBThread(
|
| + ref_factory_.CreateRef(),
|
| + std::move(request));
|
| + } else {
|
| + // We need to pass this binding to the leveldb thread.
|
| + leveldb_thread_->BindNewRequest(std::move(request));
|
| + }
|
| }
|
|
|
| } // namespace profile
|
|
|