Commit 96e6e780 authored by abodenha@chromium.org's avatar abodenha@chromium.org

Add additional logging.

Add additional logging and message to server for dealing with printers that a connector loses track of.

BUG=142337


Review URL: https://chromiumcodereview.appspot.com/10836278

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152021 0039d316-1c4b-4281-b951-d872f2087c98
parent dc83c581
...@@ -7420,6 +7420,9 @@ The following plug-in is unresponsive: <ph name="PLUGIN_NAME">$1 ...@@ -7420,6 +7420,9 @@ The following plug-in is unresponsive: <ph name="PLUGIN_NAME">$1
<message name="IDS_CLOUD_PRINT_REGISTER_PRINTER_FAILED" desc="Status message to be sent to the server when we failed to retrieve information about a printer to register."> <message name="IDS_CLOUD_PRINT_REGISTER_PRINTER_FAILED" desc="Status message to be sent to the server when we failed to retrieve information about a printer to register.">
An error occurred while retrieving printer capabilities for printer <ph name="PRINTER_NAME">$1<ex>HP Laserjet 7900</ex></ph>. This printer could not be registered with <ph name="CLOUD_PRINT_NAME">$2<ex>Google Cloud Print</ex></ph>. An error occurred while retrieving printer capabilities for printer <ph name="PRINTER_NAME">$1<ex>HP Laserjet 7900</ex></ph>. This printer could not be registered with <ph name="CLOUD_PRINT_NAME">$2<ex>Google Cloud Print</ex></ph>.
</message> </message>
<message name="IDS_CLOUD_PRINT_ZOMBIE_PRINTER" desc="Status message to be sent to the server when we get a notification for a printer that we can't find locally.">
Received a notification for an unknown printer.
</message>
<message name="IDS_CLOUD_PRINT_XPS_UNAVAILABLE" desc="Status message to be sent to the Cloud Print server when the XPS framework is missing."> <message name="IDS_CLOUD_PRINT_XPS_UNAVAILABLE" desc="Status message to be sent to the Cloud Print server when the XPS framework is missing.">
The <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph> connector requires that the Microsoft XML Paper Specification Essentials Pack be installed. The <ph name="CLOUD_PRINT_NAME">$1<ex>Google Cloud Print</ex></ph> connector requires that the Microsoft XML Paper Specification Essentials Pack be installed.
</message> </message>
...@@ -111,8 +111,15 @@ void CloudPrintConnector::CheckForJobs(const std::string& reason, ...@@ -111,8 +111,15 @@ void CloudPrintConnector::CheckForJobs(const std::string& reason,
return; return;
if (!printer_id.empty()) { if (!printer_id.empty()) {
JobHandlerMap::iterator index = job_handler_map_.find(printer_id); JobHandlerMap::iterator index = job_handler_map_.find(printer_id);
if (index != job_handler_map_.end()) if (index != job_handler_map_.end()) {
index->second->CheckForJobs(reason); index->second->CheckForJobs(reason);
} else {
std::string status_message = l10n_util::GetStringUTF8(
IDS_CLOUD_PRINT_ZOMBIE_PRINTER);
LOG(ERROR) << "CP_CONNECTOR: " << status_message <<
" Printer_id: " << printer_id;
ReportUserMessage(kZombiePrinterMessageId, status_message);
}
} else { } else {
for (JobHandlerMap::iterator index = job_handler_map_.begin(); for (JobHandlerMap::iterator index = job_handler_map_.begin();
index != job_handler_map_.end(); index++) { index != job_handler_map_.end(); index++) {
...@@ -190,7 +197,7 @@ CloudPrintConnector::HandlePrinterListResponse( ...@@ -190,7 +197,7 @@ CloudPrintConnector::HandlePrinterListResponse(
cloud_print::PrintSystem::PrintSystemResult result = cloud_print::PrintSystem::PrintSystemResult result =
print_system_->EnumeratePrinters(&local_printers); print_system_->EnumeratePrinters(&local_printers);
bool full_list = result.succeeded(); bool full_list = result.succeeded();
if (!result.succeeded()) { if (!full_list) {
std::string message = result.message(); std::string message = result.message();
if (message.empty()) if (message.empty())
message = l10n_util::GetStringFUTF8(IDS_CLOUD_PRINT_ENUM_FAILED, message = l10n_util::GetStringFUTF8(IDS_CLOUD_PRINT_ENUM_FAILED,
...@@ -213,10 +220,16 @@ CloudPrintConnector::HandlePrinterListResponse( ...@@ -213,10 +220,16 @@ CloudPrintConnector::HandlePrinterListResponse(
InitJobHandlerForPrinter(printer_data); InitJobHandlerForPrinter(printer_data);
} else { } else {
// Cloud printer is not found on the local system. // Cloud printer is not found on the local system.
std::string printer_id;
printer_data->GetString(kIdValue, &printer_id);
if (full_list) { // Delete only if we get the full list of printer. if (full_list) { // Delete only if we get the full list of printer.
std::string printer_id;
printer_data->GetString(kIdValue, &printer_id);
AddPendingDeleteTask(printer_id); AddPendingDeleteTask(printer_id);
} else {
LOG(ERROR) << "CP_CONNECTOR: Printer: " << printer_name <<
" id: " << printer_id <<
" not found in print system and full printer list was" <<
" not received. Printer will not be able to process" <<
" jobs.";
} }
} }
} else { } else {
......
...@@ -54,6 +54,7 @@ const char kJobFetchReasonQueryMore[] = "querymore"; ...@@ -54,6 +54,7 @@ const char kJobFetchReasonQueryMore[] = "querymore";
const char kPrintSystemFailedMessageId[] = "printsystemfail"; const char kPrintSystemFailedMessageId[] = "printsystemfail";
const char kGetPrinterCapsFailedMessageId[] = "getprncapsfail"; const char kGetPrinterCapsFailedMessageId[] = "getprncapsfail";
const char kEnumPrintersFailedMessageId[] = "enumfail"; const char kEnumPrintersFailedMessageId[] = "enumfail";
const char kZombiePrinterMessageId[] = "zombieprinter";
const char kDefaultCloudPrintOAuthClientId[] = const char kDefaultCloudPrintOAuthClientId[] =
"551556820943.apps.googleusercontent.com"; "551556820943.apps.googleusercontent.com";
......
...@@ -45,6 +45,7 @@ extern const char kJobFetchReasonQueryMore[]; ...@@ -45,6 +45,7 @@ extern const char kJobFetchReasonQueryMore[];
extern const char kPrintSystemFailedMessageId[]; extern const char kPrintSystemFailedMessageId[];
extern const char kGetPrinterCapsFailedMessageId[]; extern const char kGetPrinterCapsFailedMessageId[];
extern const char kEnumPrintersFailedMessageId[]; extern const char kEnumPrintersFailedMessageId[];
extern const char kZombiePrinterMessageId[];
extern const char kDefaultCloudPrintOAuthClientId[]; extern const char kDefaultCloudPrintOAuthClientId[];
extern const char kDefaultCloudPrintOAuthClientSecret[]; extern const char kDefaultCloudPrintOAuthClientSecret[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment