Index: chrome/browser/remoting/setup_flow.h |
diff --git a/chrome/browser/remoting/setup_flow.h b/chrome/browser/remoting/setup_flow.h |
deleted file mode 100644 |
index c952bd68b3de5902ed5d17dfeafd96c6b94e127b..0000000000000000000000000000000000000000 |
--- a/chrome/browser/remoting/setup_flow.h |
+++ /dev/null |
@@ -1,220 +0,0 @@ |
-// Copyright (c) 2011 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_REMOTING_SETUP_FLOW_H_ |
-#define CHROME_BROWSER_REMOTING_SETUP_FLOW_H_ |
- |
-#include "base/callback.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "chrome/browser/ui/webui/html_dialog_ui.h" |
-#include "chrome/common/remoting/chromoting_host_info.h" |
-#include "content/browser/webui/web_ui.h" |
- |
-class ListValue; |
-class ServiceProcessControl; |
- |
-namespace remoting { |
- |
-class SetupFlow; |
- |
-// SetupFlowStep represents a single step for SetupFlow, e.g. login or |
-// host registration. When a step is finished, GetNextStep() is called |
-// to get the step that must follow. |
-class SetupFlowStep { |
- public: |
- typedef Callback0::Type DoneCallback; |
- |
- SetupFlowStep(); |
- virtual ~SetupFlowStep(); |
- |
- // Start the step. Ownership of |done_callback| is given to the |
- // function. |done_callback| is called when the step is finished, |
- // The callback must be called on the same thread as Start(). |
- virtual void Start(SetupFlow* flow, DoneCallback* done_callback) = 0; |
- |
- // Called to handle |message| received from UI. |args| may be set to |
- // NULL. |
- virtual void HandleMessage(const std::string& message, const Value* arg) = 0; |
- |
- // Called if user closes the dialog. |
- virtual void Cancel() = 0; |
- |
- // Returns SetupFlowStep object that corresponds to the next |
- // step. Must never return NULL. |
- virtual SetupFlowStep* GetNextStep() = 0; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(SetupFlowStep); |
-}; |
- |
-// SetupFlowStepBase implements base functions common for all |
-// SetupFlowStep implementations. |
-class SetupFlowStepBase : public SetupFlowStep { |
- public: |
- SetupFlowStepBase(); |
- ~SetupFlowStepBase(); |
- |
- // SetupFlowStep implementation. |
- virtual void Start(SetupFlow* flow, DoneCallback* done_callback); |
- virtual SetupFlowStep* GetNextStep(); |
- |
- protected: |
- SetupFlow* flow() { return flow_; } |
- |
- void ExecuteJavascriptInIFrame(const std::wstring& iframe_xpath, |
- const std::wstring& js); |
- |
- // Finish current step. Calls |done_callback| specified in Start(). |
- // GetNextStep() will return the specified |next_step|. |
- void FinishStep(SetupFlowStep* next_step); |
- |
- // Called from Start(). Child classes must override this method |
- // instead of Start(). |
- virtual void DoStart() = 0; |
- |
- private: |
- SetupFlow* flow_; |
- scoped_ptr<DoneCallback> done_callback_; |
- bool done_; |
- |
- // Next step stored between Done() and GetNextStep(); |
- SetupFlowStep* next_step_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SetupFlowStepBase); |
-}; |
- |
-// Base class for error steps. It shows the error message returned by |
-// GetErrorMessage() and Retry button. |
-class SetupFlowErrorStepBase : public SetupFlowStepBase { |
- public: |
- SetupFlowErrorStepBase(); |
- virtual ~SetupFlowErrorStepBase(); |
- |
- // SetupFlowStep implementation. |
- virtual void HandleMessage(const std::string& message, const Value* arg); |
- virtual void Cancel(); |
- |
- protected: |
- virtual void DoStart(); |
- |
- // Returns error message that is shown to the user. |
- virtual string16 GetErrorMessage() = 0; |
- |
- // Called when user clicks Retry button. Normally this methoud just |
- // calls FinishStep() with an appropriate next step. |
- virtual void Retry() = 0; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(SetupFlowErrorStepBase); |
-}; |
- |
-// The last step in the setup flow. This step never finishes, user is |
-// expected to close dialog after that. |
-class SetupFlowDoneStep : public SetupFlowStepBase { |
- public: |
- SetupFlowDoneStep(); |
- explicit SetupFlowDoneStep(const string16& message); |
- virtual ~SetupFlowDoneStep(); |
- |
- // SetupFlowStep implementation. |
- virtual void HandleMessage(const std::string& message, const Value* arg); |
- virtual void Cancel(); |
- |
- protected: |
- virtual void DoStart(); |
- |
- private: |
- string16 message_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SetupFlowDoneStep); |
-}; |
- |
-// SetupFlowContext stores data that needs to be passed between |
-// different setup flow steps. |
-struct SetupFlowContext { |
- SetupFlowContext(); |
- ~SetupFlowContext(); |
- |
- std::string login; |
- std::string remoting_token; |
- std::string talk_token; |
- |
- ChromotingHostInfo host_info; |
-}; |
- |
-// This class is responsible for showing a remoting setup dialog and |
-// perform operations to fill the content of the dialog and handle |
-// user actions in the dialog. |
-// |
-// Each page in the setup flow may send message to the current |
-// step. In order to do that it must use send a RemotingSetup message |
-// and specify message name as the first value in the argument |
-// list. For example the following code sends Retry message to the |
-// current step: |
-// |
-// chrome.send("RemotingSetup", ["Retry"]) |
-// |
-// Assitional message parameters may be provided via send value in the |
-// arguments list, e.g.: |
-// |
-// chrome.send("RemotingSetup", ["SubmitAuth", auth_data]) |
-// |
-// In this case auth_data would be passed in |
-// SetupFlowStep::HandleMessage(). |
-class SetupFlow : public WebUIMessageHandler, |
- public HtmlDialogUIDelegate { |
- public: |
- virtual ~SetupFlow(); |
- |
- static SetupFlow* OpenSetupDialog(Profile* profile); |
- |
- WebUI* web_ui() { return web_ui_; } |
- Profile* profile() { return profile_; } |
- SetupFlowContext* context() { return &context_; } |
- |
- private: |
- explicit SetupFlow(const std::string& args, Profile* profile, |
- SetupFlowStep* first_step); |
- |
- // HtmlDialogUIDelegate implementation. |
- virtual GURL GetDialogContentURL() const; |
- virtual void GetWebUIMessageHandlers( |
- std::vector<WebUIMessageHandler*>* handlers) const; |
- virtual void GetDialogSize(gfx::Size* size) const; |
- virtual std::string GetDialogArgs() const; |
- virtual void OnDialogClosed(const std::string& json_retval); |
- virtual void OnCloseContents(TabContents* source, bool* out_close_dialog); |
- virtual std::wstring GetDialogTitle() const; |
- virtual bool IsDialogModal() const; |
- virtual bool ShouldShowDialogTitle() const; |
- |
- // WebUIMessageHandler implementation. |
- virtual WebUIMessageHandler* Attach(WebUI* web_ui); |
- virtual void RegisterMessages(); |
- |
- // Message handlers for the messages we receive from UI. |
- void HandleSubmitAuth(const ListValue* args); |
- void HandleUIMessage(const ListValue* args); |
- |
- void StartCurrentStep(); |
- void OnStepDone(); |
- |
- // Pointer to the Web UI. This is provided by RemotingSetupMessageHandler |
- // when attached. |
- WebUI* web_ui_; |
- |
- // The args to pass to the initial page. |
- std::string dialog_start_args_; |
- Profile* profile_; |
- |
- SetupFlowContext context_; |
- |
- scoped_ptr<SetupFlowStep> current_step_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SetupFlow); |
-}; |
- |
-} // namespace remoting |
- |
-#endif // CHROME_BROWSER_REMOTING_SETUP_FLOW_H_ |