one_click_signin_sync_starter.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_SYNC_ONE_CLICK_SIGNIN_SYNC_STARTER_H_ 6#define CHROME_BROWSER_UI_SYNC_ONE_CLICK_SIGNIN_SYNC_STARTER_H_ 7 8#include <string> 9 10#include "chrome/browser/signin/signin_tracker.h" 11 12class Browser; 13 14// Waits for successful singin notification from the signin manager and then 15// starts the sync machine. Instances of this class delete themselves once 16// the job is done. 17class OneClickSigninSyncStarter : public SigninTracker::Observer { 18 public: 19 enum StartSyncMode {SYNC_WITH_DEFAULT_SETTINGS, CONFIGURE_SYNC_FIRST }; 20 21 OneClickSigninSyncStarter(Browser* browser, 22 const std::string& session_index, 23 const std::string& email, 24 const std::string& password, 25 StartSyncMode start_mode); 26 27 private: 28 virtual ~OneClickSigninSyncStarter(); 29 30 // SigninTracker::Observer override. 31 virtual void GaiaCredentialsValid() OVERRIDE; 32 virtual void SigninFailed(const GoogleServiceAuthError& error) OVERRIDE; 33 virtual void SigninSuccess() OVERRIDE; 34 35 Browser* browser_; 36 SigninTracker signin_tracker_; 37 StartSyncMode start_mode_; 38 39 DISALLOW_COPY_AND_ASSIGN(OneClickSigninSyncStarter); 40}; 41 42 43#endif // CHROME_BROWSER_UI_SYNC_ONE_CLICK_SIGNIN_SYNC_STARTER_H_ 44