0

[pdf] Call pp::PDF::Print() synchronously

Call pp::PDF::Print() synchronously in the Pepper viewer, instead of
posting a task to the main thread. The old implementation was an
artifact of the days when the PDF plugin was in-process and re-entrancy
was a risk. But now that the plugin is out-of-process, pp::PDF::Print()
already invokes the print dialog asynchronously across the process
boundary to the renderer.

Change-Id: Iabc0dcfc561492353cb666ad6569059e52d87ed6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2964274
Commit-Queue: Daniel Hosseinian <dhoss@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#894043}
This commit is contained in:
Daniel Hosseinian
2021-06-19 00:35:47 +00:00
committed by Chromium LUCI CQ
parent 8690530ca5
commit d824ce06dc
2 changed files with 1 additions and 11 deletions

@ -1252,10 +1252,7 @@ void OutOfProcessInstance::OnPrintPreviewLoaded() {
}
void OutOfProcessInstance::InvokePrintDialog() {
ScheduleTaskOnMainThread(FROM_HERE,
base::BindOnce(&OutOfProcessInstance::OnPrint,
weak_factory_.GetWeakPtr()),
/*result=*/0, base::TimeDelta());
pp::PDF::Print(this);
}
void OutOfProcessInstance::SetContentRestrictions(int content_restrictions) {
@ -1281,8 +1278,4 @@ void OutOfProcessInstance::UserMetricsRecordAction(const std::string& action) {
pp::PDF::UserMetricsRecordAction(this, pp::Var(action));
}
void OutOfProcessInstance::OnPrint(int32_t /*unused_but_required*/) {
pp::PDF::Print(this);
}
} // namespace chrome_pdf

@ -188,9 +188,6 @@ class OutOfProcessInstance : public PdfViewPluginBase,
// Called after a preview page has loaded or failed to load.
void LoadNextPreviewPage();
// Callback to print without re-entrancy issues.
void OnPrint(int32_t /*unused_but_required*/);
// The Pepper image data that is in sync with mutable_image_data().
pp::ImageData pepper_image_data_;