| Index: chrome/browser/remoting/setup_flow_login_step.cc
|
| diff --git a/chrome/browser/remoting/setup_flow_login_step.cc b/chrome/browser/remoting/setup_flow_login_step.cc
|
| deleted file mode 100644
|
| index d69afe2eca1ee41557edd287a388251b78b09658..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/remoting/setup_flow_login_step.cc
|
| +++ /dev/null
|
| @@ -1,154 +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_login_step.h"
|
| -
|
| -#include "base/json/json_reader.h"
|
| -#include "base/json/json_writer.h"
|
| -#include "base/string_util.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/remoting/setup_flow_get_status_step.h"
|
| -#include "chrome/common/net/gaia/gaia_constants.h"
|
| -#include "chrome/common/net/gaia/google_service_auth_error.h"
|
| -
|
| -namespace remoting {
|
| -
|
| -static const wchar_t kLoginIFrameXPath[] = L"//iframe[@id='login']";
|
| -
|
| -SetupFlowLoginStep::SetupFlowLoginStep() { }
|
| -
|
| -SetupFlowLoginStep::SetupFlowLoginStep(const string16& error_message)
|
| - : error_message_(error_message) {
|
| -}
|
| -
|
| -SetupFlowLoginStep::~SetupFlowLoginStep() { }
|
| -
|
| -void SetupFlowLoginStep::HandleMessage(const std::string& message,
|
| - const Value* arg) {
|
| - if (message == "SubmitAuth") {
|
| - DCHECK(arg);
|
| -
|
| - std::string json;
|
| - if (!arg->GetAsString(&json) || json.empty()) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| -
|
| - scoped_ptr<Value> parsed_value(base::JSONReader::Read(json, false));
|
| - if (!parsed_value.get() || !parsed_value->IsType(Value::TYPE_DICTIONARY)) {
|
| - NOTREACHED() << "Unable to parse auth data";
|
| - return;
|
| - }
|
| -
|
| - CHECK(parsed_value->IsType(Value::TYPE_DICTIONARY));
|
| -
|
| - std::string username, password, captcha, access_code;
|
| - const DictionaryValue* result =
|
| - static_cast<const DictionaryValue*>(parsed_value.get());
|
| - if (!result->GetString("user", &username) ||
|
| - !result->GetString("pass", &password) ||
|
| - !result->GetString("captcha", &captcha) ||
|
| - !result->GetString("access_code", &access_code)) {
|
| - NOTREACHED() << "Unable to parse auth data";
|
| - return;
|
| - }
|
| -
|
| - OnUserSubmittedAuth(username, password, captcha, access_code);
|
| - }
|
| -}
|
| -
|
| -void SetupFlowLoginStep::Cancel() {
|
| - if (authenticator_.get())
|
| - authenticator_->CancelRequest();
|
| -}
|
| -
|
| -void SetupFlowLoginStep::OnUserSubmittedAuth(const std::string& user,
|
| - const std::string& password,
|
| - const std::string& captcha,
|
| - const std::string& access_code) {
|
| - flow()->context()->login = user;
|
| -
|
| - // Start the authenticator.
|
| - authenticator_.reset(
|
| - new GaiaAuthFetcher(this, GaiaConstants::kChromeSource,
|
| - flow()->profile()->GetRequestContext()));
|
| -
|
| - std::string remoting_password;
|
| - if (!access_code.empty())
|
| - remoting_password = access_code;
|
| - else
|
| - remoting_password = password;
|
| -
|
| - authenticator_->StartClientLogin(user, remoting_password,
|
| - GaiaConstants::kRemotingService,
|
| - "", captcha,
|
| - GaiaAuthFetcher::HostedAccountsAllowed);
|
| -}
|
| -
|
| -void SetupFlowLoginStep::OnClientLoginSuccess(
|
| - const GaiaAuthConsumer::ClientLoginResult& credentials) {
|
| - // Save the token for remoting.
|
| - flow()->context()->remoting_token = credentials.token;
|
| -
|
| - // After login has succeeded try to fetch the token for sync.
|
| - // We need the token for sync to connect to the talk network.
|
| - authenticator_->StartIssueAuthToken(credentials.sid, credentials.lsid,
|
| - GaiaConstants::kSyncService);
|
| -}
|
| -
|
| -void SetupFlowLoginStep::OnClientLoginFailure(
|
| - const GoogleServiceAuthError& error) {
|
| - ShowGaiaFailed(error);
|
| - authenticator_.reset();
|
| -}
|
| -
|
| -void SetupFlowLoginStep::OnIssueAuthTokenSuccess(
|
| - const std::string& service, const std::string& auth_token) {
|
| - // Save the sync token.
|
| - flow()->context()->talk_token = auth_token;
|
| - authenticator_.reset();
|
| -
|
| - FinishStep(new SetupFlowGetStatusStep());
|
| -}
|
| -
|
| -void SetupFlowLoginStep::OnIssueAuthTokenFailure(const std::string& service,
|
| - const GoogleServiceAuthError& error) {
|
| - ShowGaiaFailed(error);
|
| - authenticator_.reset();
|
| -}
|
| -
|
| -void SetupFlowLoginStep::DoStart() {
|
| - DictionaryValue args;
|
| - // TODO(sergeyu): Supply current login name if the service was started before.
|
| - args.SetString("user", "");
|
| - args.SetBoolean("editable_user", true);
|
| - if (!error_message_.empty())
|
| - args.SetString("error_message", error_message_);
|
| - ShowGaiaLogin(args);
|
| -}
|
| -
|
| -void SetupFlowLoginStep::ShowGaiaLogin(const DictionaryValue& args) {
|
| - WebUI* web_ui = flow()->web_ui();
|
| - DCHECK(web_ui);
|
| -
|
| - web_ui->CallJavascriptFunction("showLogin");
|
| -
|
| - std::string json;
|
| - base::JSONWriter::Write(&args, false, &json);
|
| - std::wstring javascript = std::wstring(L"showGaiaLogin(") +
|
| - UTF8ToWide(json) + L");";
|
| - ExecuteJavascriptInIFrame(kLoginIFrameXPath, javascript);
|
| -}
|
| -
|
| -void SetupFlowLoginStep::ShowGaiaFailed(const GoogleServiceAuthError& error) {
|
| - DictionaryValue args;
|
| - args.SetInteger("error", error.state());
|
| - args.SetBoolean("editable_user", true);
|
| - args.SetString("captchaUrl", error.captcha().image_url.spec());
|
| - ShowGaiaLogin(args);
|
| -}
|
| -
|
| -} // namespace remoting
|
|
|