| Index: chrome/service/cloud_print/cloud_print_connector.cc
|
| diff --git a/chrome/service/cloud_print/cloud_print_connector.cc b/chrome/service/cloud_print/cloud_print_connector.cc
|
| index 87920171b93ac65ec8dd4d2cfc98961b2010b724..634ef4d02df8ec0be306b5968e62d73f278ad5d4 100644
|
| --- a/chrome/service/cloud_print/cloud_print_connector.cc
|
| +++ b/chrome/service/cloud_print/cloud_print_connector.cc
|
| @@ -28,6 +28,10 @@ CloudPrintConnector::CloudPrintConnector(Client* client,
|
| settings_.CopyFrom(settings);
|
| }
|
|
|
| +CloudPrintConnector::PendingTask::PendingTask() : type(PENDING_PRINTERS_NONE) {}
|
| +
|
| +CloudPrintConnector::PendingTask::~PendingTask() {}
|
| +
|
| bool CloudPrintConnector::InitPrintSystem() {
|
| if (print_system_.get())
|
| return true;
|
| @@ -90,12 +94,12 @@ void CloudPrintConnector::GetPrinterIds(std::list<std::string>* printer_ids) {
|
|
|
| void CloudPrintConnector::RegisterPrinters(
|
| const printing::PrinterList& printers) {
|
| - if (!settings_.connect_new_printers() || !IsRunning())
|
| + if (!IsRunning())
|
| return;
|
| printing::PrinterList::const_iterator it;
|
| for (it = printers.begin(); it != printers.end(); ++it) {
|
| - if (!settings_.IsPrinterBlacklisted(it->printer_name))
|
| - AddPendingRegisterTask(*it);
|
| + if (settings_.ShouldConnect(it->printer_name))
|
| + AddPendingRegisterTask(*it, settings_.GetDisplayName(it->printer_name));
|
| }
|
| }
|
|
|
| @@ -212,7 +216,8 @@ CloudPrintConnector::HandlePrinterListResponse(
|
| printer_data->GetString(kNameValue, &printer_name);
|
| std::string printer_id;
|
| printer_data->GetString(kIdValue, &printer_id);
|
| - if (settings_.IsPrinterBlacklisted(printer_name)) {
|
| +
|
| + if (!settings_.ShouldConnect(printer_name)) {
|
| VLOG(1) << "CP_CONNECTOR: Deleting " << printer_name <<
|
| " id: " << printer_id << " as blacklisted";
|
| AddPendingDeleteTask(printer_id);
|
| @@ -399,10 +404,12 @@ void CloudPrintConnector::AddPendingDeleteTask(const std::string& id) {
|
| }
|
|
|
| void CloudPrintConnector::AddPendingRegisterTask(
|
| - const printing::PrinterBasicInfo& info) {
|
| + const printing::PrinterBasicInfo& info,
|
| + const std::string& display_name) {
|
| PendingTask task;
|
| task.type = PENDING_PRINTER_REGISTER;
|
| task.printer_info = info;
|
| + task.display_name = display_name;
|
| AddPendingTask(task);
|
| }
|
|
|
| @@ -428,7 +435,7 @@ void CloudPrintConnector::ProcessPendingTask() {
|
| OnPrintersAvailable();
|
| break;
|
| case PENDING_PRINTER_REGISTER :
|
| - OnPrinterRegister(task.printer_info);
|
| + OnPrinterRegister(task.printer_info, task.display_name);
|
| break;
|
| case PENDING_PRINTER_DELETE :
|
| OnPrinterDelete(task.printer_id);
|
| @@ -459,7 +466,7 @@ void CloudPrintConnector::OnPrintersAvailable() {
|
| }
|
|
|
| void CloudPrintConnector::OnPrinterRegister(
|
| - const printing::PrinterBasicInfo& info) {
|
| + const printing::PrinterBasicInfo& info, const std::string& display_name) {
|
| for (JobHandlerMap::iterator it = job_handler_map_.begin();
|
| it != job_handler_map_.end(); ++it) {
|
| if (IsSamePrinter(it->second->GetPrinterName(), info.printer_name)) {
|
| @@ -474,7 +481,7 @@ void CloudPrintConnector::OnPrinterRegister(
|
| print_system_->GetPrinterCapsAndDefaults(
|
| info.printer_name.c_str(),
|
| base::Bind(&CloudPrintConnector::OnReceivePrinterCaps,
|
| - base::Unretained(this)));
|
| + base::Unretained(this), display_name));
|
| }
|
|
|
| void CloudPrintConnector::OnPrinterDelete(const std::string& printer_id) {
|
| @@ -496,6 +503,7 @@ void CloudPrintConnector::OnPrinterDelete(const std::string& printer_id) {
|
| }
|
|
|
| void CloudPrintConnector::OnReceivePrinterCaps(
|
| + const std::string& display_name,
|
| bool succeeded,
|
| const std::string& printer_name,
|
| const printing::PrinterCapsAndDefaults& caps_and_defaults) {
|
| @@ -530,6 +538,10 @@ void CloudPrintConnector::OnReceivePrinterCaps(
|
| settings_.proxy_id(), mime_boundary, std::string(), &post_data);
|
| AddMultipartValueForUpload(kPrinterNameValue,
|
| info.printer_name, mime_boundary, std::string(), &post_data);
|
| + if (!display_name.empty()) {
|
| + AddMultipartValueForUpload(kPrinterDisplayNameValue,
|
| + display_name, mime_boundary, std::string(), &post_data);
|
| + }
|
| AddMultipartValueForUpload(kPrinterDescValue,
|
| info.printer_description, mime_boundary, std::string(), &post_data);
|
| AddMultipartValueForUpload(kPrinterStatusValue,
|
|
|