Index: chrome/service/cloud_print/cloud_print_helpers.cc |
diff --git a/chrome/service/cloud_print/cloud_print_helpers.cc b/chrome/service/cloud_print/cloud_print_helpers.cc |
index 485bac3eec7156d4e02cd8723a27db2cb30c55dc..035c43f821140d58367206fa19857acd8ad2df72 100644 |
--- a/chrome/service/cloud_print/cloud_print_helpers.cc |
+++ b/chrome/service/cloud_print/cloud_print_helpers.cc |
@@ -17,33 +17,6 @@ |
#include "chrome/service/cloud_print/cloud_print_token_store.h" |
#include "chrome/service/service_process.h" |
-namespace { |
- |
-typedef std::map<std::string, std::string> PrinterTags; |
- |
-void GetPrinterTags(const printing::PrinterBasicInfo& printer, |
- PrinterTags* printer_tags) { |
- *printer_tags = printer.options; |
- chrome::VersionInfo version_info; |
- DCHECK(version_info.is_valid()); |
- (*printer_tags)[kChromeVersionTagName] = version_info.CreateVersionString(); |
- using base::SysInfo; |
- (*printer_tags)[kSystemNameTagName] = SysInfo::OperatingSystemName(); |
- (*printer_tags)[kSystemVersionTagName] = SysInfo::OperatingSystemVersion(); |
-} |
- |
-std::string HashPrinterTags(const PrinterTags& strings) { |
- std::string values_list; |
- PrinterTags::const_iterator it; |
- for (it = strings.begin(); it != strings.end(); ++it) { |
- values_list.append(it->first); |
- values_list.append(it->second); |
- } |
- return base::MD5String(values_list); |
-} |
- |
-} // namespace |
- |
std::string StringFromJobStatus(cloud_print::PrintJobStatus status) { |
std::string ret; |
switch (status) { |
@@ -64,79 +37,13 @@ std::string StringFromJobStatus(cloud_print::PrintJobStatus status) { |
return ret; |
} |
-GURL CloudPrintHelpers::GetUrlForPrinterRegistration( |
- const GURL& cloud_print_server_url) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "register")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
-GURL CloudPrintHelpers::GetUrlForPrinterUpdate( |
- const GURL& cloud_print_server_url, |
- const std::string& printer_id) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "update")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("printerid=%s", printer_id.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
-GURL CloudPrintHelpers::GetUrlForPrinterDelete( |
- const GURL& cloud_print_server_url, |
- const std::string& printer_id, |
- const std::string& reason) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "delete")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("printerid=%s&reason=%s", |
- printer_id.c_str(), reason.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
-GURL CloudPrintHelpers::GetUrlForPrinterList(const GURL& cloud_print_server_url, |
- const std::string& proxy_id) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "list")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("proxy=%s", proxy_id.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
-GURL CloudPrintHelpers::GetUrlForJobFetch(const GURL& cloud_print_server_url, |
- const std::string& printer_id, |
- const std::string& reason) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "fetch")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("printerid=%s&deb=%s", |
- printer_id.c_str(), |
- reason.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
GURL CloudPrintHelpers::GetUrlForJobStatusUpdate( |
const GURL& cloud_print_server_url, |
const std::string& job_id, |
cloud_print::PrintJobStatus status) { |
- std::string status_string = StringFromJobStatus(status); |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "control")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("jobid=%s&status=%s", |
- job_id.c_str(), status_string.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
+ return cloud_print::GetUrlForJobStatusUpdate(cloud_print_server_url, |
+ job_id, |
+ StringFromJobStatus(status)); |
} |
GURL CloudPrintHelpers::GetUrlForJobStatusUpdate( |
@@ -161,84 +68,20 @@ GURL CloudPrintHelpers::GetUrlForJobStatusUpdate( |
return cloud_print_server_url.ReplaceComponents(replacements); |
} |
-GURL CloudPrintHelpers::GetUrlForUserMessage(const GURL& cloud_print_server_url, |
- const std::string& message_id) { |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "message")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("code=%s", message_id.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
-GURL CloudPrintHelpers::GetUrlForGetAuthCode(const GURL& cloud_print_server_url, |
- const std::string& oauth_client_id, |
- const std::string& proxy_id) { |
- // We use the internal API "createrobot" instead of "getauthcode". This API |
- // will add the robot as owner to all the existing printers for this user. |
- std::string path( |
- cloud_print::AppendPathToUrl(cloud_print_server_url, "createrobot")); |
- GURL::Replacements replacements; |
- replacements.SetPathStr(path); |
- std::string query = StringPrintf("oauth_client_id=%s&proxy=%s", |
- oauth_client_id.c_str(), |
- proxy_id.c_str()); |
- replacements.SetQueryStr(query); |
- return cloud_print_server_url.ReplaceComponents(replacements); |
-} |
- |
std::string CloudPrintHelpers::GetHashOfPrinterTags( |
const printing::PrinterBasicInfo& printer) { |
- PrinterTags printer_tags; |
- GetPrinterTags(printer, &printer_tags); |
- std::string values_list; |
- for (PrinterTags::const_iterator it = printer_tags.begin(); |
- it != printer_tags.end(); ++it) { |
- values_list.append(it->first); |
- values_list.append(it->second); |
- } |
- return base::MD5String(values_list); |
+ return cloud_print::GetHashOfPrinterTags(printer.options); |
} |
std::string CloudPrintHelpers::GetPostDataForPrinterTags( |
const printing::PrinterBasicInfo& printer, |
const std::string& mime_boundary) { |
- PrinterTags printer_tags; |
- GetPrinterTags(printer, &printer_tags); |
- std::string post_data; |
- for (PrinterTags::const_iterator it = printer_tags.begin(); |
- it != printer_tags.end(); ++it) { |
- // TODO(gene) Escape '=' char from name. Warning for now. |
- if (it->first.find('=') != std::string::npos) { |
- LOG(WARNING) << |
- "CP_PROXY: Printer option name contains '=' character"; |
- NOTREACHED(); |
- } |
- // All our tags have a special prefix to identify them as such. |
- std::string msg(kProxyTagPrefix); |
- msg += it->first; |
- msg += "="; |
- msg += it->second; |
- cloud_print::AddMultipartValueForUpload(kPrinterTagValue, msg, |
- mime_boundary, std::string(), &post_data); |
- } |
- std::string tags_hash_msg(kTagsHashTagName); |
- tags_hash_msg += "="; |
- tags_hash_msg += HashPrinterTags(printer_tags); |
- cloud_print::AddMultipartValueForUpload(kPrinterTagValue, tags_hash_msg, |
- mime_boundary, std::string(), |
- &post_data); |
- return post_data; |
+ return cloud_print::GetPostDataForPrinterTags( |
+ printer.options, mime_boundary, kProxyTagPrefix, kTagsHashTagName); |
} |
bool CloudPrintHelpers::IsDryRunJob(const std::vector<std::string>& tags) { |
- std::vector<std::string>::const_iterator it; |
- for (it = tags.begin(); it != tags.end(); ++it) { |
- if (*it == kTagDryRunFlag) |
- return true; |
- } |
- return false; |
+ return cloud_print::IsDryRunJob(tags, kTagDryRunFlag); |
msw
2012/11/17 00:22:30
Do you expect other dry run flags to be specified?
Chen Yu
2012/11/26 12:07:06
Done.
|
} |
std::string CloudPrintHelpers::GetCloudPrintAuthHeaderFromStore() { |
@@ -249,13 +92,6 @@ std::string CloudPrintHelpers::GetCloudPrintAuthHeaderFromStore() { |
LOG(ERROR) << "CP_PROXY: Missing OAuth token for request"; |
return std::string(); |
} |
- return GetCloudPrintAuthHeader(token_store->token()); |
+ return cloud_print::GetCloudPrintAuthHeader(token_store->token()); |
} |
-std::string CloudPrintHelpers::GetCloudPrintAuthHeader( |
- const std::string& auth_token) { |
- std::string header; |
- header = "Authorization: OAuth "; |
- header += auth_token; |
- return header; |
-} |