| 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 #include "../../../third_party/base/nonstd_unique_ptr.h" | 7 #include "../../../third_party/base/nonstd_unique_ptr.h" |
| 8 #include "../../include/javascript/JavaScript.h" | 8 #include "../../include/javascript/JavaScript.h" |
| 9 #include "../../include/javascript/IJavaScript.h" | 9 #include "../../include/javascript/IJavaScript.h" |
| 10 #include "../../include/javascript/JS_Define.h" | 10 #include "../../include/javascript/JS_Define.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 return FALSE; | 115 return FALSE; |
| 116 | 116 |
| 117 CJS_Context* pContext = (CJS_Context*)cc; | 117 CJS_Context* pContext = (CJS_Context*)cc; |
| 118 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); | 118 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); |
| 119 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | 119 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| 120 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); | 120 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); |
| 121 CJS_Array aDocs(pRuntime->GetIsolate()); | 121 CJS_Array aDocs(pRuntime->GetIsolate()); |
| 122 if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) { | 122 if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) { |
| 123 CJS_Document* pJSDocument = NULL; | 123 CJS_Document* pJSDocument = NULL; |
| 124 if (pDoc == pCurDoc) { | 124 if (pDoc == pCurDoc) { |
| 125 JSFXObject pObj = JS_GetThisObj(*pRuntime); | 125 v8::Local<v8::Object> pObj = JS_GetThisObj(pRuntime->GetIsolate()); |
| 126 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document")) | 126 if (JS_GetObjDefnID(pObj) == |
| 127 JS_GetObjDefnID(pRuntime->GetIsolate(), L"Document")) |
| 127 pJSDocument = | 128 pJSDocument = |
| 128 (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj); | 129 (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj); |
| 129 } else { | 130 } else { |
| 130 JSFXObject pObj = JS_NewFxDynamicObj( | 131 v8::Local<v8::Object> pObj = JS_NewFxDynamicObj( |
| 131 *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Document")); | 132 pRuntime->GetIsolate(), pContext, |
| 133 JS_GetObjDefnID(pRuntime->GetIsolate(), L"Document")); |
| 132 pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj); | 134 pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj); |
| 133 ASSERT(pJSDocument != NULL); | 135 ASSERT(pJSDocument != NULL); |
| 134 } | 136 } |
| 135 aDocs.SetElement(0, CJS_Value(pRuntime->GetIsolate(), pJSDocument)); | 137 aDocs.SetElement(0, CJS_Value(pRuntime->GetIsolate(), pJSDocument)); |
| 136 } | 138 } |
| 137 if (aDocs.GetLength() > 0) | 139 if (aDocs.GetLength() > 0) |
| 138 vp << aDocs; | 140 vp << aDocs; |
| 139 else | 141 else |
| 140 vp.SetNull(); | 142 vp.SetNull(); |
| 141 | 143 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 | 263 |
| 262 CFX_WideString swMsg = L""; | 264 CFX_WideString swMsg = L""; |
| 263 CFX_WideString swTitle = L""; | 265 CFX_WideString swTitle = L""; |
| 264 int iIcon = 0; | 266 int iIcon = 0; |
| 265 int iType = 0; | 267 int iType = 0; |
| 266 | 268 |
| 267 v8::Isolate* isolate = GetIsolate(cc); | 269 v8::Isolate* isolate = GetIsolate(cc); |
| 268 | 270 |
| 269 if (iSize == 1) { | 271 if (iSize == 1) { |
| 270 if (params[0].GetType() == VT_object) { | 272 if (params[0].GetType() == VT_object) { |
| 271 JSObject pObj = params[0].ToV8Object(); | 273 v8::Local<v8::Object> pObj = params[0].ToV8Object(); |
| 272 { | 274 { |
| 273 v8::Local<v8::Value> pValue = | 275 v8::Local<v8::Value> pValue = |
| 274 JS_GetObjectElement(isolate, pObj, L"cMsg"); | 276 JS_GetObjectElement(isolate, pObj, L"cMsg"); |
| 275 swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); | 277 swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); |
| 276 | 278 |
| 277 pValue = JS_GetObjectElement(isolate, pObj, L"cTitle"); | 279 pValue = JS_GetObjectElement(isolate, pObj, L"cTitle"); |
| 278 swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); | 280 swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString(); |
| 279 | 281 |
| 280 pValue = JS_GetObjectElement(isolate, pObj, L"nIcon"); | 282 pValue = JS_GetObjectElement(isolate, pObj, L"nIcon"); |
| 281 iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt(); | 283 iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt(); |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 CJS_Timer* pTimer = new CJS_Timer(this, pApp); | 408 CJS_Timer* pTimer = new CJS_Timer(this, pApp); |
| 407 m_aTimer.Add(pTimer); | 409 m_aTimer.Add(pTimer); |
| 408 | 410 |
| 409 pTimer->SetType(0); | 411 pTimer->SetType(0); |
| 410 pTimer->SetRuntime(pRuntime); | 412 pTimer->SetRuntime(pRuntime); |
| 411 pTimer->SetJScript(script); | 413 pTimer->SetJScript(script); |
| 412 pTimer->SetTimeOut(0); | 414 pTimer->SetTimeOut(0); |
| 413 // pTimer->SetStartTime(GetTickCount()); | 415 // pTimer->SetStartTime(GetTickCount()); |
| 414 pTimer->SetJSTimer(dwInterval); | 416 pTimer->SetJSTimer(dwInterval); |
| 415 | 417 |
| 416 JSFXObject pRetObj = JS_NewFxDynamicObj( | 418 v8::Local<v8::Object> pRetObj = |
| 417 *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj")); | 419 JS_NewFxDynamicObj(pRuntime->GetIsolate(), pContext, |
| 420 JS_GetObjDefnID(pRuntime->GetIsolate(), L"TimerObj")); |
| 418 | 421 |
| 419 CJS_TimerObj* pJS_TimerObj = | 422 CJS_TimerObj* pJS_TimerObj = |
| 420 (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj); | 423 (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj); |
| 421 ASSERT(pJS_TimerObj != NULL); | 424 ASSERT(pJS_TimerObj != NULL); |
| 422 | 425 |
| 423 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); | 426 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); |
| 424 ASSERT(pTimerObj != NULL); | 427 ASSERT(pTimerObj != NULL); |
| 425 | 428 |
| 426 pTimerObj->SetTimer(pTimer); | 429 pTimerObj->SetTimer(pTimer); |
| 427 | 430 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 458 | 461 |
| 459 CJS_Timer* pTimer = new CJS_Timer(this, pApp); | 462 CJS_Timer* pTimer = new CJS_Timer(this, pApp); |
| 460 m_aTimer.Add(pTimer); | 463 m_aTimer.Add(pTimer); |
| 461 | 464 |
| 462 pTimer->SetType(1); | 465 pTimer->SetType(1); |
| 463 pTimer->SetRuntime(pRuntime); | 466 pTimer->SetRuntime(pRuntime); |
| 464 pTimer->SetJScript(script); | 467 pTimer->SetJScript(script); |
| 465 pTimer->SetTimeOut(dwTimeOut); | 468 pTimer->SetTimeOut(dwTimeOut); |
| 466 pTimer->SetJSTimer(dwTimeOut); | 469 pTimer->SetJSTimer(dwTimeOut); |
| 467 | 470 |
| 468 JSFXObject pRetObj = JS_NewFxDynamicObj( | 471 v8::Local<v8::Object> pRetObj = |
| 469 *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj")); | 472 JS_NewFxDynamicObj(pRuntime->GetIsolate(), pContext, |
| 473 JS_GetObjDefnID(pRuntime->GetIsolate(), L"TimerObj")); |
| 470 | 474 |
| 471 CJS_TimerObj* pJS_TimerObj = | 475 CJS_TimerObj* pJS_TimerObj = |
| 472 (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj); | 476 (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj); |
| 473 ASSERT(pJS_TimerObj != NULL); | 477 ASSERT(pJS_TimerObj != NULL); |
| 474 | 478 |
| 475 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); | 479 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); |
| 476 ASSERT(pTimerObj != NULL); | 480 ASSERT(pTimerObj != NULL); |
| 477 | 481 |
| 478 pTimerObj->SetTimer(pTimer); | 482 pTimerObj->SetTimer(pTimer); |
| 479 | 483 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 490 ASSERT(pContext != NULL); | 494 ASSERT(pContext != NULL); |
| 491 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | 495 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| 492 ASSERT(pRuntime != NULL); | 496 ASSERT(pRuntime != NULL); |
| 493 | 497 |
| 494 if (params.size() != 1) { | 498 if (params.size() != 1) { |
| 495 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); | 499 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); |
| 496 return FALSE; | 500 return FALSE; |
| 497 } | 501 } |
| 498 | 502 |
| 499 if (params[0].GetType() == VT_fxobject) { | 503 if (params[0].GetType() == VT_fxobject) { |
| 500 JSFXObject pObj = params[0].ToV8Object(); | 504 v8::Local<v8::Object> pObj = params[0].ToV8Object(); |
| 501 { | 505 { |
| 502 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) { | 506 if (JS_GetObjDefnID(pObj) == |
| 507 JS_GetObjDefnID(pRuntime->GetIsolate(), L"TimerObj")) { |
| 503 if (CJS_Object* pJSObj = params[0].ToCJSObject()) { | 508 if (CJS_Object* pJSObj = params[0].ToCJSObject()) { |
| 504 if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { | 509 if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { |
| 505 if (CJS_Timer* pTimer = pTimerObj->GetTimer()) { | 510 if (CJS_Timer* pTimer = pTimerObj->GetTimer()) { |
| 506 pTimer->KillJSTimer(); | 511 pTimer->KillJSTimer(); |
| 507 | 512 |
| 508 for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) { | 513 for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) { |
| 509 if (m_aTimer[i] == pTimer) { | 514 if (m_aTimer[i] == pTimer) { |
| 510 m_aTimer.RemoveAt(i); | 515 m_aTimer.RemoveAt(i); |
| 511 break; | 516 break; |
| 512 } | 517 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 532 ASSERT(pContext != NULL); | 537 ASSERT(pContext != NULL); |
| 533 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | 538 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| 534 ASSERT(pRuntime != NULL); | 539 ASSERT(pRuntime != NULL); |
| 535 | 540 |
| 536 if (params.size() != 1) { | 541 if (params.size() != 1) { |
| 537 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); | 542 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); |
| 538 return FALSE; | 543 return FALSE; |
| 539 } | 544 } |
| 540 | 545 |
| 541 if (params[0].GetType() == VT_fxobject) { | 546 if (params[0].GetType() == VT_fxobject) { |
| 542 JSFXObject pObj = params[0].ToV8Object(); | 547 v8::Local<v8::Object> pObj = params[0].ToV8Object(); |
| 543 { | 548 { |
| 544 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) { | 549 if (JS_GetObjDefnID(pObj) == |
| 550 JS_GetObjDefnID(pRuntime->GetIsolate(), L"TimerObj")) { |
| 545 if (CJS_Object* pJSObj = params[0].ToCJSObject()) { | 551 if (CJS_Object* pJSObj = params[0].ToCJSObject()) { |
| 546 if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { | 552 if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) { |
| 547 if (CJS_Timer* pTimer = pTimerObj->GetTimer()) { | 553 if (CJS_Timer* pTimer = pTimerObj->GetTimer()) { |
| 548 pTimer->KillJSTimer(); | 554 pTimer->KillJSTimer(); |
| 549 | 555 |
| 550 for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) { | 556 for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) { |
| 551 if (m_aTimer[i] == pTimer) { | 557 if (m_aTimer[i] == pTimer) { |
| 552 m_aTimer.RemoveAt(i); | 558 m_aTimer.RemoveAt(i); |
| 553 break; | 559 break; |
| 554 } | 560 } |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 CFX_WideString cTo = L""; | 635 CFX_WideString cTo = L""; |
| 630 CFX_WideString cCc = L""; | 636 CFX_WideString cCc = L""; |
| 631 CFX_WideString cBcc = L""; | 637 CFX_WideString cBcc = L""; |
| 632 CFX_WideString cSubject = L""; | 638 CFX_WideString cSubject = L""; |
| 633 CFX_WideString cMsg = L""; | 639 CFX_WideString cMsg = L""; |
| 634 | 640 |
| 635 if (params.size() < 1) | 641 if (params.size() < 1) |
| 636 return FALSE; | 642 return FALSE; |
| 637 | 643 |
| 638 if (params[0].GetType() == VT_object) { | 644 if (params[0].GetType() == VT_object) { |
| 639 JSObject pObj = params[0].ToV8Object(); | 645 v8::Local<v8::Object> pObj = params[0].ToV8Object(); |
| 640 | 646 |
| 641 v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI"); | 647 v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI"); |
| 642 bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool(); | 648 bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool(); |
| 643 | 649 |
| 644 pValue = JS_GetObjectElement(isolate, pObj, L"cTo"); | 650 pValue = JS_GetObjectElement(isolate, pObj, L"cTo"); |
| 645 cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); | 651 cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); |
| 646 | 652 |
| 647 pValue = JS_GetObjectElement(isolate, pObj, L"cCc"); | 653 pValue = JS_GetObjectElement(isolate, pObj, L"cCc"); |
| 648 cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); | 654 cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); |
| 649 | 655 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 CFX_WideString swQuestion = L""; | 773 CFX_WideString swQuestion = L""; |
| 768 CFX_WideString swLabel = L""; | 774 CFX_WideString swLabel = L""; |
| 769 CFX_WideString swTitle = L"PDF"; | 775 CFX_WideString swTitle = L"PDF"; |
| 770 CFX_WideString swDefault = L""; | 776 CFX_WideString swDefault = L""; |
| 771 bool bPassWord = false; | 777 bool bPassWord = false; |
| 772 | 778 |
| 773 v8::Isolate* isolate = GetIsolate(cc); | 779 v8::Isolate* isolate = GetIsolate(cc); |
| 774 | 780 |
| 775 int iLength = params.size(); | 781 int iLength = params.size(); |
| 776 if (iLength > 0 && params[0].GetType() == VT_object) { | 782 if (iLength > 0 && params[0].GetType() == VT_object) { |
| 777 JSObject pObj = params[0].ToV8Object(); | 783 v8::Local<v8::Object> pObj = params[0].ToV8Object(); |
| 778 v8::Local<v8::Value> pValue = | 784 v8::Local<v8::Value> pValue = |
| 779 JS_GetObjectElement(isolate, pObj, L"cQuestion"); | 785 JS_GetObjectElement(isolate, pObj, L"cQuestion"); |
| 780 swQuestion = | 786 swQuestion = |
| 781 CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); | 787 CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); |
| 782 | 788 |
| 783 pValue = JS_GetObjectElement(isolate, pObj, L"cTitle"); | 789 pValue = JS_GetObjectElement(isolate, pObj, L"cTitle"); |
| 784 swTitle = | 790 swTitle = |
| 785 CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); | 791 CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); |
| 786 | 792 |
| 787 pValue = JS_GetObjectElement(isolate, pObj, L"cDefault"); | 793 pValue = JS_GetObjectElement(isolate, pObj, L"cDefault"); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 CFX_WideString& sError) { | 851 CFX_WideString& sError) { |
| 846 return FALSE; | 852 return FALSE; |
| 847 } | 853 } |
| 848 | 854 |
| 849 FX_BOOL app::execDialog(IFXJS_Context* cc, | 855 FX_BOOL app::execDialog(IFXJS_Context* cc, |
| 850 const CJS_Parameters& params, | 856 const CJS_Parameters& params, |
| 851 CJS_Value& vRet, | 857 CJS_Value& vRet, |
| 852 CFX_WideString& sError) { | 858 CFX_WideString& sError) { |
| 853 return TRUE; | 859 return TRUE; |
| 854 } | 860 } |
| OLD | NEW |