summaryrefslogtreecommitdiff
path: root/fpdfsdk/src
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/src')
-rw-r--r--fpdfsdk/src/fpdfview.cpp8
-rw-r--r--fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp1
-rw-r--r--fpdfsdk/src/javascript/JS_Runtime.cpp5
-rw-r--r--fpdfsdk/src/javascript/JS_Runtime_Stub.cpp161
4 files changed, 169 insertions, 6 deletions
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index cf05d79f5c..a5daa8f52e 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -20,7 +20,7 @@
#include "../include/fpdfxfa/fpdfxfa_app.h"
#include "../include/fpdfxfa/fpdfxfa_page.h"
#include "../include/fpdfxfa/fpdfxfa_util.h"
-#include "../include/jsapi/fxjs_v8.h"
+#include "../include/javascript/IJavaScript.h"
CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) {
m_pFS = pFS;
@@ -196,10 +196,8 @@ FPDF_InitLibraryWithConfig(const FPDF_LIBRARY_CONFIG* cfg) {
CPDF_ModuleMgr::Get()->InitPageModule();
CPDF_ModuleMgr::Get()->InitRenderModule();
CPDFXFA_App::GetInstance()->Initialize();
- if (cfg && cfg->version >= 2) {
- FXJS_Initialize(cfg->m_v8EmbedderSlot,
- reinterpret_cast<v8::Isolate*>(cfg->m_pIsolate));
- }
+ if (cfg && cfg->version >= 2)
+ IJS_Runtime::Initialize(cfg->m_v8EmbedderSlot, cfg->m_pIsolate);
}
DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
index fed3f32318..bc19903bad 100644
--- a/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
+++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
@@ -9,7 +9,6 @@
#include "../../include/fsdk_mgr.h"
#include "../../include/fpdfxfa/fpdfxfa_doc.h"
#include "../../include/fpdfxfa/fpdfxfa_util.h"
-#include "../../include/jsapi/fxjs_v8.h"
#include "../../include/javascript/IJavaScript.h"
#include "../../include/fpdfxfa/fpdfxfa_app.h"
diff --git a/fpdfsdk/src/javascript/JS_Runtime.cpp b/fpdfsdk/src/javascript/JS_Runtime.cpp
index 8a0d6666bb..1d2fa84323 100644
--- a/fpdfsdk/src/javascript/JS_Runtime.cpp
+++ b/fpdfsdk/src/javascript/JS_Runtime.cpp
@@ -33,6 +33,11 @@
v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(v8::Isolate* pIsolate);
// static
+void IJS_Runtime::Initialize(unsigned int slot, void* isolate) {
+ FXJS_Initialize(slot, reinterpret_cast<v8::Isolate*>(isolate));
+}
+
+// static
IJS_Runtime* IJS_Runtime::Create(CPDFDoc_Environment* pEnv) {
return new CJS_Runtime(pEnv);
}
diff --git a/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp b/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
new file mode 100644
index 0000000000..ea1e6c1c55
--- /dev/null
+++ b/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
@@ -0,0 +1,161 @@
+// Copyright 2015 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "../../../third_party/base/nonstd_unique_ptr.h"
+#include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment.
+#include "../../include/javascript/IJavaScript.h"
+
+class CJS_ContextStub final : public IJS_Context {
+ public:
+ CJS_ContextStub() {}
+ ~CJS_ContextStub() override {}
+
+ // IJS_Context:
+ FX_BOOL RunScript(const CFX_WideString& script,
+ CFX_WideString& info) override {
+ return FALSE;
+ }
+
+ void OnApp_Init() override {}
+ void OnDoc_Open(CPDFSDK_Document* pDoc,
+ const CFX_WideString& strTargetName) override {}
+ void OnDoc_WillPrint(CPDFSDK_Document* pDoc) override {}
+ void OnDoc_DidPrint(CPDFSDK_Document* pDoc) override {}
+ void OnDoc_WillSave(CPDFSDK_Document* pDoc) override {}
+ void OnDoc_DidSave(CPDFSDK_Document* pDoc) override {}
+ void OnDoc_WillClose(CPDFSDK_Document* pDoc) override {}
+ void OnPage_Open(CPDFSDK_Document* pTarget) override {}
+ void OnPage_Close(CPDFSDK_Document* pTarget) override {}
+ void OnPage_InView(CPDFSDK_Document* pTarget) override {}
+ void OnPage_OutView(CPDFSDK_Document* pTarget) override {}
+ void OnField_MouseDown(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget) override {}
+ void OnField_MouseEnter(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget) override {}
+ void OnField_MouseExit(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget) override {}
+ void OnField_MouseUp(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget) override {}
+ void OnField_Focus(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget,
+ const CFX_WideString& Value) override {}
+ void OnField_Blur(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget,
+ const CFX_WideString& Value) override {}
+ void OnField_Calculate(CPDF_FormField* pSource,
+ CPDF_FormField* pTarget,
+ CFX_WideString& Value,
+ FX_BOOL& bRc) override {}
+ void OnField_Format(CPDF_FormField* pTarget,
+ CFX_WideString& Value,
+ FX_BOOL bWillCommit) override {}
+ void OnField_Keystroke(CFX_WideString& strChange,
+ const CFX_WideString& strChangeEx,
+ FX_BOOL KeyDown,
+ FX_BOOL bModifier,
+ int& nSelEnd,
+ int& nSelStart,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget,
+ CFX_WideString& Value,
+ FX_BOOL bWillCommit,
+ FX_BOOL bFieldFull,
+ FX_BOOL& bRc) override {}
+ void OnField_Validate(CFX_WideString& strChange,
+ const CFX_WideString& strChangeEx,
+ FX_BOOL bKeyDown,
+ FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDF_FormField* pTarget,
+ CFX_WideString& Value,
+ FX_BOOL& bRc) override {}
+ void OnScreen_Focus(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_Blur(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_Open(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_Close(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_MouseDown(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_MouseUp(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_MouseEnter(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_MouseExit(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_InView(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnScreen_OutView(FX_BOOL bModifier,
+ FX_BOOL bShift,
+ CPDFSDK_Annot* pScreen) override {}
+ void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) override {}
+ void OnLink_MouseUp(CPDFSDK_Document* pTarget) override {}
+ void OnMenu_Exec(CPDFSDK_Document* pTarget, const CFX_WideString&) override {}
+ void OnBatchExec(CPDFSDK_Document* pTarget) override {}
+ void OnConsole_Exec() override {}
+ void OnExternal_Exec() override {}
+ void EnableMessageBox(FX_BOOL bEnable) override {}
+};
+
+class CJS_RuntimeStub final : public IJS_Runtime {
+ public:
+ CJS_RuntimeStub() : m_pDoc(nullptr) {}
+ ~CJS_RuntimeStub() override {}
+
+ IJS_Context* NewContext() override {
+ if (!m_pContext)
+ m_pContext.reset(new CJS_ContextStub());
+ return GetCurrentContext();
+ }
+
+ IJS_Context* GetCurrentContext() override { return m_pContext.get(); }
+ void ReleaseContext(IJS_Context* pContext) override {}
+
+ void SetReaderDocument(CPDFSDK_Document* pReaderDoc) override {
+ m_pDoc = pReaderDoc;
+ }
+ CPDFSDK_Document* GetReaderDocument() override { return m_pDoc; }
+
+ virtual FX_BOOL GetHValueByName(const CFX_ByteStringC&,
+ FXJSE_HVALUE) override {
+ return FALSE;
+ }
+
+ virtual FX_BOOL SetHValueByName(const CFX_ByteStringC&,
+ FXJSE_HVALUE) override {
+ return FALSE;
+ }
+
+ protected:
+ CPDFSDK_Document* m_pDoc;
+ nonstd::unique_ptr<CJS_ContextStub> m_pContext;
+};
+
+// static
+void IJS_Runtime::Initialize(unsigned int slot, void* isolate) {
+}
+
+// static
+IJS_Runtime* IJS_Runtime::Create(CPDFDoc_Environment* pEnv) {
+ return new CJS_RuntimeStub;
+}