| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../public/fpdf_ext.h" | 7 #include "../../public/fpdf_ext.h" |
| 8 #include "../include/fsdk_define.h" | 8 #include "../include/fsdk_define.h" |
| 9 #include "../include/fpdfxfa/fpdfxfa_doc.h" | 9 #include "../include/fpdfxfa/fpdfxfa_doc.h" |
| 10 #include "../include/fpdfxfa/fpdfxfa_page.h" | 10 #include "../include/fpdfxfa/fpdfxfa_page.h" |
| 11 #include "../include/fpdfxfa/fpdfxfa_util.h" | 11 #include "../include/fpdfxfa/fpdfxfa_util.h" |
| 12 #include "../include/fsdk_mgr.h" | 12 #include "../include/fsdk_mgr.h" |
| 13 #include "../include/formfiller/FFL_FormFiller.h" | 13 #include "../include/formfiller/FFL_FormFiller.h" |
| 14 #include "../include/javascript/IJavaScript.h" | 14 #include "../include/javascript/IJavaScript.h" |
| 15 #include "../include/fpdfxfa/fpdfxfa_app.h" | 15 #include "../include/fpdfxfa/fpdfxfa_app.h" |
| 16 #include "../include/javascript/JS_Runtime.h" |
| 16 | 17 |
| 17 #if _FX_OS_ == _FX_ANDROID_ | 18 #if _FX_OS_ == _FX_ANDROID_ |
| 18 #include "time.h" | 19 #include "time.h" |
| 19 #else | 20 #else |
| 20 #include <ctime> | 21 #include <ctime> |
| 21 #endif | 22 #endif |
| 22 | 23 |
| 23 class CFX_SystemHandler : public IFX_SystemHandler { | 24 class CFX_SystemHandler : public IFX_SystemHandler { |
| 24 public: | 25 public: |
| 25 CFX_SystemHandler(CPDFDoc_Environment* pEnv) : m_pEnv(pEnv), m_nCharSet(-1) {} | 26 CFX_SystemHandler(CPDFDoc_Environment* pEnv) : m_pEnv(pEnv), m_nCharSet(-1) {} |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 } | 203 } |
| 203 | 204 |
| 204 FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() { | 205 FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() { |
| 205 return m_pEnv->FFI_GetLocalTime(); | 206 return m_pEnv->FFI_GetLocalTime(); |
| 206 } | 207 } |
| 207 | 208 |
| 208 CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc, | 209 CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc, |
| 209 FPDF_FORMFILLINFO* pFFinfo) | 210 FPDF_FORMFILLINFO* pFFinfo) |
| 210 : m_pAnnotHandlerMgr(NULL), | 211 : m_pAnnotHandlerMgr(NULL), |
| 211 m_pActionHandler(NULL), | 212 m_pActionHandler(NULL), |
| 212 m_pJSRuntime(NULL), | |
| 213 m_pInfo(pFFinfo), | 213 m_pInfo(pFFinfo), |
| 214 m_pSDKDoc(NULL), | 214 m_pSDKDoc(NULL), |
| 215 m_pXFADoc(pDoc), | 215 m_pXFADoc(pDoc), |
| 216 m_pIFormFiller(NULL) { | 216 m_pIFormFiller(NULL) { |
| 217 m_pSysHandler = new CFX_SystemHandler(this); | 217 m_pSysHandler = new CFX_SystemHandler(this); |
| 218 } | 218 } |
| 219 | 219 |
| 220 CPDFDoc_Environment::~CPDFDoc_Environment() { | 220 CPDFDoc_Environment::~CPDFDoc_Environment() { |
| 221 delete m_pIFormFiller; | 221 delete m_pIFormFiller; |
| 222 m_pIFormFiller = NULL; | 222 m_pIFormFiller = NULL; |
| 223 | 223 |
| 224 CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance(); | 224 CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance(); |
| 225 if (m_pJSRuntime && pProvider->GetRuntimeFactory()) | |
| 226 pProvider->GetRuntimeFactory()->DeleteJSRuntime(m_pJSRuntime); | |
| 227 | |
| 228 if (pProvider->m_pEnvList.GetSize() == 0) { | 225 if (pProvider->m_pEnvList.GetSize() == 0) { |
| 229 pProvider->ReleaseRuntime(); | 226 pProvider->ReleaseRuntime(); |
| 230 pProvider->InitRuntime(TRUE); | 227 pProvider->InitRuntime(TRUE); |
| 231 } | 228 } |
| 232 | 229 |
| 233 delete m_pSysHandler; | 230 delete m_pSysHandler; |
| 234 m_pSysHandler = NULL; | 231 m_pSysHandler = NULL; |
| 235 | 232 |
| 236 delete m_pAnnotHandlerMgr; | 233 delete m_pAnnotHandlerMgr; |
| 237 m_pAnnotHandlerMgr = NULL; | 234 m_pAnnotHandlerMgr = NULL; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 bsBcc.ReleaseBuffer(); | 376 bsBcc.ReleaseBuffer(); |
| 380 bsSubject.ReleaseBuffer(); | 377 bsSubject.ReleaseBuffer(); |
| 381 bsMsg.ReleaseBuffer(); | 378 bsMsg.ReleaseBuffer(); |
| 382 } | 379 } |
| 383 } | 380 } |
| 384 | 381 |
| 385 IFXJS_Runtime* CPDFDoc_Environment::GetJSRuntime() { | 382 IFXJS_Runtime* CPDFDoc_Environment::GetJSRuntime() { |
| 386 if (!IsJSInitiated()) | 383 if (!IsJSInitiated()) |
| 387 return NULL; | 384 return NULL; |
| 388 if (!m_pJSRuntime) | 385 if (!m_pJSRuntime) |
| 389 m_pJSRuntime = | 386 m_pJSRuntime.reset(new CJS_Runtime(this)); |
| 390 CPDFXFA_App::GetInstance()->GetRuntimeFactory()->NewJSRuntime(this); | 387 return m_pJSRuntime.get(); |
| 391 return m_pJSRuntime; | |
| 392 } | 388 } |
| 393 | 389 |
| 394 CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr() { | 390 CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr() { |
| 395 if (!m_pAnnotHandlerMgr) | 391 if (!m_pAnnotHandlerMgr) |
| 396 m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this); | 392 m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this); |
| 397 return m_pAnnotHandlerMgr; | 393 return m_pAnnotHandlerMgr; |
| 398 } | 394 } |
| 399 | 395 |
| 400 CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander() { | 396 CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander() { |
| 401 if (!m_pActionHandler) | 397 if (!m_pActionHandler) |
| (...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1195 if (!pFocusAnnot) | 1191 if (!pFocusAnnot) |
| 1196 return NULL; | 1192 return NULL; |
| 1197 | 1193 |
| 1198 for (int i = 0; i < m_fxAnnotArray.GetSize(); i++) { | 1194 for (int i = 0; i < m_fxAnnotArray.GetSize(); i++) { |
| 1199 CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i); | 1195 CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i); |
| 1200 if (pAnnot == pFocusAnnot) | 1196 if (pAnnot == pFocusAnnot) |
| 1201 return pAnnot; | 1197 return pAnnot; |
| 1202 } | 1198 } |
| 1203 return NULL; | 1199 return NULL; |
| 1204 } | 1200 } |
| OLD | NEW |