OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sync_file_system/sync_file_system_service_factory.h" | 5 #include "chrome/browser/sync_file_system/sync_file_system_service_factory.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/threading/sequenced_worker_pool.h" | 8 #include "base/threading/sequenced_worker_pool.h" |
9 #include "chrome/browser/drive/drive_api_service.h" | 9 #include "chrome/browser/drive/drive_api_service.h" |
10 #include "chrome/browser/drive/drive_notification_manager_factory.h" | 10 #include "chrome/browser/drive/drive_notification_manager_factory.h" |
| 11 #include "chrome/browser/drive/drive_uploader.h" |
11 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
12 #include "chrome/browser/extensions/extension_system_factory.h" | 13 #include "chrome/browser/extensions/extension_system_factory.h" |
13 #include "chrome/browser/google_apis/drive_api_url_generator.h" | 14 #include "chrome/browser/google_apis/drive_api_url_generator.h" |
14 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h" | 15 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h" |
15 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/browser/signin/profile_oauth2_token_service.h" | 17 #include "chrome/browser/signin/profile_oauth2_token_service.h" |
17 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | 18 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
18 #include "chrome/browser/sync/profile_sync_service.h" | 19 #include "chrome/browser/sync/profile_sync_service.h" |
19 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" | 20 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" |
20 #include "chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_servi
ce.h" | 21 #include "chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_servi
ce.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 kEnableSyncFileSystemV2)) { | 75 kEnableSyncFileSystemV2)) { |
75 GURL base_drive_url( | 76 GURL base_drive_url( |
76 google_apis::DriveApiUrlGenerator::kBaseUrlForProduction); | 77 google_apis::DriveApiUrlGenerator::kBaseUrlForProduction); |
77 GURL base_download_url( | 78 GURL base_download_url( |
78 google_apis::DriveApiUrlGenerator::kBaseDownloadUrlForProduction); | 79 google_apis::DriveApiUrlGenerator::kBaseDownloadUrlForProduction); |
79 GURL wapi_base_url( | 80 GURL wapi_base_url( |
80 google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction); | 81 google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction); |
81 | 82 |
82 scoped_refptr<base::SequencedWorkerPool> worker_pool( | 83 scoped_refptr<base::SequencedWorkerPool> worker_pool( |
83 content::BrowserThread::GetBlockingPool()); | 84 content::BrowserThread::GetBlockingPool()); |
| 85 scoped_refptr<base::SequencedTaskRunner> drive_task_runner( |
| 86 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( |
| 87 worker_pool->GetSequenceToken(), |
| 88 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); |
84 | 89 |
85 ProfileOAuth2TokenService* token_service = | 90 ProfileOAuth2TokenService* token_service = |
86 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 91 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
87 scoped_ptr<drive::DriveAPIService> drive_service( | 92 scoped_ptr<drive::DriveServiceInterface> drive_service( |
88 new drive::DriveAPIService( | 93 new drive::DriveAPIService( |
89 token_service, | 94 token_service, |
90 context->GetRequestContext(), | 95 context->GetRequestContext(), |
91 worker_pool->GetSequencedTaskRunner( | 96 drive_task_runner.get(), |
92 worker_pool->GetSequenceToken()).get(), | |
93 base_drive_url, base_download_url, wapi_base_url, | 97 base_drive_url, base_download_url, wapi_base_url, |
94 std::string() /* custom_user_agent */)); | 98 std::string() /* custom_user_agent */)); |
95 drive_service->Initialize(token_service->GetPrimaryAccountId()); | 99 drive_service->Initialize(token_service->GetPrimaryAccountId()); |
96 | 100 |
| 101 scoped_ptr<drive::DriveUploaderInterface> drive_uploader( |
| 102 new drive::DriveUploader(drive_service.get(), drive_task_runner.get())); |
| 103 |
97 drive::DriveNotificationManager* notification_manager = | 104 drive::DriveNotificationManager* notification_manager = |
98 drive::DriveNotificationManagerFactory::GetForBrowserContext(profile); | 105 drive::DriveNotificationManagerFactory::GetForBrowserContext(profile); |
99 ExtensionService* extension_service = | 106 ExtensionService* extension_service = |
100 extensions::ExtensionSystem::Get(profile)->extension_service(); | 107 extensions::ExtensionSystem::Get(profile)->extension_service(); |
101 | 108 |
102 scoped_refptr<base::SequencedTaskRunner> task_runner( | 109 scoped_refptr<base::SequencedTaskRunner> task_runner( |
103 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( | 110 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( |
104 worker_pool->GetSequenceToken(), | 111 worker_pool->GetSequenceToken(), |
105 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); | 112 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); |
106 | 113 |
107 scoped_ptr<drive_backend::SyncEngine> sync_engine( | 114 scoped_ptr<drive_backend::SyncEngine> sync_engine( |
108 new drive_backend::SyncEngine( | 115 new drive_backend::SyncEngine( |
109 GetSyncFileSystemDir(context->GetPath()), | 116 GetSyncFileSystemDir(context->GetPath()), |
110 task_runner.get(), | 117 task_runner.get(), |
111 drive_service.PassAs<drive::DriveServiceInterface>(), | 118 drive_service.Pass(), |
| 119 drive_uploader.Pass(), |
112 notification_manager, | 120 notification_manager, |
113 extension_service)); | 121 extension_service)); |
114 | 122 |
115 sync_engine->Initialize(); | 123 sync_engine->Initialize(); |
116 remote_file_service = sync_engine.PassAs<RemoteFileSyncService>(); | 124 remote_file_service = sync_engine.PassAs<RemoteFileSyncService>(); |
117 } else { | 125 } else { |
118 remote_file_service = | 126 remote_file_service = |
119 DriveFileSyncService::Create(profile).PassAs<RemoteFileSyncService>(); | 127 DriveFileSyncService::Create(profile).PassAs<RemoteFileSyncService>(); |
120 } | 128 } |
121 | 129 |
122 if (CommandLine::ForCurrentProcess()->HasSwitch(kDisableLastWriteWin)) { | 130 if (CommandLine::ForCurrentProcess()->HasSwitch(kDisableLastWriteWin)) { |
123 remote_file_service->SetConflictResolutionPolicy( | 131 remote_file_service->SetConflictResolutionPolicy( |
124 CONFLICT_RESOLUTION_POLICY_MANUAL); | 132 CONFLICT_RESOLUTION_POLICY_MANUAL); |
125 } | 133 } |
126 | 134 |
127 service->Initialize(local_file_service.Pass(), | 135 service->Initialize(local_file_service.Pass(), |
128 remote_file_service.Pass()); | 136 remote_file_service.Pass()); |
129 return service; | 137 return service; |
130 } | 138 } |
131 | 139 |
132 } // namespace sync_file_system | 140 } // namespace sync_file_system |
OLD | NEW |