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) {
FROM_HERE, base::BindOnce(&PrintJob::OnDocumentDone, this));
break;
}
case JobEventDetails::PAGE_DONE:
#if defined(OS_WIN)
case JobEventDetails::PAGE_DONE:
if (pdf_conversion_state_) {
pdf_conversion_state_->OnPageProcessed(
base::Bind(&PrintJob::OnPdfPageConverted, this));
}
#endif // defined(OS_WIN)
break;
#endif // defined(OS_WIN)
default: {
NOTREACHED();
break;
......
......@@ -186,9 +186,6 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> {
// A new document started printing.
NEW_DOC,
// A page is done printing.
PAGE_DONE,
// A document is done printing. The worker thread is still alive. Warning:
// not a good moment to release the handle to PrintJob.
DOC_DONE,
......@@ -202,6 +199,11 @@ class JobEventDetails : public base::RefCountedThreadSafe<JobEventDetails> {
// An error occured. Printing is canceled.
FAILED,
#if defined(OS_WIN)
// A page is done printing. Only used on Windows.
PAGE_DONE,
#endif
};
JobEventDetails(Type type,
......
......@@ -4,6 +4,7 @@
#include "chrome/browser/printing/print_job_manager.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/printing/print_job.h"
#include "chrome/browser/printing/printer_query.h"
......@@ -138,7 +139,9 @@ void PrintJobManager::OnPrintJobEvent(
case JobEventDetails::USER_INIT_DONE:
case JobEventDetails::USER_INIT_CANCELED:
case JobEventDetails::DEFAULT_INIT_DONE:
#if defined(OS_WIN)
case JobEventDetails::PAGE_DONE:
#endif
case JobEventDetails::DOC_DONE:
case JobEventDetails::ALL_PAGES_REQUESTED: {
// Don't care.
......
......@@ -422,12 +422,15 @@ void PrintJobWorker::SpoolPage(PrintedPage* page) {
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(
FROM_HERE,
base::Bind(&NotificationCallback, base::RetainedRef(owner_),
JobEventDetails::PAGE_DONE, printing_context_->job_id(),
base::RetainedRef(document_), base::RetainedRef(page)));
#endif
}
void PrintJobWorker::OnFailure() {
......
......@@ -363,7 +363,9 @@ void PrintViewManagerBase::OnNotifyPrintJobEvent(
break;
}
case JobEventDetails::NEW_DOC:
#if defined(OS_WIN)
case JobEventDetails::PAGE_DONE:
#endif
case JobEventDetails::DOC_DONE: {
// Don't care about the actual printing process.
break;
......
......@@ -17,6 +17,7 @@
#include "base/test/test_file_util.h"
#include "base/threading/simple_thread.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/printing/print_job.h"
#include "chrome/browser/printing/print_view_manager.h"
......@@ -98,7 +99,9 @@ class PrintingLayoutTest : public PrintingTest<InProcessBrowserTest>,
case printing::JobEventDetails::NEW_DOC:
case printing::JobEventDetails::USER_INIT_DONE:
case printing::JobEventDetails::DEFAULT_INIT_DONE:
#if defined(OS_WIN)
case printing::JobEventDetails::PAGE_DONE:
#endif
case printing::JobEventDetails::DOC_DONE:
case printing::JobEventDetails::ALL_PAGES_REQUESTED: {
// 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