| OLD | NEW |
| 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 // FXJS_V8 is a layer that makes it easier to define native objects in V8, but | 7 // FXJS_V8 is a layer that makes it easier to define native objects in V8, but |
| 8 // has no knowledge of PDF-specific native objects. It could in theory be used | 8 // has no knowledge of PDF-specific native objects. It could in theory be used |
| 9 // to implement other sets of native objects. | 9 // to implement other sets of native objects. |
| 10 | 10 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 | 169 |
| 170 // Called after FXJS_Define* calls made. | 170 // Called after FXJS_Define* calls made. |
| 171 void InitializeEngine(); | 171 void InitializeEngine(); |
| 172 void ReleaseEngine(); | 172 void ReleaseEngine(); |
| 173 | 173 |
| 174 // Called after FXJS_InitializeEngine call made. | 174 // Called after FXJS_InitializeEngine call made. |
| 175 int Execute(const CFX_WideString& script, FXJSErr* perror); | 175 int Execute(const CFX_WideString& script, FXJSErr* perror); |
| 176 | 176 |
| 177 v8::Local<v8::Context> NewLocalContext(); | 177 v8::Local<v8::Context> NewLocalContext(); |
| 178 v8::Local<v8::Context> GetPersistentContext(); | 178 v8::Local<v8::Context> GetPersistentContext(); |
| 179 v8::Local<v8::Object> GetThisObj(); |
| 179 | 180 |
| 180 v8::Local<v8::Value> NewNull(); | 181 v8::Local<v8::Value> NewNull(); |
| 181 v8::Local<v8::Array> NewArray(); | 182 v8::Local<v8::Array> NewArray(); |
| 182 v8::Local<v8::Value> NewNumber(int number); | 183 v8::Local<v8::Value> NewNumber(int number); |
| 183 v8::Local<v8::Value> NewNumber(double number); | 184 v8::Local<v8::Value> NewNumber(double number); |
| 184 v8::Local<v8::Value> NewNumber(float number); | 185 v8::Local<v8::Value> NewNumber(float number); |
| 185 v8::Local<v8::Value> NewBoolean(bool b); | 186 v8::Local<v8::Value> NewBoolean(bool b); |
| 186 v8::Local<v8::Value> NewString(const wchar_t* str); | 187 v8::Local<v8::Value> NewString(const CFX_WideString& str); |
| 187 v8::Local<v8::Date> NewDate(double d); | 188 v8::Local<v8::Date> NewDate(double d); |
| 188 v8::Local<v8::Object> NewFxDynamicObj(int nObjDefnID, bool bStatic = false); | 189 v8::Local<v8::Object> NewFxDynamicObj(int nObjDefnID, bool bStatic = false); |
| 189 | 190 |
| 190 v8::Local<v8::Object> GetThisObj(); | |
| 191 int ToInt32(v8::Local<v8::Value> pValue); | 191 int ToInt32(v8::Local<v8::Value> pValue); |
| 192 bool ToBoolean(v8::Local<v8::Value> pValue); | 192 bool ToBoolean(v8::Local<v8::Value> pValue); |
| 193 double ToNumber(v8::Local<v8::Value> pValue); | 193 double ToDouble(v8::Local<v8::Value> pValue); |
| 194 CFX_WideString ToString(v8::Local<v8::Value> pValue); | 194 CFX_WideString ToWideString(v8::Local<v8::Value> pValue); |
| 195 v8::Local<v8::Object> ToObject(v8::Local<v8::Value> pValue); | 195 v8::Local<v8::Object> ToObject(v8::Local<v8::Value> pValue); |
| 196 v8::Local<v8::Array> ToArray(v8::Local<v8::Value> pValue); | 196 v8::Local<v8::Array> ToArray(v8::Local<v8::Value> pValue); |
| 197 | 197 |
| 198 // Arrays. |
| 198 unsigned GetArrayLength(v8::Local<v8::Array> pArray); | 199 unsigned GetArrayLength(v8::Local<v8::Array> pArray); |
| 199 v8::Local<v8::Value> GetArrayElement(v8::Local<v8::Array> pArray, | 200 v8::Local<v8::Value> GetArrayElement(v8::Local<v8::Array> pArray, |
| 200 unsigned index); | 201 unsigned index); |
| 201 unsigned PutArrayElement(v8::Local<v8::Array> pArray, | 202 unsigned PutArrayElement(v8::Local<v8::Array> pArray, |
| 202 unsigned index, | 203 unsigned index, |
| 203 v8::Local<v8::Value> pValue); | 204 v8::Local<v8::Value> pValue); |
| 204 | 205 |
| 206 // Objects. |
| 205 std::vector<CFX_WideString> GetObjectPropertyNames( | 207 std::vector<CFX_WideString> GetObjectPropertyNames( |
| 206 v8::Local<v8::Object> pObj); | 208 v8::Local<v8::Object> pObj); |
| 207 v8::Local<v8::Value> GetObjectProperty(v8::Local<v8::Object> pObj, | 209 v8::Local<v8::Value> GetObjectProperty(v8::Local<v8::Object> pObj, |
| 208 const CFX_WideString& PropertyName); | 210 const CFX_WideString& PropertyName); |
| 209 | 211 void PutObjectProperty(v8::Local<v8::Object> pObj, |
| 210 void PutObjectString(v8::Local<v8::Object> pObj, | 212 const CFX_WideString& PropertyName, |
| 211 const CFX_WideString& wsPropertyName, | 213 v8::Local<v8::Value> pValue); |
| 212 const CFX_WideString& wsValue); | |
| 213 void PutObjectNumber(v8::Local<v8::Object> pObj, | |
| 214 const CFX_WideString& PropertyName, | |
| 215 int nValue); | |
| 216 void PutObjectNumber(v8::Local<v8::Object> pObj, | |
| 217 const CFX_WideString& PropertyName, | |
| 218 float fValue); | |
| 219 void PutObjectNumber(v8::Local<v8::Object> pObj, | |
| 220 const CFX_WideString& PropertyName, | |
| 221 double dValue); | |
| 222 void PutObjectBoolean(v8::Local<v8::Object> pObj, | |
| 223 const CFX_WideString& PropertyName, | |
| 224 bool bValue); | |
| 225 void PutObjectObject(v8::Local<v8::Object> pObj, | |
| 226 const CFX_WideString& PropertyName, | |
| 227 v8::Local<v8::Object> pPut); | |
| 228 void PutObjectNull(v8::Local<v8::Object> pObj, | |
| 229 const CFX_WideString& PropertyName); | |
| 230 | 214 |
| 231 // Native object binding. | 215 // Native object binding. |
| 232 void SetObjectPrivate(v8::Local<v8::Object> pObj, void* p); | 216 void SetObjectPrivate(v8::Local<v8::Object> pObj, void* p); |
| 233 void* GetObjectPrivate(v8::Local<v8::Object> pObj); | 217 void* GetObjectPrivate(v8::Local<v8::Object> pObj); |
| 234 static void FreeObjectPrivate(void* p); | 218 static void FreeObjectPrivate(void* p); |
| 235 static void FreeObjectPrivate(v8::Local<v8::Object> pObj); | 219 static void FreeObjectPrivate(v8::Local<v8::Object> pObj); |
| 236 | 220 |
| 237 void SetConstArray(const CFX_WideString& name, v8::Local<v8::Array> array); | 221 void SetConstArray(const CFX_WideString& name, v8::Local<v8::Array> array); |
| 238 v8::Local<v8::Array> GetConstArray(const CFX_WideString& name); | 222 v8::Local<v8::Array> GetConstArray(const CFX_WideString& name); |
| 239 | 223 |
| 240 v8::Local<v8::String> WSToJSString(const CFX_WideString& wsPropertyName); | 224 v8::Local<v8::String> WSToJSString(const CFX_WideString& wsPropertyName); |
| 241 void Error(const CFX_WideString& message); | 225 void Error(const CFX_WideString& message); |
| 242 | 226 |
| 243 protected: | 227 protected: |
| 244 CFXJS_Engine(); | 228 CFXJS_Engine(); |
| 245 | 229 |
| 246 void SetIsolate(v8::Isolate* pIsolate) { m_isolate = pIsolate; } | 230 void SetIsolate(v8::Isolate* pIsolate) { m_isolate = pIsolate; } |
| 247 | 231 |
| 248 private: | 232 private: |
| 249 v8::Isolate* m_isolate; | 233 v8::Isolate* m_isolate; |
| 250 v8::Global<v8::Context> m_V8PersistentContext; | 234 v8::Global<v8::Context> m_V8PersistentContext; |
| 251 std::vector<v8::Global<v8::Object>*> m_StaticObjects; | 235 std::vector<v8::Global<v8::Object>*> m_StaticObjects; |
| 252 std::map<CFX_WideString, v8::Global<v8::Array>> m_ConstArrays; | 236 std::map<CFX_WideString, v8::Global<v8::Array>> m_ConstArrays; |
| 253 }; | 237 }; |
| 254 | 238 |
| 255 #endif // FXJS_FXJS_V8_H_ | 239 #endif // FXJS_FXJS_V8_H_ |
| OLD | NEW |