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

Unified Diff: chrome/browser/sync/engine/syncapi.h

Issue 3305003: New authorization framework for sync. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/engine/syncapi.h
===================================================================
--- chrome/browser/sync/engine/syncapi.h (revision 58702)
+++ chrome/browser/sync/engine/syncapi.h (working copy)
@@ -107,14 +107,16 @@
// be shared across multiple threads (unlike Directory).
scoped_ptr<syncable::DirectoryManager> dir_manager;
- // The username of the sync user. This is empty until we have performed at
- // least one successful GAIA authentication with this username, which means
- // on first-run it is empty until an AUTH_SUCCEEDED event and on future runs
- // it is set as soon as the client instructs us to authenticate for the last
- // known valid user (AuthenticateForLastKnownUser()).
- std::string authenticated_name;
+ // The username of the sync user.
+ std::string name;
};
+// Contains everything needed to talk to and identify a user account.
+struct SyncCredentials {
+ std::string email;
+ std::string sync_token;
+};
+
// A valid BaseNode will never have an ID of zero.
static const int64 kInvalidId = 0;
@@ -669,6 +671,9 @@
// Called when user interaction may be required due to an auth problem.
virtual void OnAuthError(const GoogleServiceAuthError& auth_error) = 0;
+ // Called when a new auth token is provided by the sync server.
+ virtual void OnUpdatedToken(const std::string& token) = 0;
+
// Called when user interaction is required to obtain a valid passphrase.
virtual void OnPassphraseRequired() = 0;
@@ -715,52 +720,22 @@
// |sync_server_and_path| and |sync_server_port| represent the Chrome sync
// server to use, and |use_ssl| specifies whether to communicate securely;
// the default is false.
- // |gaia_service_id| is the service id used for GAIA authentication. If it's
- // null then default will be used.
// |post_factory| will be owned internally and used to create
// instances of an HttpPostProvider.
- // |auth_post_factory| will be owned internally and used to create
- // instances of an HttpPostProvider for communicating with GAIA.
- // TODO(timsteele): It seems like one factory should suffice, but for now to
- // avoid having to deal with threading issues since the auth code and syncer
- // code live on separate threads that run simultaneously, we just dedicate
- // one to each component. Long term we may want to reconsider the HttpBridge
- // API to take all the params in one chunk in a threadsafe manner.. which is
- // still suboptimal as there will be high contention between the two threads
- // on startup; so maybe what we have now is the best solution- it does mirror
- // the CURL implementation as each thread creates their own internet handle.
- // Investigate.
// |model_safe_worker| ownership is given to the SyncManager.
// |user_agent| is a 7-bit ASCII string suitable for use as the User-Agent
// HTTP header. Used internally when collecting stats to classify clients.
- // As a fallback when no cached auth information is available, try to
- // bootstrap authentication using |lsid|, if it isn't empty.
- //
- // |invalidate_last_user_auth_token| makes it so that any auth token
- // read from user settings is invalidated. This is used for testing
- // code paths related to authentication failures.
- //
- // |invalidate_xmpp_auth_token| makes it so that any auth token
- // used to log into XMPP is invalidated. This is used for testing
- // code paths related to authentication failures for XMPP only.
- //
// |try_ssltcp_first| indicates that the SSLTCP port (443) is tried before the
// the XMPP port (5222) during login. It is used by the sync tests that are
// run on the chromium builders because port 5222 is blocked.
bool Init(const FilePath& database_location,
const char* sync_server_and_path,
int sync_server_port,
- const char* gaia_service_id,
- const char* gaia_source,
bool use_ssl,
HttpPostProviderFactory* post_factory,
- HttpPostProviderFactory* auth_post_factory,
browser_sync::ModelSafeWorkerRegistrar* registrar,
- bool attempt_last_user_authentication,
- bool invalidate_last_user_auth_token,
- bool invalidate_xmpp_auth_token,
const char* user_agent,
- const char* lsid,
+ const SyncCredentials& credentials,
bool use_chrome_async_socket,
bool try_ssltcp_first,
browser_sync::NotificationMethod notification_method,
@@ -776,16 +751,12 @@
// called.
bool InitialSyncEndedForAllEnabledTypes();
- // Submit credentials to GAIA for verification. On success, both |username|
- // and the obtained auth token are persisted on disk for future re-use.
- // If authentication fails, OnAuthProblem is called on our Observer.
- // The Observer may, in turn, decide to try again with new
- // credentials. Calling this method again is the appropriate course of action
- // to "retry".
- // |username|, |password|, and |captcha| are owned by the caller.
- void Authenticate(const char* username, const char* password,
- const char* captcha);
+ // Migrate tokens from user settings DB to the token service.
+ void MigrateTokens();
+ // Update tokens that we're using in Sync. Email must stay the same.
+ void UpdateCredentials(const SyncCredentials& credentials);
+
// Start the SyncerThread.
void StartSyncing();

Powered by Google App Engine
This is Rietveld 408576698