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

Side by Side Diff: chrome/browser/webdata/autofill_profile_syncable_service.h

Issue 12494020: Remove knowledge of Chrome-specific SyncableService classes from WebDataService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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) 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 #ifndef CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_ 4 #ifndef CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_
5 #define CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_ 5 #define CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 11 matching lines...) Expand all
22 #include "sync/api/sync_data.h" 22 #include "sync/api/sync_data.h"
23 #include "sync/api/sync_error.h" 23 #include "sync/api/sync_error.h"
24 #include "sync/api/syncable_service.h" 24 #include "sync/api/syncable_service.h"
25 #include "sync/protocol/autofill_specifics.pb.h" 25 #include "sync/protocol/autofill_specifics.pb.h"
26 26
27 class AutofillProfile; 27 class AutofillProfile;
28 class AutofillTable; 28 class AutofillTable;
29 class FormGroup; 29 class FormGroup;
30 class ProfileSyncServiceAutofillTest; 30 class ProfileSyncServiceAutofillTest;
31 class WebDataService; 31 class WebDataService;
32 class WebDataServiceBase;
32 33
33 extern const char kAutofillProfileTag[]; 34 extern const char kAutofillProfileTag[];
34 35
35 // The sync implementation for AutofillProfiles. 36 // The sync implementation for AutofillProfiles.
36 // MergeDataAndStartSyncing() called first, it does cloud->local and 37 // MergeDataAndStartSyncing() called first, it does cloud->local and
37 // local->cloud syncs. Then for each cloud change we receive 38 // local->cloud syncs. Then for each cloud change we receive
38 // ProcessSyncChanges() and for each local change Observe() is called. 39 // ProcessSyncChanges() and for each local change Observe() is called.
39 class AutofillProfileSyncableService 40 class AutofillProfileSyncableService
40 : public syncer::SyncableService, 41 : public syncer::SyncableService,
41 public content::NotificationObserver, 42 public content::NotificationObserver,
42 public base::NonThreadSafe { 43 public base::NonThreadSafe {
43 public: 44 public:
44 explicit AutofillProfileSyncableService(WebDataService* web_data_service); 45 explicit AutofillProfileSyncableService(WebDataService* web_data_service);
45 virtual ~AutofillProfileSyncableService(); 46 virtual ~AutofillProfileSyncableService();
46 47
48 // Retrieves the AutofillProfileSyncableService stored on |web_data|.
49 static AutofillProfileSyncableService* FromWebData(
50 WebDataServiceBase* web_data);
51
52 // Attaches |service| to |web_data|, transferring ownership to |web_data|.
53 static void AttachToWebData(
54 scoped_ptr<AutofillProfileSyncableService> service,
55 WebDataServiceBase* web_data);
56
47 static syncer::ModelType model_type() { return syncer::AUTOFILL_PROFILE; } 57 static syncer::ModelType model_type() { return syncer::AUTOFILL_PROFILE; }
48 58
49 // syncer::SyncableService implementation. 59 // syncer::SyncableService implementation.
50 virtual syncer::SyncMergeResult MergeDataAndStartSyncing( 60 virtual syncer::SyncMergeResult MergeDataAndStartSyncing(
51 syncer::ModelType type, 61 syncer::ModelType type,
52 const syncer::SyncDataList& initial_sync_data, 62 const syncer::SyncDataList& initial_sync_data,
53 scoped_ptr<syncer::SyncChangeProcessor> sync_processor, 63 scoped_ptr<syncer::SyncChangeProcessor> sync_processor,
54 scoped_ptr<syncer::SyncErrorFactory> sync_error_factory) OVERRIDE; 64 scoped_ptr<syncer::SyncErrorFactory> sync_error_factory) OVERRIDE;
55 virtual void StopSyncing(syncer::ModelType type) OVERRIDE; 65 virtual void StopSyncing(syncer::ModelType type) OVERRIDE;
56 virtual syncer::SyncDataList GetAllSyncData( 66 virtual syncer::SyncDataList GetAllSyncData(
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 std::vector<AutofillProfile*> profiles_to_add; 192 std::vector<AutofillProfile*> profiles_to_add;
183 193
184 // When we go through sync we find profiles that are similar but unmatched. 194 // When we go through sync we find profiles that are similar but unmatched.
185 // Merge such profiles. 195 // Merge such profiles.
186 GUIDToProfileMap candidates_to_merge; 196 GUIDToProfileMap candidates_to_merge;
187 // Profiles that have multi-valued fields that are not in sync. 197 // Profiles that have multi-valued fields that are not in sync.
188 std::vector<AutofillProfile*> profiles_to_sync_back; 198 std::vector<AutofillProfile*> profiles_to_sync_back;
189 }; 199 };
190 200
191 #endif // CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_ 201 #endif // CHROME_BROWSER_WEBDATA_AUTOFILL_PROFILE_SYNCABLE_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698