From 452b4f3f0ce1411350d57373528ccde77e40727d Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 13 Oct 2015 09:27:27 -0700 Subject: Merge to XFA: Allow compiling PDFium without V8. Original Review URL: https://codereview.chromium.org/1395733006 . (cherry picked from commit f1c713663192368d26031a4caed1f9705f4510af) Conflicts: BUILD.gn fpdfsdk/src/fpdfview.cpp fpdfsdk/src/javascript/JS_Runtime.cpp pdfium.gyp samples/BUILD.gn samples/samples.gyp BUG=pdfium:211 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1393833006 . --- testing/embedder_test.cpp | 14 ++++++++++++-- testing/embedder_test.h | 13 +++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) (limited to 'testing') diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 1a3c4c6e53..0aacd48df9 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -17,8 +17,11 @@ #include "../public/fpdf_text.h" #include "../public/fpdfview.h" #include "testing/gmock/include/gmock/gmock.h" + +#ifdef PDF_ENABLE_V8 #include "v8/include/libplatform/libplatform.h" #include "v8/include/v8.h" +#endif // PDF_ENABLE_V8 #ifdef _WIN32 #define snprintf _snprintf @@ -59,6 +62,7 @@ static char* GetFileContents(const char* filename, size_t* retlen) { return buffer; } +#ifdef PDF_ENABLE_V8 #ifdef V8_USE_EXTERNAL_STARTUP_DATA // Returns the full path for an external V8 data file based on either // the currect exectuable path or an explicit override. @@ -91,7 +95,7 @@ static bool GetExternalData(const std::string& exe_path, return true; } #endif // V8_USE_EXTERNAL_STARTUP_DATA - +#endif // PDF_ENABLE_V8 } // namespace class TestLoader { @@ -141,6 +145,7 @@ EmbedderTest::~EmbedderTest() { } void EmbedderTest::SetUp() { +#ifdef PDF_ENABLE_V8 v8::V8::InitializeICU(); platform_ = v8::platform::CreateDefaultPlatform(); @@ -158,12 +163,13 @@ void EmbedderTest::SetUp() { v8::V8::SetNativesDataBlob(&natives_); v8::V8::SetSnapshotDataBlob(&snapshot_); #endif // V8_USE_EXTERNAL_STARTUP_DATA +#endif // FPDF_ENABLE_V8 FPDF_LIBRARY_CONFIG config; config.version = 2; config.m_pUserFontPaths = nullptr; - config.m_pIsolate = external_isolate_; config.m_v8EmbedderSlot = 0; + config.m_pIsolate = external_isolate_; FPDF_InitLibraryWithConfig(&config); UNSUPPORT_INFO* info = static_cast(this); @@ -185,8 +191,12 @@ void EmbedderTest::TearDown() { } FPDFAvail_Destroy(avail_); FPDF_DestroyLibrary(); + +#ifdef PDF_ENABLE_V8 v8::V8::ShutdownPlatform(); delete platform_; +#endif // PDF_ENABLE_V8 + delete loader_; free(file_contents_); } diff --git a/testing/embedder_test.h b/testing/embedder_test.h index f6842d23c3..fb3ea428f1 100644 --- a/testing/embedder_test.h +++ b/testing/embedder_test.h @@ -14,7 +14,10 @@ #include "../public/fpdfview.h" #include "../third_party/base/nonstd_unique_ptr.h" #include "testing/gtest/include/gtest/gtest.h" + +#ifdef PDF_ENABLE_V8 #include "v8/include/v8.h" +#endif // PDF_ENABLE_v8 class TestLoader; @@ -61,8 +64,12 @@ class EmbedderTest : public ::testing::Test, void SetUp() override; void TearDown() override; +#ifdef PDF_ENABLE_V8 // Call before SetUp to pass shared isolate, otherwise PDFium creates one. - void SetExternalIsolate(v8::Isolate* isolate) { external_isolate_ = isolate; } + void SetExternalIsolate(void* isolate) { + external_isolate_ = static_cast(isolate); + } +#endif // PDF_ENABLE_V8 void SetDelegate(Delegate* delegate) { delegate_ = delegate ? delegate : default_delegate_.get(); @@ -105,10 +112,12 @@ class EmbedderTest : public ::testing::Test, FX_DOWNLOADHINTS hints_; FPDF_FILEACCESS file_access_; FX_FILEAVAIL file_avail_; +#ifdef PDF_ENABLE_V8 v8::Platform* platform_; v8::StartupData natives_; v8::StartupData snapshot_; - v8::Isolate* external_isolate_; +#endif // PDF_ENABLE_V8 + void* external_isolate_; TestLoader* loader_; size_t file_length_; char* file_contents_; -- cgit v1.2.3