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

Side by Side Diff: chrome/browser/autofill/personal_data_manager.h

Issue 7461109: Allow sync integration tests to operate on multiple datatypes: Typed Urls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR feedback; rebase Created 9 years, 4 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
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ 5 #ifndef CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_
6 #define CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ 6 #define CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h" 15 #include "base/memory/scoped_vector.h"
16 #include "base/observer_list.h" 16 #include "base/observer_list.h"
17 #include "base/string16.h" 17 #include "base/string16.h"
18 #include "chrome/browser/autofill/autofill_profile.h" 18 #include "chrome/browser/autofill/autofill_profile.h"
19 #include "chrome/browser/autofill/credit_card.h" 19 #include "chrome/browser/autofill/credit_card.h"
20 #include "chrome/browser/autofill/field_types.h" 20 #include "chrome/browser/autofill/field_types.h"
21 #include "chrome/browser/sync/profile_sync_service_observer.h" 21 #include "chrome/browser/sync/profile_sync_service_observer.h"
22 #include "chrome/browser/webdata/web_data_service.h" 22 #include "chrome/browser/webdata/web_data_service.h"
23 23
24 class AutofillManager; 24 class AutofillManager;
25 class AutofillMetrics; 25 class AutofillMetrics;
26 class FormStructure; 26 class FormStructure;
27 class Profile; 27 class Profile;
28 28
29 namespace autofill_helper {
30 void SetProfiles(int, std::vector<AutofillProfile>*);
31 }
32
29 // Handles loading and saving Autofill profile information to the web database. 33 // Handles loading and saving Autofill profile information to the web database.
30 // This class also stores the profiles loaded from the database for use during 34 // This class also stores the profiles loaded from the database for use during
31 // Autofill. 35 // Autofill.
32 class PersonalDataManager 36 class PersonalDataManager
33 : public WebDataServiceConsumer, 37 : public WebDataServiceConsumer,
34 public ProfileSyncServiceObserver, 38 public ProfileSyncServiceObserver,
35 public base::RefCountedThreadSafe<PersonalDataManager> { 39 public base::RefCountedThreadSafe<PersonalDataManager> {
36 public: 40 public:
37 // An interface the PersonalDataManager uses to notify its clients (observers) 41 // An interface the PersonalDataManager uses to notify its clients (observers)
38 // when it has finished loading personal data from the web database. Register 42 // when it has finished loading personal data from the web database. Register
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 // result. 138 // result.
135 static bool MergeProfile( 139 static bool MergeProfile(
136 const AutofillProfile& profile, 140 const AutofillProfile& profile,
137 const std::vector<AutofillProfile*>& existing_profiles, 141 const std::vector<AutofillProfile*>& existing_profiles,
138 std::vector<AutofillProfile>* merged_profiles); 142 std::vector<AutofillProfile>* merged_profiles);
139 143
140 protected: 144 protected:
141 // Make sure that only Profile and certain tests can create an instance of 145 // Make sure that only Profile and certain tests can create an instance of
142 // PersonalDataManager. 146 // PersonalDataManager.
143 friend class base::RefCountedThreadSafe<PersonalDataManager>; 147 friend class base::RefCountedThreadSafe<PersonalDataManager>;
144 friend class AutofillHelper;
145 friend class AutofillMergeTest; 148 friend class AutofillMergeTest;
146 friend class PersonalDataManagerTest; 149 friend class PersonalDataManagerTest;
147 friend class ProfileImpl; 150 friend class ProfileImpl;
148 friend class ProfileSyncServiceAutofillTest; 151 friend class ProfileSyncServiceAutofillTest;
149 friend class TestingAutomationProvider; 152 friend class TestingAutomationProvider;
153 friend void autofill_helper::SetProfiles(int, std::vector<AutofillProfile>*);
150 154
151 PersonalDataManager(); 155 PersonalDataManager();
152 virtual ~PersonalDataManager(); 156 virtual ~PersonalDataManager();
153 157
154 // Sets |web_profiles_| to the contents of |profiles| and updates the web 158 // Sets |web_profiles_| to the contents of |profiles| and updates the web
155 // database by adding, updating and removing profiles. 159 // database by adding, updating and removing profiles.
156 // The relationship between this and Refresh is subtle. 160 // The relationship between this and Refresh is subtle.
157 // A call to |SetProfiles| could include out-of-date data that may conflict 161 // A call to |SetProfiles| could include out-of-date data that may conflict
158 // if we didn't refresh-to-latest before an Autofill window was opened for 162 // if we didn't refresh-to-latest before an Autofill window was opened for
159 // editing. |SetProfiles| is implemented to make a "best effort" to apply the 163 // editing. |SetProfiles| is implemented to make a "best effort" to apply the
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 // For logging UMA metrics. Overridden by metrics tests. 244 // For logging UMA metrics. Overridden by metrics tests.
241 scoped_ptr<const AutofillMetrics> metric_logger_; 245 scoped_ptr<const AutofillMetrics> metric_logger_;
242 246
243 // Whether we have already logged the number of profiles this session. 247 // Whether we have already logged the number of profiles this session.
244 mutable bool has_logged_profile_count_; 248 mutable bool has_logged_profile_count_;
245 249
246 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager); 250 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager);
247 }; 251 };
248 252
249 #endif // CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ 253 #endif // CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698