summaryrefslogtreecommitdiff
path: root/fpdfsdk/include
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-09-10 11:56:37 -0700
committerTom Sepez <tsepez@chromium.org>2015-09-10 11:56:37 -0700
commit6df59849472958e7de96da6d9fc7b223b7c1f1c3 (patch)
tree90b4908f6de484252f9757010b7002c4f0365a58 /fpdfsdk/include
parent0d0935d3d6603dd7d851b1d5828635230f4c43ca (diff)
downloadpdfium-6df59849472958e7de96da6d9fc7b223b7c1f1c3.tar.xz
Remove some abstractions in fxjs_v8.h.
It's too hard to keep mapping between v8 and fx abstractions; the lack of transparency prevents those skilled in v8 only from working on this code. Apparently, the original intention was to confine v8 types to fpdfsdk/{include,src}/jsapi, but fpdfsdk/{include,src}/javascript is already well-polluted with v8 types. Also remove no-op JS_SetThisObj(). Also remove unused ParserParams() [noticed because it was incorrectly passing handles as pointers]. Also remove cast operator from CJS_Runtime and call GetIsolate() explicitly. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1332973002 .
Diffstat (limited to 'fpdfsdk/include')
-rw-r--r--fpdfsdk/include/javascript/Consts.h28
-rw-r--r--fpdfsdk/include/javascript/Document.h5
-rw-r--r--fpdfsdk/include/javascript/Field.h2
-rw-r--r--fpdfsdk/include/javascript/Icon.h2
-rw-r--r--fpdfsdk/include/javascript/JS_Define.h124
-rw-r--r--fpdfsdk/include/javascript/JS_Object.h4
-rw-r--r--fpdfsdk/include/javascript/JS_Runtime.h10
-rw-r--r--fpdfsdk/include/javascript/JS_Value.h6
-rw-r--r--fpdfsdk/include/javascript/PublicMethods.h2
-rw-r--r--fpdfsdk/include/javascript/app.h4
-rw-r--r--fpdfsdk/include/javascript/color.h2
-rw-r--r--fpdfsdk/include/javascript/console.h2
-rw-r--r--fpdfsdk/include/javascript/event.h2
-rw-r--r--fpdfsdk/include/javascript/global.h4
-rw-r--r--fpdfsdk/include/javascript/report.h2
-rw-r--r--fpdfsdk/include/javascript/util.h2
-rw-r--r--fpdfsdk/include/jsapi/fxjs_v8.h102
17 files changed, 144 insertions, 159 deletions
diff --git a/fpdfsdk/include/javascript/Consts.h b/fpdfsdk/include/javascript/Consts.h
index 79f85f8002..165001784b 100644
--- a/fpdfsdk/include/javascript/Consts.h
+++ b/fpdfsdk/include/javascript/Consts.h
@@ -13,7 +13,7 @@
class CJS_Border : public CJS_Object {
public:
- explicit CJS_Border(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Border(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Border() override {}
DECLARE_JS_CLASS_CONST();
@@ -23,7 +23,7 @@ class CJS_Border : public CJS_Object {
class CJS_Display : public CJS_Object {
public:
- explicit CJS_Display(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Display(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Display() override {}
DECLARE_JS_CLASS_CONST();
@@ -33,7 +33,7 @@ class CJS_Display : public CJS_Object {
class CJS_Font : public CJS_Object {
public:
- explicit CJS_Font(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Font(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Font() override {}
DECLARE_JS_CLASS_CONST();
@@ -43,7 +43,7 @@ class CJS_Font : public CJS_Object {
class CJS_Highlight : public CJS_Object {
public:
- explicit CJS_Highlight(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Highlight(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Highlight() override {}
DECLARE_JS_CLASS_CONST();
@@ -53,7 +53,7 @@ class CJS_Highlight : public CJS_Object {
class CJS_Position : public CJS_Object {
public:
- explicit CJS_Position(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Position(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Position() override {}
DECLARE_JS_CLASS_CONST();
@@ -63,7 +63,7 @@ class CJS_Position : public CJS_Object {
class CJS_ScaleHow : public CJS_Object {
public:
- explicit CJS_ScaleHow(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_ScaleHow(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_ScaleHow() override {}
DECLARE_JS_CLASS_CONST();
@@ -73,7 +73,7 @@ class CJS_ScaleHow : public CJS_Object {
class CJS_ScaleWhen : public CJS_Object {
public:
- explicit CJS_ScaleWhen(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_ScaleWhen(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_ScaleWhen() override {}
DECLARE_JS_CLASS_CONST();
@@ -83,7 +83,7 @@ class CJS_ScaleWhen : public CJS_Object {
class CJS_Style : public CJS_Object {
public:
- explicit CJS_Style(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Style(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Style() override {}
DECLARE_JS_CLASS_CONST();
@@ -93,26 +93,24 @@ class CJS_Style : public CJS_Object {
class CJS_Zoomtype : public CJS_Object {
public:
- explicit CJS_Zoomtype(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Zoomtype(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Zoomtype() override {}
DECLARE_JS_CLASS_CONST();
};
-/* ------------------------------ CJS_GlobalConsts
- * ------------------------------ */
+/* ------------------------------ CJS_GlobalConsts -------------------------- */
class CJS_GlobalConsts : public CJS_Object {
public:
- static int Init(IJS_Runtime* pRuntime);
+ static int Init(v8::Isolate* pIsolate);
};
-/* ------------------------------ CJS_GlobalArrays
- * ------------------------------ */
+/* ------------------------------ CJS_GlobalArrays -------------------------- */
class CJS_GlobalArrays : public CJS_Object {
public:
- static int Init(IJS_Runtime* pRuntime);
+ static int Init(v8::Isolate* pIsolate);
};
#endif // FPDFSDK_INCLUDE_JAVASCRIPT_CONSTS_H_
diff --git a/fpdfsdk/include/javascript/Document.h b/fpdfsdk/include/javascript/Document.h
index e139557f1b..9340000118 100644
--- a/fpdfsdk/include/javascript/Document.h
+++ b/fpdfsdk/include/javascript/Document.h
@@ -27,7 +27,7 @@ class PrintParamsObj : public CJS_EmbedObj {
class CJS_PrintParamsObj : public CJS_Object {
public:
- CJS_PrintParamsObj(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_PrintParamsObj(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_PrintParamsObj() override {}
DECLARE_JS_CLASS(CJS_PrintParamsObj);
@@ -309,7 +309,6 @@ class Document : public CJS_EmbedObj {
bool IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect);
int CountWords(CPDF_TextObject* pTextObj);
CFX_WideString GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex);
- FX_BOOL ParserParams(JSObject* pObj, CJS_AnnotObj& annotobj);
v8::Isolate* m_isolate;
IconTree* m_pIconTree;
@@ -322,7 +321,7 @@ class Document : public CJS_EmbedObj {
class CJS_Document : public CJS_Object {
public:
- explicit CJS_Document(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Document(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Document() override {}
// CJS_Object
diff --git a/fpdfsdk/include/javascript/Field.h b/fpdfsdk/include/javascript/Field.h
index ca37ae57bd..4a6f524f72 100644
--- a/fpdfsdk/include/javascript/Field.h
+++ b/fpdfsdk/include/javascript/Field.h
@@ -533,7 +533,7 @@ class Field : public CJS_EmbedObj {
class CJS_Field : public CJS_Object {
public:
- CJS_Field(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Field(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Field(void) override {}
FX_BOOL InitInstance(IFXJS_Context* cc) override;
diff --git a/fpdfsdk/include/javascript/Icon.h b/fpdfsdk/include/javascript/Icon.h
index 6d2f6e4645..9b6d21b985 100644
--- a/fpdfsdk/include/javascript/Icon.h
+++ b/fpdfsdk/include/javascript/Icon.h
@@ -27,7 +27,7 @@ class Icon : public CJS_EmbedObj {
class CJS_Icon : public CJS_Object {
public:
- CJS_Icon(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Icon(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Icon() override {}
public:
diff --git a/fpdfsdk/include/javascript/JS_Define.h b/fpdfsdk/include/javascript/JS_Define.h
index db4b1c360d..b850fbe797 100644
--- a/fpdfsdk/include/javascript/JS_Define.h
+++ b/fpdfsdk/include/javascript/JS_Define.h
@@ -189,41 +189,42 @@ void JSMethod(const char* method_name_string,
/* ===================================== JS CLASS
* =============================================== */
-#define DECLARE_JS_CLASS(js_class_name) \
- static void JSConstructor(IFXJS_Context* cc, JSFXObject obj, \
- JSFXObject global); \
- static void JSDestructor(JSFXObject obj); \
- static int Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType); \
- static JSConstSpec JS_Class_Consts[]; \
- static JSPropertySpec JS_Class_Properties[]; \
- static JSMethodSpec JS_Class_Methods[]; \
+#define DECLARE_JS_CLASS(js_class_name) \
+ static void JSConstructor(IFXJS_Context* cc, v8::Local<v8::Object> obj, \
+ v8::Local<v8::Object> global); \
+ static void JSDestructor(v8::Local<v8::Object> obj); \
+ static int Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType); \
+ static JSConstSpec JS_Class_Consts[]; \
+ static JSPropertySpec JS_Class_Properties[]; \
+ static JSMethodSpec JS_Class_Methods[]; \
static const wchar_t* m_pClassName
#define IMPLEMENT_JS_CLASS_RICH(js_class_name, class_alternate, class_name) \
const wchar_t* js_class_name::m_pClassName = JS_WIDESTRING(class_name); \
- void js_class_name::JSConstructor(IFXJS_Context* cc, JSFXObject obj, \
- JSFXObject global) { \
+ void js_class_name::JSConstructor(IFXJS_Context* cc, \
+ v8::Local<v8::Object> obj, \
+ v8::Local<v8::Object> global) { \
CJS_Object* pObj = new js_class_name(obj); \
pObj->SetEmbedObject(new class_alternate(pObj)); \
JS_SetPrivate(NULL, obj, (void*)pObj); \
pObj->InitInstance(cc); \
} \
\
- void js_class_name::JSDestructor(JSFXObject obj) { \
+ void js_class_name::JSDestructor(v8::Local<v8::Object> obj) { \
js_class_name* pObj = (js_class_name*)JS_GetPrivate(NULL, obj); \
ASSERT(pObj != NULL); \
pObj->ExitInstance(); \
delete pObj; \
} \
\
- int js_class_name::Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType) { \
- int nObjDefnID = JS_DefineObj(pRuntime, js_class_name::m_pClassName, \
+ int js_class_name::Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType) { \
+ int nObjDefnID = JS_DefineObj(pIsolate, js_class_name::m_pClassName, \
eObjType, JSConstructor, JSDestructor); \
if (nObjDefnID >= 0) { \
for (int j = 0, \
szj = sizeof(JS_Class_Properties) / sizeof(JSPropertySpec) - 1; \
j < szj; j++) { \
- if (JS_DefineObjProperty(pRuntime, nObjDefnID, \
+ if (JS_DefineObjProperty(pIsolate, nObjDefnID, \
JS_Class_Properties[j].pName, \
JS_Class_Properties[j].pPropGet, \
JS_Class_Properties[j].pPropPut) < 0) \
@@ -232,7 +233,7 @@ void JSMethod(const char* method_name_string,
for (int k = 0, \
szk = sizeof(JS_Class_Methods) / sizeof(JSMethodSpec) - 1; \
k < szk; k++) { \
- if (JS_DefineObjMethod(pRuntime, nObjDefnID, \
+ if (JS_DefineObjMethod(pIsolate, nObjDefnID, \
JS_Class_Methods[k].pName, \
JS_Class_Methods[k].pMethodCall) < 0) \
return -1; \
@@ -249,27 +250,27 @@ void JSMethod(const char* method_name_string,
* ============================================ */
#define DECLARE_JS_CLASS_CONST() \
- static int Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType); \
+ static int Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType); \
static JSConstSpec JS_Class_Consts[]; \
static const wchar_t* m_pClassName
#define IMPLEMENT_JS_CLASS_CONST(js_class_name, class_name) \
const wchar_t* js_class_name::m_pClassName = JS_WIDESTRING(class_name); \
- int js_class_name::Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType) { \
- int nObjDefnID = JS_DefineObj(pRuntime, js_class_name::m_pClassName, \
+ int js_class_name::Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType) { \
+ int nObjDefnID = JS_DefineObj(pIsolate, js_class_name::m_pClassName, \
eObjType, NULL, NULL); \
if (nObjDefnID >= 0) { \
for (int i = 0, sz = sizeof(JS_Class_Consts) / sizeof(JSConstSpec) - 1; \
i < sz; i++) { \
if (JS_Class_Consts[i].t == 0) { \
if (JS_DefineObjConst( \
- pRuntime, nObjDefnID, JS_Class_Consts[i].pName, \
- JS_NewNumber(pRuntime, JS_Class_Consts[i].number)) < 0) \
+ pIsolate, nObjDefnID, JS_Class_Consts[i].pName, \
+ JS_NewNumber(pIsolate, JS_Class_Consts[i].number)) < 0) \
return -1; \
} else { \
if (JS_DefineObjConst( \
- pRuntime, nObjDefnID, JS_Class_Consts[i].pName, \
- JS_NewString(pRuntime, JS_Class_Consts[i].string)) < 0) \
+ pIsolate, nObjDefnID, JS_Class_Consts[i].pName, \
+ JS_NewString(pIsolate, JS_Class_Consts[i].string)) < 0) \
return -1; \
} \
} \
@@ -371,26 +372,26 @@ void JSSpecialPropDel(const char* class_name,
}
}
-#define DECLARE_SPECIAL_JS_CLASS(js_class_name) \
- static void JSConstructor(IFXJS_Context* cc, JSFXObject obj, \
- JSFXObject global); \
- static void JSDestructor(JSFXObject obj); \
- static JSConstSpec JS_Class_Consts[]; \
- static JSPropertySpec JS_Class_Properties[]; \
- static JSMethodSpec JS_Class_Methods[]; \
- static int Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType); \
- static const wchar_t* m_pClassName; \
- static void queryprop_##js_class_name##_static( \
- v8::Local<v8::String> property, \
- const v8::PropertyCallbackInfo<v8::Integer>& info); \
- static void getprop_##js_class_name##_static( \
- v8::Local<v8::String> property, \
- const v8::PropertyCallbackInfo<v8::Value>& info); \
- static void putprop_##js_class_name##_static( \
- v8::Local<v8::String> property, v8::Local<v8::Value> value, \
- const v8::PropertyCallbackInfo<v8::Value>& info); \
- static void delprop_##js_class_name##_static( \
- v8::Local<v8::String> property, \
+#define DECLARE_SPECIAL_JS_CLASS(js_class_name) \
+ static void JSConstructor(IFXJS_Context* cc, v8::Local<v8::Object> obj, \
+ v8::Local<v8::Object> global); \
+ static void JSDestructor(v8::Local<v8::Object> obj); \
+ static JSConstSpec JS_Class_Consts[]; \
+ static JSPropertySpec JS_Class_Properties[]; \
+ static JSMethodSpec JS_Class_Methods[]; \
+ static int Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType); \
+ static const wchar_t* m_pClassName; \
+ static void queryprop_##js_class_name##_static( \
+ v8::Local<v8::String> property, \
+ const v8::PropertyCallbackInfo<v8::Integer>& info); \
+ static void getprop_##js_class_name##_static( \
+ v8::Local<v8::String> property, \
+ const v8::PropertyCallbackInfo<v8::Value>& info); \
+ static void putprop_##js_class_name##_static( \
+ v8::Local<v8::String> property, v8::Local<v8::Value> value, \
+ const v8::PropertyCallbackInfo<v8::Value>& info); \
+ static void delprop_##js_class_name##_static( \
+ v8::Local<v8::String> property, \
const v8::PropertyCallbackInfo<v8::Boolean>& info)
#define IMPLEMENT_SPECIAL_JS_CLASS(js_class_name, class_alternate, class_name) \
@@ -415,30 +416,31 @@ void JSSpecialPropDel(const char* class_name,
const v8::PropertyCallbackInfo<v8::Boolean>& info) { \
JSSpecialPropDel<class_alternate>(#class_name, property, info); \
} \
- void js_class_name::JSConstructor(IFXJS_Context* cc, JSFXObject obj, \
- JSFXObject global) { \
+ void js_class_name::JSConstructor(IFXJS_Context* cc, \
+ v8::Local<v8::Object> obj, \
+ v8::Local<v8::Object> global) { \
CJS_Object* pObj = new js_class_name(obj); \
pObj->SetEmbedObject(new class_alternate(pObj)); \
JS_SetPrivate(NULL, obj, (void*)pObj); \
pObj->InitInstance(cc); \
} \
\
- void js_class_name::JSDestructor(JSFXObject obj) { \
+ void js_class_name::JSDestructor(v8::Local<v8::Object> obj) { \
js_class_name* pObj = (js_class_name*)JS_GetPrivate(NULL, obj); \
ASSERT(pObj != NULL); \
pObj->ExitInstance(); \
delete pObj; \
} \
\
- int js_class_name::Init(IJS_Runtime* pRuntime, FXJSOBJTYPE eObjType) { \
- int nObjDefnID = JS_DefineObj(pRuntime, js_class_name::m_pClassName, \
+ int js_class_name::Init(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType) { \
+ int nObjDefnID = JS_DefineObj(pIsolate, js_class_name::m_pClassName, \
eObjType, JSConstructor, JSDestructor); \
\
if (nObjDefnID >= 0) { \
for (int j = 0, \
szj = sizeof(JS_Class_Properties) / sizeof(JSPropertySpec) - 1; \
j < szj; j++) { \
- if (JS_DefineObjProperty(pRuntime, nObjDefnID, \
+ if (JS_DefineObjProperty(pIsolate, nObjDefnID, \
JS_Class_Properties[j].pName, \
JS_Class_Properties[j].pPropGet, \
JS_Class_Properties[j].pPropPut) < 0) \
@@ -448,13 +450,13 @@ void JSSpecialPropDel(const char* class_name,
for (int k = 0, \
szk = sizeof(JS_Class_Methods) / sizeof(JSMethodSpec) - 1; \
k < szk; k++) { \
- if (JS_DefineObjMethod(pRuntime, nObjDefnID, \
+ if (JS_DefineObjMethod(pIsolate, nObjDefnID, \
JS_Class_Methods[k].pName, \
JS_Class_Methods[k].pMethodCall) < 0) \
return -1; \
} \
if (JS_DefineObjAllProperties( \
- pRuntime, nObjDefnID, \
+ pIsolate, nObjDefnID, \
js_class_name::queryprop_##js_class_name##_static, \
js_class_name::getprop_##js_class_name##_static, \
js_class_name::putprop_##js_class_name##_static, \
@@ -503,7 +505,7 @@ void JSGlobalFunc(const char* func_name_string,
#define JS_STATIC_DECLARE_GLOBAL_FUN() \
static JSMethodSpec global_methods[]; \
- static int Init(IJS_Runtime* pRuntime)
+ static int Init(v8::Isolate* pIsolate)
#define BEGIN_JS_STATIC_GLOBAL_FUN(js_class_name) \
JSMethodSpec js_class_name::global_methods[] = {
@@ -513,13 +515,13 @@ void JSGlobalFunc(const char* func_name_string,
#define END_JS_STATIC_GLOBAL_FUN() END_JS_STATIC_METHOD()
#define IMPLEMENT_JS_STATIC_GLOBAL_FUN(js_class_name) \
- int js_class_name::Init(IJS_Runtime* pRuntime) { \
+ int js_class_name::Init(v8::Isolate* pIsolate) { \
for (int i = 0, sz = sizeof(js_class_name::global_methods) / \
sizeof(JSMethodSpec) - \
1; \
i < sz; i++) { \
if (JS_DefineGlobalMethod( \
- pRuntime, js_class_name::global_methods[i].pName, \
+ pIsolate, js_class_name::global_methods[i].pName, \
js_class_name::global_methods[i].pMethodCall) < 0) \
return -1; \
} \
@@ -528,25 +530,25 @@ void JSGlobalFunc(const char* func_name_string,
/* ======================================== GLOBAL CONSTS
* ============================================ */
-#define DEFINE_GLOBAL_CONST(pRuntime, const_name, const_value) \
+#define DEFINE_GLOBAL_CONST(pIsolate, const_name, const_value) \
if (JS_DefineGlobalConst( \
- pRuntime, JS_WIDESTRING(const_name), \
- JS_NewString(pRuntime, JS_WIDESTRING(const_value)))) \
+ pIsolate, JS_WIDESTRING(const_name), \
+ JS_NewString(pIsolate, JS_WIDESTRING(const_value)))) \
return -1
/* ======================================== GLOBAL ARRAYS
* ============================================ */
-#define DEFINE_GLOBAL_ARRAY(pRuntime) \
+#define DEFINE_GLOBAL_ARRAY(pIsolate) \
int size = FX_ArraySize(ArrayContent); \
\
- CJS_Array array(pRuntime); \
+ CJS_Array array(pIsolate); \
for (int i = 0; i < size; i++) \
- array.SetElement(i, CJS_Value(pRuntime, ArrayContent[i])); \
+ array.SetElement(i, CJS_Value(pIsolate, ArrayContent[i])); \
\
- CJS_PropValue prop(pRuntime); \
+ CJS_PropValue prop(pIsolate); \
prop << array; \
- if (JS_DefineGlobalConst(pRuntime, (const wchar_t*)ArrayName, \
+ if (JS_DefineGlobalConst(pIsolate, (const wchar_t*)ArrayName, \
prop.ToV8Value()) < 0) \
return -1
diff --git a/fpdfsdk/include/javascript/JS_Object.h b/fpdfsdk/include/javascript/JS_Object.h
index 9fd7bff3d4..a7772f1cf9 100644
--- a/fpdfsdk/include/javascript/JS_Object.h
+++ b/fpdfsdk/include/javascript/JS_Object.h
@@ -48,7 +48,7 @@ class CJS_EmbedObj {
class CJS_Object {
public:
- explicit CJS_Object(JSFXObject pObject);
+ explicit CJS_Object(v8::Local<v8::Object> pObject);
virtual ~CJS_Object();
void MakeWeak();
@@ -60,7 +60,7 @@ class CJS_Object {
virtual FX_BOOL InitInstance(IFXJS_Context* cc) { return TRUE; }
virtual FX_BOOL ExitInstance() { return TRUE; }
- operator JSFXObject() {
+ operator v8::Local<v8::Object>() {
return v8::Local<v8::Object>::New(m_pIsolate, m_pObject);
}
diff --git a/fpdfsdk/include/javascript/JS_Runtime.h b/fpdfsdk/include/javascript/JS_Runtime.h
index 5a811fca1f..314330ca6c 100644
--- a/fpdfsdk/include/javascript/JS_Runtime.h
+++ b/fpdfsdk/include/javascript/JS_Runtime.h
@@ -40,7 +40,7 @@ class CJS_Runtime : public IFXJS_Runtime {
void SetReaderDocument(CPDFSDK_Document* pReaderDoc) override;
CPDFSDK_Document* GetReaderDocument() override { return m_pDocument; }
- CPDFDoc_Environment* GetReaderApp() { return m_pApp; }
+ CPDFDoc_Environment* GetReaderApp() const { return m_pApp; }
FX_BOOL InitJSObjects();
@@ -52,12 +52,9 @@ class CJS_Runtime : public IFXJS_Runtime {
void BeginBlock() { m_bBlocking = TRUE; }
void EndBlock() { m_bBlocking = FALSE; }
- FX_BOOL IsBlocking() { return m_bBlocking; }
-
- operator IJS_Runtime*() { return (IJS_Runtime*)m_isolate; }
- v8::Isolate* GetIsolate() { return m_isolate; }
- void SetIsolate(v8::Isolate* isolate) { m_isolate = isolate; }
+ FX_BOOL IsBlocking() const { return m_bBlocking; }
+ v8::Isolate* GetIsolate() const { return m_isolate; }
v8::Local<v8::Context> NewJSContext();
protected:
@@ -66,7 +63,6 @@ class CJS_Runtime : public IFXJS_Runtime {
CPDFSDK_Document* m_pDocument;
FX_BOOL m_bBlocking;
CJS_FieldEvent* m_pFieldEventPath;
-
v8::Isolate* m_isolate;
bool m_isolateManaged;
nonstd::unique_ptr<CJS_ArrayBufferAllocator> m_pArrayBufferAllocator;
diff --git a/fpdfsdk/include/javascript/JS_Value.h b/fpdfsdk/include/javascript/JS_Value.h
index 1606fb5396..771214d968 100644
--- a/fpdfsdk/include/javascript/JS_Value.h
+++ b/fpdfsdk/include/javascript/JS_Value.h
@@ -23,7 +23,7 @@ class CJS_Value {
CJS_Value(v8::Isolate* isolate, const double& dValue);
CJS_Value(v8::Isolate* isolate, const float& fValue);
CJS_Value(v8::Isolate* isolate, const bool& bValue);
- CJS_Value(v8::Isolate* isolate, JSFXObject);
+ CJS_Value(v8::Isolate* isolate, v8::Local<v8::Object>);
CJS_Value(v8::Isolate* isolate, CJS_Object*);
CJS_Value(v8::Isolate* isolate, CJS_Document*);
CJS_Value(v8::Isolate* isolate, const FX_CHAR* pStr);
@@ -108,8 +108,8 @@ class CJS_PropValue : public CJS_Value {
void operator<<(CFX_WideString);
void operator>>(CFX_WideString&) const;
void operator<<(const FX_WCHAR* c_string);
- void operator<<(JSFXObject);
- void operator>>(JSFXObject&) const;
+ void operator<<(v8::Local<v8::Object>);
+ void operator>>(v8::Local<v8::Object>&) const;
void operator>>(CJS_Array& array) const;
void operator<<(CJS_Array& array);
void operator<<(CJS_Date& date);
diff --git a/fpdfsdk/include/javascript/PublicMethods.h b/fpdfsdk/include/javascript/PublicMethods.h
index 96c5ea5ad0..02ace4a4c4 100644
--- a/fpdfsdk/include/javascript/PublicMethods.h
+++ b/fpdfsdk/include/javascript/PublicMethods.h
@@ -11,7 +11,7 @@
class CJS_PublicMethods : public CJS_Object {
public:
- CJS_PublicMethods(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_PublicMethods(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_PublicMethods() override {}
public:
diff --git a/fpdfsdk/include/javascript/app.h b/fpdfsdk/include/javascript/app.h
index 995c2605df..1ab02c5eac 100644
--- a/fpdfsdk/include/javascript/app.h
+++ b/fpdfsdk/include/javascript/app.h
@@ -30,7 +30,7 @@ class TimerObj : public CJS_EmbedObj {
class CJS_TimerObj : public CJS_Object {
public:
- CJS_TimerObj(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_TimerObj(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_TimerObj() override {}
DECLARE_JS_CLASS(CJS_TimerObj);
@@ -174,7 +174,7 @@ class app : public CJS_EmbedObj {
class CJS_App : public CJS_Object {
public:
- explicit CJS_App(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_App(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_App() override {}
DECLARE_JS_CLASS(CJS_App);
diff --git a/fpdfsdk/include/javascript/color.h b/fpdfsdk/include/javascript/color.h
index cabd770ee8..322c4c26fa 100644
--- a/fpdfsdk/include/javascript/color.h
+++ b/fpdfsdk/include/javascript/color.h
@@ -60,7 +60,7 @@ class color : public CJS_EmbedObj {
class CJS_Color : public CJS_Object {
public:
- CJS_Color(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Color(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Color() override {}
DECLARE_JS_CLASS(CJS_Color);
diff --git a/fpdfsdk/include/javascript/console.h b/fpdfsdk/include/javascript/console.h
index e001695ebf..1571d109f1 100644
--- a/fpdfsdk/include/javascript/console.h
+++ b/fpdfsdk/include/javascript/console.h
@@ -35,7 +35,7 @@ class console : public CJS_EmbedObj {
class CJS_Console : public CJS_Object {
public:
- CJS_Console(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Console(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Console() override {}
DECLARE_JS_CLASS(CJS_Console);
diff --git a/fpdfsdk/include/javascript/event.h b/fpdfsdk/include/javascript/event.h
index e48a659fc7..a934d54e62 100644
--- a/fpdfsdk/include/javascript/event.h
+++ b/fpdfsdk/include/javascript/event.h
@@ -59,7 +59,7 @@ class event : public CJS_EmbedObj {
class CJS_Event : public CJS_Object {
public:
- CJS_Event(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Event(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Event() override {}
DECLARE_JS_CLASS(CJS_Event);
diff --git a/fpdfsdk/include/javascript/global.h b/fpdfsdk/include/javascript/global.h
index 7f78bb6bcb..10300a25ab 100644
--- a/fpdfsdk/include/javascript/global.h
+++ b/fpdfsdk/include/javascript/global.h
@@ -63,7 +63,7 @@ class JSGlobalAlternate : public CJS_EmbedObj {
double dData,
bool bData,
const CFX_ByteString& sData,
- JSObject pData,
+ v8::Local<v8::Object> pData,
bool bDefaultPersistent);
void ObjectToArray(v8::Local<v8::Object> pObj,
@@ -79,7 +79,7 @@ class JSGlobalAlternate : public CJS_EmbedObj {
class CJS_Global : public CJS_Object {
public:
- explicit CJS_Global(JSFXObject pObject) : CJS_Object(pObject) {}
+ explicit CJS_Global(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Global() override {}
// CJS_Object
diff --git a/fpdfsdk/include/javascript/report.h b/fpdfsdk/include/javascript/report.h
index 52be2f36e2..5b17dabc50 100644
--- a/fpdfsdk/include/javascript/report.h
+++ b/fpdfsdk/include/javascript/report.h
@@ -27,7 +27,7 @@ class Report : public CJS_EmbedObj {
class CJS_Report : public CJS_Object {
public:
- CJS_Report(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Report(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Report() override {}
public:
diff --git a/fpdfsdk/include/javascript/util.h b/fpdfsdk/include/javascript/util.h
index 369985673a..d7a1ef7b8c 100644
--- a/fpdfsdk/include/javascript/util.h
+++ b/fpdfsdk/include/javascript/util.h
@@ -51,7 +51,7 @@ class util : public CJS_EmbedObj {
class CJS_Util : public CJS_Object {
public:
- CJS_Util(JSFXObject pObject) : CJS_Object(pObject) {}
+ CJS_Util(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {}
~CJS_Util() override {}
DECLARE_JS_CLASS(CJS_Util);
diff --git a/fpdfsdk/include/jsapi/fxjs_v8.h b/fpdfsdk/include/jsapi/fxjs_v8.h
index f9d8f50248..8e52c68845 100644
--- a/fpdfsdk/include/jsapi/fxjs_v8.h
+++ b/fpdfsdk/include/jsapi/fxjs_v8.h
@@ -13,10 +13,6 @@
#include <v8.h>
#include "../../../core/include/fxcrt/fx_string.h" // For CFX_WideString
-typedef v8::Value JSValue;
-typedef v8::Local<v8::Object> JSObject;
-typedef v8::Local<v8::Object> JSFXObject;
-
enum FXJSOBJTYPE {
JS_DYNAMIC = 0,
JS_STATIC = 1,
@@ -43,7 +39,6 @@ struct FXJSErr {
/* --------------------------------------------- API
* --------------------------------------------- */
-typedef v8::Isolate IJS_Runtime;
class IFXJS_Context;
class IFXJS_Runtime;
@@ -52,143 +47,138 @@ typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc,
v8::Local<v8::Object> global);
typedef void (*LP_DESTRUCTOR)(v8::Local<v8::Object> obj);
-int JS_DefineObj(IJS_Runtime* pJSRuntime,
+int JS_DefineObj(v8::Isolate* pIsolate,
const wchar_t* sObjName,
FXJSOBJTYPE eObjType,
LP_CONSTRUCTOR pConstructor,
LP_DESTRUCTOR pDestructor);
-int JS_DefineObjMethod(IJS_Runtime* pJSRuntime,
+int JS_DefineObjMethod(v8::Isolate* pIsolate,
int nObjDefnID,
const wchar_t* sMethodName,
v8::FunctionCallback pMethodCall);
-int JS_DefineObjProperty(IJS_Runtime* pJSRuntime,
+int JS_DefineObjProperty(v8::Isolate* pIsolate,
int nObjDefnID,
const wchar_t* sPropName,
v8::AccessorGetterCallback pPropGet,
v8::AccessorSetterCallback pPropPut);
-int JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime,
+int JS_DefineObjAllProperties(v8::Isolate* pIsolate,
int nObjDefnID,
v8::NamedPropertyQueryCallback pPropQurey,
v8::NamedPropertyGetterCallback pPropGet,
v8::NamedPropertySetterCallback pPropPut,
v8::NamedPropertyDeleterCallback pPropDel);
-int JS_DefineObjConst(IJS_Runtime* pJSRuntime,
+int JS_DefineObjConst(v8::Isolate* pIsolate,
int nObjDefnID,
const wchar_t* sConstName,
v8::Local<v8::Value> pDefault);
-int JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime,
+int JS_DefineGlobalMethod(v8::Isolate* pIsolate,
const wchar_t* sMethodName,
v8::FunctionCallback pMethodCall);
-int JS_DefineGlobalConst(IJS_Runtime* pJSRuntime,
+int JS_DefineGlobalConst(v8::Isolate* pIsolate,
const wchar_t* sConstName,
v8::Local<v8::Value> pDefault);
-void JS_InitialRuntime(IJS_Runtime* pJSRuntime,
+void JS_InitialRuntime(v8::Isolate* pIsolate,
IFXJS_Runtime* pFXRuntime,
IFXJS_Context* context,
v8::Global<v8::Context>& v8PersistentContext);
-void JS_ReleaseRuntime(IJS_Runtime* pJSRuntime,
+void JS_ReleaseRuntime(v8::Isolate* pIsolate,
v8::Global<v8::Context>& v8PersistentContext);
void JS_Initial(unsigned int embedderDataSlot);
void JS_Release();
-int JS_Execute(IJS_Runtime* pJSRuntime,
+int JS_Execute(v8::Isolate* pIsolate,
IFXJS_Context* pJSContext,
const wchar_t* script,
long length,
FXJSErr* perror);
-v8::Local<v8::Object> JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Object> JS_NewFxDynamicObj(v8::Isolate* pIsolate,
IFXJS_Context* pJSContext,
int nObjDefnID);
-v8::Local<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID);
-void JS_SetThisObj(IJS_Runtime* pJSRuntime, int nThisObjID);
-v8::Local<v8::Object> JS_GetThisObj(IJS_Runtime* pJSRuntime);
+v8::Local<v8::Object> JS_GetStaticObj(v8::Isolate* pIsolate, int nObjDefnID);
+v8::Local<v8::Object> JS_GetThisObj(v8::Isolate* pIsolate);
int JS_GetObjDefnID(v8::Local<v8::Object> pObj);
-IJS_Runtime* JS_GetRuntime(v8::Local<v8::Object> pObj);
-int JS_GetObjDefnID(IJS_Runtime* pJSRuntime, const wchar_t* pObjName);
+v8::Isolate* JS_GetRuntime(v8::Local<v8::Object> pObj);
+int JS_GetObjDefnID(v8::Isolate* pIsolate, const wchar_t* pObjName);
void JS_Error(v8::Isolate* isolate, const CFX_WideString& message);
unsigned JS_CalcHash(const wchar_t* main, unsigned nLen);
unsigned JS_CalcHash(const wchar_t* main);
const wchar_t* JS_GetTypeof(v8::Local<v8::Value> pObj);
-void JS_SetPrivate(IJS_Runtime* pJSRuntime,
- v8::Local<v8::Object> pObj,
- void* p);
-void* JS_GetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj);
+void JS_SetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, void* p);
+void* JS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj);
void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p);
void* JS_GetPrivate(v8::Local<v8::Object> pObj);
void JS_FreePrivate(void* p);
void JS_FreePrivate(v8::Local<v8::Object> pObj);
v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj);
-v8::Local<v8::Value> JS_GetObjectElement(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_GetObjectElement(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName);
-v8::Local<v8::Array> JS_GetObjectElementNames(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Array> JS_GetObjectElementNames(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj);
-void JS_PutObjectString(IJS_Runtime* pJSRuntime,
+void JS_PutObjectString(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
const wchar_t* sValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
int nValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
float fValue);
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNumber(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
double dValue);
-void JS_PutObjectBoolean(IJS_Runtime* pJSRuntime,
+void JS_PutObjectBoolean(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
bool bValue);
-void JS_PutObjectObject(IJS_Runtime* pJSRuntime,
+void JS_PutObjectObject(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName,
v8::Local<v8::Object> pPut);
-void JS_PutObjectNull(IJS_Runtime* pJSRuntime,
+void JS_PutObjectNull(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj,
const wchar_t* PropertyName);
-unsigned JS_PutArrayElement(IJS_Runtime* pJSRuntime,
+unsigned JS_PutArrayElement(v8::Isolate* pIsolate,
v8::Local<v8::Array> pArray,
unsigned index,
v8::Local<v8::Value> pValue,
FXJSVALUETYPE eType);
-v8::Local<v8::Value> JS_GetArrayElement(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_GetArrayElement(v8::Isolate* pIsolate,
v8::Local<v8::Array> pArray,
unsigned index);
unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray);
-v8::Local<v8::Value> JS_GetListValue(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_GetListValue(v8::Isolate* pIsolate,
v8::Local<v8::Value> pList,
int index);
-v8::Local<v8::Array> JS_NewArray(IJS_Runtime* pJSRuntime);
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, int number);
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, double number);
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, float number);
-v8::Local<v8::Value> JS_NewBoolean(IJS_Runtime* pJSRuntime, bool b);
-v8::Local<v8::Value> JS_NewObject(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Array> JS_NewArray(v8::Isolate* pIsolate);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, int number);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, double number);
+v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, float number);
+v8::Local<v8::Value> JS_NewBoolean(v8::Isolate* pIsolate, bool b);
+v8::Local<v8::Value> JS_NewObject(v8::Isolate* pIsolate,
v8::Local<v8::Object> pObj);
-v8::Local<v8::Value> JS_NewObject2(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_NewObject2(v8::Isolate* pIsolate,
v8::Local<v8::Array> pObj);
-v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,
- const wchar_t* string);
-v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,
+v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate, const wchar_t* string);
+v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate,
const wchar_t* string,
unsigned nLen);
v8::Local<v8::Value> JS_NewNull();
-v8::Local<v8::Value> JS_NewDate(IJS_Runtime* pJSRuntime, double d);
-v8::Local<v8::Value> JS_NewValue(IJS_Runtime* pJSRuntime);
+v8::Local<v8::Value> JS_NewDate(v8::Isolate* pIsolate, double d);
+v8::Local<v8::Value> JS_NewValue(v8::Isolate* pIsolate);
-int JS_ToInt32(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-bool JS_ToBoolean(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-double JS_ToNumber(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue);
-v8::Local<v8::Object> JS_ToObject(IJS_Runtime* pJSRuntime,
+int JS_ToInt32(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+bool JS_ToBoolean(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+double JS_ToNumber(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+v8::Local<v8::Object> JS_ToObject(v8::Isolate* pIsolate,
v8::Local<v8::Value> pValue);
-CFX_WideString JS_ToString(IJS_Runtime* pJSRuntime,
- v8::Local<v8::Value> pValue);
-v8::Local<v8::Array> JS_ToArray(IJS_Runtime* pJSRuntime,
+CFX_WideString JS_ToString(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
+v8::Local<v8::Array> JS_ToArray(v8::Isolate* pIsolate,
v8::Local<v8::Value> pValue);
void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom);