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, |