From bcfafc43867811e2942dc1bfe80cb964b6cf086c Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 14:28:21 -0400 Subject: [PATCH] fix: headless job tracking in printToPDF (#36064) Co-authored-by: Shelley Vohr Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr --- shell/browser/printing/print_view_manager_electron.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/shell/browser/printing/print_view_manager_electron.cc b/shell/browser/printing/print_view_manager_electron.cc index 9d33db221eb7b..6f6776106d899 100644 --- a/shell/browser/printing/print_view_manager_electron.cc +++ b/shell/browser/printing/print_view_manager_electron.cc @@ -124,6 +124,7 @@ void PrintViewManagerElectron::PrintToPdf( printing_rfh_ = rfh; print_pages_params->pages = absl::get(parsed_ranges); + headless_jobs_.emplace_back(print_pages_params->params->document_cookie); callback_ = std::move(callback); // There is no need for a weak pointer here since the mojo proxy is held @@ -147,7 +148,9 @@ void PrintViewManagerElectron::OnDidPrintWithParams( } } - auto& content = *result->get_params()->content; + printing::mojom::DidPrintDocumentParamsPtr& params = result->get_params(); + + auto& content = *params->content; if (!content.metafile_data_region.IsValid()) { FailJob(kInvalidMemoryHandle); return; @@ -163,7 +166,7 @@ void PrintViewManagerElectron::OnDidPrintWithParams( std::string(static_cast(map.memory()), map.size()); std::move(callback_).Run(kPrintSuccess, base::RefCountedString::TakeString(&data)); - + base::Erase(headless_jobs_, params->document_cookie); Reset(); }