Commit 8cb771e7 authored by tzik@chromium.org's avatar tzik@chromium.org

[SyncFS] Add DriveUploader to SyncEngineContext

BUG=240165
NOTRY=true

Review URL: https://codereview.chromium.org/73613003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235727 0039d316-1c4b-4281-b951-d872f2087c98
parent 35adb3f6
......@@ -64,6 +64,10 @@ class ListChangesTaskTest : public testing::Test,
return fake_drive_service_.get();
}
virtual drive::DriveUploader* GetDriveUploader() OVERRIDE {
return NULL;
}
virtual MetadataDatabase* GetMetadataDatabase() OVERRIDE {
return metadata_database_.get();
}
......
......@@ -9,6 +9,7 @@
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/drive/drive_uploader.h"
#include "chrome/browser/drive/fake_drive_service.h"
#include "chrome/browser/google_apis/gdata_wapi_parser.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
......@@ -67,6 +68,10 @@ class RegisterAppTaskTest : public testing::Test,
return fake_drive_service_.get();
}
virtual drive::DriveUploaderInterface* GetDriveUploader() OVERRIDE {
return NULL;
}
virtual MetadataDatabase* GetMetadataDatabase() OVERRIDE {
return metadata_database_.get();
}
......
......@@ -6,8 +6,9 @@
#include "base/bind.h"
#include "base/values.h"
#include "chrome/browser/drive/drive_api_service.h"
#include "chrome/browser/drive/drive_notification_manager.h"
#include "chrome/browser/drive/drive_service_interface.h"
#include "chrome/browser/drive/drive_uploader.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
#include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h"
......@@ -34,11 +35,13 @@ SyncEngine::SyncEngine(
const base::FilePath& base_dir,
base::SequencedTaskRunner* task_runner,
scoped_ptr<drive::DriveServiceInterface> drive_service,
scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
drive::DriveNotificationManager* notification_manager,
ExtensionServiceInterface* extension_service)
: base_dir_(base_dir),
task_runner_(task_runner),
drive_service_(drive_service.Pass()),
drive_uploader_(drive_uploader.Pass()),
notification_manager_(notification_manager),
extension_service_(extension_service),
remote_change_processor_(NULL),
......@@ -275,6 +278,10 @@ drive::DriveServiceInterface* SyncEngine::GetDriveService() {
return drive_service_.get();
}
drive::DriveUploaderInterface* SyncEngine::GetDriveUploader() {
return drive_uploader_.get();
}
MetadataDatabase* SyncEngine::GetMetadataDatabase() {
return metadata_database_.get();
}
......
......@@ -48,6 +48,7 @@ class SyncEngine : public RemoteFileSyncService,
SyncEngine(const base::FilePath& base_dir,
base::SequencedTaskRunner* task_runner,
scoped_ptr<drive::DriveServiceInterface> drive_service,
scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
drive::DriveNotificationManager* notification_manager,
ExtensionServiceInterface* extension_service);
virtual ~SyncEngine();
......@@ -116,6 +117,7 @@ class SyncEngine : public RemoteFileSyncService,
// SyncEngineContext overrides.
virtual drive::DriveServiceInterface* GetDriveService() OVERRIDE;
virtual drive::DriveUploaderInterface* GetDriveUploader() OVERRIDE;
virtual MetadataDatabase* GetMetadataDatabase() OVERRIDE;
virtual RemoteChangeProcessor* GetRemoteChangeProcessor() OVERRIDE;
......@@ -150,6 +152,7 @@ class SyncEngine : public RemoteFileSyncService,
scoped_refptr<base::SequencedTaskRunner> task_runner_;
scoped_ptr<drive::DriveServiceInterface> drive_service_;
scoped_ptr<drive::DriveUploaderInterface> drive_uploader_;
scoped_ptr<MetadataDatabase> metadata_database_;
// These external services are not owned by SyncEngine.
......
......@@ -9,6 +9,7 @@
namespace drive {
class DriveServiceInterface;
class DriveUploaderInterface;
}
namespace sync_file_system {
......@@ -25,6 +26,7 @@ class SyncEngineContext {
~SyncEngineContext() {}
virtual drive::DriveServiceInterface* GetDriveService() = 0;
virtual drive::DriveUploaderInterface* GetDriveUploader() = 0;
virtual MetadataDatabase* GetMetadataDatabase() = 0;
virtual RemoteChangeProcessor* GetRemoteChangeProcessor() = 0;
......
......@@ -7,6 +7,7 @@
#include "base/files/scoped_temp_dir.h"
#include "base/run_loop.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/drive/drive_uploader.h"
#include "chrome/browser/drive/fake_drive_service.h"
#include "chrome/browser/extensions/test_extension_service.h"
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
......@@ -93,6 +94,7 @@ class SyncEngineTest : public testing::Test {
profile_dir_.path(),
base::MessageLoopProxy::current(),
fake_drive_service.PassAs<drive::DriveServiceInterface>(),
scoped_ptr<drive::DriveUploaderInterface>(),
NULL,
extension_service_.get()));
sync_engine_->Initialize();
......
......@@ -8,6 +8,7 @@
#include "base/threading/sequenced_worker_pool.h"
#include "chrome/browser/drive/drive_api_service.h"
#include "chrome/browser/drive/drive_notification_manager_factory.h"
#include "chrome/browser/drive/drive_uploader.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/google_apis/drive_api_url_generator.h"
......@@ -81,19 +82,25 @@ SyncFileSystemServiceFactory::BuildServiceInstanceFor(
scoped_refptr<base::SequencedWorkerPool> worker_pool(
content::BrowserThread::GetBlockingPool());
scoped_refptr<base::SequencedTaskRunner> drive_task_runner(
worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
worker_pool->GetSequenceToken(),
base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
scoped_ptr<drive::DriveAPIService> drive_service(
scoped_ptr<drive::DriveServiceInterface> drive_service(
new drive::DriveAPIService(
token_service,
context->GetRequestContext(),
worker_pool->GetSequencedTaskRunner(
worker_pool->GetSequenceToken()).get(),
drive_task_runner.get(),
base_drive_url, base_download_url, wapi_base_url,
std::string() /* custom_user_agent */));
drive_service->Initialize(token_service->GetPrimaryAccountId());
scoped_ptr<drive::DriveUploaderInterface> drive_uploader(
new drive::DriveUploader(drive_service.get(), drive_task_runner.get()));
drive::DriveNotificationManager* notification_manager =
drive::DriveNotificationManagerFactory::GetForBrowserContext(profile);
ExtensionService* extension_service =
......@@ -108,7 +115,8 @@ SyncFileSystemServiceFactory::BuildServiceInstanceFor(
new drive_backend::SyncEngine(
GetSyncFileSystemDir(context->GetPath()),
task_runner.get(),
drive_service.PassAs<drive::DriveServiceInterface>(),
drive_service.Pass(),
drive_uploader.Pass(),
notification_manager,
extension_service));
......
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