diff options
author | Lei Zhang <thestig@chromium.org> | 2015-10-08 12:04:47 -0700 |
---|---|---|
committer | Lei Zhang <thestig@chromium.org> | 2015-10-08 12:04:47 -0700 |
commit | 3fa115bf1d6b86fcdbc9a139c6ac789ea2294c2e (patch) | |
tree | cb857d2dd6a1003e30487e0a7eedd68519c43cb7 /fpdfsdk/src | |
parent | ba038bc14bfeb4d011d57f388871f7f14c4c3c22 (diff) | |
download | pdfium-3fa115bf1d6b86fcdbc9a139c6ac789ea2294c2e.tar.xz |
Merge to XFA: Only call DefineJSObjects() once for the global V8 isolate.
BUG=539106
TBR=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1386823002 .
(cherry picked from commit 7dfe5929282cb6d78d7b5e32e1d72e9db99d3066)
Review URL: https://codereview.chromium.org/1400503003 .
Diffstat (limited to 'fpdfsdk/src')
-rw-r--r-- | fpdfsdk/src/javascript/JS_Runtime.cpp | 4 | ||||
-rw-r--r-- | fpdfsdk/src/jsapi/fxjs_v8.cpp | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/fpdfsdk/src/javascript/JS_Runtime.cpp b/fpdfsdk/src/javascript/JS_Runtime.cpp index f97b454993..a449a142ac 100644 --- a/fpdfsdk/src/javascript/JS_Runtime.cpp +++ b/fpdfsdk/src/javascript/JS_Runtime.cpp @@ -70,7 +70,9 @@ CJS_Runtime::CJS_Runtime(CPDFDoc_Environment* pApp) return; } - DefineJSObjects(); + if (m_isolateManaged || FXJS_GlobalIsolateRefCount() == 0) + DefineJSObjects(); + CPDFXFA_App::GetInstance()->SetJavaScriptInitialized(TRUE); CJS_Context* pContext = (CJS_Context*)NewContext(); diff --git a/fpdfsdk/src/jsapi/fxjs_v8.cpp b/fpdfsdk/src/jsapi/fxjs_v8.cpp index eae1bb414a..80def30f96 100644 --- a/fpdfsdk/src/jsapi/fxjs_v8.cpp +++ b/fpdfsdk/src/jsapi/fxjs_v8.cpp @@ -158,6 +158,10 @@ bool FXJS_GetIsolate(v8::Isolate** pResultIsolate) { return true; } +size_t FXJS_GlobalIsolateRefCount() { + return g_isolate_ref_count; +} + // static void FXJS_PerIsolateData::SetUp(v8::Isolate* pIsolate) { if (!pIsolate->GetData(g_embedderDataSlot)) |