| 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(
|
|
|