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

Unified Diff: pdf/pdf.cc

Issue 1419793008: Setup and tear down V8 if the PDF module is not managed via pepper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pdf/pdf.cc
diff --git a/pdf/pdf.cc b/pdf/pdf.cc
index 1f580e4f1532a7d543314d2e3f1f87f0d1851f30..1fe1f0116c3df30d7073449708c36dde371b5baf 100644
--- a/pdf/pdf.cc
+++ b/pdf/pdf.cc
@@ -32,6 +32,12 @@ void TearDownV8() {
g_isolate_holder = nullptr;
}
+void SetUpV8() {
+ g_isolate_holder =
+ new gin::IsolateHolder(gin::IsolateHolder::kSingleThread);
+ g_isolate_holder->isolate()->Enter();
+}
+
} // namespace
PDFModule::PDFModule() {
@@ -62,9 +68,7 @@ pp::Instance* PDFModule::CreateInstance(PP_Instance instance) {
}
gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode,
gin::ArrayBufferAllocator::SharedInstance());
- g_isolate_holder =
- new gin::IsolateHolder(gin::IsolateHolder::kSingleThread);
- g_isolate_holder->isolate()->Enter();
+ SetUpV8();
if (!chrome_pdf::InitializeSDK()) {
Lei Zhang 2015/11/05 21:44:01 Should we write wrappers for chrome_pdf::Initializ
TearDownV8();
return NULL;
@@ -116,7 +120,9 @@ bool RenderPDFPageToDC(const void* pdf_buffer,
bool center_in_bounds,
bool autorotate) {
if (!g_sdk_initialized_via_pepper) {
+ SetUpV8();
if (!chrome_pdf::InitializeSDK()) {
+ TearDownV8();
return false;
}
}
@@ -130,6 +136,7 @@ bool RenderPDFPageToDC(const void* pdf_buffer,
bool ret = engine_exports->RenderPDFPageToDC(pdf_buffer, buffer_size,
page_number, settings, dc);
if (!g_sdk_initialized_via_pepper) {
+ TearDownV8();
chrome_pdf::ShutdownSDK();
}
return ret;
@@ -141,14 +148,18 @@ bool GetPDFDocInfo(const void* pdf_buffer,
int buffer_size, int* page_count,
double* max_page_width) {
if (!g_sdk_initialized_via_pepper) {
- if (!chrome_pdf::InitializeSDK())
+ SetUpV8();
+ if (!chrome_pdf::InitializeSDK()) {
+ TearDownV8();
return false;
+ }
}
scoped_ptr<chrome_pdf::PDFEngineExports> engine_exports(
chrome_pdf::PDFEngineExports::Create());
bool ret = engine_exports->GetPDFDocInfo(
pdf_buffer, buffer_size, page_count, max_page_width);
if (!g_sdk_initialized_via_pepper) {
+ TearDownV8();
chrome_pdf::ShutdownSDK();
}
return ret;
@@ -158,15 +169,20 @@ bool GetPDFPageSizeByIndex(const void* pdf_buffer,
int pdf_buffer_size, int page_number,
double* width, double* height) {
if (!g_sdk_initialized_via_pepper) {
- if (!chrome_pdf::InitializeSDK())
+ SetUpV8();
+ if (!chrome_pdf::InitializeSDK()) {
+ TearDownV8();
return false;
+ }
}
scoped_ptr<chrome_pdf::PDFEngineExports> engine_exports(
chrome_pdf::PDFEngineExports::Create());
bool ret = engine_exports->GetPDFPageSizeByIndex(
pdf_buffer, pdf_buffer_size, page_number, width, height);
- if (!g_sdk_initialized_via_pepper)
+ if (!g_sdk_initialized_via_pepper) {
+ TearDownV8();
chrome_pdf::ShutdownSDK();
+ }
return ret;
}
@@ -179,8 +195,11 @@ bool RenderPDFPageToBitmap(const void* pdf_buffer,
int dpi,
bool autorotate) {
if (!g_sdk_initialized_via_pepper) {
- if (!chrome_pdf::InitializeSDK())
+ SetUpV8();
+ if (!chrome_pdf::InitializeSDK()) {
+ TearDownV8();
return false;
+ }
}
scoped_ptr<chrome_pdf::PDFEngineExports> engine_exports(
chrome_pdf::PDFEngineExports::Create());
@@ -190,6 +209,7 @@ bool RenderPDFPageToBitmap(const void* pdf_buffer,
bool ret = engine_exports->RenderPDFPageToBitmap(
pdf_buffer, pdf_buffer_size, page_number, settings, bitmap_buffer);
if (!g_sdk_initialized_via_pepper) {
+ TearDownV8();
chrome_pdf::ShutdownSDK();
}
return ret;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698