| Index: components/profile_service/profile_app.cc
|
| diff --git a/components/profile_service/profile_app.cc b/components/profile_service/profile_app.cc
|
| index a58071163cb47e5c64029ae5f00dda1f43712d29..8625a830486bc104b70fccb2bd617c75320f212b 100644
|
| --- a/components/profile_service/profile_app.cc
|
| +++ b/components/profile_service/profile_app.cc
|
| @@ -47,7 +47,8 @@ class ProfileApp::LevelDBServiceObjects
|
| : public base::SupportsWeakPtr<LevelDBServiceObjects> {
|
| public:
|
| // Created on the main thread.
|
| - LevelDBServiceObjects() {}
|
| + LevelDBServiceObjects(scoped_refptr<base::SingleThreadTaskRunner> task_runner)
|
| + : task_runner_(std::move(task_runner)) {}
|
|
|
| // Destroyed on the |leveldb_service_runner_|.
|
| ~LevelDBServiceObjects() {}
|
| @@ -56,11 +57,13 @@ class ProfileApp::LevelDBServiceObjects
|
| void OnLevelDBServiceRequest(mojo::Connection* connection,
|
| leveldb::LevelDBServiceRequest request) {
|
| if (!leveldb_service_)
|
| - leveldb_service_.reset(new leveldb::LevelDBServiceImpl);
|
| + leveldb_service_.reset(new leveldb::LevelDBServiceImpl(task_runner_));
|
| leveldb_bindings_.AddBinding(leveldb_service_.get(), std::move(request));
|
| }
|
|
|
| private:
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| +
|
| // Variables that are only accessible on the |leveldb_service_runner_| thread.
|
| scoped_ptr<leveldb::LevelDBService> leveldb_service_;
|
| mojo::BindingSet<leveldb::LevelDBService> leveldb_bindings_;
|
| @@ -93,7 +96,8 @@ void ProfileApp::Initialize(mojo::Connector* connector,
|
| tracing_.Initialize(connector, identity.name());
|
| profile_objects_.reset(new ProfileApp::ProfileServiceObjects(
|
| GetProfileDirForUserID(identity.user_id())));
|
| - leveldb_objects_.reset(new ProfileApp::LevelDBServiceObjects);
|
| + leveldb_objects_.reset(
|
| + new ProfileApp::LevelDBServiceObjects(leveldb_service_runner_));
|
| }
|
|
|
| bool ProfileApp::AcceptConnection(mojo::Connection* connection) {
|
|
|