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

Side by Side Diff: xfa/fxjse/include/fxjse.h

Issue 1807623002: Move xfa/include/fxjse/fxjse.h into xfa/fxjse/include. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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 | « xfa/fxjse/dynprop.cpp ('k') | xfa/include/fxfa/fxfa_basic.h » ('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 #ifndef XFA_INCLUDE_FXJSE_FXJSE_H_ 7 #ifndef XFA_FXJSE_INCLUDE_FXJSE_H_
8 #define XFA_INCLUDE_FXJSE_FXJSE_H_ 8 #define XFA_FXJSE_INCLUDE_FXJSE_H_
9 9
10 #include "core/include/fxcrt/fx_string.h" 10 #include "core/include/fxcrt/fx_string.h"
11 #include "core/include/fxcrt/fx_system.h" 11 #include "core/include/fxcrt/fx_system.h"
12 12
13 struct FXJSE_CLASS; 13 struct FXJSE_CLASS;
14 class CFXJSE_Arguments;
14 15
15 typedef struct FXJSE_HRUNTIME_ { void* pData; } * FXJSE_HRUNTIME; 16 typedef struct FXJSE_HRUNTIME_ { void* pData; } * FXJSE_HRUNTIME;
16 typedef struct FXJSE_HCONTEXT_ { void* pData; } * FXJSE_HCONTEXT; 17 typedef struct FXJSE_HCONTEXT_ { void* pData; } * FXJSE_HCONTEXT;
17 typedef struct FXJSE_HCLASS_ { void* pData; } * FXJSE_HCLASS; 18 typedef struct FXJSE_HCLASS_ { void* pData; } * FXJSE_HCLASS;
18 typedef struct FXJSE_HVALUE_ { void* pData; } * FXJSE_HVALUE; 19 typedef struct FXJSE_HVALUE_ { void* pData; } * FXJSE_HVALUE;
19 // NOLINTNEXTLINE 20 // NOLINTNEXTLINE
20 typedef struct FXJSE_HOBJECT_ : public FXJSE_HVALUE_{} * FXJSE_HOBJECT; 21 typedef struct FXJSE_HOBJECT_ : public FXJSE_HVALUE_{} * FXJSE_HOBJECT;
21 typedef double FXJSE_DOUBLE; 22 typedef double FXJSE_DOUBLE;
22 23
23 void FXJSE_Initialize();
24 void FXJSE_Finalize();
25 FXJSE_HRUNTIME FXJSE_Runtime_Create();
26 void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime);
27
28 FXJSE_HCONTEXT FXJSE_Context_Create(FXJSE_HRUNTIME hRuntime,
29 const FXJSE_CLASS* lpGlobalClass = nullptr,
30 void* lpGlobalObject = nullptr);
31 void FXJSE_Context_Release(FXJSE_HCONTEXT hContext);
32 FXJSE_HVALUE FXJSE_Context_GetGlobalObject(FXJSE_HCONTEXT hContext);
33 FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext);
34 enum FXJSE_CompatibleModeFlags {
35 FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0),
36 FXJSE_COMPATIBLEMODEFLAGCOUNT = 1,
37 };
38 void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hContext,
39 FX_DWORD dwCompatibleFlags);
40 class CFXJSE_Arguments {
41 public:
42 FXJSE_HRUNTIME GetRuntime() const;
43 int32_t GetLength() const;
44 FXJSE_HVALUE GetValue(int32_t index) const;
45 FX_BOOL GetBoolean(int32_t index) const;
46 int32_t GetInt32(int32_t index) const;
47 FX_FLOAT GetFloat(int32_t index) const;
48 CFX_ByteString GetUTF8String(int32_t index) const;
49 void* GetObject(int32_t index, FXJSE_HCLASS hClass = nullptr) const;
50 FXJSE_HVALUE GetReturnValue();
51 };
52 typedef void (*FXJSE_FuncCallback)(FXJSE_HOBJECT hThis, 24 typedef void (*FXJSE_FuncCallback)(FXJSE_HOBJECT hThis,
53 const CFX_ByteStringC& szFuncName, 25 const CFX_ByteStringC& szFuncName,
54 CFXJSE_Arguments& args); 26 CFXJSE_Arguments& args);
55 typedef void (*FXJSE_PropAccessor)(FXJSE_HOBJECT hObject, 27 typedef void (*FXJSE_PropAccessor)(FXJSE_HOBJECT hObject,
56 const CFX_ByteStringC& szPropName, 28 const CFX_ByteStringC& szPropName,
57 FXJSE_HVALUE hValue); 29 FXJSE_HVALUE hValue);
58 typedef int32_t (*FXJSE_PropTypeGetter)(FXJSE_HOBJECT hObject, 30 typedef int32_t (*FXJSE_PropTypeGetter)(FXJSE_HOBJECT hObject,
59 const CFX_ByteStringC& szPropName, 31 const CFX_ByteStringC& szPropName,
60 FX_BOOL bQueryIn); 32 FX_BOOL bQueryIn);
61 typedef FX_BOOL (*FXJSE_PropDeleter)(FXJSE_HOBJECT hObject, 33 typedef FX_BOOL (*FXJSE_PropDeleter)(FXJSE_HOBJECT hObject,
62 const CFX_ByteStringC& szPropName); 34 const CFX_ByteStringC& szPropName);
35
36 enum FXJSE_ClassPropTypes {
37 FXJSE_ClassPropType_None,
38 FXJSE_ClassPropType_Property,
39 FXJSE_ClassPropType_Method
40 };
41
42 enum FXJSE_CompatibleModeFlags {
43 FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0),
44 FXJSE_COMPATIBLEMODEFLAGCOUNT = 1,
45 };
46
63 struct FXJSE_FUNCTION { 47 struct FXJSE_FUNCTION {
64 const FX_CHAR* name; 48 const FX_CHAR* name;
65 FXJSE_FuncCallback callbackProc; 49 FXJSE_FuncCallback callbackProc;
66 }; 50 };
67 #define FXJSE_DEF_FUNCTION(functionName, functionCallback) \ 51
68 { functionName, functionCallback }
69 void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext,
70 const FXJSE_FUNCTION* lpFunctions,
71 int nNum);
72 struct FXJSE_PROPERTY { 52 struct FXJSE_PROPERTY {
73 const FX_CHAR* name; 53 const FX_CHAR* name;
74 FXJSE_PropAccessor getProc; 54 FXJSE_PropAccessor getProc;
75 FXJSE_PropAccessor setProc; 55 FXJSE_PropAccessor setProc;
76 }; 56 };
77 enum FXJSE_ClassPropTypes { 57
78 FXJSE_ClassPropType_None,
79 FXJSE_ClassPropType_Property,
80 FXJSE_ClassPropType_Method
81 };
82 struct FXJSE_CLASS { 58 struct FXJSE_CLASS {
83 const FX_CHAR* name; 59 const FX_CHAR* name;
84 FXJSE_FuncCallback constructor; 60 FXJSE_FuncCallback constructor;
85 FXJSE_PROPERTY* properties; 61 FXJSE_PROPERTY* properties;
86 FXJSE_FUNCTION* methods; 62 FXJSE_FUNCTION* methods;
87 int32_t propNum; 63 int32_t propNum;
88 int32_t methNum; 64 int32_t methNum;
89 FXJSE_PropTypeGetter dynPropTypeGetter; 65 FXJSE_PropTypeGetter dynPropTypeGetter;
90 FXJSE_PropAccessor dynPropGetter; 66 FXJSE_PropAccessor dynPropGetter;
91 FXJSE_PropAccessor dynPropSetter; 67 FXJSE_PropAccessor dynPropSetter;
92 FXJSE_PropDeleter dynPropDeleter; 68 FXJSE_PropDeleter dynPropDeleter;
93 FXJSE_FuncCallback dynMethodCall; 69 FXJSE_FuncCallback dynMethodCall;
94 }; 70 };
71
72 void FXJSE_Initialize();
73 void FXJSE_Finalize();
74
75 FXJSE_HRUNTIME FXJSE_Runtime_Create();
76 void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime);
77
78 FXJSE_HCONTEXT FXJSE_Context_Create(FXJSE_HRUNTIME hRuntime,
79 const FXJSE_CLASS* lpGlobalClass = nullptr,
80 void* lpGlobalObject = nullptr);
81 void FXJSE_Context_Release(FXJSE_HCONTEXT hContext);
82 FXJSE_HVALUE FXJSE_Context_GetGlobalObject(FXJSE_HCONTEXT hContext);
83 FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext);
84
85 void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hContext,
86 FX_DWORD dwCompatibleFlags);
87
88 void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext,
89 const FXJSE_FUNCTION* lpFunctions,
90 int nNum);
95 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext, 91 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext,
96 const FXJSE_CLASS* lpClass); 92 const FXJSE_CLASS* lpClass);
97 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext, 93 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext,
98 const CFX_ByteStringC& szName); 94 const CFX_ByteStringC& szName);
95
99 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime); 96 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime);
100 void FXJSE_Value_Release(FXJSE_HVALUE hValue); 97 void FXJSE_Value_Release(FXJSE_HVALUE hValue);
101 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue); 98 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue);
99
102 FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue); 100 FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue);
103 FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue); 101 FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue);
104 FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue); 102 FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue);
105 FX_BOOL FXJSE_Value_IsUTF8String(FXJSE_HVALUE hValue); 103 FX_BOOL FXJSE_Value_IsUTF8String(FXJSE_HVALUE hValue);
106 FX_BOOL FXJSE_Value_IsNumber(FXJSE_HVALUE hValue); 104 FX_BOOL FXJSE_Value_IsNumber(FXJSE_HVALUE hValue);
107 FX_BOOL FXJSE_Value_IsInteger(FXJSE_HVALUE hValue); 105 FX_BOOL FXJSE_Value_IsInteger(FXJSE_HVALUE hValue);
108 FX_BOOL FXJSE_Value_IsObject(FXJSE_HVALUE hValue); 106 FX_BOOL FXJSE_Value_IsObject(FXJSE_HVALUE hValue);
109 FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue); 107 FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue);
110 FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue); 108 FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue);
111 FX_BOOL FXJSE_Value_IsDate(FXJSE_HVALUE hValue); 109 FX_BOOL FXJSE_Value_IsDate(FXJSE_HVALUE hValue);
110
112 FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue); 111 FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue);
113 FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue); 112 FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue);
114 FXJSE_DOUBLE FXJSE_Value_ToDouble(FXJSE_HVALUE hValue); 113 FXJSE_DOUBLE FXJSE_Value_ToDouble(FXJSE_HVALUE hValue);
115 int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue); 114 int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue);
116 void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, CFX_ByteString& szStrOutput); 115 void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, CFX_ByteString& szStrOutput);
117 void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, FXJSE_HCLASS hClass); 116 void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, FXJSE_HCLASS hClass);
117
118 void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue); 118 void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue);
119 void FXJSE_Value_SetNull(FXJSE_HVALUE hValue); 119 void FXJSE_Value_SetNull(FXJSE_HVALUE hValue);
120 void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean); 120 void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean);
121 void FXJSE_Value_SetUTF8String(FXJSE_HVALUE hValue, 121 void FXJSE_Value_SetUTF8String(FXJSE_HVALUE hValue,
122 const CFX_ByteStringC& szString); 122 const CFX_ByteStringC& szString);
123 void FXJSE_Value_SetInteger(FXJSE_HVALUE hValue, int32_t nInteger); 123 void FXJSE_Value_SetInteger(FXJSE_HVALUE hValue, int32_t nInteger);
124 void FXJSE_Value_SetFloat(FXJSE_HVALUE hValue, FX_FLOAT fFloat); 124 void FXJSE_Value_SetFloat(FXJSE_HVALUE hValue, FX_FLOAT fFloat);
125 void FXJSE_Value_SetDouble(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble); 125 void FXJSE_Value_SetDouble(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble);
126 void FXJSE_Value_SetObject(FXJSE_HVALUE hValue, 126 void FXJSE_Value_SetObject(FXJSE_HVALUE hValue,
127 void* lpObject, 127 void* lpObject,
128 FXJSE_HCLASS hClass); 128 FXJSE_HCLASS hClass);
129 void FXJSE_Value_SetArray(FXJSE_HVALUE hValue, 129 void FXJSE_Value_SetArray(FXJSE_HVALUE hValue,
130 uint32_t uValueCount, 130 uint32_t uValueCount,
131 FXJSE_HVALUE* rgValues); 131 FXJSE_HVALUE* rgValues);
132 void FXJSE_Value_SetDate(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble); 132 void FXJSE_Value_SetDate(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble);
133 void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue); 133 void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue);
134
134 FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue, 135 FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue,
135 const CFX_ByteStringC& szPropName, 136 const CFX_ByteStringC& szPropName,
136 FXJSE_HVALUE hPropValue); 137 FXJSE_HVALUE hPropValue);
137 FX_BOOL FXJSE_Value_SetObjectProp(FXJSE_HVALUE hValue, 138 FX_BOOL FXJSE_Value_SetObjectProp(FXJSE_HVALUE hValue,
138 const CFX_ByteStringC& szPropName, 139 const CFX_ByteStringC& szPropName,
139 FXJSE_HVALUE hPropValue); 140 FXJSE_HVALUE hPropValue);
140 FX_BOOL FXJSE_Value_GetObjectPropByIdx(FXJSE_HVALUE hValue, 141 FX_BOOL FXJSE_Value_GetObjectPropByIdx(FXJSE_HVALUE hValue,
141 uint32_t uPropIdx, 142 uint32_t uPropIdx,
142 FXJSE_HVALUE hPropValue); 143 FXJSE_HVALUE hPropValue);
143 FX_BOOL FXJSE_Value_SetObjectPropByIdx(FXJSE_HVALUE hValue, 144 FX_BOOL FXJSE_Value_SetObjectPropByIdx(FXJSE_HVALUE hValue,
144 uint32_t uPropIdx, 145 uint32_t uPropIdx,
145 FXJSE_HVALUE hPropValue); 146 FXJSE_HVALUE hPropValue);
146 FX_BOOL FXJSE_Value_DeleteObjectProp(FXJSE_HVALUE hValue, 147 FX_BOOL FXJSE_Value_DeleteObjectProp(FXJSE_HVALUE hValue,
147 const CFX_ByteStringC& szPropName); 148 const CFX_ByteStringC& szPropName);
148 FX_BOOL FXJSE_Value_ObjectHasOwnProp(FXJSE_HVALUE hValue, 149 FX_BOOL FXJSE_Value_ObjectHasOwnProp(FXJSE_HVALUE hValue,
149 const CFX_ByteStringC& szPropName, 150 const CFX_ByteStringC& szPropName,
150 FX_BOOL bUseTypeGetter); 151 FX_BOOL bUseTypeGetter);
151 FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue, 152 FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue,
152 const CFX_ByteStringC& szPropName, 153 const CFX_ByteStringC& szPropName,
153 FXJSE_HVALUE hPropValue); 154 FXJSE_HVALUE hPropValue);
155
154 FX_BOOL FXJSE_Value_CallFunction(FXJSE_HVALUE hFunction, 156 FX_BOOL FXJSE_Value_CallFunction(FXJSE_HVALUE hFunction,
155 FXJSE_HVALUE hThis, 157 FXJSE_HVALUE hThis,
156 FXJSE_HVALUE hRetValue, 158 FXJSE_HVALUE hRetValue,
157 uint32_t nArgCount, 159 uint32_t nArgCount,
158 FXJSE_HVALUE* lpArgs); 160 FXJSE_HVALUE* lpArgs);
159 FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue, 161 FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue,
160 FXJSE_HVALUE hOldFunction, 162 FXJSE_HVALUE hOldFunction,
161 FXJSE_HVALUE hNewThis); 163 FXJSE_HVALUE hNewThis);
164
162 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext, 165 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext,
163 const FX_CHAR* szScript, 166 const FX_CHAR* szScript,
164 FXJSE_HVALUE hRetValue, 167 FXJSE_HVALUE hRetValue,
165 FXJSE_HVALUE hNewThisObject = nullptr); 168 FXJSE_HVALUE hNewThisObject = nullptr);
169
166 void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name, 170 void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name,
167 const CFX_ByteStringC& utf8Message); 171 const CFX_ByteStringC& utf8Message);
172
168 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue, 173 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue,
169 CFX_ByteString& utf8Name, 174 CFX_ByteString& utf8Name,
170 CFX_ByteString& utf8Message); 175 CFX_ByteString& utf8Message);
171 FX_BOOL FXJSE_ReturnValue_GetLineInfo(FXJSE_HVALUE hRetValue, 176 FX_BOOL FXJSE_ReturnValue_GetLineInfo(FXJSE_HVALUE hRetValue,
172 int32_t& nLine, 177 int32_t& nLine,
173 int32_t& nCol); 178 int32_t& nCol);
174 179
175 #endif // XFA_INCLUDE_FXJSE_FXJSE_H_ 180 #endif // XFA_FXJSE_INCLUDE_FXJSE_H_
OLDNEW
« no previous file with comments | « xfa/fxjse/dynprop.cpp ('k') | xfa/include/fxfa/fxfa_basic.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698