Index: chrome/browser/printing/print_preview_pdf_generated_browsertest.cc |
diff --git a/chrome/browser/printing/print_preview_pdf_generated_browsertest.cc b/chrome/browser/printing/print_preview_pdf_generated_browsertest.cc |
index 367a92d3f4b9b4f5a6907daa5e2fe8ce95c141a1..f6a93216df9a52a008c9271ab1b0f3fe5d658528 100644 |
--- a/chrome/browser/printing/print_preview_pdf_generated_browsertest.cc |
+++ b/chrome/browser/printing/print_preview_pdf_generated_browsertest.cc |
@@ -22,7 +22,6 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/path_service.h" |
#include "base/run_loop.h" |
-#include "base/scoped_native_library.h" |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/printing/print_preview_dialog_controller.h" |
@@ -39,6 +38,7 @@ |
#include "content/public/test/browser_test_utils.h" |
#include "ipc/ipc_message_macros.h" |
#include "net/base/filename_util.h" |
+#include "pdf/pdf.h" |
#include "printing/pdf_render_settings.h" |
#include "printing/units.h" |
#include "ui/gfx/codec/png_codec.h" |
@@ -323,33 +323,6 @@ class PrintPreviewPdfGeneratedBrowserTest : public InProcessBrowserTest { |
ASSERT_TRUE(pdf_file.IsValid()); |
} |
- // Initializes function pointers from the PDF library. Called once when the |
- // test starts. The library is closed when the browser test ends. |
- void InitPdfFunctions() { |
- base::FilePath pdf_module_path; |
- |
- ASSERT_TRUE(PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_module_path)); |
- ASSERT_TRUE(base::PathExists(pdf_module_path)); |
- pdf_lib_.Reset(base::LoadNativeLibrary(pdf_module_path, NULL)); |
- |
- ASSERT_TRUE(pdf_lib_.is_valid()); |
- pdf_to_bitmap_func_ = |
- reinterpret_cast<PDFPageToBitmapProc>( |
- pdf_lib_.GetFunctionPointer("RenderPDFPageToBitmap")); |
- |
- pdf_doc_info_func_ = |
- reinterpret_cast<GetPDFDocInfoProc>( |
- pdf_lib_.GetFunctionPointer("GetPDFDocInfo")); |
- |
- pdf_page_size_func_ = |
- reinterpret_cast<GetPDFPageSizeByIndexProc>( |
- pdf_lib_.GetFunctionPointer("GetPDFPageSizeByIndex")); |
- |
- ASSERT_TRUE(pdf_to_bitmap_func_); |
- ASSERT_TRUE(pdf_doc_info_func_); |
- ASSERT_TRUE(pdf_page_size_func_); |
- } |
- |
// Converts the PDF to a PNG file so that the layout test can do an image |
// diff on this image and a reference image. |
void PdfToPng() { |
@@ -360,10 +333,10 @@ class PrintPreviewPdfGeneratedBrowserTest : public InProcessBrowserTest { |
std::string pdf_data; |
ASSERT_TRUE(base::ReadFileToString(pdf_file_save_path_, &pdf_data)); |
- ASSERT_TRUE(pdf_doc_info_func_(pdf_data.data(), |
- pdf_data.size(), |
- &num_pages, |
- &max_width_in_points)); |
+ ASSERT_TRUE(chrome_pdf::GetPDFDocInfo(pdf_data.data(), |
+ pdf_data.size(), |
+ &num_pages, |
+ &max_width_in_points)); |
ASSERT_GT(num_pages, 0); |
double max_width_in_pixels = |
@@ -371,11 +344,11 @@ class PrintPreviewPdfGeneratedBrowserTest : public InProcessBrowserTest { |
for (int i = 0; i < num_pages; ++i) { |
double width_in_points, height_in_points; |
- ASSERT_TRUE(pdf_page_size_func_(pdf_data.data(), |
- pdf_data.size(), |
- i, |
- &width_in_points, |
- &height_in_points)); |
+ ASSERT_TRUE(chrome_pdf::GetPDFPageSizeByIndex(pdf_data.data(), |
+ pdf_data.size(), |
+ i, |
+ &width_in_points, |
+ &height_in_points)); |
double width_in_pixels = ConvertUnitDouble( |
width_in_points, kPointsPerInch, kDpi); |
@@ -405,15 +378,15 @@ class PrintPreviewPdfGeneratedBrowserTest : public InProcessBrowserTest { |
std::vector<uint8_t> page_bitmap_data( |
kColorChannels * settings.area().size().GetArea()); |
- ASSERT_TRUE(pdf_to_bitmap_func_(pdf_data.data(), |
- pdf_data.size(), |
- i, |
- page_bitmap_data.data(), |
- settings.area().size().width(), |
- settings.area().size().height(), |
- settings.dpi(), |
- settings.dpi(), |
- true)); |
+ ASSERT_TRUE(chrome_pdf::RenderPDFPageToBitmap( |
+ pdf_data.data(), |
+ pdf_data.size(), |
+ i, |
+ page_bitmap_data.data(), |
+ settings.area().size().width(), |
+ settings.area().size().height(), |
+ settings.dpi(), |
+ true)); |
FillPng(&page_bitmap_data, |
width_in_pixels, |
max_width_in_pixels, |
@@ -572,41 +545,6 @@ class PrintPreviewPdfGeneratedBrowserTest : public InProcessBrowserTest { |
scoped_ptr<PrintPreviewObserver> print_preview_observer_; |
base::FilePath pdf_file_save_path_; |
- // These typedefs are function pointers to pdflib functions that give |
- // information about the PDF as a whole and about specific pages. |
- |
- // Converts the PDF to a bitmap. |
- typedef bool (*PDFPageToBitmapProc)(const void* pdf_buffer, |
- int pdf_buffer_size, |
- int page_number, |
- void* bitmap_buffer, |
- int bitmap_width, |
- int bitmap_height, |
- int dpi_x, |
- int dpi_y, |
- bool autorotate); |
- |
- // Gets the page count and maximum page width of the PDF in points. |
- typedef bool (*GetPDFDocInfoProc)(const void* pdf_buffer, |
- int buffer_size, |
- int* pages_count, |
- double* max_page_width); |
- |
- // Gets the dimensions of a specific page within a PDF. |
- typedef bool (*GetPDFPageSizeByIndexProc)(const void* pdf_buffer, |
- int buffer_size, |
- int index, |
- double* width, |
- double* height); |
- |
- // Instantiations of the function pointers described above. |
- PDFPageToBitmapProc pdf_to_bitmap_func_; |
- GetPDFDocInfoProc pdf_doc_info_func_; |
- GetPDFPageSizeByIndexProc pdf_page_size_func_; |
- |
- // Used to open up the pdf plugin, which contains the functions above. |
- base::ScopedNativeLibrary pdf_lib_; |
- |
// Vector for storing the PNG to be sent to the layout test framework. |
// TODO(ivandavid): Eventually change this to uint32_t and make everything |
// work with that. It might be a bit tricky to fix everything to work with |
@@ -641,8 +579,7 @@ IN_PROC_BROWSER_TEST_F(PrintPreviewPdfGeneratedBrowserTest, |
// to send data to the browser test. Writing "EOF\n" to |std::cout| indicates |
// that whatever block of data that the test was expecting has been completely |
// sent. Sometimes EOF is printed to stderr because the test will expect it |
- // from stderr in addition to stdout for certain blocks of data. |
- InitPdfFunctions(); |
+ // from stderr in addition to stdout for certain blocks of data.= |
SetupStdinAndSavePath(); |
while (true) { |