OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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/local/sync_file_system_backend.h" | 5 #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 265 |
266 void SyncFileSystemBackend::InitializeSyncFileSystemService( | 266 void SyncFileSystemBackend::InitializeSyncFileSystemService( |
267 const GURL& origin_url, | 267 const GURL& origin_url, |
268 const SyncStatusCallback& callback) { | 268 const SyncStatusCallback& callback) { |
269 // Repost to switch from IO thread to UI thread. | 269 // Repost to switch from IO thread to UI thread. |
270 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { | 270 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
271 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 271 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
272 // It is safe to pass Unretained(this) (see comments in OpenFileSystem()). | 272 // It is safe to pass Unretained(this) (see comments in OpenFileSystem()). |
273 BrowserThread::PostTask( | 273 BrowserThread::PostTask( |
274 BrowserThread::UI, FROM_HERE, | 274 BrowserThread::UI, FROM_HERE, |
275 base::Bind(&SyncFileSystemBackend::InitializeSyncFileSystemService, | 275 base::BindOnce(&SyncFileSystemBackend::InitializeSyncFileSystemService, |
276 base::Unretained(this), origin_url, callback)); | 276 base::Unretained(this), origin_url, callback)); |
277 return; | 277 return; |
278 } | 278 } |
279 | 279 |
280 if (!profile_holder_->GetProfile()) { | 280 if (!profile_holder_->GetProfile()) { |
281 // Profile was destroyed. | 281 // Profile was destroyed. |
282 callback.Run(SYNC_FILE_ERROR_FAILED); | 282 callback.Run(SYNC_FILE_ERROR_FAILED); |
283 return; | 283 return; |
284 } | 284 } |
285 | 285 |
286 SyncFileSystemService* service = SyncFileSystemServiceFactory::GetForProfile( | 286 SyncFileSystemService* service = SyncFileSystemServiceFactory::GetForProfile( |
287 profile_holder_->GetProfile()); | 287 profile_holder_->GetProfile()); |
288 DCHECK(service); | 288 DCHECK(service); |
289 service->InitializeForApp(context_, origin_url, callback); | 289 service->InitializeForApp(context_, origin_url, callback); |
290 } | 290 } |
291 | 291 |
292 void SyncFileSystemBackend::DidInitializeSyncFileSystemService( | 292 void SyncFileSystemBackend::DidInitializeSyncFileSystemService( |
293 storage::FileSystemContext* context, | 293 storage::FileSystemContext* context, |
294 const GURL& origin_url, | 294 const GURL& origin_url, |
295 storage::FileSystemType type, | 295 storage::FileSystemType type, |
296 storage::OpenFileSystemMode mode, | 296 storage::OpenFileSystemMode mode, |
297 const OpenFileSystemCallback& callback, | 297 const OpenFileSystemCallback& callback, |
298 SyncStatusCode status) { | 298 SyncStatusCode status) { |
299 // Repost to switch from UI thread to IO thread. | 299 // Repost to switch from UI thread to IO thread. |
300 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 300 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
301 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 301 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
302 // It is safe to pass Unretained(this) since |context| owns it. | 302 // It is safe to pass Unretained(this) since |context| owns it. |
303 BrowserThread::PostTask( | 303 BrowserThread::PostTask( |
304 BrowserThread::IO, FROM_HERE, | 304 BrowserThread::IO, FROM_HERE, |
305 base::Bind(&SyncFileSystemBackend::DidInitializeSyncFileSystemService, | 305 base::BindOnce( |
306 base::Unretained(this), base::RetainedRef(context), | 306 &SyncFileSystemBackend::DidInitializeSyncFileSystemService, |
307 origin_url, type, mode, callback, status)); | 307 base::Unretained(this), base::RetainedRef(context), origin_url, |
| 308 type, mode, callback, status)); |
308 return; | 309 return; |
309 } | 310 } |
310 | 311 |
311 if (status != sync_file_system::SYNC_STATUS_OK) { | 312 if (status != sync_file_system::SYNC_STATUS_OK) { |
312 callback.Run(GURL(), std::string(), | 313 callback.Run(GURL(), std::string(), |
313 SyncStatusCodeToFileError(status)); | 314 SyncStatusCodeToFileError(status)); |
314 return; | 315 return; |
315 } | 316 } |
316 | 317 |
317 callback.Run(GetSyncableFileSystemRootURI(origin_url), | 318 callback.Run(GetSyncableFileSystemRootURI(origin_url), |
318 GetFileSystemName(origin_url, type), | 319 GetFileSystemName(origin_url, type), |
319 base::File::FILE_OK); | 320 base::File::FILE_OK); |
320 } | 321 } |
321 | 322 |
322 } // namespace sync_file_system | 323 } // namespace sync_file_system |
OLD | NEW |