| 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 "components/autofill/core/browser/webdata/autocomplete_syncable_service
.h" | 5 #include "components/autofill/core/browser/webdata/autocomplete_syncable_service
.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 | 66 |
| 67 AutocompleteSyncableService::AutocompleteSyncableService( | 67 AutocompleteSyncableService::AutocompleteSyncableService( |
| 68 AutofillWebDataBackend* web_data_backend) | 68 AutofillWebDataBackend* web_data_backend) |
| 69 : web_data_backend_(web_data_backend), scoped_observer_(this) { | 69 : web_data_backend_(web_data_backend), scoped_observer_(this) { |
| 70 DCHECK(web_data_backend_); | 70 DCHECK(web_data_backend_); |
| 71 | 71 |
| 72 scoped_observer_.Add(web_data_backend_); | 72 scoped_observer_.Add(web_data_backend_); |
| 73 } | 73 } |
| 74 | 74 |
| 75 AutocompleteSyncableService::~AutocompleteSyncableService() { | 75 AutocompleteSyncableService::~AutocompleteSyncableService() { |
| 76 DCHECK(CalledOnValidThread()); | 76 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 77 } | 77 } |
| 78 | 78 |
| 79 // static | 79 // static |
| 80 void AutocompleteSyncableService::CreateForWebDataServiceAndBackend( | 80 void AutocompleteSyncableService::CreateForWebDataServiceAndBackend( |
| 81 AutofillWebDataService* web_data_service, | 81 AutofillWebDataService* web_data_service, |
| 82 AutofillWebDataBackend* web_data_backend) { | 82 AutofillWebDataBackend* web_data_backend) { |
| 83 web_data_service->GetDBUserData()->SetUserData( | 83 web_data_service->GetDBUserData()->SetUserData( |
| 84 UserDataKey(), | 84 UserDataKey(), |
| 85 base::WrapUnique(new AutocompleteSyncableService(web_data_backend))); | 85 base::WrapUnique(new AutocompleteSyncableService(web_data_backend))); |
| 86 } | 86 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 99 void AutocompleteSyncableService::InjectStartSyncFlare( | 99 void AutocompleteSyncableService::InjectStartSyncFlare( |
| 100 const syncer::SyncableService::StartSyncFlare& flare) { | 100 const syncer::SyncableService::StartSyncFlare& flare) { |
| 101 flare_ = flare; | 101 flare_ = flare; |
| 102 } | 102 } |
| 103 | 103 |
| 104 syncer::SyncMergeResult AutocompleteSyncableService::MergeDataAndStartSyncing( | 104 syncer::SyncMergeResult AutocompleteSyncableService::MergeDataAndStartSyncing( |
| 105 syncer::ModelType type, | 105 syncer::ModelType type, |
| 106 const syncer::SyncDataList& initial_sync_data, | 106 const syncer::SyncDataList& initial_sync_data, |
| 107 std::unique_ptr<syncer::SyncChangeProcessor> sync_processor, | 107 std::unique_ptr<syncer::SyncChangeProcessor> sync_processor, |
| 108 std::unique_ptr<syncer::SyncErrorFactory> error_handler) { | 108 std::unique_ptr<syncer::SyncErrorFactory> error_handler) { |
| 109 DCHECK(CalledOnValidThread()); | 109 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 110 DCHECK(!sync_processor_); | 110 DCHECK(!sync_processor_); |
| 111 DCHECK(sync_processor); | 111 DCHECK(sync_processor); |
| 112 DCHECK(error_handler); | 112 DCHECK(error_handler); |
| 113 | 113 |
| 114 syncer::SyncMergeResult merge_result(type); | 114 syncer::SyncMergeResult merge_result(type); |
| 115 error_handler_ = std::move(error_handler); | 115 error_handler_ = std::move(error_handler); |
| 116 std::vector<AutofillEntry> entries; | 116 std::vector<AutofillEntry> entries; |
| 117 if (!LoadAutofillData(&entries)) { | 117 if (!LoadAutofillData(&entries)) { |
| 118 merge_result.set_error(error_handler_->CreateAndUploadError( | 118 merge_result.set_error(error_handler_->CreateAndUploadError( |
| 119 FROM_HERE, | 119 FROM_HERE, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 // Otherwise, an item that Sync is not yet aware of might expire, causing a | 160 // Otherwise, an item that Sync is not yet aware of might expire, causing a |
| 161 // Sync error when that item's deletion is propagated to Sync. | 161 // Sync error when that item's deletion is propagated to Sync. |
| 162 web_data_backend_->RemoveExpiredFormElements(); | 162 web_data_backend_->RemoveExpiredFormElements(); |
| 163 | 163 |
| 164 web_data_backend_->NotifyThatSyncHasStarted(type); | 164 web_data_backend_->NotifyThatSyncHasStarted(type); |
| 165 | 165 |
| 166 return merge_result; | 166 return merge_result; |
| 167 } | 167 } |
| 168 | 168 |
| 169 void AutocompleteSyncableService::StopSyncing(syncer::ModelType type) { | 169 void AutocompleteSyncableService::StopSyncing(syncer::ModelType type) { |
| 170 DCHECK(CalledOnValidThread()); | 170 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 171 DCHECK_EQ(syncer::AUTOFILL, type); | 171 DCHECK_EQ(syncer::AUTOFILL, type); |
| 172 | 172 |
| 173 sync_processor_.reset(); | 173 sync_processor_.reset(); |
| 174 error_handler_.reset(); | 174 error_handler_.reset(); |
| 175 } | 175 } |
| 176 | 176 |
| 177 syncer::SyncDataList AutocompleteSyncableService::GetAllSyncData( | 177 syncer::SyncDataList AutocompleteSyncableService::GetAllSyncData( |
| 178 syncer::ModelType type) const { | 178 syncer::ModelType type) const { |
| 179 DCHECK(CalledOnValidThread()); | 179 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 180 DCHECK(sync_processor_); | 180 DCHECK(sync_processor_); |
| 181 DCHECK_EQ(type, syncer::AUTOFILL); | 181 DCHECK_EQ(type, syncer::AUTOFILL); |
| 182 | 182 |
| 183 syncer::SyncDataList current_data; | 183 syncer::SyncDataList current_data; |
| 184 | 184 |
| 185 std::vector<AutofillEntry> entries; | 185 std::vector<AutofillEntry> entries; |
| 186 if (!LoadAutofillData(&entries)) | 186 if (!LoadAutofillData(&entries)) |
| 187 return current_data; | 187 return current_data; |
| 188 | 188 |
| 189 for (const AutofillEntry& it : entries) | 189 for (const AutofillEntry& it : entries) |
| 190 current_data.push_back(CreateSyncData(it)); | 190 current_data.push_back(CreateSyncData(it)); |
| 191 | 191 |
| 192 return current_data; | 192 return current_data; |
| 193 } | 193 } |
| 194 | 194 |
| 195 syncer::SyncError AutocompleteSyncableService::ProcessSyncChanges( | 195 syncer::SyncError AutocompleteSyncableService::ProcessSyncChanges( |
| 196 const tracked_objects::Location& from_here, | 196 const tracked_objects::Location& from_here, |
| 197 const syncer::SyncChangeList& change_list) { | 197 const syncer::SyncChangeList& change_list) { |
| 198 DCHECK(CalledOnValidThread()); | 198 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 199 DCHECK(sync_processor_); | 199 DCHECK(sync_processor_); |
| 200 | 200 |
| 201 if (!sync_processor_) { | 201 if (!sync_processor_) { |
| 202 syncer::SyncError error(FROM_HERE, | 202 syncer::SyncError error(FROM_HERE, |
| 203 syncer::SyncError::DATATYPE_ERROR, | 203 syncer::SyncError::DATATYPE_ERROR, |
| 204 "Models not yet associated.", | 204 "Models not yet associated.", |
| 205 syncer::AUTOFILL); | 205 syncer::AUTOFILL); |
| 206 return error; | 206 return error; |
| 207 } | 207 } |
| 208 | 208 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 } | 283 } |
| 284 } | 284 } |
| 285 | 285 |
| 286 bool AutocompleteSyncableService::LoadAutofillData( | 286 bool AutocompleteSyncableService::LoadAutofillData( |
| 287 std::vector<AutofillEntry>* entries) const { | 287 std::vector<AutofillEntry>* entries) const { |
| 288 return GetAutofillTable()->GetAllAutofillEntries(entries); | 288 return GetAutofillTable()->GetAllAutofillEntries(entries); |
| 289 } | 289 } |
| 290 | 290 |
| 291 bool AutocompleteSyncableService::SaveChangesToWebData( | 291 bool AutocompleteSyncableService::SaveChangesToWebData( |
| 292 const std::vector<AutofillEntry>& new_entries) { | 292 const std::vector<AutofillEntry>& new_entries) { |
| 293 DCHECK(CalledOnValidThread()); | 293 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
| 294 if (!GetAutofillTable()->UpdateAutofillEntries(new_entries)) | 294 if (!GetAutofillTable()->UpdateAutofillEntries(new_entries)) |
| 295 return false; | 295 return false; |
| 296 | 296 |
| 297 web_data_backend_->NotifyOfMultipleAutofillChanges(); | 297 web_data_backend_->NotifyOfMultipleAutofillChanges(); |
| 298 return true; | 298 return true; |
| 299 } | 299 } |
| 300 | 300 |
| 301 // Creates or updates an autocomplete entry based on |data|. | 301 // Creates or updates an autocomplete entry based on |data|. |
| 302 void AutocompleteSyncableService::CreateOrUpdateEntry( | 302 void AutocompleteSyncableService::CreateOrUpdateEntry( |
| 303 const syncer::SyncData& data, | 303 const syncer::SyncData& data, |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 } | 421 } |
| 422 | 422 |
| 423 // static | 423 // static |
| 424 std::string AutocompleteSyncableService::KeyToTag(const std::string& name, | 424 std::string AutocompleteSyncableService::KeyToTag(const std::string& name, |
| 425 const std::string& value) { | 425 const std::string& value) { |
| 426 std::string prefix(kAutofillEntryNamespaceTag); | 426 std::string prefix(kAutofillEntryNamespaceTag); |
| 427 return prefix + net::EscapePath(name) + "|" + net::EscapePath(value); | 427 return prefix + net::EscapePath(name) + "|" + net::EscapePath(value); |
| 428 } | 428 } |
| 429 | 429 |
| 430 } // namespace autofill | 430 } // namespace autofill |
| OLD | NEW |