Merge to XFA: Pass IJS_Runtime, not IJS_Context, to native object constructors.
Original Review URL: https://codereview.chromium.org/1389163007 .
(cherry picked from commit 848a13b6777cbff8cc4aea3ab3d69eaa0b82ae6c)
Merge conflics in:
fpdfsdk/src/javascript/JS_Runtime.cpp
fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
fpdfsdk/src/jsapi/fxjs_v8.cpp
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1394993006 .
diff --git a/fpdfsdk/include/javascript/IJavaScript.h b/fpdfsdk/include/javascript/IJavaScript.h
index f78ee52..c8962bd 100644
--- a/fpdfsdk/include/javascript/IJavaScript.h
+++ b/fpdfsdk/include/javascript/IJavaScript.h
@@ -17,10 +17,11 @@
class CPDF_Bookmark;
class CPDF_FormField;
+// Records the details of an event and triggers JS execution for it.
class IJS_Context {
public:
virtual FX_BOOL RunScript(const CFX_WideString& script,
- CFX_WideString& info) = 0;
+ CFX_WideString* info) = 0;
virtual void OnApp_Init() = 0;
@@ -132,6 +133,7 @@
virtual ~IJS_Context() {}
};
+// Owns the FJXS objects needed to actually execute JS.
class IJS_Runtime {
public:
static void Initialize(unsigned int slot, void* isolate);
@@ -144,6 +146,9 @@
virtual void SetReaderDocument(CPDFSDK_Document* pReaderDoc) = 0;
virtual CPDFSDK_Document* GetReaderDocument() = 0;
+ virtual int Execute(IJS_Context* cc,
+ const wchar_t* script,
+ CFX_WideString* info) = 0;
virtual FX_BOOL GetHValueByName(const CFX_ByteStringC& utf8Name,
FXJSE_HVALUE hValue) = 0;