Index: chrome/browser/remoting/directory_add_request.cc |
diff --git a/chrome/browser/remoting/directory_add_request.cc b/chrome/browser/remoting/directory_add_request.cc |
deleted file mode 100644 |
index d6dae8e43bf153e4ef8768ab2a58e7668d72cfda..0000000000000000000000000000000000000000 |
--- a/chrome/browser/remoting/directory_add_request.cc |
+++ /dev/null |
@@ -1,125 +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/directory_add_request.h" |
- |
-#include <vector> |
- |
-#include "base/json/json_reader.h" |
-#include "base/json/json_writer.h" |
-#include "base/values.h" |
-#include "chrome/common/net/http_return.h" |
-#include "net/http/http_request_headers.h" |
-#include "net/url_request/url_request_context_getter.h" |
-#include "net/url_request/url_request_status.h" |
- |
-namespace remoting { |
- |
-static const char kRemotingDirectoryUrl[] = |
- "https://www.googleapis.com/chromoting/v1/@me/hosts"; |
- |
-DirectoryAddRequest::DirectoryAddRequest(net::URLRequestContextGetter* getter) |
- : getter_(getter) { |
-} |
- |
-DirectoryAddRequest::~DirectoryAddRequest() { |
- DCHECK(!fetcher_.get()) << "URLFetcher not destroyed."; |
-} |
- |
-void DirectoryAddRequest::AddHost(const remoting::ChromotingHostInfo& host_info, |
- const std::string& auth_token, |
- DoneCallback* done_callback) { |
- DCHECK(done_callback); |
- done_callback_.reset(done_callback); |
- |
- // Prepare the parameters for the request. |
- DictionaryValue data; |
- data.SetString("hostId", host_info.host_id); |
- data.SetString("hostName", host_info.hostname); |
- data.SetString("publicKey", host_info.public_key); |
- |
- // Generate the final json query. |
- DictionaryValue args; |
- args.Set("data", data.DeepCopy()); |
- std::string request_content; |
- base::JSONWriter::Write(&args, false, &request_content); |
- |
- // Prepare the HTTP header for authentication. |
- net::HttpRequestHeaders headers; |
- headers.SetHeader("Authorization", "GoogleLogin auth=" + auth_token); |
- fetcher_.reset( |
- new URLFetcher(GURL(kRemotingDirectoryUrl), URLFetcher::POST, this)); |
- fetcher_->set_request_context(getter_); |
- fetcher_->set_upload_data("application/json", request_content); |
- fetcher_->set_extra_request_headers(headers.ToString()); |
- |
- // And then start the request. |
- fetcher_->Start(); |
-} |
- |
-void DirectoryAddRequest::OnURLFetchComplete( |
- const URLFetcher* source, |
- const GURL& url, |
- const net::URLRequestStatus& status, |
- int response_code, |
- const net::ResponseCookies& cookies, |
- const std::string& data) { |
- DCHECK_EQ(source, fetcher_.get()); |
- |
- // Destroy the fetcher after the response has been received. |
- fetcher_.reset(); |
- |
- Result result; |
- std::string error_message; |
- |
- if (status.is_success()) { |
- DictionaryValue* response = NULL; |
- scoped_ptr<Value> response_json(base::JSONReader::Read(data, true)); |
- if (response_json != NULL && |
- response_json->IsType(Value::TYPE_DICTIONARY)) { |
- response = static_cast<DictionaryValue*>(response_json.get()); |
- response->GetString("error.message", &error_message); |
- } |
- |
- switch (response_code) { |
- case RC_REQUEST_OK: |
- result = SUCCESS; |
- break; |
- |
- case RC_BAD_REQUEST: |
- // TODO(sergeyu): Implement duplicate error detection that doesn't |
- // depend on error message. |
- if (error_message.find("duplicate") != std::string::npos) { |
- result = ERROR_EXISTS; |
- } else { |
- result = ERROR_INVALID_REQUEST; |
- } |
- break; |
- |
- case RC_UNAUTHORIZED: |
- result = ERROR_AUTH; |
- break; |
- |
- case RC_INTERNAL_SERVER_ERROR: |
- result = ERROR_SERVER; |
- break; |
- |
- default: |
- result = ERROR_OTHER; |
- } |
- } else { |
- result = ERROR_OTHER; |
- } |
- |
- if (result != SUCCESS) { |
- LOG(WARNING) << "Received error when trying to register Chromoting host. " |
- << "status.is_success(): " << status.is_success() |
- << " response_code: " << response_code |
- << " error_message: " << error_message; |
- } |
- |
- done_callback_->Run(result, error_message); |
-} |
- |
-} // namespace remoting |