Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1497)

Unified Diff: chrome/browser/local_discovery/cloud_print_account_manager.cc

Issue 23530007: Move API flows for cloud print into common class CloudPrintBaseApiFlow (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: AppendQueryParameter Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/local_discovery/cloud_print_account_manager.cc
diff --git a/chrome/browser/local_discovery/cloud_print_account_manager.cc b/chrome/browser/local_discovery/cloud_print_account_manager.cc
index 72f446df0b69f3c287a6e8a60219140c5034df13..590bd86d129e4b488fff0675c58027e415e23203 100644
--- a/chrome/browser/local_discovery/cloud_print_account_manager.cc
+++ b/chrome/browser/local_discovery/cloud_print_account_manager.cc
@@ -4,21 +4,16 @@
#include "chrome/browser/local_discovery/cloud_print_account_manager.h"
-#include "base/json/json_reader.h"
#include "base/strings/stringprintf.h"
#include "base/values.h"
#include "chrome/common/cloud_print/cloud_print_constants.h"
-#include "net/base/load_flags.h"
-#include "net/http/http_status_code.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "net/url_request/url_request_status.h"
#include "url/gurl.h"
namespace local_discovery {
namespace {
// URL relative to cloud print root
-const char kCloudPrintRequestURLFormat[] = "%s/list?proxy=none&user=%d";
+const char kCloudPrintRequestURLFormat[] = "%s/list?proxy=none";
const char kCloudPrintKeyUsers[] = "request.users";
const char kCloudPrintKeyXsrfToken[] = "xsrf_token";
} // namespace
@@ -28,24 +23,19 @@ CloudPrintAccountManager::CloudPrintAccountManager(
const std::string& cloud_print_url,
int token_user_index,
const AccountsCallback& callback)
- : request_context_(request_context), cloud_print_url_(cloud_print_url),
- token_user_index_(token_user_index), callback_(callback) {
+ : flow_(request_context,
+ token_user_index,
+ GURL(base::StringPrintf(kCloudPrintRequestURLFormat,
+ cloud_print_url.c_str())),
+ this),
+ callback_(callback) {
}
CloudPrintAccountManager::~CloudPrintAccountManager() {
}
void CloudPrintAccountManager::Start() {
- GURL url(base::StringPrintf(kCloudPrintRequestURLFormat,
- cloud_print_url_.c_str(),
- token_user_index_));
- url_fetcher_.reset(net::URLFetcher::Create(url, net::URLFetcher::POST, this));
- url_fetcher_->SetRequestContext(request_context_.get());
- url_fetcher_->SetUploadData("", "");
- url_fetcher_->AddExtraRequestHeader(
- cloud_print::kChromeCloudPrintProxyHeader);
- url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
- url_fetcher_->Start();
+ flow_.Start();
}
// If an error occurs or the user is not logged in, return an empty user list to
@@ -54,31 +44,24 @@ void CloudPrintAccountManager::ReportEmptyUserList() {
callback_.Run(std::vector<std::string>(), "");
}
-void CloudPrintAccountManager::OnURLFetchComplete(
- const net::URLFetcher* source) {
- std::string response_str;
-
- if (source->GetStatus().status() != net::URLRequestStatus::SUCCESS ||
- source->GetResponseCode() != net::HTTP_OK ||
- !source->GetResponseAsString(&response_str)) {
- ReportEmptyUserList();
- return;
- }
+void CloudPrintAccountManager::OnCloudPrintAPIFlowError(
+ CloudPrintBaseApiFlow* flow,
+ CloudPrintBaseApiFlow::Status status) {
+ ReportEmptyUserList();
+}
- base::JSONReader reader;
- scoped_ptr<const base::Value> value(reader.Read(response_str));
- const base::DictionaryValue* dictionary_value;
+void CloudPrintAccountManager::OnCloudPrintAPIFlowComplete(
+ CloudPrintBaseApiFlow* flow,
+ const base::DictionaryValue* value) {
bool success = false;
std::string xsrf_token;
const base::ListValue* users = NULL;
std::vector<std::string> users_vector;
- if (!value.get() ||
- !value->GetAsDictionary(&dictionary_value) ||
- !dictionary_value->GetBoolean(cloud_print::kSuccessValue, &success) ||
- !dictionary_value->GetList(kCloudPrintKeyUsers, &users) ||
- !dictionary_value->GetString(kCloudPrintKeyXsrfToken, &xsrf_token) ||
+ if (!value->GetBoolean(cloud_print::kSuccessValue, &success) ||
+ !value->GetList(kCloudPrintKeyUsers, &users) ||
+ !value->GetString(kCloudPrintKeyXsrfToken, &xsrf_token) ||
!success) {
ReportEmptyUserList();
return;

Powered by Google App Engine
This is Rietveld 408576698