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

Unified Diff: chrome/browser/sync_file_system/drive_backend/sync_engine.cc

Issue 248853002: [NOCOMMIT] Make DriveService{Wrapper|Messenger} class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simplify Created 6 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: chrome/browser/sync_file_system/drive_backend/sync_engine.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
index e313787a69ccf90eae465d62bd4c6f3c9a3edcc3..9edaa77d8454cdf95ec44429d7d91dbd4e7de36a 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
@@ -7,6 +7,7 @@
#include <vector>
#include "base/bind.h"
+#include "base/memory/weak_ptr.h"
#include "base/threading/sequenced_worker_pool.h"
#include "base/values.h"
#include "chrome/browser/drive/drive_api_service.h"
@@ -20,6 +21,8 @@
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
+#include "chrome/browser/sync_file_system/drive_backend/drive_service_messenger.h"
+#include "chrome/browser/sync_file_system/drive_backend/drive_service_wrapper.h"
#include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h"
#include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h"
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
@@ -90,11 +93,6 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
ExtensionService* extension_service =
extensions::ExtensionSystem::Get(context)->extension_service();
- scoped_refptr<base::SequencedTaskRunner> file_task_runner(
- worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
- worker_pool->GetSequenceToken(),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
-
// TODO(peria): Create another task runner to manage SyncWorker.
scoped_refptr<base::SingleThreadTaskRunner>
worker_task_runner = base::MessageLoopProxy::current();
@@ -106,10 +104,17 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
notification_manager,
extension_service,
signin_manager));
+
+ scoped_refptr<base::SequencedTaskRunner> file_task_runner(
+ worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
+ worker_pool->GetSequenceToken(),
+ base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
+
sync_engine->Initialize(
GetSyncFileSystemDir(context->GetPath()),
file_task_runner.get(),
- NULL);
+ false,
+ NULL /* env_override */);
return sync_engine.Pass();
}
@@ -132,12 +137,24 @@ SyncEngine::~SyncEngine() {
void SyncEngine::Initialize(const base::FilePath& base_dir,
peria 2014/04/24 04:08:38 It may be good to make InitializeForTesting(). In
base::SequencedTaskRunner* file_task_runner,
+ bool pass_service_to_worker,
leveldb::Env* env_override) {
- scoped_ptr<SyncEngineContext> sync_engine_context(
- new SyncEngineContext(drive_service_.get(),
- drive_uploader_.get(),
- base::MessageLoopProxy::current(),
- file_task_runner));
+ scoped_ptr<SyncEngineContext> sync_engine_context;
+ if (pass_service_to_worker) {
+ sync_engine_context.reset(
+ new SyncEngineContext(drive_service_.Pass(),
+ drive_uploader_.get(),
+ base::MessageLoopProxy::current(),
+ file_task_runner));
+ } else {
+ scoped_ptr<drive::DriveServiceInterface> drive_service_messenger(
+ new DriveServiceMessenger(drive_service_wrapper_->AsWeakPtr()));
+ sync_engine_context.reset(
+ new SyncEngineContext(drive_service_messenger.Pass(),
+ drive_uploader_.get(),
+ base::MessageLoopProxy::current(),
+ file_task_runner));
+ }
// TODO(peria): Use PostTask on |worker_task_runner_| to call this function.
sync_worker_ = SyncWorker::CreateOnWorker(weak_ptr_factory_.GetWeakPtr(),
base_dir,
@@ -366,11 +383,11 @@ void SyncEngine::OnNetworkChanged(
}
drive::DriveServiceInterface* SyncEngine::GetDriveService() {
- return drive_service_.get();
+ return sync_worker_->GetDriveService();
}
drive::DriveUploaderInterface* SyncEngine::GetDriveUploader() {
- return drive_uploader_.get();
+ return sync_worker_->GetDriveUploader();
}
MetadataDatabase* SyncEngine::GetMetadataDatabase() {
@@ -386,6 +403,7 @@ SyncEngine::SyncEngine(
ExtensionServiceInterface* extension_service,
SigninManagerBase* signin_manager)
: drive_service_(drive_service.Pass()),
+ drive_service_wrapper_(new DriveServiceWrapper(drive_service_.get())),
drive_uploader_(drive_uploader.Pass()),
notification_manager_(notification_manager),
extension_service_(extension_service),

Powered by Google App Engine
This is Rietveld 408576698