summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/sync_setup_wizard.h
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-16 10:32:04 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-16 10:32:04 +0000
commitd80033e69d9542605fed21da06601f8201da6618 (patch)
treea38c7f88776664f80679d181baf1c1ad266d857d /chrome/browser/sync/sync_setup_wizard.h
parent185046805f294b0294311d09a3fe75f52e4554d8 (diff)
downloadchromium_src-d80033e69d9542605fed21da06601f8201da6618.zip
chromium_src-d80033e69d9542605fed21da06601f8201da6618.tar.gz
chromium_src-d80033e69d9542605fed21da06601f8201da6618.tar.bz2
Made sync code build and pass unit tests on OS X.
Major changes: - Moved sync_setup_{flow,wizard} to sync directory. - Made browser_with_test_window_test compile on non-Windows platform. - Moved localized contents font util functions to app/. BUG=23073 TEST=trybot Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=29253 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=29255 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=29258 Review URL: http://codereview.chromium.org/279004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29263 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/sync_setup_wizard.h')
-rw-r--r--chrome/browser/sync/sync_setup_wizard.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/chrome/browser/sync/sync_setup_wizard.h b/chrome/browser/sync/sync_setup_wizard.h
new file mode 100644
index 0000000..d8a0d95
--- /dev/null
+++ b/chrome/browser/sync/sync_setup_wizard.h
@@ -0,0 +1,82 @@
+// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SYNC_SYNC_SETUP_WIZARD_H_
+#define CHROME_BROWSER_SYNC_SYNC_SETUP_WIZARD_H_
+
+#include "base/basictypes.h"
+
+#if defined(OS_LINUX)
+typedef struct _GtkWidget GtkWidget;
+typedef struct _GtkWindow GtkWindow;
+#else
+class SyncSetupFlowContainer;
+#endif
+
+class ProfileSyncService;
+
+class SyncSetupWizard {
+ public:
+ enum State {
+ // Show the Google Account login UI.
+ GAIA_LOGIN = 0,
+ // A login attempt succeeded. Depending on initial conditions, this may
+ // cause a transition to DONE, or to wait for an explicit transition (via
+ // Step) to the next state.
+ GAIA_SUCCESS,
+ // The user needs to accept a merge and sync warning to proceed.
+ MERGE_AND_SYNC,
+ // The panic switch. Something went terribly wrong during setup and we
+ // can't recover.
+ FATAL_ERROR,
+ // A final state for when setup completes and it is possible it is the
+ // user's first time (globally speaking) as the cloud doesn't have any
+ // bookmarks. We show additional info in this case to explain setting up
+ // more computers.
+ DONE_FIRST_TIME,
+ // A catch-all done case for any setup process.
+ DONE
+ };
+
+ explicit SyncSetupWizard(ProfileSyncService* service);
+ ~SyncSetupWizard();
+
+ // Advances the wizard to the specified state if possible, or opens a
+ // new dialog starting at |advance_state|. If the wizard has never ran
+ // through to completion, it will always attempt to do so. Otherwise, e.g
+ // for a transient auth failure, it will just run as far as is necessary
+ // based on |advance_state| (so for auth failure, up to GAIA_SUCCESS).
+ void Step(State advance_state);
+
+ // Whether or not a dialog is currently showing. Useful to determine
+ // if various buttons in the UI should be enabled or disabled.
+ bool IsVisible() const;
+
+#if defined(OS_LINUX)
+ void SetVisible(bool visible) { visible_ = visible; }
+#endif
+
+ private:
+ // If we just need to pop open an individual dialog, say to collect
+ // gaia credentials in the event of a steady-state auth failure, this is
+ // a "discrete" run (as in not a continuous wizard flow). This returns
+ // the end state to pass to Run for a given |start_state|.
+ static State GetEndStateForDiscreteRun(State start_state);
+
+ // Helper to return whether |state| warrants starting a new flow.
+ static bool IsTerminalState(State state);
+
+ ProfileSyncService* service_;
+
+#if defined(OS_LINUX)
+ bool visible_;
+#else
+ SyncSetupFlowContainer* flow_container_;
+#endif
+
+ DISALLOW_COPY_AND_ASSIGN(SyncSetupWizard);
+};
+
+#endif // CHROME_BROWSER_SYNC_SYNC_SETUP_WIZARD_H_
+