Index: chrome/browser/remoting/setup_flow.cc |
diff --git a/chrome/browser/remoting/setup_flow.cc b/chrome/browser/remoting/setup_flow.cc |
deleted file mode 100644 |
index 0309d0705c874fb130e831cb8f89614271fee351..0000000000000000000000000000000000000000 |
--- a/chrome/browser/remoting/setup_flow.cc |
+++ /dev/null |
@@ -1,269 +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. |
- |
-#include "chrome/browser/remoting/setup_flow.h" |
- |
-#include "base/json/json_reader.h" |
-#include "base/json/json_writer.h" |
-#include "base/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/remoting/remoting_resources_source.h" |
-#include "chrome/browser/remoting/setup_flow_login_step.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_list.h" |
-#include "chrome/common/pref_names.h" |
-#include "content/browser/browser_thread.h" |
-#include "content/browser/renderer_host/render_view_host.h" |
-#include "content/browser/tab_contents/tab_contents.h" |
-#include "grit/generated_resources.h" |
-#include "grit/locale_settings.h" |
-#include "ui/base/l10n/l10n_font_util.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/gfx/font.h" |
- |
-namespace remoting { |
- |
-static const wchar_t kDoneIframeXPath[] = L"//iframe[@id='done']"; |
-static const wchar_t kErrorIframeXPath[] = L"//iframe[@id='error']"; |
- |
-SetupFlowStep::SetupFlowStep() { } |
-SetupFlowStep::~SetupFlowStep() { } |
- |
-SetupFlowStepBase::SetupFlowStepBase() |
- : flow_(NULL), |
- done_(false), |
- next_step_(NULL) { |
-} |
- |
-SetupFlowStepBase::~SetupFlowStepBase() { } |
- |
-void SetupFlowStepBase::Start(SetupFlow* flow, DoneCallback* done_callback) { |
- done_callback_.reset(done_callback); |
- flow_ = flow; |
- DoStart(); |
-} |
- |
-SetupFlowStep* SetupFlowStepBase::GetNextStep() { |
- DCHECK(done_); |
- return next_step_; |
-} |
- |
-void SetupFlowStepBase::ExecuteJavascriptInIFrame( |
- const std::wstring& iframe_xpath, const std::wstring& js) { |
- WebUI* web_ui = flow()->web_ui(); |
- DCHECK(web_ui); |
- |
- RenderViewHost* rvh = web_ui->tab_contents()->render_view_host(); |
- rvh->ExecuteJavascriptInWebFrame(WideToUTF16Hack(iframe_xpath), |
- WideToUTF16Hack(js)); |
-} |
- |
-void SetupFlowStepBase::FinishStep(SetupFlowStep* next_step) { |
- next_step_ = next_step; |
- done_ = true; |
- done_callback_->Run(); |
-} |
- |
-SetupFlowErrorStepBase::SetupFlowErrorStepBase() { } |
-SetupFlowErrorStepBase::~SetupFlowErrorStepBase() { } |
- |
-void SetupFlowErrorStepBase::HandleMessage(const std::string& message, |
- const Value* arg) { |
- if (message == "Retry") { |
- Retry(); |
- } |
-} |
- |
-void SetupFlowErrorStepBase::Cancel() { } |
- |
-void SetupFlowErrorStepBase::DoStart() { |
- std::wstring javascript = |
- L"setMessage('" + UTF16ToWide(GetErrorMessage()) + L"');"; |
- ExecuteJavascriptInIFrame(kErrorIframeXPath, javascript); |
- |
- flow()->web_ui()->CallJavascriptFunction("showError"); |
- |
- ExecuteJavascriptInIFrame(kErrorIframeXPath, L"onPageShown();"); |
-} |
- |
-SetupFlowDoneStep::SetupFlowDoneStep() { |
- message_ = l10n_util::GetStringUTF16(IDS_REMOTING_SUCCESS_MESSAGE); |
-} |
- |
-SetupFlowDoneStep::SetupFlowDoneStep(const string16& message) |
- : message_(message) { |
-} |
- |
-SetupFlowDoneStep::~SetupFlowDoneStep() { } |
- |
-void SetupFlowDoneStep::HandleMessage(const std::string& message, |
- const Value* arg) { |
-} |
- |
-void SetupFlowDoneStep::Cancel() { } |
- |
-void SetupFlowDoneStep::DoStart() { |
- std::wstring javascript = |
- L"setMessage('" + UTF16ToWide(message_) + L"');"; |
- ExecuteJavascriptInIFrame(kDoneIframeXPath, javascript); |
- |
- flow()->web_ui()->CallJavascriptFunction("showSetupDone"); |
- |
- ExecuteJavascriptInIFrame(kDoneIframeXPath, L"onPageShown();"); |
-} |
- |
-SetupFlowContext::SetupFlowContext() { } |
-SetupFlowContext::~SetupFlowContext() { } |
- |
-SetupFlow::SetupFlow(const std::string& args, |
- Profile* profile, |
- SetupFlowStep* first_step) |
- : web_ui_(NULL), |
- dialog_start_args_(args), |
- profile_(profile), |
- current_step_(first_step) { |
- // TODO(hclam): The data source should be added once. |
- profile->GetChromeURLDataManager()->AddDataSource( |
- new RemotingResourcesSource()); |
-} |
- |
-SetupFlow::~SetupFlow() { } |
- |
-// static |
-SetupFlow* SetupFlow::OpenSetupDialog(Profile* profile) { |
- // Set the arguments for showing the gaia login page. |
- DictionaryValue args; |
- args.SetString("iframeToShow", "login"); |
- args.SetString("user", ""); |
- args.SetInteger("error", 0); |
- args.SetBoolean("editable_user", true); |
- |
- std::string json_args; |
- base::JSONWriter::Write(&args, false, &json_args); |
- |
- Browser* b = BrowserList::GetLastActive(); |
- if (!b) |
- return NULL; |
- |
- SetupFlow *flow = new SetupFlow(json_args, profile, new SetupFlowLoginStep()); |
- b->BrowserShowHtmlDialog(flow, NULL); |
- return flow; |
-} |
- |
-GURL SetupFlow::GetDialogContentURL() const { |
- return GURL("chrome://remotingresources/setup"); |
-} |
- |
-void SetupFlow::GetWebUIMessageHandlers( |
- std::vector<WebUIMessageHandler*>* handlers) const { |
- // The called will be responsible for deleting this object. |
- handlers->push_back(const_cast<SetupFlow*>(this)); |
-} |
- |
-void SetupFlow::GetDialogSize(gfx::Size* size) const { |
- PrefService* prefs = profile_->GetPrefs(); |
- gfx::Font approximate_web_font( |
- UTF8ToUTF16(prefs->GetString(prefs::kWebKitSansSerifFontFamily)), |
- prefs->GetInteger(prefs::kWebKitDefaultFontSize)); |
- |
- // TODO(pranavk) Replace the following SYNC resources with REMOTING Resources. |
- *size = ui::GetLocalizedContentsSizeForFont( |
- IDS_REMOTING_SETUP_WIZARD_WIDTH_CHARS, |
- IDS_REMOTING_SETUP_WIZARD_HEIGHT_LINES, |
- approximate_web_font); |
-} |
- |
-// A callback to notify the delegate that the dialog closed. |
-void SetupFlow::OnDialogClosed(const std::string& json_retval) { |
- if (current_step_ != NULL) |
- current_step_->Cancel(); |
-} |
- |
-std::string SetupFlow::GetDialogArgs() const { |
- return dialog_start_args_; |
-} |
- |
-void SetupFlow::OnCloseContents(TabContents* source, |
- bool* out_close_dialog) { |
-} |
- |
-std::wstring SetupFlow::GetDialogTitle() const { |
- return UTF16ToWideHack( |
- l10n_util::GetStringUTF16(IDS_REMOTING_SETUP_DIALOG_TITLE)); |
-} |
- |
-bool SetupFlow::IsDialogModal() const { |
- return false; |
-} |
- |
-bool SetupFlow::ShouldShowDialogTitle() const { |
- return true; |
-} |
- |
-WebUIMessageHandler* SetupFlow::Attach(WebUI* web_ui) { |
- web_ui_ = web_ui; |
- StartCurrentStep(); |
- return WebUIMessageHandler::Attach(web_ui); |
-} |
- |
-void SetupFlow::RegisterMessages() { |
- web_ui_->RegisterMessageCallback( |
- "SubmitAuth", NewCallback(this, &SetupFlow::HandleSubmitAuth)); |
- web_ui_->RegisterMessageCallback( |
- "RemotingSetup", NewCallback(this, &SetupFlow::HandleUIMessage)); |
-} |
- |
-void SetupFlow::HandleSubmitAuth(const ListValue* args) { |
- Value* first_arg = NULL; |
- if (!args->Get(0, &first_arg)) { |
- NOTREACHED(); |
- return; |
- } |
- |
- current_step_->HandleMessage("SubmitAuth", first_arg); |
-} |
- |
-void SetupFlow::HandleUIMessage(const ListValue* args) { |
- std::string message; |
- Value* message_value; |
- if (!args->Get(0, &message_value) || |
- !message_value->GetAsString(&message)) { |
- NOTREACHED(); |
- return; |
- } |
- |
- // Message argument is optional and set to NULL if it is not |
- // provided by the sending page. |
- Value* arg_value = NULL; |
- if (args->GetSize() >= 2) { |
- if (!args->Get(1, &arg_value)) { |
- NOTREACHED(); |
- return; |
- } |
- } |
- |
- current_step_->HandleMessage(message, arg_value); |
-} |
- |
-void SetupFlow::StartCurrentStep() { |
- current_step_->Start(this, NewCallback(this, &SetupFlow::OnStepDone)); |
-} |
- |
-void SetupFlow::OnStepDone() { |
- SetupFlowStep* next_step = current_step_->GetNextStep(); |
- |
- if (current_step_.get()) { |
- // Can't destroy current step here. Schedule it to be destroyed later. |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- new DeleteTask<SetupFlowStep>(current_step_.release())); |
- } |
- |
- current_step_.reset(next_step); |
- StartCurrentStep(); |
-} |
- |
-} // namespace remoting |