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