| 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/glue/sync_backend_host_core.h" | 5 #include "chrome/browser/sync/glue/sync_backend_host_core.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "chrome/browser/sync/glue/device_info.h" | 10 #include "chrome/browser/sync/glue/device_info.h" |
| (...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 } | 633 } |
| 634 | 634 |
| 635 void SyncBackendHostCore::DeleteSyncDataFolder() { | 635 void SyncBackendHostCore::DeleteSyncDataFolder() { |
| 636 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); | 636 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); |
| 637 if (base::DirectoryExists(sync_data_folder_path_)) { | 637 if (base::DirectoryExists(sync_data_folder_path_)) { |
| 638 if (!base::DeleteFile(sync_data_folder_path_, true)) | 638 if (!base::DeleteFile(sync_data_folder_path_, true)) |
| 639 SLOG(DFATAL) << "Could not delete the Sync Data folder."; | 639 SLOG(DFATAL) << "Could not delete the Sync Data folder."; |
| 640 } | 640 } |
| 641 } | 641 } |
| 642 | 642 |
| 643 void SyncBackendHostCore::GetAllNodesForTypes( |
| 644 syncer::ModelTypeSet types, |
| 645 scoped_refptr<base::SequencedTaskRunner> task_runner, |
| 646 base::Callback<void(const std::vector<syncer::ModelType>& type, |
| 647 ScopedVector<base::ListValue>)> callback) { |
| 648 std::vector<syncer::ModelType> types_vector; |
| 649 ScopedVector<base::ListValue> node_lists; |
| 650 |
| 651 syncer::ModelSafeRoutingInfo routes; |
| 652 registrar_->GetModelSafeRoutingInfo(&routes); |
| 653 syncer::ModelTypeSet enabled_types = GetRoutingInfoTypes(routes); |
| 654 |
| 655 for (syncer::ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) { |
| 656 types_vector.push_back(it.Get()); |
| 657 if (!enabled_types.Has(it.Get())) { |
| 658 node_lists.push_back(new base::ListValue()); |
| 659 } else { |
| 660 node_lists.push_back( |
| 661 sync_manager_->GetAllNodesForType(it.Get()).release()); |
| 662 } |
| 663 } |
| 664 |
| 665 task_runner->PostTask( |
| 666 FROM_HERE, |
| 667 base::Bind(callback, types_vector, base::Passed(&node_lists))); |
| 668 } |
| 669 |
| 643 void SyncBackendHostCore::StartSavingChanges() { | 670 void SyncBackendHostCore::StartSavingChanges() { |
| 644 // We may already be shut down. | 671 // We may already be shut down. |
| 645 if (!sync_loop_) | 672 if (!sync_loop_) |
| 646 return; | 673 return; |
| 647 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); | 674 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); |
| 648 DCHECK(!save_changes_timer_.get()); | 675 DCHECK(!save_changes_timer_.get()); |
| 649 save_changes_timer_.reset(new base::RepeatingTimer<SyncBackendHostCore>()); | 676 save_changes_timer_.reset(new base::RepeatingTimer<SyncBackendHostCore>()); |
| 650 save_changes_timer_->Start(FROM_HERE, | 677 save_changes_timer_->Start(FROM_HERE, |
| 651 base::TimeDelta::FromSeconds(kSaveChangesIntervalSeconds), | 678 base::TimeDelta::FromSeconds(kSaveChangesIntervalSeconds), |
| 652 this, &SyncBackendHostCore::SaveChanges); | 679 this, &SyncBackendHostCore::SaveChanges); |
| 653 } | 680 } |
| 654 | 681 |
| 655 void SyncBackendHostCore::SaveChanges() { | 682 void SyncBackendHostCore::SaveChanges() { |
| 656 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); | 683 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); |
| 657 sync_manager_->SaveChanges(); | 684 sync_manager_->SaveChanges(); |
| 658 } | 685 } |
| 659 | 686 |
| 660 } // namespace browser_sync | 687 } // namespace browser_sync |
| 661 | 688 |
| OLD | NEW |