summaryrefslogtreecommitdiff
path: root/fpdfsdk/src/javascript
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-10-13 09:27:27 -0700
committerTom Sepez <tsepez@chromium.org>2015-10-13 09:27:27 -0700
commit452b4f3f0ce1411350d57373528ccde77e40727d (patch)
treedb9049209ff1f754026e680e6c18361ae4bc1a85 /fpdfsdk/src/javascript
parente865ed12c4a476a4c74bf1ae97d3a6fa8ca06f0a (diff)
downloadpdfium-452b4f3f0ce1411350d57373528ccde77e40727d.tar.xz
Merge to XFA: Allow compiling PDFium without V8.
Original Review URL: https://codereview.chromium.org/1395733006 . (cherry picked from commit f1c713663192368d26031a4caed1f9705f4510af) Conflicts: BUILD.gn fpdfsdk/src/fpdfview.cpp fpdfsdk/src/javascript/JS_Runtime.cpp pdfium.gyp samples/BUILD.gn samples/samples.gyp BUG=pdfium:211 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1393833006 .
Diffstat (limited to 'fpdfsdk/src/javascript')
-rw-r--r--fpdfsdk/src/javascript/JS_Runtime.cpp5
-rw-r--r--fpdfsdk/src/javascript/JS_Runtime_Stub.cpp161
2 files changed, 166 insertions, 0 deletions
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;
+}