Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/browser/webdata/autocomplete_syncable_service.cc

Issue 9460047: sync: remove use of protobuf extensions in protocol to reduce static init overhead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fred's review Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/webdata/autocomplete_syncable_service.h" 5 #include "chrome/browser/webdata/autocomplete_syncable_service.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/sync/api/sync_error.h" 11 #include "chrome/browser/sync/api/sync_error.h"
12 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h" 12 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h"
13 #include "chrome/browser/sync/protocol/sync.pb.h"
13 #include "chrome/browser/webdata/autofill_table.h" 14 #include "chrome/browser/webdata/autofill_table.h"
14 #include "chrome/browser/webdata/web_data_service.h" 15 #include "chrome/browser/webdata/web_data_service.h"
15 #include "chrome/browser/webdata/web_database.h" 16 #include "chrome/browser/webdata/web_database.h"
16 #include "chrome/common/chrome_notification_types.h" 17 #include "chrome/common/chrome_notification_types.h"
17 #include "chrome/common/guid.h" 18 #include "chrome/common/guid.h"
18 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
19 #include "content/public/browser/notification_service.h" 20 #include "content/public/browser/notification_service.h"
20 #include "net/base/escape.h" 21 #include "net/base/escape.h"
21 22
22 using content::BrowserThread; 23 using content::BrowserThread;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 db_entries.reset(new AutocompleteEntryMap); 187 db_entries.reset(new AutocompleteEntryMap);
187 for (std::vector<AutofillEntry>::iterator it = entries.begin(); 188 for (std::vector<AutofillEntry>::iterator it = entries.begin();
188 it != entries.end(); ++it) { 189 it != entries.end(); ++it) {
189 (*db_entries)[it->key()] = 190 (*db_entries)[it->key()] =
190 std::make_pair(SyncChange::ACTION_ADD, it); 191 std::make_pair(SyncChange::ACTION_ADD, it);
191 } 192 }
192 } 193 }
193 CreateOrUpdateEntry(i->sync_data(), db_entries.get(), &new_entries); 194 CreateOrUpdateEntry(i->sync_data(), db_entries.get(), &new_entries);
194 break; 195 break;
195 case SyncChange::ACTION_DELETE: { 196 case SyncChange::ACTION_DELETE: {
196 DCHECK(i->sync_data().GetSpecifics().HasExtension(sync_pb::autofill)) 197 DCHECK(i->sync_data().GetSpecifics().has_autofill())
197 << "Autofill specifics data not present on delete!"; 198 << "Autofill specifics data not present on delete!";
198 const sync_pb::AutofillSpecifics& autofill = 199 const sync_pb::AutofillSpecifics& autofill =
199 i->sync_data().GetSpecifics().GetExtension(sync_pb::autofill); 200 i->sync_data().GetSpecifics().autofill();
200 if (autofill.has_value()) { 201 if (autofill.has_value()) {
201 list_processing_error = AutofillEntryDelete(autofill); 202 list_processing_error = AutofillEntryDelete(autofill);
202 } else { 203 } else {
203 DLOG(WARNING) 204 DLOG(WARNING)
204 << "Delete for old-style autofill profile being dropped!"; 205 << "Delete for old-style autofill profile being dropped!";
205 } 206 }
206 } break; 207 } break;
207 default: 208 default:
208 NOTREACHED() << "Unexpected sync change state."; 209 NOTREACHED() << "Unexpected sync change state.";
209 return SyncError(FROM_HERE, "ProcessSyncChanges failed on ChangeType " + 210 return SyncError(FROM_HERE, "ProcessSyncChanges failed on ChangeType " +
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 return true; 259 return true;
259 } 260 }
260 261
261 // Creates or updates an autocomplete entry based on |data|. 262 // Creates or updates an autocomplete entry based on |data|.
262 void AutocompleteSyncableService::CreateOrUpdateEntry( 263 void AutocompleteSyncableService::CreateOrUpdateEntry(
263 const SyncData& data, 264 const SyncData& data,
264 AutocompleteEntryMap* loaded_data, 265 AutocompleteEntryMap* loaded_data,
265 std::vector<AutofillEntry>* new_entries) { 266 std::vector<AutofillEntry>* new_entries) {
266 const sync_pb::EntitySpecifics& specifics = data.GetSpecifics(); 267 const sync_pb::EntitySpecifics& specifics = data.GetSpecifics();
267 const sync_pb::AutofillSpecifics& autofill_specifics( 268 const sync_pb::AutofillSpecifics& autofill_specifics(
268 specifics.GetExtension(sync_pb::autofill)); 269 specifics.autofill());
269 270
270 if (!autofill_specifics.has_value()) { 271 if (!autofill_specifics.has_value()) {
271 DLOG(WARNING) 272 DLOG(WARNING)
272 << "Add/Update for old-style autofill profile being dropped!"; 273 << "Add/Update for old-style autofill profile being dropped!";
273 return; 274 return;
274 } 275 }
275 276
276 AutofillKey key(autofill_specifics.name().c_str(), 277 AutofillKey key(autofill_specifics.name().c_str(),
277 autofill_specifics.value().c_str()); 278 autofill_specifics.value().c_str());
278 AutocompleteEntryMap::iterator it = loaded_data->find(key); 279 AutocompleteEntryMap::iterator it = loaded_data->find(key);
(...skipping 22 matching lines...) Expand all
301 } else { 302 } else {
302 loaded_data->erase(it); 303 loaded_data->erase(it);
303 } 304 }
304 } 305 }
305 } 306 }
306 307
307 // static 308 // static
308 void AutocompleteSyncableService::WriteAutofillEntry( 309 void AutocompleteSyncableService::WriteAutofillEntry(
309 const AutofillEntry& entry, sync_pb::EntitySpecifics* autofill_specifics) { 310 const AutofillEntry& entry, sync_pb::EntitySpecifics* autofill_specifics) {
310 sync_pb::AutofillSpecifics* autofill = 311 sync_pb::AutofillSpecifics* autofill =
311 autofill_specifics->MutableExtension(sync_pb::autofill); 312 autofill_specifics->mutable_autofill();
312 autofill->set_name(UTF16ToUTF8(entry.key().name())); 313 autofill->set_name(UTF16ToUTF8(entry.key().name()));
313 autofill->set_value(UTF16ToUTF8(entry.key().value())); 314 autofill->set_value(UTF16ToUTF8(entry.key().value()));
314 const std::vector<base::Time>& ts(entry.timestamps()); 315 const std::vector<base::Time>& ts(entry.timestamps());
315 for (std::vector<base::Time>::const_iterator timestamp = ts.begin(); 316 for (std::vector<base::Time>::const_iterator timestamp = ts.begin();
316 timestamp != ts.end(); ++timestamp) { 317 timestamp != ts.end(); ++timestamp) {
317 autofill->add_usage_timestamp(timestamp->ToInternalValue()); 318 autofill->add_usage_timestamp(timestamp->ToInternalValue());
318 } 319 }
319 } 320 }
320 321
321 SyncError AutocompleteSyncableService::AutofillEntryDelete( 322 SyncError AutocompleteSyncableService::AutofillEntryDelete(
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 UTF16ToUTF8(entry.key().value()))); 384 UTF16ToUTF8(entry.key().value())));
384 return SyncData::CreateLocalData(tag, tag, autofill_specifics); 385 return SyncData::CreateLocalData(tag, tag, autofill_specifics);
385 } 386 }
386 387
387 // static 388 // static
388 std::string AutocompleteSyncableService::KeyToTag(const std::string& name, 389 std::string AutocompleteSyncableService::KeyToTag(const std::string& name,
389 const std::string& value) { 390 const std::string& value) {
390 std::string ns(kAutofillEntryNamespaceTag); 391 std::string ns(kAutofillEntryNamespaceTag);
391 return ns + net::EscapePath(name) + "|" + net::EscapePath(value); 392 return ns + net::EscapePath(name) + "|" + net::EscapePath(value);
392 } 393 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/test/integration/sync_test.cc ('k') | chrome/browser/webdata/autofill_profile_syncable_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698