Index: fpdfsdk/fpdfxfa/cpdfxfa_app.cpp |
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_app.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_app.cpp |
index 61694d0a289a30dd94f9c424554261cdbc3ea407..b543d52315be010853c17a0f6dbd4f9dbd83349d 100644 |
--- a/fpdfsdk/fpdfxfa/cpdfxfa_app.cpp |
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_app.cpp |
@@ -11,110 +11,47 @@ |
#include "fpdfsdk/cpdfsdk_formfillenvironment.h" |
#include "fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h" |
#include "fpdfsdk/fsdk_define.h" |
+#include "fxjs/fxjs_v8.h" |
#include "third_party/base/ptr_util.h" |
-#include "xfa/fxbarcode/BC_Library.h" |
#include "xfa/fxfa/xfa_ffapp.h" |
#include "xfa/fxfa/xfa_fontmgr.h" |
-namespace { |
- |
-CPDFXFA_App* g_pApp = nullptr; |
- |
-} // namespace |
- |
-CPDFXFA_App* CPDFXFA_App::GetInstance() { |
- if (!g_pApp) { |
- g_pApp = new CPDFXFA_App(); |
- } |
- return g_pApp; |
-} |
- |
-void CPDFXFA_App::ReleaseInstance() { |
- delete g_pApp; |
- g_pApp = nullptr; |
-} |
- |
-CPDFXFA_App::CPDFXFA_App() |
- : m_bJavaScriptInitialized(FALSE), m_pIsolate(nullptr) { |
- m_pFormFillEnvList.RemoveAll(); |
-} |
- |
-CPDFXFA_App::~CPDFXFA_App() { |
- FXJSE_Runtime_Release(m_pIsolate); |
- m_pIsolate = nullptr; |
- |
- FXJSE_Finalize(); |
- BC_Library_Destory(); |
-} |
- |
-FX_BOOL CPDFXFA_App::Initialize(v8::Isolate* pIsolate) { |
- BC_Library_Init(); |
- FXJSE_Initialize(); |
- |
- m_pIsolate = pIsolate ? pIsolate : FXJSE_Runtime_Create_Own(); |
- if (!m_pIsolate) |
- return FALSE; |
+CPDFXFA_App::CPDFXFA_App() : m_pIsolate(nullptr) { |
+ // TODO(dsinclair): How do we 'release' the isolate? |
+ FXJS_GetIsolate(&m_pIsolate); |
m_pXFAApp = pdfium::MakeUnique<CXFA_FFApp>(this); |
- m_pXFAApp->SetDefaultFontMgr( |
- std::unique_ptr<CXFA_DefFontMgr>(new CXFA_DefFontMgr)); |
- |
- return TRUE; |
-} |
- |
-FX_BOOL CPDFXFA_App::AddFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
- if (!pFormFillEnv) |
- return FALSE; |
- |
- m_pFormFillEnvList.Add(pFormFillEnv); |
- return TRUE; |
+ m_pXFAApp->SetDefaultFontMgr(pdfium::MakeUnique<CXFA_DefFontMgr>()); |
} |
-FX_BOOL CPDFXFA_App::RemoveFormFillEnv( |
- CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
- if (!pFormFillEnv) |
- return FALSE; |
- |
- int nFind = m_pFormFillEnvList.Find(pFormFillEnv); |
- if (nFind != -1) { |
- m_pFormFillEnvList.RemoveAt(nFind); |
- return TRUE; |
- } |
- |
- return FALSE; |
-} |
+CPDFXFA_App::~CPDFXFA_App() {} |
void CPDFXFA_App::GetAppName(CFX_WideString& wsName) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) |
- wsName = pFormFillEnv->FFI_GetAppName(); |
+ if (m_pFormFillEnv) |
+ wsName = m_pFormFillEnv->FFI_GetAppName(); |
} |
void CPDFXFA_App::GetLanguage(CFX_WideString& wsLanguage) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) |
- wsLanguage = pFormFillEnv->GetLanguage(); |
+ if (m_pFormFillEnv) |
+ wsLanguage = m_pFormFillEnv->GetLanguage(); |
} |
void CPDFXFA_App::GetPlatform(CFX_WideString& wsPlatform) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) { |
- wsPlatform = pFormFillEnv->GetPlatform(); |
+ if (m_pFormFillEnv) { |
+ wsPlatform = m_pFormFillEnv->GetPlatform(); |
} |
} |
void CPDFXFA_App::Beep(uint32_t dwType) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) |
- pFormFillEnv->JS_appBeep(dwType); |
+ if (m_pFormFillEnv) |
+ m_pFormFillEnv->JS_appBeep(dwType); |
} |
int32_t CPDFXFA_App::MsgBox(const CFX_WideString& wsMessage, |
const CFX_WideString& wsTitle, |
uint32_t dwIconType, |
uint32_t dwButtonType) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (!pFormFillEnv) |
+ if (!m_pFormFillEnv) |
return -1; |
uint32_t iconType = 0; |
@@ -147,8 +84,8 @@ int32_t CPDFXFA_App::MsgBox(const CFX_WideString& wsMessage, |
iButtonType |= 3; |
break; |
} |
- int32_t iRet = pFormFillEnv->JS_appAlert(wsMessage.c_str(), wsTitle.c_str(), |
- iButtonType, iconType); |
+ int32_t iRet = m_pFormFillEnv->JS_appAlert(wsMessage.c_str(), wsTitle.c_str(), |
+ iButtonType, iconType); |
switch (iRet) { |
case 1: |
return XFA_IDOK; |
@@ -167,29 +104,29 @@ CFX_WideString CPDFXFA_App::Response(const CFX_WideString& wsQuestion, |
const CFX_WideString& wsDefaultAnswer, |
FX_BOOL bMark) { |
CFX_WideString wsAnswer; |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) { |
- int nLength = 2048; |
- char* pBuff = new char[nLength]; |
- nLength = pFormFillEnv->JS_appResponse(wsQuestion.c_str(), wsTitle.c_str(), |
+ if (!m_pFormFillEnv) |
+ return wsAnswer; |
+ |
+ int nLength = 2048; |
+ char* pBuff = new char[nLength]; |
+ nLength = m_pFormFillEnv->JS_appResponse(wsQuestion.c_str(), wsTitle.c_str(), |
wsDefaultAnswer.c_str(), nullptr, |
bMark, pBuff, nLength); |
- if (nLength > 0) { |
- nLength = nLength > 2046 ? 2046 : nLength; |
- pBuff[nLength] = 0; |
- pBuff[nLength + 1] = 0; |
- wsAnswer = CFX_WideString::FromUTF16LE( |
- reinterpret_cast<const unsigned short*>(pBuff), |
- nLength / sizeof(unsigned short)); |
- } |
- delete[] pBuff; |
+ if (nLength > 0) { |
+ nLength = nLength > 2046 ? 2046 : nLength; |
+ pBuff[nLength] = 0; |
+ pBuff[nLength + 1] = 0; |
+ wsAnswer = CFX_WideString::FromUTF16LE( |
+ reinterpret_cast<const unsigned short*>(pBuff), |
+ nLength / sizeof(unsigned short)); |
} |
+ delete[] pBuff; |
return wsAnswer; |
} |
IFX_FileRead* CPDFXFA_App::DownloadURL(const CFX_WideString& wsURL) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- return pFormFillEnv ? pFormFillEnv->DownloadFromURL(wsURL.c_str()) : nullptr; |
+ return m_pFormFillEnv ? m_pFormFillEnv->DownloadFromURL(wsURL.c_str()) |
+ : nullptr; |
} |
FX_BOOL CPDFXFA_App::PostRequestURL(const CFX_WideString& wsURL, |
@@ -198,23 +135,21 @@ FX_BOOL CPDFXFA_App::PostRequestURL(const CFX_WideString& wsURL, |
const CFX_WideString& wsEncode, |
const CFX_WideString& wsHeader, |
CFX_WideString& wsResponse) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (!pFormFillEnv) |
+ if (!m_pFormFillEnv) |
return FALSE; |
- wsResponse = pFormFillEnv->PostRequestURL(wsURL.c_str(), wsData.c_str(), |
- wsContentType.c_str(), |
- wsEncode.c_str(), wsHeader.c_str()); |
+ wsResponse = m_pFormFillEnv->PostRequestURL( |
+ wsURL.c_str(), wsData.c_str(), wsContentType.c_str(), wsEncode.c_str(), |
+ wsHeader.c_str()); |
return TRUE; |
} |
FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideString& wsURL, |
const CFX_WideString& wsData, |
const CFX_WideString& wsEncode) { |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- return pFormFillEnv && |
- pFormFillEnv->PutRequestURL(wsURL.c_str(), wsData.c_str(), |
- wsEncode.c_str()); |
+ return m_pFormFillEnv && |
+ m_pFormFillEnv->PutRequestURL(wsURL.c_str(), wsData.c_str(), |
+ wsEncode.c_str()); |
} |
void CPDFXFA_App::LoadString(int32_t iStringID, CFX_WideString& wsString) { |
@@ -316,8 +251,7 @@ void CPDFXFA_App::LoadString(int32_t iStringID, CFX_WideString& wsString) { |
IFWL_AdapterTimerMgr* CPDFXFA_App::GetTimerMgr() { |
CXFA_FWLAdapterTimerMgr* pAdapter = nullptr; |
- CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pFormFillEnvList.GetAt(0); |
- if (pFormFillEnv) |
- pAdapter = new CXFA_FWLAdapterTimerMgr(pFormFillEnv); |
+ if (m_pFormFillEnv) |
+ pAdapter = new CXFA_FWLAdapterTimerMgr(m_pFormFillEnv); |
return pAdapter; |
} |