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

Side by Side Diff: chrome/browser/sync/profile_sync_service_harness.h

Issue 5801003: Fix passphrase initialization flow in ProfileSyncServiceHarness (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding 2 new tests for Passphrases. Created 10 years 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/browser/sync/profile_sync_service_harness.cc » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ 5 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_
6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/time.h" 12 #include "base/time.h"
13 #include "chrome/browser/sync/profile_sync_service.h" 13 #include "chrome/browser/sync/profile_sync_service.h"
14 #include "chrome/common/notification_observer.h"
15 #include "chrome/common/notification_registrar.h"
16 14
17 using browser_sync::sessions::SyncSessionSnapshot; 15 using browser_sync::sessions::SyncSessionSnapshot;
18 16
19 class Profile; 17 class Profile;
20 18
21 // An instance of this class is basically our notion of a "sync client" for 19 // An instance of this class is basically our notion of a "sync client" for
22 // automation purposes. It harnesses the ProfileSyncService member of the 20 // automation purposes. It harnesses the ProfileSyncService member of the
23 // profile passed to it on construction and automates certain things like setup 21 // profile passed to it on construction and automates certain things like setup
24 // and authentication. It provides ways to "wait" adequate periods of time for 22 // and authentication. It provides ways to "wait" adequate periods of time for
25 // several clients to get to the same state. 23 // several clients to get to the same state.
26 class ProfileSyncServiceHarness : public ProfileSyncServiceObserver, 24 class ProfileSyncServiceHarness : public ProfileSyncServiceObserver {
27 public NotificationObserver {
28 public: 25 public:
29 ProfileSyncServiceHarness(Profile* profile, 26 ProfileSyncServiceHarness(Profile* profile,
30 const std::string& username, 27 const std::string& username,
31 const std::string& password, 28 const std::string& password,
32 int id); 29 int id);
33 30
34 virtual ~ProfileSyncServiceHarness() {} 31 virtual ~ProfileSyncServiceHarness() {}
35 32
36 // Creates a ProfileSyncServiceHarness object and attaches it to |profile|, a 33 // Creates a ProfileSyncServiceHarness object and attaches it to |profile|, a
37 // profile that is assumed to have been signed into sync in the past. Caller 34 // profile that is assumed to have been signed into sync in the past. Caller
(...skipping 12 matching lines...) Expand all
50 // changes. 47 // changes.
51 bool SetupSync(); 48 bool SetupSync();
52 49
53 // Same as the above method, but enables sync only for the datatypes contained 50 // Same as the above method, but enables sync only for the datatypes contained
54 // in |synced_datatypes|. 51 // in |synced_datatypes|.
55 bool SetupSync(const syncable::ModelTypeSet& synced_datatypes); 52 bool SetupSync(const syncable::ModelTypeSet& synced_datatypes);
56 53
57 // ProfileSyncServiceObserver implementation. 54 // ProfileSyncServiceObserver implementation.
58 virtual void OnStateChanged(); 55 virtual void OnStateChanged();
59 56
60 // NotificationObserver implementation.
61 virtual void Observe(NotificationType type,
62 const NotificationSource& source,
63 const NotificationDetails& details);
64
65 // Blocks the caller until this harness has completed a single sync cycle 57 // Blocks the caller until this harness has completed a single sync cycle
66 // since the previous one. Returns true if a sync cycle has completed. 58 // since the previous one. Returns true if a sync cycle has completed.
67 bool AwaitSyncCycleCompletion(const std::string& reason); 59 bool AwaitSyncCycleCompletion(const std::string& reason);
68 60
69 // Blocks the caller until this harness has observed that the sync engine 61 // Blocks the caller until this harness has observed that the sync engine
70 // has "synced" up to at least the specified local timestamp. 62 // has "synced" up to at least the specified local timestamp.
71 bool WaitUntilTimestampIsAtLeast(int64 timestamp, const std::string& reason); 63 bool WaitUntilTimestampIsAtLeast(int64 timestamp, const std::string& reason);
72 64
73 // Calling this acts as a barrier and blocks the caller until |this| and 65 // Calling this acts as a barrier and blocks the caller until |this| and
74 // |partner| have both completed a sync cycle. When calling this method, 66 // |partner| have both completed a sync cycle. When calling this method,
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 // Returns true if the sync client has no unsynced items. 168 // Returns true if the sync client has no unsynced items.
177 bool IsSynced(); 169 bool IsSynced();
178 170
179 // Logs message with relevant info about client's sync state (if available). 171 // Logs message with relevant info about client's sync state (if available).
180 void LogClientInfo(std::string message); 172 void LogClientInfo(std::string message);
181 173
182 // Updates |last_timestamp_| with the timestamp of the current sync session. 174 // Updates |last_timestamp_| with the timestamp of the current sync session.
183 // Returns the new value of |last_timestamp_|. 175 // Returns the new value of |last_timestamp_|.
184 int64 GetUpdatedTimestamp(); 176 int64 GetUpdatedTimestamp();
185 177
186 void StartObservingPassphraseEvents();
187
188 WaitState wait_state_; 178 WaitState wait_state_;
189 179
190 Profile* profile_; 180 Profile* profile_;
191 ProfileSyncService* service_; 181 ProfileSyncService* service_;
192 182
193 // This value tracks the max sync timestamp (e.g. synced-to revision) inside 183 // This value tracks the max sync timestamp (e.g. synced-to revision) inside
194 // the sync engine. It gets updated when a sync cycle ends and the session 184 // the sync engine. It gets updated when a sync cycle ends and the session
195 // snapshot implies syncing is "done". 185 // snapshot implies syncing is "done".
196 int64 last_timestamp_; 186 int64 last_timestamp_;
197 187
198 // The minimum value of the 'max_local_timestamp' member of a 188 // The minimum value of the 'max_local_timestamp' member of a
199 // SyncSessionSnapshot we need to wait to observe in OnStateChanged when told 189 // SyncSessionSnapshot we need to wait to observe in OnStateChanged when told
200 // to WaitUntilTimestampIsAtLeast(...). 190 // to WaitUntilTimestampIsAtLeast(...).
201 int64 min_timestamp_needed_; 191 int64 min_timestamp_needed_;
202 192
203 // Credentials used for GAIA authentication. 193 // Credentials used for GAIA authentication.
204 std::string username_; 194 std::string username_;
205 std::string password_; 195 std::string password_;
206 196
207 // A counter to track the number of await passphrase requests versus
208 // actual acceptances. Can go negative if #requests > #acceptances.
209 int passphrase_acceptance_counter_;
210
211 NotificationRegistrar registrar_;
212
213 // Client ID, used for logging purposes. 197 // Client ID, used for logging purposes.
214 int id_; 198 int id_;
215 199
216 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceHarness); 200 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceHarness);
217 }; 201 };
218 202
219 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ 203 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/sync/profile_sync_service_harness.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698