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

Unified Diff: chrome/service/cloud_print/cloud_print_connector.cc

Issue 10966052: Added options to disable specific printers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/service/cloud_print/cloud_print_connector.h ('k') | chrome/service/cloud_print/connector_settings.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 0688fe4a018104a64384725259badb5421ac0ff9..fa927f34019f35e03c3111b8e6943ff189eefa8c 100644
--- a/chrome/service/cloud_print/cloud_print_connector.cc
+++ b/chrome/service/cloud_print/cloud_print_connector.cc
@@ -88,11 +88,12 @@ void CloudPrintConnector::GetPrinterIds(std::list<std::string>* printer_ids) {
void CloudPrintConnector::RegisterPrinters(
const printing::PrinterList& printers) {
- if (!IsRunning())
+ if (!settings_.connect_new_printers() || !IsRunning())
return;
printing::PrinterList::const_iterator it;
for (it = printers.begin(); it != printers.end(); ++it) {
- AddPendingRegisterTask(*it);
+ if (!settings_.IsPrinterBlacklisted(it->printer_name))
+ AddPendingRegisterTask(*it);
}
}
@@ -208,19 +209,23 @@ CloudPrintConnector::HandlePrinterListResponse(
if (printer_list->GetDictionary(index, &printer_data)) {
std::string printer_name;
printer_data->GetString(kNameValue, &printer_name);
- if (RemovePrinterFromList(printer_name, &local_printers)) {
+ std::string printer_id;
+ printer_data->GetString(kIdValue, &printer_id);
+ if (settings_.IsPrinterBlacklisted(printer_name)) {
+ VLOG(1) << "CP_CONNECTOR: Deleting " << printer_name <<
+ " id: " << printer_id << " as blacklisted";
+ AddPendingDeleteTask(printer_id);
+ } else if (RemovePrinterFromList(printer_name, &local_printers)) {
InitJobHandlerForPrinter(printer_data);
} else {
// Cloud printer is not found on the local system.
- std::string printer_id;
- printer_data->GetString(kIdValue, &printer_id);
if (full_list || settings_.delete_on_enum_fail()) {
// Delete if we get the full list of printers or
// |delete_on_enum_fail_| is set.
VLOG(1) << "CP_CONNECTOR: Deleting " << printer_name <<
- " id: " << printer_id <<
- " full_list: " << full_list <<
- " delete_on_enum_fail: " << settings_.delete_on_enum_fail();
+ " id: " << printer_id <<
+ " full_list: " << full_list <<
+ " delete_on_enum_fail: " << settings_.delete_on_enum_fail();
AddPendingDeleteTask(printer_id);
} else {
LOG(ERROR) << "CP_CONNECTOR: Printer: " << printer_name <<
@@ -237,12 +242,8 @@ CloudPrintConnector::HandlePrinterListResponse(
}
request_ = NULL;
- if (!local_printers.empty()) {
- // In the future we might want to notify frontend about available printers
- // and let user choose which printers to register.
- // Here is a good place to notify client about available printers.
- RegisterPrinters(local_printers);
- }
+
+ RegisterPrinters(local_printers);
ContinuePendingTaskProcessing(); // Continue processing background tasks.
return CloudPrintURLFetcher::STOP_PROCESSING;
}
« no previous file with comments | « chrome/service/cloud_print/cloud_print_connector.h ('k') | chrome/service/cloud_print/connector_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698