Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Unified Diff: chrome/utility/printing_handler.cc

Issue 2541843005: Revert "Printing: Load the source PDF only once." (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/utility/printing_handler.h ('k') | pdf/pdf.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/utility/printing_handler.cc
diff --git a/chrome/utility/printing_handler.cc b/chrome/utility/printing_handler.cc
index 2dc63294dda31d74942625cfbf10e7f6722f6b7e..7dbae1a132df5b38ba8e615c28545bf39148fbd2 100644
--- a/chrome/utility/printing_handler.cc
+++ b/chrome/utility/printing_handler.cc
@@ -64,8 +64,8 @@ bool PrintingHandler::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PrintingHandler, message)
#if defined(OS_WIN)
- IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_Start,
- OnRenderPDFPagesToMetafileStart)
+ IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles,
+ OnRenderPDFPagesToMetafile)
IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_GetPage,
OnRenderPDFPagesToMetafileGetPage)
IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RenderPDFPagesToMetafiles_Stop,
@@ -85,7 +85,7 @@ bool PrintingHandler::OnMessageReceived(const IPC::Message& message) {
}
#if defined(OS_WIN)
-void PrintingHandler::OnRenderPDFPagesToMetafileStart(
+void PrintingHandler::OnRenderPDFPagesToMetafile(
IPC::PlatformFileForTransit pdf_transit,
const PdfRenderSettings& settings,
bool print_text_with_gdi) {
@@ -109,8 +109,6 @@ void PrintingHandler::OnRenderPDFPagesToMetafileGetPage(
}
void PrintingHandler::OnRenderPDFPagesToMetafileStop() {
- chrome_pdf::ReleasePDFHandle(pdf_handle_);
- pdf_handle_ = nullptr;
ReleaseProcessIfNeeded();
}
@@ -136,8 +134,6 @@ void PrintingHandler::OnRenderPDFPagesToPWGRaster(
#if defined(OS_WIN)
int PrintingHandler::LoadPDF(base::File pdf_file) {
- DCHECK(!pdf_handle_);
-
int64_t length64 = pdf_file.GetLength();
if (length64 <= 0 || length64 > std::numeric_limits<int>::max())
return 0;
@@ -149,7 +145,7 @@ int PrintingHandler::LoadPDF(base::File pdf_file) {
int total_page_count = 0;
if (!chrome_pdf::GetPDFDocInfo(&pdf_data_.front(), pdf_data_.size(),
- &total_page_count, nullptr, &pdf_handle_)) {
+ &total_page_count, nullptr)) {
return 0;
}
return total_page_count;
@@ -177,7 +173,7 @@ bool PrintingHandler::RenderPdfPageToMetafile(int page_number,
// to StartPage.
metafile.StartPage(gfx::Size(), gfx::Rect(), 1);
if (!chrome_pdf::RenderPDFPageToDC(
- pdf_handle_, page_number, metafile.context(),
+ &pdf_data_.front(), pdf_data_.size(), page_number, metafile.context(),
pdf_rendering_settings_.dpi, pdf_rendering_settings_.area.x(),
pdf_rendering_settings_.area.y(),
pdf_rendering_settings_.area.width(),
@@ -208,9 +204,8 @@ bool PrintingHandler::RenderPDFPagesToPWGRaster(
return false;
int total_page_count = 0;
- void* pdf_handle = nullptr;
if (!chrome_pdf::GetPDFDocInfo(data.data(), data_size, &total_page_count,
- nullptr, &pdf_handle)) {
+ nullptr)) {
return false;
}
@@ -219,14 +214,11 @@ bool PrintingHandler::RenderPDFPagesToPWGRaster(
encoder.EncodeDocumentHeader(&pwg_header);
int bytes_written = bitmap_file.WriteAtCurrentPos(pwg_header.data(),
pwg_header.size());
- if (bytes_written != static_cast<int>(pwg_header.size())) {
- chrome_pdf::ReleasePDFHandle(pdf_handle);
+ if (bytes_written != static_cast<int>(pwg_header.size()))
return false;
- }
cloud_print::BitmapImage image(settings.area.size(),
cloud_print::BitmapImage::BGRA);
- bool ret = true;
for (int i = 0; i < total_page_count; ++i) {
int page_number = i;
@@ -235,8 +227,9 @@ bool PrintingHandler::RenderPDFPagesToPWGRaster(
}
if (!chrome_pdf::RenderPDFPageToBitmap(
- pdf_handle, page_number, image.pixel_data(), image.size().width(),
- image.size().height(), settings.dpi, settings.autorotate)) {
+ data.data(), data_size, page_number, image.pixel_data(),
+ image.size().width(), image.size().height(), settings.dpi,
+ settings.autorotate)) {
return false;
}
@@ -268,19 +261,14 @@ bool PrintingHandler::RenderPDFPagesToPWGRaster(
}
std::string pwg_page;
- if (!encoder.EncodePage(image, header_info, &pwg_page)) {
- ret = false;
- break;
- }
+ if (!encoder.EncodePage(image, header_info, &pwg_page))
+ return false;
bytes_written = bitmap_file.WriteAtCurrentPos(pwg_page.data(),
pwg_page.size());
- if (bytes_written != static_cast<int>(pwg_page.size())) {
- ret = false;
- break;
- }
+ if (bytes_written != static_cast<int>(pwg_page.size()))
+ return false;
}
- chrome_pdf::ReleasePDFHandle(pdf_handle);
- return ret;
+ return true;
}
void PrintingHandler::OnGetPrinterCapsAndDefaults(
« no previous file with comments | « chrome/utility/printing_handler.h ('k') | pdf/pdf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698