diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-06-05 18:24:12 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-05 18:24:12 +0000 |
commit | e9f7db9dbb2c5b9d1953c6643e1c38f82130f98b (patch) | |
tree | 8918f344abae83984dcd976dbe2a19bf0b0bcc1c /xfa/fxfa/parser | |
parent | 22de733a693f27c90f58ee13cfd398c55d9a064f (diff) | |
download | pdfium-e9f7db9dbb2c5b9d1953c6643e1c38f82130f98b.tar.xz |
[xfa] Make the event context available when calling back in XFA
When calling into the XFA JS engine with a request for a non-XFA JS
call which accesses the EventContext we would get a crash in XFA as we
never set the context. This CL changes the XFA code to accept the
CJS_Runtime instead of the CFXJS_Engine and then calls NewEventContext
before executing JS scripts. This will correctly setup the event context
as needed for any JS callbacks.
Bug: pdfium:1003
Change-Id: Icf202252b2e6e56afdf0d1766a32a893935a2fd3
Reviewed-on: https://pdfium-review.googlesource.com/33930
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r-- | xfa/fxfa/parser/cxfa_document.cpp | 4 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_document.h | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp index 5c4b55776a..a24bf2014f 100644 --- a/xfa/fxfa/parser/cxfa_document.cpp +++ b/xfa/fxfa/parser/cxfa_document.cpp @@ -1435,9 +1435,9 @@ CXFA_LocaleMgr* CXFA_Document::GetLocalMgr() { return m_pLocalMgr.get(); } -CFXJSE_Engine* CXFA_Document::InitScriptContext(CFXJS_Engine* fxjs_engine) { +CFXJSE_Engine* CXFA_Document::InitScriptContext(CJS_Runtime* fxjs_runtime) { ASSERT(!m_pScriptContext); - m_pScriptContext = pdfium::MakeUnique<CFXJSE_Engine>(this, fxjs_engine); + m_pScriptContext = pdfium::MakeUnique<CFXJSE_Engine>(this, fxjs_runtime); return m_pScriptContext.get(); } diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h index f924abb989..795da004cc 100644 --- a/xfa/fxfa/parser/cxfa_document.h +++ b/xfa/fxfa/parser/cxfa_document.h @@ -41,7 +41,7 @@ enum XFA_DocFlag { }; class CFXJSE_Engine; -class CFXJS_Engine; +class CJS_Runtime; class CScript_DataWindow; class CScript_EventPseudoModel; class CScript_HostPseudoModel; @@ -58,7 +58,7 @@ class CXFA_Document : public CXFA_NodeOwner { explicit CXFA_Document(CXFA_FFNotify* notify); ~CXFA_Document() override; - CFXJSE_Engine* InitScriptContext(CFXJS_Engine* fxjs_engine); + CFXJSE_Engine* InitScriptContext(CJS_Runtime* fxjs_runtime); CXFA_Node* GetRoot() const { return m_pRootNode; } CXFA_FFNotify* GetNotify() const { return notify_.Get(); } |