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

Unified Diff: chrome/browser/printing/print_preview_pdf_generated_browsertest.cc

Issue 799643004: Combine PDF plugin into the Chromium binary. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months 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
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) {

Powered by Google App Engine
This is Rietveld 408576698