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

Side by Side Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 208583007: Tunnel the CDD from the Print Preview javascript to the privet operation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h" 5 #include "chrome/browser/ui/webui/print_preview/print_preview_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPDF", page_count); 715 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintToPDF", page_count);
716 ReportUserActionHistogram(PRINT_TO_PDF); 716 ReportUserActionHistogram(PRINT_TO_PDF);
717 PrintToPdf(); 717 PrintToPdf();
718 return; 718 return;
719 } 719 }
720 720
721 #if defined(ENABLE_MDNS) 721 #if defined(ENABLE_MDNS)
722 if (print_with_privet && PrivetPrintingEnabled()) { 722 if (print_with_privet && PrivetPrintingEnabled()) {
723 std::string printer_name; 723 std::string printer_name;
724 std::string print_ticket; 724 std::string print_ticket;
725 std::string capabilities;
725 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintWithPrivet", page_count); 726 UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.PrintWithPrivet", page_count);
726 ReportUserActionHistogram(PRINT_WITH_PRIVET); 727 ReportUserActionHistogram(PRINT_WITH_PRIVET);
727 728
728 int width = 0; 729 int width = 0;
729 int height = 0; 730 int height = 0;
730 if (!settings->GetString(printing::kSettingDeviceName, &printer_name) || 731 if (!settings->GetString(printing::kSettingDeviceName, &printer_name) ||
731 !settings->GetString(printing::kSettingTicket, &print_ticket) || 732 !settings->GetString(printing::kSettingTicket, &print_ticket) ||
733 !settings->GetString(printing::kSettingCapabilities, &capabilities) ||
732 !settings->GetInteger(printing::kSettingPageWidth, &width) || 734 !settings->GetInteger(printing::kSettingPageWidth, &width) ||
733 !settings->GetInteger(printing::kSettingPageHeight, &height) || 735 !settings->GetInteger(printing::kSettingPageHeight, &height) ||
734 width <= 0 || height <=0) { 736 width <= 0 || height <= 0) {
735 NOTREACHED(); 737 NOTREACHED();
736 base::FundamentalValue http_code_value(-1); 738 base::FundamentalValue http_code_value(-1);
737 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value); 739 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value);
738 return; 740 return;
739 } 741 }
740 742
741 PrintToPrivetPrinter(printer_name, print_ticket, gfx::Size(width, height)); 743 PrintToPrivetPrinter(
744 printer_name, print_ticket, capabilities, gfx::Size(width, height));
742 return; 745 return;
743 } 746 }
744 #endif 747 #endif
745 748
746 scoped_refptr<base::RefCountedBytes> data; 749 scoped_refptr<base::RefCountedBytes> data;
747 base::string16 title; 750 base::string16 title;
748 if (!GetPreviewDataAndTitle(&data, &title)) { 751 if (!GetPreviewDataAndTitle(&data, &title)) {
749 // Nothing to print, no preview available. 752 // Nothing to print, no preview available.
750 return; 753 return;
751 } 754 }
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1396 privet_capabilities_operation_.reset(); 1399 privet_capabilities_operation_.reset();
1397 privet_http_client_ = http_client.Pass(); 1400 privet_http_client_ = http_client.Pass();
1398 1401
1399 privet_http_resolution_.reset(); 1402 privet_http_resolution_.reset();
1400 1403
1401 return true; 1404 return true;
1402 } 1405 }
1403 1406
1404 void PrintPreviewHandler::PrivetLocalPrintUpdateClient( 1407 void PrintPreviewHandler::PrivetLocalPrintUpdateClient(
1405 std::string print_ticket, 1408 std::string print_ticket,
1409 std::string capabilities,
1406 gfx::Size page_size, 1410 gfx::Size page_size,
1407 scoped_ptr<local_discovery::PrivetHTTPClient> http_client) { 1411 scoped_ptr<local_discovery::PrivetHTTPClient> http_client) {
1408 if (!PrivetUpdateClient(http_client.Pass())) 1412 if (!PrivetUpdateClient(http_client.Pass()))
1409 return; 1413 return;
1410 1414
1411 StartPrivetLocalPrint(print_ticket, page_size); 1415 StartPrivetLocalPrint(print_ticket, capabilities, page_size);
1412 } 1416 }
1413 1417
1414 void PrintPreviewHandler::StartPrivetLocalPrint( 1418 void PrintPreviewHandler::StartPrivetLocalPrint(const std::string& print_ticket,
1415 const std::string& print_ticket, 1419 const std::string& capabilities,
1416 const gfx::Size& page_size) { 1420 const gfx::Size& page_size) {
1417 privet_local_print_operation_ = 1421 privet_local_print_operation_ =
1418 privet_http_client_->CreateLocalPrintOperation(this); 1422 privet_http_client_->CreateLocalPrintOperation(this);
1419 1423
1420 privet_local_print_operation_->SetTicket(print_ticket); 1424 privet_local_print_operation_->SetTicket(print_ticket);
1425 privet_local_print_operation_->SetCapabilities(capabilities);
1421 1426
1422 scoped_refptr<base::RefCountedBytes> data; 1427 scoped_refptr<base::RefCountedBytes> data;
1423 base::string16 title; 1428 base::string16 title;
1424 1429
1425 if (!GetPreviewDataAndTitle(&data, &title)) { 1430 if (!GetPreviewDataAndTitle(&data, &title)) {
1426 base::FundamentalValue http_code_value(-1); 1431 base::FundamentalValue http_code_value(-1);
1427 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value); 1432 web_ui()->CallJavascriptFunction("onPrivetPrintFailed", http_code_value);
1428 return; 1433 return;
1429 } 1434 }
1430 1435
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 } 1479 }
1475 1480
1476 void PrintPreviewHandler::SendPrivetCapabilitiesError( 1481 void PrintPreviewHandler::SendPrivetCapabilitiesError(
1477 const std::string& device_name) { 1482 const std::string& device_name) {
1478 base::StringValue name_value(device_name); 1483 base::StringValue name_value(device_name);
1479 web_ui()->CallJavascriptFunction( 1484 web_ui()->CallJavascriptFunction(
1480 "failedToGetPrivetPrinterCapabilities", 1485 "failedToGetPrivetPrinterCapabilities",
1481 name_value); 1486 name_value);
1482 } 1487 }
1483 1488
1484 void PrintPreviewHandler::PrintToPrivetPrinter( 1489 void PrintPreviewHandler::PrintToPrivetPrinter(const std::string& device_name,
1485 const std::string& device_name, 1490 const std::string& ticket,
1486 const std::string& ticket, 1491 const std::string& capabilities,
1487 const gfx::Size& page_size) { 1492 const gfx::Size& page_size) {
1488 CreatePrivetHTTP( 1493 CreatePrivetHTTP(
1489 device_name, 1494 device_name,
1490 base::Bind(&PrintPreviewHandler::PrivetLocalPrintUpdateClient, 1495 base::Bind(&PrintPreviewHandler::PrivetLocalPrintUpdateClient,
1491 base::Unretained(this), ticket, page_size)); 1496 base::Unretained(this),
1497 ticket,
1498 capabilities,
1499 page_size));
1492 } 1500 }
1493 1501
1494 bool PrintPreviewHandler::CreatePrivetHTTP( 1502 bool PrintPreviewHandler::CreatePrivetHTTP(
1495 const std::string& name, 1503 const std::string& name,
1496 const local_discovery::PrivetHTTPAsynchronousFactory::ResultCallback& 1504 const local_discovery::PrivetHTTPAsynchronousFactory::ResultCallback&
1497 callback) { 1505 callback) {
1498 const local_discovery::DeviceDescription* device_description = 1506 const local_discovery::DeviceDescription* device_description =
1499 printer_lister_->GetDeviceDescription(name); 1507 printer_lister_->GetDeviceDescription(name);
1500 1508
1501 if (!device_description) { 1509 if (!device_description) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1539 printer_value->SetString("name", description.name); 1547 printer_value->SetString("name", description.name);
1540 printer_value->SetBoolean("hasLocalPrinting", has_local_printing); 1548 printer_value->SetBoolean("hasLocalPrinting", has_local_printing);
1541 printer_value->SetBoolean( 1549 printer_value->SetBoolean(
1542 "isUnregistered", 1550 "isUnregistered",
1543 description.id.empty() && 1551 description.id.empty() &&
1544 command_line->HasSwitch(switches::kEnablePrintPreviewRegisterPromos)); 1552 command_line->HasSwitch(switches::kEnablePrintPreviewRegisterPromos));
1545 printer_value->SetString("cloudID", description.id); 1553 printer_value->SetString("cloudID", description.id);
1546 } 1554 }
1547 1555
1548 #endif 1556 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698