Index: chrome/browser/sync_file_system/sync_file_system_service_factory.cc |
diff --git a/chrome/browser/sync_file_system/sync_file_system_service_factory.cc b/chrome/browser/sync_file_system/sync_file_system_service_factory.cc |
index 66bb87a2515662b5a6d0cae23734af27fe9d7bee..36b8d6f54181242d3e581e5d3b2b33ee3187156e 100644 |
--- a/chrome/browser/sync_file_system/sync_file_system_service_factory.cc |
+++ b/chrome/browser/sync_file_system/sync_file_system_service_factory.cc |
@@ -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)); |