Commit ba037c81 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Printing: Remove PAGE_DONE notification on non-Windows platforms

PAGE_DONE is not useful on non-Windows platforms. Stop dispatching the
event in these cases.

Bug: None
Change-Id: I317b8d7ecd265c8386d474316685bcfb7113061c
Reviewed-on: https://chromium-review.googlesource.com/802822
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521053}
parent 859454a8
...@@ -384,14 +384,14 @@ void PrintJob::OnNotifyPrintJobEvent(const JobEventDetails& event_details) { ...@@ -384,14 +384,14 @@ void PrintJob::OnNotifyPrintJobEvent(const JobEventDetails& event_details) {
FROM_HERE, base::BindOnce(&PrintJob::OnDocumentDone, this)); FROM_HERE, base::BindOnce(&PrintJob::OnDocumentDone, this));
break; break;
} }
case JobEventDetails::PAGE_DONE:
#if defined(OS_WIN) #if defined(OS_WIN)
case JobEventDetails::PAGE_DONE:
if (pdf_conversion_state_) { if (pdf_conversion_state_) {
pdf_conversion_state_->OnPageProcessed( pdf_conversion_state_->OnPageProcessed(
base::Bind(&PrintJob::OnPdfPageConverted, this)); base::Bind(&PrintJob::OnPdfPageConverted, this));
} }
#endif // defined(OS_WIN)
break; break;
#endif // defined(OS_WIN)
default: { default: {
NOTREACHED(); NOTREACHED();
break; break;
......
...@@ -186,9 +186,6 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> { ...@@ -186,9 +186,6 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> {
// A new document started printing. // A new document started printing.
NEW_DOC, NEW_DOC,
// A page is done printing.
PAGE_DONE,
// A document is done printing. The worker thread is still alive. Warning: // A document is done printing. The worker thread is still alive. Warning:
// not a good moment to release the handle to PrintJob. // not a good moment to release the handle to PrintJob.
DOC_DONE, DOC_DONE,
...@@ -202,6 +199,11 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> { ...@@ -202,6 +199,11 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> {
// An error occured. Printing is canceled. // An error occured. Printing is canceled.
FAILED, FAILED,
#if defined(OS_WIN)
// A page is done printing. Only used on Windows.
PAGE_DONE,
#endif
}; };
JobEventDetails(Type type, JobEventDetails(Type type,
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "chrome/browser/printing/print_job_manager.h" #include "chrome/browser/printing/print_job_manager.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/printing/print_job.h" #include "chrome/browser/printing/print_job.h"
#include "chrome/browser/printing/printer_query.h" #include "chrome/browser/printing/printer_query.h"
...@@ -138,7 +139,9 @@ void PrintJobManager::OnPrintJobEvent( ...@@ -138,7 +139,9 @@ void PrintJobManager::OnPrintJobEvent(
case JobEventDetails::USER_INIT_DONE: case JobEventDetails::USER_INIT_DONE:
case JobEventDetails::USER_INIT_CANCELED: case JobEventDetails::USER_INIT_CANCELED:
case JobEventDetails::DEFAULT_INIT_DONE: case JobEventDetails::DEFAULT_INIT_DONE:
#if defined(OS_WIN)
case JobEventDetails::PAGE_DONE: case JobEventDetails::PAGE_DONE:
#endif
case JobEventDetails::DOC_DONE: case JobEventDetails::DOC_DONE:
case JobEventDetails::ALL_PAGES_REQUESTED: { case JobEventDetails::ALL_PAGES_REQUESTED: {
// Don't care. // Don't care.
......
...@@ -422,12 +422,15 @@ void PrintJobWorker::SpoolPage(PrintedPage* page) { ...@@ -422,12 +422,15 @@ void PrintJobWorker::SpoolPage(PrintedPage* page) {
return; return;
} }
// Signal everyone that the page is printed. // Signal everyone that the page is printed. No one cares about this except
// on Windows.
#if defined(OS_WIN)
owner_->PostTask( owner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&NotificationCallback, base::RetainedRef(owner_), base::Bind(&NotificationCallback, base::RetainedRef(owner_),
JobEventDetails::PAGE_DONE, printing_context_->job_id(), JobEventDetails::PAGE_DONE, printing_context_->job_id(),
base::RetainedRef(document_), base::RetainedRef(page))); base::RetainedRef(document_), base::RetainedRef(page)));
#endif
} }
void PrintJobWorker::OnFailure() { void PrintJobWorker::OnFailure() {
......
...@@ -363,7 +363,9 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent( ...@@ -363,7 +363,9 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent(
break; break;
} }
case JobEventDetails::NEW_DOC: case JobEventDetails::NEW_DOC:
#if defined(OS_WIN)
case JobEventDetails::PAGE_DONE: case JobEventDetails::PAGE_DONE:
#endif
case JobEventDetails::DOC_DONE: { case JobEventDetails::DOC_DONE: {
// Don't care about the actual printing process. // Don't care about the actual printing process.
break; break;
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "base/test/test_file_util.h" #include "base/test/test_file_util.h"
#include "base/threading/simple_thread.h" #include "base/threading/simple_thread.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/printing/print_job.h" #include "chrome/browser/printing/print_job.h"
#include "chrome/browser/printing/print_view_manager.h" #include "chrome/browser/printing/print_view_manager.h"
...@@ -98,7 +99,9 @@ class PrintingLayoutTest : public PrintingTest<InProcessBrowserTest>, ...@@ -98,7 +99,9 @@ class PrintingLayoutTest : public PrintingTest<InProcessBrowserTest>,
case printing::JobEventDetails::NEW_DOC: case printing::JobEventDetails::NEW_DOC:
case printing::JobEventDetails::USER_INIT_DONE: case printing::JobEventDetails::USER_INIT_DONE:
case printing::JobEventDetails::DEFAULT_INIT_DONE: case printing::JobEventDetails::DEFAULT_INIT_DONE:
#if defined(OS_WIN)
case printing::JobEventDetails::PAGE_DONE: case printing::JobEventDetails::PAGE_DONE:
#endif
case printing::JobEventDetails::DOC_DONE: case printing::JobEventDetails::DOC_DONE:
case printing::JobEventDetails::ALL_PAGES_REQUESTED: { case printing::JobEventDetails::ALL_PAGES_REQUESTED: {
// Don't care. // Don't care.
......
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