| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/autofill/core/browser/webdata/autocomplete_sync_bridge.h" | 5 #include "components/autofill/core/browser/webdata/autocomplete_sync_bridge.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <unordered_set> | 9 #include <unordered_set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "components/sync/model_impl/sync_metadata_store_change_list.h" | 24 #include "components/sync/model_impl/sync_metadata_store_change_list.h" |
| 25 #include "net/base/escape.h" | 25 #include "net/base/escape.h" |
| 26 | 26 |
| 27 using base::Optional; | 27 using base::Optional; |
| 28 using base::Time; | 28 using base::Time; |
| 29 using base::debug::DumpWithoutCrashing; | 29 using base::debug::DumpWithoutCrashing; |
| 30 using sync_pb::AutofillSpecifics; | 30 using sync_pb::AutofillSpecifics; |
| 31 using syncer::EntityChange; | 31 using syncer::EntityChange; |
| 32 using syncer::EntityChangeList; | 32 using syncer::EntityChangeList; |
| 33 using syncer::EntityData; | 33 using syncer::EntityData; |
| 34 using syncer::EntityDataMap; | |
| 35 using syncer::MetadataChangeList; | 34 using syncer::MetadataChangeList; |
| 36 using syncer::ModelError; | 35 using syncer::ModelError; |
| 37 using syncer::ModelTypeChangeProcessor; | 36 using syncer::ModelTypeChangeProcessor; |
| 38 using syncer::ModelTypeSyncBridge; | 37 using syncer::ModelTypeSyncBridge; |
| 39 using syncer::MutableDataBatch; | 38 using syncer::MutableDataBatch; |
| 40 | 39 |
| 41 namespace autofill { | 40 namespace autofill { |
| 42 | 41 |
| 43 namespace { | 42 namespace { |
| 44 | 43 |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 | 318 |
| 320 std::unique_ptr<MetadataChangeList> | 319 std::unique_ptr<MetadataChangeList> |
| 321 AutocompleteSyncBridge::CreateMetadataChangeList() { | 320 AutocompleteSyncBridge::CreateMetadataChangeList() { |
| 322 DCHECK(thread_checker_.CalledOnValidThread()); | 321 DCHECK(thread_checker_.CalledOnValidThread()); |
| 323 return base::MakeUnique<syncer::SyncMetadataStoreChangeList>( | 322 return base::MakeUnique<syncer::SyncMetadataStoreChangeList>( |
| 324 GetAutofillTable(), syncer::AUTOFILL); | 323 GetAutofillTable(), syncer::AUTOFILL); |
| 325 } | 324 } |
| 326 | 325 |
| 327 Optional<syncer::ModelError> AutocompleteSyncBridge::MergeSyncData( | 326 Optional<syncer::ModelError> AutocompleteSyncBridge::MergeSyncData( |
| 328 std::unique_ptr<MetadataChangeList> metadata_change_list, | 327 std::unique_ptr<MetadataChangeList> metadata_change_list, |
| 329 EntityDataMap entity_data_map) { | 328 EntityChangeList entity_data) { |
| 330 DCHECK(thread_checker_.CalledOnValidThread()); | 329 DCHECK(thread_checker_.CalledOnValidThread()); |
| 331 | 330 |
| 332 SyncDifferenceTracker tracker(GetAutofillTable()); | 331 SyncDifferenceTracker tracker(GetAutofillTable()); |
| 333 for (auto kv : entity_data_map) { | 332 for (const auto& change : entity_data) { |
| 334 DCHECK(kv.second->specifics.has_autofill()); | 333 DCHECK(change.data().specifics.has_autofill()); |
| 335 RETURN_IF_ERROR(tracker.IncorporateRemoteSpecifics( | 334 RETURN_IF_ERROR(tracker.IncorporateRemoteSpecifics( |
| 336 kv.first, kv.second->specifics.autofill())); | 335 change.storage_key(), change.data().specifics.autofill())); |
| 337 } | 336 } |
| 338 | 337 |
| 339 RETURN_IF_ERROR(tracker.FlushToLocal(web_data_backend_)); | 338 RETURN_IF_ERROR(tracker.FlushToLocal(web_data_backend_)); |
| 340 RETURN_IF_ERROR(tracker.FlushToSync(true, std::move(metadata_change_list), | 339 RETURN_IF_ERROR(tracker.FlushToSync(true, std::move(metadata_change_list), |
| 341 change_processor())); | 340 change_processor())); |
| 342 web_data_backend_->RemoveExpiredFormElements(); | 341 web_data_backend_->RemoveExpiredFormElements(); |
| 343 web_data_backend_->NotifyThatSyncHasStarted(syncer::AUTOFILL); | 342 web_data_backend_->NotifyThatSyncHasStarted(syncer::AUTOFILL); |
| 344 return {}; | 343 return {}; |
| 345 } | 344 } |
| 346 | 345 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 const AutofillChangeList& changes) { | 488 const AutofillChangeList& changes) { |
| 490 DCHECK(thread_checker_.CalledOnValidThread()); | 489 DCHECK(thread_checker_.CalledOnValidThread()); |
| 491 ActOnLocalChanges(changes); | 490 ActOnLocalChanges(changes); |
| 492 } | 491 } |
| 493 | 492 |
| 494 AutofillTable* AutocompleteSyncBridge::GetAutofillTable() const { | 493 AutofillTable* AutocompleteSyncBridge::GetAutofillTable() const { |
| 495 return AutofillTable::FromWebDatabase(web_data_backend_->GetDatabase()); | 494 return AutofillTable::FromWebDatabase(web_data_backend_->GetDatabase()); |
| 496 } | 495 } |
| 497 | 496 |
| 498 } // namespace autofill | 497 } // namespace autofill |
| OLD | NEW |