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

Side by Side Diff: fpdfsdk/javascript/JS_Value.h

Issue 2245863002: Push v8::Isolate into CFXJS_Engine class (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Null isolate before letting CFXJS_Engine dtor invoked Created 4 years, 4 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/javascript/JS_Runtime_Stub.cpp ('k') | fpdfsdk/javascript/JS_Value.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 #ifndef FPDFSDK_JAVASCRIPT_JS_VALUE_H_ 7 #ifndef FPDFSDK_JAVASCRIPT_JS_VALUE_H_
8 #define FPDFSDK_JAVASCRIPT_JS_VALUE_H_ 8 #define FPDFSDK_JAVASCRIPT_JS_VALUE_H_
9 9
10 #include <vector> 10 #include <vector>
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 ~CJS_Value(); 48 ~CJS_Value();
49 49
50 void SetNull(CJS_Runtime* pRuntime); 50 void SetNull(CJS_Runtime* pRuntime);
51 void SetValue(const CJS_Value& other); 51 void SetValue(const CJS_Value& other);
52 void Attach(v8::Local<v8::Value> pValue); 52 void Attach(v8::Local<v8::Value> pValue);
53 void Detach(); 53 void Detach();
54 54
55 static Type GetValueType(v8::Local<v8::Value> value); 55 static Type GetValueType(v8::Local<v8::Value> value);
56 Type GetType() const { return GetValueType(m_pValue); } 56 Type GetType() const { return GetValueType(m_pValue); }
57 57
58 int ToInt(v8::Isolate* pIsolate) const; 58 int ToInt(CJS_Runtime* pRuntime) const;
59 bool ToBool(v8::Isolate* pIsolate) const; 59 bool ToBool(CJS_Runtime* pRuntime) const;
60 double ToDouble(v8::Isolate* pIsolate) const; 60 double ToDouble(CJS_Runtime* pRuntime) const;
61 float ToFloat(v8::Isolate* pIsolate) const; 61 float ToFloat(CJS_Runtime* pRuntime) const;
62 CJS_Object* ToCJSObject(v8::Isolate* pIsolate) const; 62 CJS_Object* ToCJSObject(CJS_Runtime* pRuntime) const;
63 CFX_WideString ToCFXWideString(v8::Isolate* pIsolate) const; 63 CFX_WideString ToCFXWideString(CJS_Runtime* pRuntime) const;
64 CFX_ByteString ToCFXByteString(v8::Isolate* pIsolate) const; 64 CFX_ByteString ToCFXByteString(CJS_Runtime* pRuntime) const;
65 v8::Local<v8::Object> ToV8Object(v8::Isolate* pIsolate) const; 65 v8::Local<v8::Object> ToV8Object(CJS_Runtime* pRuntime) const;
66 v8::Local<v8::Array> ToV8Array(v8::Isolate* pIsolate) const; 66 v8::Local<v8::Array> ToV8Array(CJS_Runtime* pRuntime) const;
67 v8::Local<v8::Value> ToV8Value(v8::Isolate* pIsolate) const; 67 v8::Local<v8::Value> ToV8Value(CJS_Runtime* pRuntime) const;
68 68
69 // Replace the current |m_pValue| with a v8::Number if possible 69 // Replace the current |m_pValue| with a v8::Number if possible
70 // to make one from the current |m_pValue|. 70 // to make one from the current |m_pValue|.
71 void MaybeCoerceToNumber(v8::Isolate* pIsolate); 71 void MaybeCoerceToNumber(CJS_Runtime* pRuntime);
72 72
73 bool IsArrayObject() const; 73 bool IsArrayObject() const;
74 bool IsDateObject() const; 74 bool IsDateObject() const;
75 bool ConvertToArray(v8::Isolate* pIsolate, CJS_Array&) const; 75 bool ConvertToArray(CJS_Runtime* pRuntime, CJS_Array&) const;
76 bool ConvertToDate(v8::Isolate* pIsolate, CJS_Date&) const; 76 bool ConvertToDate(CJS_Runtime* pRuntime, CJS_Date&) const;
77 77
78 protected: 78 protected:
79 v8::Local<v8::Value> m_pValue; 79 v8::Local<v8::Value> m_pValue;
80 }; 80 };
81 81
82 class CJS_PropValue { 82 class CJS_PropValue {
83 public: 83 public:
84 explicit CJS_PropValue(CJS_Runtime* pRuntime); 84 explicit CJS_PropValue(CJS_Runtime* pRuntime);
85 CJS_PropValue(CJS_Runtime* pRuntime, const CJS_Value&); 85 CJS_PropValue(CJS_Runtime* pRuntime, const CJS_Value&);
86 ~CJS_PropValue(); 86 ~CJS_PropValue();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 CJS_Runtime* const m_pJSRuntime; 120 CJS_Runtime* const m_pJSRuntime;
121 }; 121 };
122 122
123 class CJS_Array { 123 class CJS_Array {
124 public: 124 public:
125 CJS_Array(); 125 CJS_Array();
126 CJS_Array(const CJS_Array& other); 126 CJS_Array(const CJS_Array& other);
127 virtual ~CJS_Array(); 127 virtual ~CJS_Array();
128 128
129 void Attach(v8::Local<v8::Array> pArray); 129 void Attach(v8::Local<v8::Array> pArray);
130 void GetElement(v8::Isolate* pIsolate, 130 void GetElement(CJS_Runtime* pRuntime,
131 unsigned index, 131 unsigned index,
132 CJS_Value& value) const; 132 CJS_Value& value) const;
133 void SetElement(v8::Isolate* pIsolate, 133 void SetElement(CJS_Runtime* pRuntime,
134 unsigned index, 134 unsigned index,
135 const CJS_Value& value); 135 const CJS_Value& value);
136 int GetLength() const; 136 int GetLength(CJS_Runtime* pRuntime) const;
137 137
138 v8::Local<v8::Array> ToV8Array(v8::Isolate* pIsolate) const; 138 v8::Local<v8::Array> ToV8Array(CJS_Runtime* pRuntime) const;
139 139
140 private: 140 private:
141 mutable v8::Local<v8::Array> m_pArray; 141 mutable v8::Local<v8::Array> m_pArray;
142 }; 142 };
143 143
144 class CJS_Date { 144 class CJS_Date {
145 public: 145 public:
146 CJS_Date(); 146 CJS_Date();
147 CJS_Date(v8::Isolate* pIsolate, double dMsec_time); 147 CJS_Date(CJS_Runtime* pRuntime, double dMsec_time);
148 CJS_Date(v8::Isolate* pIsolate, 148 CJS_Date(CJS_Runtime* pRuntime,
149 int year, 149 int year,
150 int mon, 150 int mon,
151 int day, 151 int day,
152 int hour, 152 int hour,
153 int min, 153 int min,
154 int sec); 154 int sec);
155 virtual ~CJS_Date(); 155 virtual ~CJS_Date();
156 156
157 void Attach(v8::Local<v8::Date> pDate); 157 void Attach(v8::Local<v8::Date> pDate);
158 bool IsValidDate(v8::Isolate* pIsolate) const; 158 bool IsValidDate(CJS_Runtime* pRuntime) const;
159 159
160 int GetYear(v8::Isolate* pIsolate) const; 160 int GetYear(CJS_Runtime* pRuntime) const;
161 void SetYear(v8::Isolate* pIsolate, int iYear); 161 void SetYear(CJS_Runtime* pRuntime, int iYear);
162 162
163 int GetMonth(v8::Isolate* pIsolate) const; 163 int GetMonth(CJS_Runtime* pRuntime) const;
164 void SetMonth(v8::Isolate* pIsolate, int iMonth); 164 void SetMonth(CJS_Runtime* pRuntime, int iMonth);
165 165
166 int GetDay(v8::Isolate* pIsolate) const; 166 int GetDay(CJS_Runtime* pRuntime) const;
167 void SetDay(v8::Isolate* pIsolate, int iDay); 167 void SetDay(CJS_Runtime* pRuntime, int iDay);
168 168
169 int GetHours(v8::Isolate* pIsolate) const; 169 int GetHours(CJS_Runtime* pRuntime) const;
170 void SetHours(v8::Isolate* pIsolate, int iHours); 170 void SetHours(CJS_Runtime* pRuntime, int iHours);
171 171
172 int GetMinutes(v8::Isolate* pIsolate) const; 172 int GetMinutes(CJS_Runtime* pRuntime) const;
173 void SetMinutes(v8::Isolate* pIsolate, int minutes); 173 void SetMinutes(CJS_Runtime* pRuntime, int minutes);
174 174
175 int GetSeconds(v8::Isolate* pIsolate) const; 175 int GetSeconds(CJS_Runtime* pRuntime) const;
176 void SetSeconds(v8::Isolate* pIsolate, int seconds); 176 void SetSeconds(CJS_Runtime* pRuntime, int seconds);
177 177
178 v8::Local<v8::Date> ToV8Date(v8::Isolate* pIsolate) const; 178 v8::Local<v8::Date> ToV8Date(CJS_Runtime* pRuntime) const;
179 double ToDouble(v8::Isolate* pIsolate) const; 179 double ToDouble(CJS_Runtime* pRuntime) const;
180 CFX_WideString ToString(v8::Isolate* pIsolate) const; 180 CFX_WideString ToString(CJS_Runtime* pRuntime) const;
181 181
182 protected: 182 protected:
183 v8::Local<v8::Date> m_pDate; 183 v8::Local<v8::Date> m_pDate;
184 }; 184 };
185 185
186 double JS_GetDateTime(); 186 double JS_GetDateTime();
187 int JS_GetYearFromTime(double dt); 187 int JS_GetYearFromTime(double dt);
188 int JS_GetMonthFromTime(double dt); 188 int JS_GetMonthFromTime(double dt);
189 int JS_GetDayFromTime(double dt); 189 int JS_GetDayFromTime(double dt);
190 int JS_GetHourFromTime(double dt); 190 int JS_GetHourFromTime(double dt);
(...skipping 12 matching lines...) Expand all
203 // names as wchar_t string literals corresponding to each positional argument. 203 // names as wchar_t string literals corresponding to each positional argument.
204 // The result will always contain |nKeywords| value, with unspecified ones 204 // The result will always contain |nKeywords| value, with unspecified ones
205 // being set to type VT_unknown. 205 // being set to type VT_unknown.
206 std::vector<CJS_Value> JS_ExpandKeywordParams( 206 std::vector<CJS_Value> JS_ExpandKeywordParams(
207 CJS_Runtime* pRuntime, 207 CJS_Runtime* pRuntime,
208 const std::vector<CJS_Value>& originals, 208 const std::vector<CJS_Value>& originals,
209 size_t nKeywords, 209 size_t nKeywords,
210 ...); 210 ...);
211 211
212 #endif // FPDFSDK_JAVASCRIPT_JS_VALUE_H_ 212 #endif // FPDFSDK_JAVASCRIPT_JS_VALUE_H_
OLDNEW
« no previous file with comments | « fpdfsdk/javascript/JS_Runtime_Stub.cpp ('k') | fpdfsdk/javascript/JS_Value.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698