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

Unified Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 10971003: Moves HTTP POST handling to JS. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Merge with trunk. Created 8 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
« no previous file with comments | « chrome/browser/ui/webui/print_preview/print_preview_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/print_preview/print_preview_handler.cc
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index 6e56b2856455d13442d48aa99b2e478cd8b299ce..42d9ac2cf6e0d2786e1b9a65a70c2d4e60c4f0b5 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -440,10 +440,7 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) {
}
if (is_cloud_printer) {
- std::string print_ticket;
- bool res = args->GetString(1, &print_ticket);
- DCHECK(res);
- SendCloudPrintJob(*settings, print_ticket);
+ SendCloudPrintJob();
} else if (print_to_pdf) {
HandlePrintToPdf(*settings);
} else if (is_cloud_dialog) {
@@ -795,8 +792,7 @@ void PrintPreviewHandler::SendCloudPrintEnabled() {
}
}
-void PrintPreviewHandler::SendCloudPrintJob(const DictionaryValue& settings,
- std::string print_ticket) {
+void PrintPreviewHandler::SendCloudPrintJob() {
ReportUserActionHistogram(PRINT_WITH_CLOUD_PRINT);
scoped_refptr<base::RefCountedBytes> data;
PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
@@ -804,13 +800,6 @@ void PrintPreviewHandler::SendCloudPrintJob(const DictionaryValue& settings,
print_preview_ui->GetPrintPreviewDataForIndex(
printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, &data);
if (data.get() && data->size() > 0U && data->front()) {
- printing::PrintViewManager* print_view_manager =
- printing::PrintViewManager::FromWebContents(
- preview_tab_contents()->web_contents());
- string16 print_job_title_utf16 = print_view_manager->RenderSourceName();
- std::string print_job_title = UTF16ToUTF8(print_job_title_utf16);
- std::string printer_id;
- settings.GetString(printing::kSettingCloudPrintId, &printer_id);
// BASE64 encode the job data.
std::string raw_data(reinterpret_cast<const char*>(data->front()),
data->size());
@@ -818,38 +807,7 @@ void PrintPreviewHandler::SendCloudPrintJob(const DictionaryValue& settings,
if (!base::Base64Encode(raw_data, &base64_data)) {
NOTREACHED() << "Base64 encoding PDF data.";
}
-
- const char boundary[] = "----CloudPrintFormBoundaryjc9wuprokl8i";
- const char prolog[] = "--%s\r\n"
- "Content-Disposition: form-data; name=\"capabilities\"\r\n\r\n%s\r\n"
- "--%s\r\n"
- "Content-Disposition: form-data; name=\"contentType\"\r\n\r\ndataUrl\r\n"
- "--%s\r\n"
- "Content-Disposition: form-data; name=\"title\"\r\n\r\n%s\r\n"
- "--%s\r\n"
- "Content-Disposition: form-data; name=\"printerid\"\r\n\r\n%s\r\n"
- "--%s\r\n"
- "Content-Disposition: form-data; name=\"content\"\r\n\r\n"
- "data:application/pdf;base64,%s\r\n"
- "--%s\r\n";
-
- // TODO(abodenha@chromium.org) This implies a large copy operation.
- // Profile this and optimize if necessary.
- std::string final_data;
- base::SStringPrintf(&final_data,
- prolog,
- boundary,
- print_ticket.c_str(),
- boundary,
- boundary,
- print_job_title.c_str(),
- boundary,
- printer_id.c_str(),
- boundary,
- base64_data.c_str(),
- boundary);
-
- StringValue data_value(final_data);
+ StringValue data_value(base64_data);
web_ui()->CallJavascriptFunction("printToCloud", data_value);
} else {
« no previous file with comments | « chrome/browser/ui/webui/print_preview/print_preview_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698