OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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.h" | 5 #include "chrome/browser/sync_file_system/sync_file_system_service.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 // It's possible to get an invalid FileEntry. | 341 // It's possible to get an invalid FileEntry. |
342 if (!url.is_valid()) { | 342 if (!url.is_valid()) { |
343 base::MessageLoopProxy::current()->PostTask( | 343 base::MessageLoopProxy::current()->PostTask( |
344 FROM_HERE, | 344 FROM_HERE, |
345 base::Bind(callback, | 345 base::Bind(callback, |
346 SYNC_FILE_ERROR_INVALID_URL, | 346 SYNC_FILE_ERROR_INVALID_URL, |
347 SYNC_FILE_STATUS_UNKNOWN)); | 347 SYNC_FILE_STATUS_UNKNOWN)); |
348 return; | 348 return; |
349 } | 349 } |
350 | 350 |
351 if (GetRemoteService(url.origin())->IsConflicting(url)) { | |
352 base::MessageLoopProxy::current()->PostTask( | |
353 FROM_HERE, | |
354 base::Bind(callback, | |
355 SYNC_STATUS_OK, | |
356 SYNC_FILE_STATUS_CONFLICTING)); | |
357 return; | |
358 } | |
359 | |
360 local_service_->HasPendingLocalChanges( | 351 local_service_->HasPendingLocalChanges( |
361 url, | 352 url, |
362 base::Bind(&SyncFileSystemService::DidGetLocalChangeStatus, | 353 base::Bind(&SyncFileSystemService::DidGetLocalChangeStatus, |
363 AsWeakPtr(), callback)); | 354 AsWeakPtr(), callback)); |
364 } | 355 } |
365 | 356 |
366 void SyncFileSystemService::AddSyncEventObserver(SyncEventObserver* observer) { | 357 void SyncFileSystemService::AddSyncEventObserver(SyncEventObserver* observer) { |
367 observers_.AddObserver(observer); | 358 observers_.AddObserver(observer); |
368 } | 359 } |
369 | 360 |
370 void SyncFileSystemService::RemoveSyncEventObserver( | 361 void SyncFileSystemService::RemoveSyncEventObserver( |
371 SyncEventObserver* observer) { | 362 SyncEventObserver* observer) { |
372 observers_.RemoveObserver(observer); | 363 observers_.RemoveObserver(observer); |
373 } | 364 } |
374 | 365 |
375 ConflictResolutionPolicy SyncFileSystemService::GetConflictResolutionPolicy( | |
376 const GURL& origin) { | |
377 return GetRemoteService(origin)->GetConflictResolutionPolicy(origin); | |
378 } | |
379 | |
380 SyncStatusCode SyncFileSystemService::SetConflictResolutionPolicy( | |
381 const GURL& origin, | |
382 ConflictResolutionPolicy policy) { | |
383 UMA_HISTOGRAM_ENUMERATION("SyncFileSystem.ConflictResolutionPolicy", | |
384 policy, CONFLICT_RESOLUTION_POLICY_MAX); | |
385 return GetRemoteService(origin)->SetConflictResolutionPolicy(origin, policy); | |
386 } | |
387 | |
388 LocalChangeProcessor* SyncFileSystemService::GetLocalChangeProcessor( | 366 LocalChangeProcessor* SyncFileSystemService::GetLocalChangeProcessor( |
389 const GURL& origin) { | 367 const GURL& origin) { |
390 return GetRemoteService(origin)->GetLocalChangeProcessor(); | 368 return GetRemoteService(origin)->GetLocalChangeProcessor(); |
391 } | 369 } |
392 | 370 |
393 SyncFileSystemService::SyncFileSystemService(Profile* profile) | 371 SyncFileSystemService::SyncFileSystemService(Profile* profile) |
394 : profile_(profile), | 372 : profile_(profile), |
395 sync_enabled_(true) { | 373 sync_enabled_(true) { |
396 } | 374 } |
397 | 375 |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
797 if (!v2_remote_service_) { | 775 if (!v2_remote_service_) { |
798 v2_remote_service_ = RemoteFileSyncService::CreateForBrowserContext( | 776 v2_remote_service_ = RemoteFileSyncService::CreateForBrowserContext( |
799 RemoteFileSyncService::V2, profile_); | 777 RemoteFileSyncService::V2, profile_); |
800 scoped_ptr<RemoteSyncRunner> v2_remote_syncer( | 778 scoped_ptr<RemoteSyncRunner> v2_remote_syncer( |
801 new RemoteSyncRunner(kRemoteSyncNameV2, this, | 779 new RemoteSyncRunner(kRemoteSyncNameV2, this, |
802 v2_remote_service_.get())); | 780 v2_remote_service_.get())); |
803 v2_remote_service_->AddServiceObserver(v2_remote_syncer.get()); | 781 v2_remote_service_->AddServiceObserver(v2_remote_syncer.get()); |
804 v2_remote_service_->AddFileStatusObserver(this); | 782 v2_remote_service_->AddFileStatusObserver(this); |
805 v2_remote_service_->SetRemoteChangeProcessor(local_service_.get()); | 783 v2_remote_service_->SetRemoteChangeProcessor(local_service_.get()); |
806 v2_remote_service_->SetSyncEnabled(sync_enabled_); | 784 v2_remote_service_->SetSyncEnabled(sync_enabled_); |
807 v2_remote_service_->SetDefaultConflictResolutionPolicy( | |
808 remote_service_->GetDefaultConflictResolutionPolicy()); | |
809 remote_sync_runners_.push_back(v2_remote_syncer.release()); | 785 remote_sync_runners_.push_back(v2_remote_syncer.release()); |
810 } | 786 } |
811 return v2_remote_service_.get(); | 787 return v2_remote_service_.get(); |
812 } | 788 } |
813 | 789 |
814 } // namespace sync_file_system | 790 } // namespace sync_file_system |
OLD | NEW |