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

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

Issue 1138823004: Replace v8::Handle with v8::Local and v8::Persistent with v8::Global (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 7 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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 { 161 {
162 if (vp.IsSetting()) 162 if (vp.IsSetting())
163 { 163 {
164 CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname) ; 164 CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname) ;
165 switch (vp.GetType()) 165 switch (vp.GetType())
166 { 166 {
167 case VT_number: 167 case VT_number:
168 { 168 {
169 double dData; 169 double dData;
170 vp >> dData; 170 vp >> dData;
171 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_NUMBER, dData, false, "", v8::Handle<v8::Object>(), FALSE); 171 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_NUMBER, dData, false, "", v8::Local<v8::Object>(), FALSE);
172 } 172 }
173 case VT_boolean: 173 case VT_boolean:
174 { 174 {
175 bool bData; 175 bool bData;
176 vp >> bData; 176 vp >> bData;
177 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_BOOLEAN, 0, bData, "", v8::Handle<v8::Object>(), FALSE); 177 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_BOOLEAN, 0, bData, "", v8::Local<v8::Object>(), FALSE);
178 } 178 }
179 case VT_string: 179 case VT_string:
180 { 180 {
181 CFX_ByteString sData; 181 CFX_ByteString sData;
182 vp >> sData; 182 vp >> sData;
183 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_STRING, 0, false, sData, v8::Handle<v8::Object>(), FALSE); 183 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_STRING, 0, false, sData, v8::Local<v8::Object>(), FALSE);
184 } 184 }
185 case VT_object: 185 case VT_object:
186 { 186 {
187 JSObject pData; 187 JSObject pData;
188 vp >> pData; 188 vp >> pData;
189 return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_OBJECT, 0, false, "", pData, FALSE); 189 return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_OBJECT, 0, false, "", pData, FALSE);
190 } 190 }
191 case VT_null: 191 case VT_null:
192 { 192 {
193 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_NULL, 0, false, "", v8::Handle<v8::Object>(), FALSE); 193 » » » » return SetGlobalVariables(sPropName, JS_GLOBALDA TA_TYPE_NULL, 0, false, "", v8::Local<v8::Object>(), FALSE);
194 } 194 }
195 case VT_undefined: 195 case VT_undefined:
196 { 196 {
197 DelProperty(cc, propname, sError); 197 DelProperty(cc, propname, sError);
198 return TRUE; 198 return TRUE;
199 } 199 }
200 default: 200 default:
201 return FALSE; 201 return FALSE;
202 } 202 }
203 } 203 }
(...skipping 14 matching lines...) Expand all
218 vp << pData->dData; 218 vp << pData->dData;
219 break; 219 break;
220 case JS_GLOBALDATA_TYPE_BOOLEAN: 220 case JS_GLOBALDATA_TYPE_BOOLEAN:
221 vp << pData->bData; 221 vp << pData->bData;
222 break; 222 break;
223 case JS_GLOBALDATA_TYPE_STRING: 223 case JS_GLOBALDATA_TYPE_STRING:
224 vp << pData->sData; 224 vp << pData->sData;
225 break; 225 break;
226 case JS_GLOBALDATA_TYPE_OBJECT: 226 case JS_GLOBALDATA_TYPE_OBJECT:
227 { 227 {
228 » » » » » » » v8::Handle<v8::Object> o bj = v8::Local<v8::Object>::New(vp.GetIsolate(),pData->pData); 228 » » » » » » » v8::Local<v8::Object> ob j = v8::Local<v8::Object>::New(vp.GetIsolate(),pData->pData);
229 vp << obj; 229 vp << obj;
230 break; 230 break;
231 } 231 }
232 case JS_GLOBALDATA_TYPE_NULL: 232 case JS_GLOBALDATA_TYPE_NULL:
233 vp.SetNull(); 233 vp.SetNull();
234 break; 234 break;
235 default: 235 default:
236 return FALSE; 236 return FALSE;
237 } 237 }
238 return TRUE; 238 return TRUE;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 ASSERT(m_pGlobalData != NULL); 288 ASSERT(m_pGlobalData != NULL);
289 289
290 for (int i=0,sz=m_pGlobalData->GetSize(); i<sz; i++) 290 for (int i=0,sz=m_pGlobalData->GetSize(); i<sz; i++)
291 { 291 {
292 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i); 292 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
293 ASSERT(pData != NULL); 293 ASSERT(pData != NULL);
294 294
295 switch (pData->data.nType) 295 switch (pData->data.nType)
296 { 296 {
297 case JS_GLOBALDATA_TYPE_NUMBER: 297 case JS_GLOBALDATA_TYPE_NUMBER:
298 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_NUMBER, pData->data.dData, false, "", v8::Handle<v8::Object>(), pData->bPe rsistent == 1); 298 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_NUMBER, pData->data.dData, false, "", v8::Local<v8::Object>(), pData->bPer sistent == 1);
299 JS_PutObjectNumber(NULL,(JSFXObject)(*m_pJSObject), 299 JS_PutObjectNumber(NULL,(JSFXObject)(*m_pJSObject),
300 pData->data.sKey.UTF8 Decode().c_str(), pData->data.dData); 300 pData->data.sKey.UTF8 Decode().c_str(), pData->data.dData);
301 break; 301 break;
302 case JS_GLOBALDATA_TYPE_BOOLEAN: 302 case JS_GLOBALDATA_TYPE_BOOLEAN:
303 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_BOOLEAN, 0, (bool)(pData->data.bData == 1), "", v8::Handle<v8::Object>(), pData->bPersistent == 1); 303 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_BOOLEAN, 0, (bool)(pData->data.bData == 1), "", v8::Local<v8::Object>(), p Data->bPersistent == 1);
304 JS_PutObjectBoolean(NULL,(JSFXObject)(*m_pJSObject), 304 JS_PutObjectBoolean(NULL,(JSFXObject)(*m_pJSObject),
305 pData->data.sKey .UTF8Decode().c_str(), (bool)(pData->data.bData == 1)); 305 pData->data.sKey .UTF8Decode().c_str(), (bool)(pData->data.bData == 1));
306 break; 306 break;
307 case JS_GLOBALDATA_TYPE_STRING: 307 case JS_GLOBALDATA_TYPE_STRING:
308 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_STRING, 0, false, pData->data.sData, v8::Handle<v8::Object>(), pData->bPer sistent == 1); 308 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_STRING, 0, false, pData->data.sData, v8::Local<v8::Object>(), pData->bPers istent == 1);
309 JS_PutObjectString(NULL, (JSFXObject)(*m_pJSObject), 309 JS_PutObjectString(NULL, (JSFXObject)(*m_pJSObject),
310 pData->data.sKey.UTF8 Decode().c_str(), 310 pData->data.sKey.UTF8 Decode().c_str(),
311 pData->data.sData.UTF 8Decode().c_str()); 311 pData->data.sData.UTF 8Decode().c_str());
312 break; 312 break;
313 case JS_GLOBALDATA_TYPE_OBJECT: 313 case JS_GLOBALDATA_TYPE_OBJECT:
314 { 314 {
315 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObjec t)(*m_pJSObject)); 315 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObjec t)(*m_pJSObject));
316 » » » » v8::Handle<v8::Object> pObj = JS_NewFxDynamicObj (pRuntime, NULL, -1); 316 » » » » v8::Local<v8::Object> pObj = JS_NewFxDynamicObj( pRuntime, NULL, -1);
317 317
318 PutObjectProperty(pObj, &pData->data); 318 PutObjectProperty(pObj, &pData->data);
319 319
320 this->SetGlobalVariables(pData->data.sKey, JS_GL OBALDATA_TYPE_OBJECT, 0, false, "", 320 this->SetGlobalVariables(pData->data.sKey, JS_GL OBALDATA_TYPE_OBJECT, 0, false, "",
321 (JSObject)pObj, pData->bPersistent == 1) ; 321 (JSObject)pObj, pData->bPersistent == 1) ;
322 JS_PutObjectObject(NULL,(JSFXObject)(*m_pJSObjec t), 322 JS_PutObjectObject(NULL,(JSFXObject)(*m_pJSObjec t),
323 pData->data.s Key.UTF8Decode().c_str(), (JSObject)pObj); 323 pData->data.s Key.UTF8Decode().c_str(), (JSObject)pObj);
324 } 324 }
325 break; 325 break;
326 case JS_GLOBALDATA_TYPE_NULL: 326 case JS_GLOBALDATA_TYPE_NULL:
327 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_NULL, 0, false, "", v8::Handle<v8::Object>(), pData->bPersistent == 1); 327 » » » this->SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA _TYPE_NULL, 0, false, "", v8::Local<v8::Object>(), pData->bPersistent == 1);
328 JS_PutObjectNull(NULL,(JSFXObject)(*m_pJSObject), 328 JS_PutObjectNull(NULL,(JSFXObject)(*m_pJSObject),
329 pData->data.sKey.UTF8De code().c_str()); 329 pData->data.sKey.UTF8De code().c_str());
330 break; 330 break;
331 } 331 }
332 } 332 }
333 } 333 }
334 334
335 void global_alternate::CommitGlobalPersisitentVariables() 335 void global_alternate::CommitGlobalPersisitentVariables()
336 { 336 {
337 ASSERT(m_pGlobalData != NULL); 337 ASSERT(m_pGlobalData != NULL);
(...skipping 24 matching lines...) Expand all
362 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent); 362 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent);
363 break; 363 break;
364 case JS_GLOBALDATA_TYPE_STRING: 364 case JS_GLOBALDATA_TYPE_STRING:
365 m_pGlobalData->SetGlobalVariableString(n ame, pData->sData); 365 m_pGlobalData->SetGlobalVariableString(n ame, pData->sData);
366 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent); 366 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent);
367 break; 367 break;
368 case JS_GLOBALDATA_TYPE_OBJECT: 368 case JS_GLOBALDATA_TYPE_OBJECT:
369 //if (pData->pData) 369 //if (pData->pData)
370 { 370 {
371 CJS_GlobalVariableArray array; 371 CJS_GlobalVariableArray array;
372 » » » » » » v8::Handle<v8::Object> obj = v8: :Local<v8::Object>::New(GetJSObject()->GetIsolate(),pData->pData); 372 » » » » » » v8::Local<v8::Object> obj = v8:: Local<v8::Object>::New(GetJSObject()->GetIsolate(),pData->pData);
373 ObjectToArray(obj, array); 373 ObjectToArray(obj, array);
374 m_pGlobalData->SetGlobalVariable Object(name, array); 374 m_pGlobalData->SetGlobalVariable Object(name, array);
375 m_pGlobalData->SetGlobalVariable Persistent(name, pData->bPersistent); 375 m_pGlobalData->SetGlobalVariable Persistent(name, pData->bPersistent);
376 } 376 }
377 break; 377 break;
378 case JS_GLOBALDATA_TYPE_NULL: 378 case JS_GLOBALDATA_TYPE_NULL:
379 m_pGlobalData->SetGlobalVariableNull(nam e); 379 m_pGlobalData->SetGlobalVariableNull(nam e);
380 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent); 380 m_pGlobalData->SetGlobalVariablePersiste nt(name, pData->bPersistent);
381 break; 381 break;
382 } 382 }
383 } 383 }
384 } 384 }
385 } 385 }
386 } 386 }
387 387
388 void global_alternate::ObjectToArray(v8::Handle<v8::Object> pObj, CJS_GlobalVari ableArray& array) 388 void global_alternate::ObjectToArray(v8::Local<v8::Object> pObj, CJS_GlobalVaria bleArray& array)
389 { 389 {
390 v8::Local<v8::Context> context = pObj->CreationContext(); 390 v8::Local<v8::Context> context = pObj->CreationContext();
391 v8::Isolate* isolate = context->GetIsolate(); 391 v8::Isolate* isolate = context->GetIsolate();
392 » v8::Handle<v8::Array> pKeyList = JS_GetObjectElementNames(isolate, pObj) ; 392 » v8::Local<v8::Array> pKeyList = JS_GetObjectElementNames(isolate, pObj);
393 int nObjElements = pKeyList->Length(); 393 int nObjElements = pKeyList->Length();
394 394
395 for (int i=0; i<nObjElements; i++) 395 for (int i=0; i<nObjElements; i++)
396 { 396 {
397 397
398 CFX_WideString ws = JS_ToString(isolate, JS_GetArrayElement(isol ate, pKeyList, i)); 398 CFX_WideString ws = JS_ToString(isolate, JS_GetArrayElement(isol ate, pKeyList, i));
399 CFX_ByteString sKey = ws.UTF8Encode(); 399 CFX_ByteString sKey = ws.UTF8Encode();
400 400
401 » » v8::Handle<v8::Value> v = JS_GetObjectElement(isolate, pObj, ws. c_str()); 401 » » v8::Local<v8::Value> v = JS_GetObjectElement(isolate, pObj, ws.c _str());
402 FXJSVALUETYPE vt = GET_VALUE_TYPE(v); 402 FXJSVALUETYPE vt = GET_VALUE_TYPE(v);
403 switch (vt) 403 switch (vt)
404 { 404 {
405 case VT_number: 405 case VT_number:
406 { 406 {
407 CJS_KeyValue* pObjElement = new CJS_KeyValue; 407 CJS_KeyValue* pObjElement = new CJS_KeyValue;
408 pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER; 408 pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
409 pObjElement->sKey = sKey; 409 pObjElement->sKey = sKey;
410 pObjElement->dData = JS_ToNumber(isolate, v); 410 pObjElement->dData = JS_ToNumber(isolate, v);
411 array.Add(pObjElement); 411 array.Add(pObjElement);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 pObjElement->sKey = sKey; 446 pObjElement->sKey = sKey;
447 array.Add(pObjElement); 447 array.Add(pObjElement);
448 } 448 }
449 break; 449 break;
450 default: 450 default:
451 break; 451 break;
452 } 452 }
453 } 453 }
454 } 454 }
455 455
456 void global_alternate::PutObjectProperty(v8::Handle<v8::Object> pObj, CJS_KeyVal ue* pData) 456 void global_alternate::PutObjectProperty(v8::Local<v8::Object> pObj, CJS_KeyValu e* pData)
457 { 457 {
458 ASSERT(pData != NULL); 458 ASSERT(pData != NULL);
459 459
460 for (int i=0,sz=pData->objData.Count(); i<sz; i++) 460 for (int i=0,sz=pData->objData.Count(); i<sz; i++)
461 { 461 {
462 CJS_KeyValue* pObjData = pData->objData.GetAt(i); 462 CJS_KeyValue* pObjData = pData->objData.GetAt(i);
463 ASSERT(pObjData != NULL); 463 ASSERT(pObjData != NULL);
464 464
465 switch (pObjData->nType) 465 switch (pObjData->nType)
466 { 466 {
467 case JS_GLOBALDATA_TYPE_NUMBER: 467 case JS_GLOBALDATA_TYPE_NUMBER:
468 JS_PutObjectNumber(NULL,(JSObject)pObj, pObjData->sKey.U TF8Decode().c_str(), pObjData->dData); 468 JS_PutObjectNumber(NULL,(JSObject)pObj, pObjData->sKey.U TF8Decode().c_str(), pObjData->dData);
469 break; 469 break;
470 case JS_GLOBALDATA_TYPE_BOOLEAN: 470 case JS_GLOBALDATA_TYPE_BOOLEAN:
471 JS_PutObjectBoolean(NULL,(JSObject)pObj, pObjData->sKey. UTF8Decode().c_str(), (bool)(pObjData->bData == 1)); 471 JS_PutObjectBoolean(NULL,(JSObject)pObj, pObjData->sKey. UTF8Decode().c_str(), (bool)(pObjData->bData == 1));
472 break; 472 break;
473 case JS_GLOBALDATA_TYPE_STRING: 473 case JS_GLOBALDATA_TYPE_STRING:
474 JS_PutObjectString(NULL,(JSObject)pObj, pObjData->sKey.U TF8Decode().c_str(), pObjData->sData.UTF8Decode().c_str()); 474 JS_PutObjectString(NULL,(JSObject)pObj, pObjData->sKey.U TF8Decode().c_str(), pObjData->sData.UTF8Decode().c_str());
475 break; 475 break;
476 case JS_GLOBALDATA_TYPE_OBJECT: 476 case JS_GLOBALDATA_TYPE_OBJECT:
477 { 477 {
478 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObjec t)(*m_pJSObject)); 478 IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObjec t)(*m_pJSObject));
479 » » » » v8::Handle<v8::Object> pNewObj = JS_NewFxDynamic Obj(pRuntime, NULL, -1); 479 » » » » v8::Local<v8::Object> pNewObj = JS_NewFxDynamicO bj(pRuntime, NULL, -1);
480 PutObjectProperty(pNewObj, pObjData); 480 PutObjectProperty(pNewObj, pObjData);
481 JS_PutObjectObject(NULL, (JSObject)pObj, pObjDat a->sKey.UTF8Decode().c_str(), (JSObject)pNewObj); 481 JS_PutObjectObject(NULL, (JSObject)pObj, pObjDat a->sKey.UTF8Decode().c_str(), (JSObject)pNewObj);
482 } 482 }
483 break; 483 break;
484 case JS_GLOBALDATA_TYPE_NULL: 484 case JS_GLOBALDATA_TYPE_NULL:
485 JS_PutObjectNull(NULL,(JSObject)pObj, pObjData->sKey.UTF 8Decode().c_str()); 485 JS_PutObjectNull(NULL,(JSObject)pObj, pObjData->sKey.UTF 8Decode().c_str());
486 break; 486 break;
487 } 487 }
488 } 488 }
489 } 489 }
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 break; 599 break;
600 default: 600 default:
601 return FALSE; 601 return FALSE;
602 } 602 }
603 603
604 m_mapGlobal.SetAt(propname, (FX_LPVOID)pNewData); 604 m_mapGlobal.SetAt(propname, (FX_LPVOID)pNewData);
605 605
606 return TRUE; 606 return TRUE;
607 } 607 }
608 608
609 FXJSVALUETYPE GET_VALUE_TYPE(v8::Handle<v8::Value> p) 609 FXJSVALUETYPE GET_VALUE_TYPE(v8::Local<v8::Value> p)
610 { 610 {
611 const unsigned int nHash = JS_CalcHash(JS_GetTypeof(p)); 611 const unsigned int nHash = JS_CalcHash(JS_GetTypeof(p));
612 612
613 if (nHash == JSCONST_nUndefHash) 613 if (nHash == JSCONST_nUndefHash)
614 return VT_undefined; 614 return VT_undefined;
615 if (nHash == JSCONST_nNullHash) 615 if (nHash == JSCONST_nNullHash)
616 return VT_null; 616 return VT_null;
617 if (nHash == JSCONST_nStringHash) 617 if (nHash == JSCONST_nStringHash)
618 return VT_string; 618 return VT_string;
619 if (nHash == JSCONST_nNumberHash) 619 if (nHash == JSCONST_nNumberHash)
620 return VT_number; 620 return VT_number;
621 if (nHash == JSCONST_nBoolHash) 621 if (nHash == JSCONST_nBoolHash)
622 return VT_boolean; 622 return VT_boolean;
623 if (nHash == JSCONST_nDateHash) 623 if (nHash == JSCONST_nDateHash)
624 return VT_date; 624 return VT_date;
625 if (nHash == JSCONST_nObjectHash) 625 if (nHash == JSCONST_nObjectHash)
626 return VT_object; 626 return VT_object;
627 if (nHash == JSCONST_nFXobjHash) 627 if (nHash == JSCONST_nFXobjHash)
628 return VT_fxobject; 628 return VT_fxobject;
629 629
630 return VT_unknown; 630 return VT_unknown;
631 } 631 }
632 632
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