Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: fpdfsdk/include/jsapi/fxjs_v8.h

Issue 1334833003: Merge to XFA: Remove some abstractions in fxjs_v8.h. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/include/javascript/util.h ('k') | fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 // PDFium wrapper around V8 APIs. PDFium code should include this file rather 7 // PDFium wrapper around V8 APIs. PDFium code should include this file rather
8 // than including V8 headers directly. 8 // than including V8 headers directly.
9 9
10 #ifndef FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_ 10 #ifndef FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_
11 #define FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_ 11 #define FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_
12 12
13 #include <v8.h> 13 #include <v8.h>
14 #include "../../../core/include/fxcrt/fx_string.h" // For CFX_WideString 14 #include "../../../core/include/fxcrt/fx_string.h" // For CFX_WideString
15 15
16 typedef v8::Value JSValue;
17 typedef v8::Local<v8::Object> JSObject;
18 typedef v8::Local<v8::Object> JSFXObject;
19
20 enum FXJSOBJTYPE { 16 enum FXJSOBJTYPE {
21 JS_DYNAMIC = 0, 17 JS_DYNAMIC = 0,
22 JS_STATIC = 1, 18 JS_STATIC = 1,
23 }; 19 };
24 20
25 enum FXJSVALUETYPE { 21 enum FXJSVALUETYPE {
26 VT_unknown, 22 VT_unknown,
27 VT_string, 23 VT_string,
28 VT_number, 24 VT_number,
29 VT_boolean, 25 VT_boolean,
30 VT_date, 26 VT_date,
31 VT_object, 27 VT_object,
32 VT_fxobject, 28 VT_fxobject,
33 VT_null, 29 VT_null,
34 VT_undefined 30 VT_undefined
35 }; 31 };
36 32
37 struct FXJSErr { 33 struct FXJSErr {
38 const wchar_t* message; 34 const wchar_t* message;
39 const wchar_t* srcline; 35 const wchar_t* srcline;
40 unsigned linnum; 36 unsigned linnum;
41 }; 37 };
42 38
43 /* --------------------------------------------- API 39 /* --------------------------------------------- API
44 * --------------------------------------------- */ 40 * --------------------------------------------- */
45 41
46 typedef v8::Isolate IJS_Runtime;
47 class IFXJS_Context; 42 class IFXJS_Context;
48 class IFXJS_Runtime; 43 class IFXJS_Runtime;
49 44
50 typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc, 45 typedef void (*LP_CONSTRUCTOR)(IFXJS_Context* cc,
51 v8::Local<v8::Object> obj, 46 v8::Local<v8::Object> obj,
52 v8::Local<v8::Object> global); 47 v8::Local<v8::Object> global);
53 typedef void (*LP_DESTRUCTOR)(v8::Local<v8::Object> obj); 48 typedef void (*LP_DESTRUCTOR)(v8::Local<v8::Object> obj);
54 49
55 int JS_DefineObj(IJS_Runtime* pJSRuntime, 50 int JS_DefineObj(v8::Isolate* pIsolate,
56 const wchar_t* sObjName, 51 const wchar_t* sObjName,
57 FXJSOBJTYPE eObjType, 52 FXJSOBJTYPE eObjType,
58 LP_CONSTRUCTOR pConstructor, 53 LP_CONSTRUCTOR pConstructor,
59 LP_DESTRUCTOR pDestructor); 54 LP_DESTRUCTOR pDestructor);
60 int JS_DefineObjMethod(IJS_Runtime* pJSRuntime, 55 int JS_DefineObjMethod(v8::Isolate* pIsolate,
61 int nObjDefnID, 56 int nObjDefnID,
62 const wchar_t* sMethodName, 57 const wchar_t* sMethodName,
63 v8::FunctionCallback pMethodCall); 58 v8::FunctionCallback pMethodCall);
64 int JS_DefineObjProperty(IJS_Runtime* pJSRuntime, 59 int JS_DefineObjProperty(v8::Isolate* pIsolate,
65 int nObjDefnID, 60 int nObjDefnID,
66 const wchar_t* sPropName, 61 const wchar_t* sPropName,
67 v8::AccessorGetterCallback pPropGet, 62 v8::AccessorGetterCallback pPropGet,
68 v8::AccessorSetterCallback pPropPut); 63 v8::AccessorSetterCallback pPropPut);
69 int JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime, 64 int JS_DefineObjAllProperties(v8::Isolate* pIsolate,
70 int nObjDefnID, 65 int nObjDefnID,
71 v8::NamedPropertyQueryCallback pPropQurey, 66 v8::NamedPropertyQueryCallback pPropQurey,
72 v8::NamedPropertyGetterCallback pPropGet, 67 v8::NamedPropertyGetterCallback pPropGet,
73 v8::NamedPropertySetterCallback pPropPut, 68 v8::NamedPropertySetterCallback pPropPut,
74 v8::NamedPropertyDeleterCallback pPropDel); 69 v8::NamedPropertyDeleterCallback pPropDel);
75 int JS_DefineObjConst(IJS_Runtime* pJSRuntime, 70 int JS_DefineObjConst(v8::Isolate* pIsolate,
76 int nObjDefnID, 71 int nObjDefnID,
77 const wchar_t* sConstName, 72 const wchar_t* sConstName,
78 v8::Local<v8::Value> pDefault); 73 v8::Local<v8::Value> pDefault);
79 int JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime, 74 int JS_DefineGlobalMethod(v8::Isolate* pIsolate,
80 const wchar_t* sMethodName, 75 const wchar_t* sMethodName,
81 v8::FunctionCallback pMethodCall); 76 v8::FunctionCallback pMethodCall);
82 int JS_DefineGlobalConst(IJS_Runtime* pJSRuntime, 77 int JS_DefineGlobalConst(v8::Isolate* pIsolate,
83 const wchar_t* sConstName, 78 const wchar_t* sConstName,
84 v8::Local<v8::Value> pDefault); 79 v8::Local<v8::Value> pDefault);
85 80
86 void JS_InitialRuntime(IJS_Runtime* pJSRuntime, 81 void JS_InitialRuntime(v8::Isolate* pIsolate,
87 IFXJS_Runtime* pFXRuntime, 82 IFXJS_Runtime* pFXRuntime,
88 IFXJS_Context* context, 83 IFXJS_Context* context,
89 v8::Global<v8::Context>& v8PersistentContext); 84 v8::Global<v8::Context>& v8PersistentContext);
90 void JS_ReleaseRuntime(IJS_Runtime* pJSRuntime, 85 void JS_ReleaseRuntime(v8::Isolate* pIsolate,
91 v8::Global<v8::Context>& v8PersistentContext); 86 v8::Global<v8::Context>& v8PersistentContext);
92 void JS_Initial(unsigned int embedderDataSlot); 87 void JS_Initial(unsigned int embedderDataSlot);
93 void JS_Release(); 88 void JS_Release();
94 int JS_Execute(IJS_Runtime* pJSRuntime, 89 int JS_Execute(v8::Isolate* pIsolate,
95 IFXJS_Context* pJSContext, 90 IFXJS_Context* pJSContext,
96 const wchar_t* script, 91 const wchar_t* script,
97 long length, 92 long length,
98 FXJSErr* perror); 93 FXJSErr* perror);
99 v8::Local<v8::Object> JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime, 94 v8::Local<v8::Object> JS_NewFxDynamicObj(v8::Isolate* pIsolate,
100 IFXJS_Context* pJSContext, 95 IFXJS_Context* pJSContext,
101 int nObjDefnID); 96 int nObjDefnID);
102 v8::Local<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID); 97 v8::Local<v8::Object> JS_GetStaticObj(v8::Isolate* pIsolate, int nObjDefnID);
103 void JS_SetThisObj(IJS_Runtime* pJSRuntime, int nThisObjID); 98 v8::Local<v8::Object> JS_GetThisObj(v8::Isolate* pIsolate);
104 v8::Local<v8::Object> JS_GetThisObj(IJS_Runtime* pJSRuntime);
105 int JS_GetObjDefnID(v8::Local<v8::Object> pObj); 99 int JS_GetObjDefnID(v8::Local<v8::Object> pObj);
106 IJS_Runtime* JS_GetRuntime(v8::Local<v8::Object> pObj); 100 v8::Isolate* JS_GetRuntime(v8::Local<v8::Object> pObj);
107 int JS_GetObjDefnID(IJS_Runtime* pJSRuntime, const wchar_t* pObjName); 101 int JS_GetObjDefnID(v8::Isolate* pIsolate, const wchar_t* pObjName);
108 void JS_Error(v8::Isolate* isolate, const CFX_WideString& message); 102 void JS_Error(v8::Isolate* isolate, const CFX_WideString& message);
109 unsigned JS_CalcHash(const wchar_t* main, unsigned nLen); 103 unsigned JS_CalcHash(const wchar_t* main, unsigned nLen);
110 unsigned JS_CalcHash(const wchar_t* main); 104 unsigned JS_CalcHash(const wchar_t* main);
111 const wchar_t* JS_GetTypeof(v8::Local<v8::Value> pObj); 105 const wchar_t* JS_GetTypeof(v8::Local<v8::Value> pObj);
112 void JS_SetPrivate(IJS_Runtime* pJSRuntime, 106 void JS_SetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj, void* p);
113 v8::Local<v8::Object> pObj, 107 void* JS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj);
114 void* p);
115 void* JS_GetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj);
116 void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p); 108 void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p);
117 void* JS_GetPrivate(v8::Local<v8::Object> pObj); 109 void* JS_GetPrivate(v8::Local<v8::Object> pObj);
118 void JS_FreePrivate(void* p); 110 void JS_FreePrivate(void* p);
119 void JS_FreePrivate(v8::Local<v8::Object> pObj); 111 void JS_FreePrivate(v8::Local<v8::Object> pObj);
120 v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj); 112 v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj);
121 v8::Local<v8::Value> JS_GetObjectElement(IJS_Runtime* pJSRuntime, 113 v8::Local<v8::Value> JS_GetObjectElement(v8::Isolate* pIsolate,
122 v8::Local<v8::Object> pObj, 114 v8::Local<v8::Object> pObj,
123 const wchar_t* PropertyName); 115 const wchar_t* PropertyName);
124 v8::Local<v8::Array> JS_GetObjectElementNames(IJS_Runtime* pJSRuntime, 116 v8::Local<v8::Array> JS_GetObjectElementNames(v8::Isolate* pIsolate,
125 v8::Local<v8::Object> pObj); 117 v8::Local<v8::Object> pObj);
126 void JS_PutObjectString(IJS_Runtime* pJSRuntime, 118 void JS_PutObjectString(v8::Isolate* pIsolate,
127 v8::Local<v8::Object> pObj, 119 v8::Local<v8::Object> pObj,
128 const wchar_t* PropertyName, 120 const wchar_t* PropertyName,
129 const wchar_t* sValue); 121 const wchar_t* sValue);
130 void JS_PutObjectNumber(IJS_Runtime* pJSRuntime, 122 void JS_PutObjectNumber(v8::Isolate* pIsolate,
131 v8::Local<v8::Object> pObj, 123 v8::Local<v8::Object> pObj,
132 const wchar_t* PropertyName, 124 const wchar_t* PropertyName,
133 int nValue); 125 int nValue);
134 void JS_PutObjectNumber(IJS_Runtime* pJSRuntime, 126 void JS_PutObjectNumber(v8::Isolate* pIsolate,
135 v8::Local<v8::Object> pObj, 127 v8::Local<v8::Object> pObj,
136 const wchar_t* PropertyName, 128 const wchar_t* PropertyName,
137 float fValue); 129 float fValue);
138 void JS_PutObjectNumber(IJS_Runtime* pJSRuntime, 130 void JS_PutObjectNumber(v8::Isolate* pIsolate,
139 v8::Local<v8::Object> pObj, 131 v8::Local<v8::Object> pObj,
140 const wchar_t* PropertyName, 132 const wchar_t* PropertyName,
141 double dValue); 133 double dValue);
142 void JS_PutObjectBoolean(IJS_Runtime* pJSRuntime, 134 void JS_PutObjectBoolean(v8::Isolate* pIsolate,
143 v8::Local<v8::Object> pObj, 135 v8::Local<v8::Object> pObj,
144 const wchar_t* PropertyName, 136 const wchar_t* PropertyName,
145 bool bValue); 137 bool bValue);
146 void JS_PutObjectObject(IJS_Runtime* pJSRuntime, 138 void JS_PutObjectObject(v8::Isolate* pIsolate,
147 v8::Local<v8::Object> pObj, 139 v8::Local<v8::Object> pObj,
148 const wchar_t* PropertyName, 140 const wchar_t* PropertyName,
149 v8::Local<v8::Object> pPut); 141 v8::Local<v8::Object> pPut);
150 void JS_PutObjectNull(IJS_Runtime* pJSRuntime, 142 void JS_PutObjectNull(v8::Isolate* pIsolate,
151 v8::Local<v8::Object> pObj, 143 v8::Local<v8::Object> pObj,
152 const wchar_t* PropertyName); 144 const wchar_t* PropertyName);
153 unsigned JS_PutArrayElement(IJS_Runtime* pJSRuntime, 145 unsigned JS_PutArrayElement(v8::Isolate* pIsolate,
154 v8::Local<v8::Array> pArray, 146 v8::Local<v8::Array> pArray,
155 unsigned index, 147 unsigned index,
156 v8::Local<v8::Value> pValue, 148 v8::Local<v8::Value> pValue,
157 FXJSVALUETYPE eType); 149 FXJSVALUETYPE eType);
158 v8::Local<v8::Value> JS_GetArrayElement(IJS_Runtime* pJSRuntime, 150 v8::Local<v8::Value> JS_GetArrayElement(v8::Isolate* pIsolate,
159 v8::Local<v8::Array> pArray, 151 v8::Local<v8::Array> pArray,
160 unsigned index); 152 unsigned index);
161 unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray); 153 unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray);
162 v8::Local<v8::Value> JS_GetListValue(IJS_Runtime* pJSRuntime, 154 v8::Local<v8::Value> JS_GetListValue(v8::Isolate* pIsolate,
163 v8::Local<v8::Value> pList, 155 v8::Local<v8::Value> pList,
164 int index); 156 int index);
165 157
166 v8::Local<v8::Array> JS_NewArray(IJS_Runtime* pJSRuntime); 158 v8::Local<v8::Array> JS_NewArray(v8::Isolate* pIsolate);
167 v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, int number); 159 v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, int number);
168 v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, double number); 160 v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, double number);
169 v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, float number); 161 v8::Local<v8::Value> JS_NewNumber(v8::Isolate* pIsolate, float number);
170 v8::Local<v8::Value> JS_NewBoolean(IJS_Runtime* pJSRuntime, bool b); 162 v8::Local<v8::Value> JS_NewBoolean(v8::Isolate* pIsolate, bool b);
171 v8::Local<v8::Value> JS_NewObject(IJS_Runtime* pJSRuntime, 163 v8::Local<v8::Value> JS_NewObject(v8::Isolate* pIsolate,
172 v8::Local<v8::Object> pObj); 164 v8::Local<v8::Object> pObj);
173 v8::Local<v8::Value> JS_NewObject2(IJS_Runtime* pJSRuntime, 165 v8::Local<v8::Value> JS_NewObject2(v8::Isolate* pIsolate,
174 v8::Local<v8::Array> pObj); 166 v8::Local<v8::Array> pObj);
175 v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime, 167 v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate, const wchar_t* string);
176 const wchar_t* string); 168 v8::Local<v8::Value> JS_NewString(v8::Isolate* pIsolate,
177 v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,
178 const wchar_t* string, 169 const wchar_t* string,
179 unsigned nLen); 170 unsigned nLen);
180 v8::Local<v8::Value> JS_NewNull(); 171 v8::Local<v8::Value> JS_NewNull();
181 v8::Local<v8::Value> JS_NewDate(IJS_Runtime* pJSRuntime, double d); 172 v8::Local<v8::Value> JS_NewDate(v8::Isolate* pIsolate, double d);
182 v8::Local<v8::Value> JS_NewValue(IJS_Runtime* pJSRuntime); 173 v8::Local<v8::Value> JS_NewValue(v8::Isolate* pIsolate);
183 174
184 int JS_ToInt32(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue); 175 int JS_ToInt32(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
185 bool JS_ToBoolean(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue); 176 bool JS_ToBoolean(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
186 double JS_ToNumber(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue); 177 double JS_ToNumber(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
187 v8::Local<v8::Object> JS_ToObject(IJS_Runtime* pJSRuntime, 178 v8::Local<v8::Object> JS_ToObject(v8::Isolate* pIsolate,
188 v8::Local<v8::Value> pValue); 179 v8::Local<v8::Value> pValue);
189 CFX_WideString JS_ToString(IJS_Runtime* pJSRuntime, 180 CFX_WideString JS_ToString(v8::Isolate* pIsolate, v8::Local<v8::Value> pValue);
190 v8::Local<v8::Value> pValue); 181 v8::Local<v8::Array> JS_ToArray(v8::Isolate* pIsolate,
191 v8::Local<v8::Array> JS_ToArray(IJS_Runtime* pJSRuntime,
192 v8::Local<v8::Value> pValue); 182 v8::Local<v8::Value> pValue);
193 void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom); 183 void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom);
194 184
195 double JS_GetDateTime(); 185 double JS_GetDateTime();
196 int JS_GetYearFromTime(double dt); 186 int JS_GetYearFromTime(double dt);
197 int JS_GetMonthFromTime(double dt); 187 int JS_GetMonthFromTime(double dt);
198 int JS_GetDayFromTime(double dt); 188 int JS_GetDayFromTime(double dt);
199 int JS_GetHourFromTime(double dt); 189 int JS_GetHourFromTime(double dt);
200 int JS_GetMinFromTime(double dt); 190 int JS_GetMinFromTime(double dt);
201 int JS_GetSecFromTime(double dt); 191 int JS_GetSecFromTime(double dt);
202 double JS_DateParse(const wchar_t* string); 192 double JS_DateParse(const wchar_t* string);
203 double JS_MakeDay(int nYear, int nMonth, int nDay); 193 double JS_MakeDay(int nYear, int nMonth, int nDay);
204 double JS_MakeTime(int nHour, int nMin, int nSec, int nMs); 194 double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
205 double JS_MakeDate(double day, double time); 195 double JS_MakeDate(double day, double time);
206 bool JS_PortIsNan(double d); 196 bool JS_PortIsNan(double d);
207 double JS_LocalTime(double d); 197 double JS_LocalTime(double d);
208 198
209 #endif // FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_ 199 #endif // FPDFSDK_INCLUDE_JSAPI_FXJS_V8_H_
OLDNEW
« no previous file with comments | « fpdfsdk/include/javascript/util.h ('k') | fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698