diff options
Diffstat (limited to 'fpdfsdk/include')
-rw-r--r-- | fpdfsdk/include/javascript/IJavaScript.h | 7 | ||||
-rw-r--r-- | fpdfsdk/include/jsapi/fxjs_v8.h | 16 |
2 files changed, 13 insertions, 10 deletions
diff --git a/fpdfsdk/include/javascript/IJavaScript.h b/fpdfsdk/include/javascript/IJavaScript.h index bf90210794..c4c5d0d053 100644 --- a/fpdfsdk/include/javascript/IJavaScript.h +++ b/fpdfsdk/include/javascript/IJavaScript.h @@ -16,10 +16,11 @@ class CPDFSDK_Document; 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; @@ -131,6 +132,7 @@ class IJS_Context { virtual ~IJS_Context() {} }; +// Owns the FJXS objects needed to actually execute JS. class IJS_Runtime { public: static void Initialize(unsigned int slot, void* isolate); @@ -142,6 +144,9 @@ class IJS_Runtime { virtual IJS_Context* GetCurrentContext() = 0; 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; protected: IJS_Runtime() {} diff --git a/fpdfsdk/include/jsapi/fxjs_v8.h b/fpdfsdk/include/jsapi/fxjs_v8.h index 651414b53b..13fbb02a72 100644 --- a/fpdfsdk/include/jsapi/fxjs_v8.h +++ b/fpdfsdk/include/jsapi/fxjs_v8.h @@ -17,10 +17,10 @@ #include <v8.h> #include "../../../core/include/fxcrt/fx_basic.h" -// FXJS_V8 places no interpretation on these two classes; it merely -// passes them on to the caller-provided FXJS_CONSTRUCTORs. -class IJS_Context; -class IJS_Runtime; +// FXJS_V8 places no restrictions on these two classes; it merely passes them +// on to caller-provided methods. +class IJS_Context; // A description of the event that caused JS execution. +class IJS_Runtime; // A native runtime, typically owns the v8::Context. enum FXJSOBJTYPE { FXJSOBJTYPE_DYNAMIC = 0, // Created by native method and returned to JS. @@ -61,7 +61,7 @@ class FXJS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { void Free(void* data, size_t length) override; }; -using FXJS_CONSTRUCTOR = void (*)(IJS_Context* cc, v8::Local<v8::Object> obj); +using FXJS_CONSTRUCTOR = void (*)(IJS_Runtime* cc, v8::Local<v8::Object> obj); using FXJS_DESTRUCTOR = void (*)(v8::Local<v8::Object> obj); // Call before making FXJS_PrepareIsolate call. @@ -119,8 +119,7 @@ void FXJS_DefineGlobalConst(v8::Isolate* pIsolate, // Called after FXJS_Define* calls made. void FXJS_InitializeRuntime(v8::Isolate* pIsolate, - IJS_Runtime* pFXRuntime, - IJS_Context* context, + IJS_Runtime* pIRuntime, v8::Global<v8::Context>& v8PersistentContext); void FXJS_ReleaseRuntime(v8::Isolate* pIsolate, v8::Global<v8::Context>& v8PersistentContext); @@ -130,11 +129,10 @@ IJS_Runtime* FXJS_GetRuntimeFromIsolate(v8::Isolate* pIsolate); int FXJS_Execute(v8::Isolate* pIsolate, IJS_Context* pJSContext, const wchar_t* script, - long length, FXJSErr* perror); v8::Local<v8::Object> FXJS_NewFxDynamicObj(v8::Isolate* pIsolate, - IJS_Context* pJSContext, + IJS_Runtime* pJSContext, int nObjDefnID); v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate); int FXJS_GetObjDefnID(v8::Local<v8::Object> pObj); |