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

Side by Side Diff: fpdfsdk/src/javascript/global.cpp

Issue 1332973002: Remove some abstractions in fxjs_v8.h. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Remove implicit cast operator from CJS_Runtime. 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/src/javascript/app.cpp ('k') | fpdfsdk/src/jsapi/fxjs_v8.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 #include "../../include/javascript/IJavaScript.h" 7 #include "../../include/javascript/IJavaScript.h"
8 #include "../../include/javascript/JS_Context.h" 8 #include "../../include/javascript/JS_Context.h"
9 #include "../../include/javascript/JS_Define.h" 9 #include "../../include/javascript/JS_Define.h"
10 #include "../../include/javascript/JS_EventHandler.h" 10 #include "../../include/javascript/JS_EventHandler.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, 151 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
152 bData, "", v8::Local<v8::Object>(), FALSE); 152 bData, "", v8::Local<v8::Object>(), FALSE);
153 } 153 }
154 case VT_string: { 154 case VT_string: {
155 CFX_ByteString sData; 155 CFX_ByteString sData;
156 vp >> sData; 156 vp >> sData;
157 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0, 157 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0,
158 false, sData, v8::Local<v8::Object>(), FALSE); 158 false, sData, v8::Local<v8::Object>(), FALSE);
159 } 159 }
160 case VT_object: { 160 case VT_object: {
161 JSObject pData; 161 v8::Local<v8::Object> pData;
162 vp >> pData; 162 vp >> pData;
163 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, 163 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0,
164 false, "", pData, FALSE); 164 false, "", pData, FALSE);
165 } 165 }
166 case VT_null: { 166 case VT_null: {
167 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false, 167 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false,
168 "", v8::Local<v8::Object>(), FALSE); 168 "", v8::Local<v8::Object>(), FALSE);
169 } 169 }
170 case VT_undefined: { 170 case VT_undefined: {
171 DelProperty(cc, propname, sError); 171 DelProperty(cc, propname, sError);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 239
240 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) { 240 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) {
241 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i); 241 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
242 ASSERT(pData != NULL); 242 ASSERT(pData != NULL);
243 243
244 switch (pData->data.nType) { 244 switch (pData->data.nType) {
245 case JS_GLOBALDATA_TYPE_NUMBER: 245 case JS_GLOBALDATA_TYPE_NUMBER:
246 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER, 246 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER,
247 pData->data.dData, false, "", 247 pData->data.dData, false, "",
248 v8::Local<v8::Object>(), pData->bPersistent == 1); 248 v8::Local<v8::Object>(), pData->bPersistent == 1);
249 JS_PutObjectNumber(NULL, (JSFXObject)(*m_pJSObject), 249 JS_PutObjectNumber(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
250 pData->data.sKey.UTF8Decode().c_str(), 250 pData->data.sKey.UTF8Decode().c_str(),
251 pData->data.dData); 251 pData->data.dData);
252 break; 252 break;
253 case JS_GLOBALDATA_TYPE_BOOLEAN: 253 case JS_GLOBALDATA_TYPE_BOOLEAN:
254 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0, 254 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
255 (bool)(pData->data.bData == 1), "", 255 (bool)(pData->data.bData == 1), "",
256 v8::Local<v8::Object>(), pData->bPersistent == 1); 256 v8::Local<v8::Object>(), pData->bPersistent == 1);
257 JS_PutObjectBoolean(NULL, (JSFXObject)(*m_pJSObject), 257 JS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
258 pData->data.sKey.UTF8Decode().c_str(), 258 pData->data.sKey.UTF8Decode().c_str(),
259 (bool)(pData->data.bData == 1)); 259 (bool)(pData->data.bData == 1));
260 break; 260 break;
261 case JS_GLOBALDATA_TYPE_STRING: 261 case JS_GLOBALDATA_TYPE_STRING:
262 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, 262 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0,
263 false, pData->data.sData, v8::Local<v8::Object>(), 263 false, pData->data.sData, v8::Local<v8::Object>(),
264 pData->bPersistent == 1); 264 pData->bPersistent == 1);
265 JS_PutObjectString(NULL, (JSFXObject)(*m_pJSObject), 265 JS_PutObjectString(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
266 pData->data.sKey.UTF8Decode().c_str(), 266 pData->data.sKey.UTF8Decode().c_str(),
267 pData->data.sData.UTF8Decode().c_str()); 267 pData->data.sData.UTF8Decode().c_str());
268 break; 268 break;
269 case JS_GLOBALDATA_TYPE_OBJECT: { 269 case JS_GLOBALDATA_TYPE_OBJECT: {
270 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject)); 270 v8::Isolate* pRuntime =
271 JS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
271 v8::Local<v8::Object> pObj = JS_NewFxDynamicObj(pRuntime, NULL, -1); 272 v8::Local<v8::Object> pObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
272 273
273 PutObjectProperty(pObj, &pData->data); 274 PutObjectProperty(pObj, &pData->data);
274 275
275 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, 276 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0,
276 false, "", (JSObject)pObj, pData->bPersistent == 1); 277 false, "", (v8::Local<v8::Object>)pObj,
277 JS_PutObjectObject(NULL, (JSFXObject)(*m_pJSObject), 278 pData->bPersistent == 1);
279 JS_PutObjectObject(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
278 pData->data.sKey.UTF8Decode().c_str(), 280 pData->data.sKey.UTF8Decode().c_str(),
279 (JSObject)pObj); 281 (v8::Local<v8::Object>)pObj);
280 } break; 282 } break;
281 case JS_GLOBALDATA_TYPE_NULL: 283 case JS_GLOBALDATA_TYPE_NULL:
282 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false, 284 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false,
283 "", v8::Local<v8::Object>(), 285 "", v8::Local<v8::Object>(),
284 pData->bPersistent == 1); 286 pData->bPersistent == 1);
285 JS_PutObjectNull(NULL, (JSFXObject)(*m_pJSObject), 287 JS_PutObjectNull(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
286 pData->data.sKey.UTF8Decode().c_str()); 288 pData->data.sKey.UTF8Decode().c_str());
287 break; 289 break;
288 } 290 }
289 } 291 }
290 } 292 }
291 293
292 void JSGlobalAlternate::CommitGlobalPersisitentVariables() { 294 void JSGlobalAlternate::CommitGlobalPersisitentVariables() {
293 ASSERT(m_pGlobalData); 295 ASSERT(m_pGlobalData);
294 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) { 296 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) {
295 CFX_ByteString name = it->first; 297 CFX_ByteString name = it->first;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj, 393 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj,
392 CJS_KeyValue* pData) { 394 CJS_KeyValue* pData) {
393 ASSERT(pData != NULL); 395 ASSERT(pData != NULL);
394 396
395 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) { 397 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) {
396 CJS_KeyValue* pObjData = pData->objData.GetAt(i); 398 CJS_KeyValue* pObjData = pData->objData.GetAt(i);
397 ASSERT(pObjData != NULL); 399 ASSERT(pObjData != NULL);
398 400
399 switch (pObjData->nType) { 401 switch (pObjData->nType) {
400 case JS_GLOBALDATA_TYPE_NUMBER: 402 case JS_GLOBALDATA_TYPE_NUMBER:
401 JS_PutObjectNumber(NULL, (JSObject)pObj, 403 JS_PutObjectNumber(NULL, (v8::Local<v8::Object>)pObj,
402 pObjData->sKey.UTF8Decode().c_str(), 404 pObjData->sKey.UTF8Decode().c_str(),
403 pObjData->dData); 405 pObjData->dData);
404 break; 406 break;
405 case JS_GLOBALDATA_TYPE_BOOLEAN: 407 case JS_GLOBALDATA_TYPE_BOOLEAN:
406 JS_PutObjectBoolean(NULL, (JSObject)pObj, 408 JS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)pObj,
407 pObjData->sKey.UTF8Decode().c_str(), 409 pObjData->sKey.UTF8Decode().c_str(),
408 (bool)(pObjData->bData == 1)); 410 (bool)(pObjData->bData == 1));
409 break; 411 break;
410 case JS_GLOBALDATA_TYPE_STRING: 412 case JS_GLOBALDATA_TYPE_STRING:
411 JS_PutObjectString(NULL, (JSObject)pObj, 413 JS_PutObjectString(NULL, (v8::Local<v8::Object>)pObj,
412 pObjData->sKey.UTF8Decode().c_str(), 414 pObjData->sKey.UTF8Decode().c_str(),
413 pObjData->sData.UTF8Decode().c_str()); 415 pObjData->sData.UTF8Decode().c_str());
414 break; 416 break;
415 case JS_GLOBALDATA_TYPE_OBJECT: { 417 case JS_GLOBALDATA_TYPE_OBJECT: {
416 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject)); 418 v8::Isolate* pRuntime =
419 JS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
417 v8::Local<v8::Object> pNewObj = JS_NewFxDynamicObj(pRuntime, NULL, -1); 420 v8::Local<v8::Object> pNewObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
418 PutObjectProperty(pNewObj, pObjData); 421 PutObjectProperty(pNewObj, pObjData);
419 JS_PutObjectObject(NULL, (JSObject)pObj, 422 JS_PutObjectObject(NULL, (v8::Local<v8::Object>)pObj,
420 pObjData->sKey.UTF8Decode().c_str(), 423 pObjData->sKey.UTF8Decode().c_str(),
421 (JSObject)pNewObj); 424 (v8::Local<v8::Object>)pNewObj);
422 } break; 425 } break;
423 case JS_GLOBALDATA_TYPE_NULL: 426 case JS_GLOBALDATA_TYPE_NULL:
424 JS_PutObjectNull(NULL, (JSObject)pObj, 427 JS_PutObjectNull(NULL, (v8::Local<v8::Object>)pObj,
425 pObjData->sKey.UTF8Decode().c_str()); 428 pObjData->sKey.UTF8Decode().c_str());
426 break; 429 break;
427 } 430 }
428 } 431 }
429 } 432 }
430 433
431 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() { 434 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() {
432 for (const auto& pair : m_mapGlobal) { 435 for (const auto& pair : m_mapGlobal) {
433 delete pair.second; 436 delete pair.second;
434 } 437 }
435 m_mapGlobal.clear(); 438 m_mapGlobal.clear();
436 } 439 }
437 440
438 FX_BOOL JSGlobalAlternate::SetGlobalVariables(const FX_CHAR* propname, 441 FX_BOOL JSGlobalAlternate::SetGlobalVariables(const FX_CHAR* propname,
439 int nType, 442 int nType,
440 double dData, 443 double dData,
441 bool bData, 444 bool bData,
442 const CFX_ByteString& sData, 445 const CFX_ByteString& sData,
443 JSObject pData, 446 v8::Local<v8::Object> pData,
444 bool bDefaultPersistent) { 447 bool bDefaultPersistent) {
445 if (!propname) 448 if (!propname)
446 return FALSE; 449 return FALSE;
447 450
448 auto it = m_mapGlobal.find(propname); 451 auto it = m_mapGlobal.find(propname);
449 if (it != m_mapGlobal.end()) { 452 if (it != m_mapGlobal.end()) {
450 JSGlobalData* pTemp = it->second; 453 JSGlobalData* pTemp = it->second;
451 if (pTemp->bDeleted || pTemp->nType != nType) { 454 if (pTemp->bDeleted || pTemp->nType != nType) {
452 pTemp->dData = 0; 455 pTemp->dData = 0;
453 pTemp->bData = 0; 456 pTemp->bData = 0;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 return VT_boolean; 535 return VT_boolean;
533 if (nHash == JSCONST_nDateHash) 536 if (nHash == JSCONST_nDateHash)
534 return VT_date; 537 return VT_date;
535 if (nHash == JSCONST_nObjectHash) 538 if (nHash == JSCONST_nObjectHash)
536 return VT_object; 539 return VT_object;
537 if (nHash == JSCONST_nFXobjHash) 540 if (nHash == JSCONST_nFXobjHash)
538 return VT_fxobject; 541 return VT_fxobject;
539 542
540 return VT_unknown; 543 return VT_unknown;
541 } 544 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/app.cpp ('k') | fpdfsdk/src/jsapi/fxjs_v8.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698