summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/sync_setup_flow.h
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-16 06:17:54 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-16 06:17:54 +0000
commit457764525fd9a27612d7c8bc9d77ae0646db1a56 (patch)
treeded960ca991beaff02d51038bc00738d0682f99b /chrome/browser/sync/sync_setup_flow.h
parent3429e58d3540e6973db5a7661cbbd2dd1997ac61 (diff)
downloadchromium_src-457764525fd9a27612d7c8bc9d77ae0646db1a56.zip
chromium_src-457764525fd9a27612d7c8bc9d77ae0646db1a56.tar.gz
chromium_src-457764525fd9a27612d7c8bc9d77ae0646db1a56.tar.bz2
Reverted 29253.
TBR: nick@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29254 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/sync_setup_flow.h')
-rw-r--r--chrome/browser/sync/sync_setup_flow.h189
1 files changed, 0 insertions, 189 deletions
diff --git a/chrome/browser/sync/sync_setup_flow.h b/chrome/browser/sync/sync_setup_flow.h
deleted file mode 100644
index 32e3db1..0000000
--- a/chrome/browser/sync/sync_setup_flow.h
+++ /dev/null
@@ -1,189 +0,0 @@
-// 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.
-
-#ifdef CHROME_PERSONALIZATION
-
-#ifndef CHROME_BROWSER_SYNC_SYNC_SETUP_FLOW_H_
-#define CHROME_BROWSER_SYNC_SYNC_SETUP_FLOW_H_
-
-#include <string>
-#include <vector>
-
-#include "app/l10n_util.h"
-#include "base/time.h"
-#include "chrome/browser/dom_ui/html_dialog_ui.h"
-#include "chrome/browser/sync/profile_sync_service.h"
-#include "chrome/browser/sync/sync_setup_wizard.h"
-#include "grit/generated_resources.h"
-#include "testing/gtest/include/gtest/gtest_prod.h"
-
-class FlowHandler;
-class SyncSetupFlowContainer;
-
-// The state machine used by SyncSetupWizard, exposed in its own header
-// to facilitate testing of SyncSetupWizard. This class is used to open and
-// run the html dialog and deletes itself when the dialog closes.
-class SyncSetupFlow : public HtmlDialogUIDelegate {
- public:
- virtual ~SyncSetupFlow();
-
- // Runs a flow from |start| to |end|, and does the work of actually showing
- // the HTML dialog. |container| is kept up-to-date with the lifetime of the
- // flow (e.g it is emptied on dialog close).
- static SyncSetupFlow* Run(ProfileSyncService* service,
- SyncSetupFlowContainer* container,
- SyncSetupWizard::State start,
- SyncSetupWizard::State end);
-
- // Fills |args| with "user" and "error" arguments by querying |service|.
- static void GetArgsForGaiaLogin(
- const ProfileSyncService* service,
- DictionaryValue* args);
-
- // Triggers a state machine transition to advance_state.
- void Advance(SyncSetupWizard::State advance_state);
-
- // HtmlDialogUIDelegate implementation.
- // Get the HTML file path for the content to load in the dialog.
- virtual GURL GetDialogContentURL() const {
- return GURL("chrome://syncresources/setup");
- }
-
- // HtmlDialogUIDelegate implementation.
- virtual void GetDOMMessageHandlers(
- std::vector<DOMMessageHandler*>* handlers) const;
-
- // HtmlDialogUIDelegate implementation.
- // Get the size of the dialog.
- virtual void GetDialogSize(gfx::Size* size) const;
-
- // HtmlDialogUIDelegate implementation.
- // Gets the JSON string input to use when opening the dialog.
- virtual std::string GetDialogArgs() const {
- return dialog_start_args_;
- }
-
- // HtmlDialogUIDelegate implementation.
- // A callback to notify the delegate that the dialog closed.
- virtual void OnDialogClosed(const std::string& json_retval);
-
- // HtmlDialogUIDelegate implementation.
- virtual std::wstring GetDialogTitle() const {
- return l10n_util::GetString(IDS_SYNC_MY_BOOKMARKS_LABEL);
- }
-
- // HtmlDialogUIDelegate implementation.
- virtual bool IsDialogModal() const {
- return false;
- }
-
- void OnUserSubmittedAuth(const std::string& username,
- const std::string& password) {
- service_->OnUserSubmittedAuth(username, password);
- }
-
- void OnUserAcceptedMergeAndSync() {
- service_->OnUserAcceptedMergeAndSync();
- }
-
- private:
- FRIEND_TEST(SyncSetupWizardTest, InitialStepLogin);
- FRIEND_TEST(SyncSetupWizardTest, InitialStepMergeAndSync);
- FRIEND_TEST(SyncSetupWizardTest, DialogCancelled);
- FRIEND_TEST(SyncSetupWizardTest, InvalidTransitions);
- FRIEND_TEST(SyncSetupWizardTest, FullSuccessfulRunSetsPref);
- FRIEND_TEST(SyncSetupWizardTest, DiscreteRun);
-
- // Use static Run method to get an instance.
- SyncSetupFlow(SyncSetupWizard::State start_state,
- SyncSetupWizard::State end_state,
- const std::string& args, SyncSetupFlowContainer* container,
- FlowHandler* handler, ProfileSyncService* service)
- : container_(container),
- dialog_start_args_(args),
- current_state_(start_state),
- end_state_(end_state),
- login_start_time_(base::TimeTicks::Now()),
- flow_handler_(handler),
- service_(service) {
- }
-
- // Returns true if |this| should transition its state machine to |state|
- // based on |current_state_|, or false if that would be nonsense or is
- // a no-op.
- bool ShouldAdvance(SyncSetupWizard::State state);
-
- SyncSetupFlowContainer* container_; // Our container. Don't own this.
- std::string dialog_start_args_; // The args to pass to the initial page.
-
- SyncSetupWizard::State current_state_;
- SyncSetupWizard::State end_state_; // The goal.
-
- // Time that the GAIA_LOGIN step was received.
- base::TimeTicks login_start_time_;
-
- // The handler needed for the entire flow. We don't own this.
- FlowHandler* flow_handler_;
-
- // We need this to write the sentinel "setup completed" pref.
- ProfileSyncService* service_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncSetupFlow);
-};
-
-// A really simple wrapper for a SyncSetupFlow so that we don't have to
-// add any public methods to the public SyncSetupWizard interface to notify it
-// when the dialog closes.
-class SyncSetupFlowContainer {
- public:
- SyncSetupFlowContainer() : flow_(NULL) { }
- void set_flow(SyncSetupFlow* flow) {
- DCHECK(!flow_ || !flow);
- flow_ = flow;
- }
-
- SyncSetupFlow* get_flow() { return flow_; }
- private:
- SyncSetupFlow* flow_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncSetupFlowContainer);
-};
-
-// The FlowHandler connects the state machine to the dialog backing HTML and
-// JS namespace by implementing DOMMessageHandler and being invoked by the
-// SyncSetupFlow. Exposed here to facilitate testing.
-class FlowHandler : public DOMMessageHandler {
- public:
- FlowHandler() {}
- virtual ~FlowHandler() {}
-
- // DOMMessageHandler implementation.
- virtual void RegisterMessages();
-
- // Callbacks from the page.
- void HandleSubmitAuth(const Value* value);
- void HandleSubmitMergeAndSync(const Value* value);
-
- // These functions control which part of the HTML is visible.
- void ShowGaiaLogin(const DictionaryValue& args);
- void ShowGaiaSuccessAndClose();
- void ShowGaiaSuccessAndSettingUp();
- void ShowMergeAndSync();
- void ShowMergeAndSyncError();
- void ShowSetupDone(const std::wstring& user);
- void ShowFirstTimeDone(const std::wstring& user);
-
- void set_flow(SyncSetupFlow* flow) {
- flow_ = flow;
- }
-
- private:
- void ExecuteJavascriptInIFrame(const std::wstring& iframe_xpath,
- const std::wstring& js);
- SyncSetupFlow* flow_;
- DISALLOW_COPY_AND_ASSIGN(FlowHandler);
-};
-
-#endif // CHROME_BROWSER_SYNC_SYNC_SETUP_FLOW_H_
-#endif // CHROME_PERSONALIZATION