| 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 "app.h" | 7 #include "app.h" |
| 8 | 8 |
| 9 #include "Document.h" | 9 #include "Document.h" |
| 10 #include "JS_Context.h" | 10 #include "JS_Context.h" |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 if (pDoc == pCurDoc) { | 119 if (pDoc == pCurDoc) { |
| 120 v8::Local<v8::Object> pObj = FXJS_GetThisObj(pRuntime->GetIsolate()); | 120 v8::Local<v8::Object> pObj = FXJS_GetThisObj(pRuntime->GetIsolate()); |
| 121 if (FXJS_GetObjDefnID(pObj) == CJS_Document::g_nObjDefnID) | 121 if (FXJS_GetObjDefnID(pObj) == CJS_Document::g_nObjDefnID) |
| 122 pJSDocument = | 122 pJSDocument = |
| 123 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj); | 123 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj); |
| 124 } else { | 124 } else { |
| 125 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( | 125 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( |
| 126 pRuntime->GetIsolate(), pRuntime, CJS_Document::g_nObjDefnID); | 126 pRuntime->GetIsolate(), pRuntime, CJS_Document::g_nObjDefnID); |
| 127 pJSDocument = | 127 pJSDocument = |
| 128 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj); | 128 (CJS_Document*)FXJS_GetPrivate(pRuntime->GetIsolate(), pObj); |
| 129 ASSERT(pJSDocument != NULL); | 129 ASSERT(pJSDocument); |
| 130 } | 130 } |
| 131 aDocs.SetElement(0, CJS_Value(pRuntime, pJSDocument)); | 131 aDocs.SetElement(0, CJS_Value(pRuntime, pJSDocument)); |
| 132 } | 132 } |
| 133 if (aDocs.GetLength() > 0) | 133 if (aDocs.GetLength() > 0) |
| 134 vp << aDocs; | 134 vp << aDocs; |
| 135 else | 135 else |
| 136 vp.SetNull(); | 136 vp.SetNull(); |
| 137 | 137 |
| 138 return TRUE; | 138 return TRUE; |
| 139 } | 139 } |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 FX_BOOL app::setTimeOut(IJS_Context* cc, | 409 FX_BOOL app::setTimeOut(IJS_Context* cc, |
| 410 const std::vector<CJS_Value>& params, | 410 const std::vector<CJS_Value>& params, |
| 411 CJS_Value& vRet, | 411 CJS_Value& vRet, |
| 412 CFX_WideString& sError) { | 412 CFX_WideString& sError) { |
| 413 if (params.size() > 2 || params.size() == 0) { | 413 if (params.size() > 2 || params.size() == 0) { |
| 414 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); | 414 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); |
| 415 return FALSE; | 415 return FALSE; |
| 416 } | 416 } |
| 417 | 417 |
| 418 CJS_Context* pContext = (CJS_Context*)cc; | 418 CJS_Context* pContext = (CJS_Context*)cc; |
| 419 ASSERT(pContext != NULL); | |
| 420 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | 419 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| 421 ASSERT(pRuntime != NULL); | |
| 422 | 420 |
| 423 CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L""; | 421 CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L""; |
| 424 if (script.IsEmpty()) { | 422 if (script.IsEmpty()) { |
| 425 sError = | 423 sError = |
| 426 JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE); | 424 JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE); |
| 427 return TRUE; | 425 return TRUE; |
| 428 } | 426 } |
| 429 | 427 |
| 430 FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000; | 428 FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000; |
| 431 | 429 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 } | 518 } |
| 521 | 519 |
| 522 FX_BOOL app::execMenuItem(IJS_Context* cc, | 520 FX_BOOL app::execMenuItem(IJS_Context* cc, |
| 523 const std::vector<CJS_Value>& params, | 521 const std::vector<CJS_Value>& params, |
| 524 CJS_Value& vRet, | 522 CJS_Value& vRet, |
| 525 CFX_WideString& sError) { | 523 CFX_WideString& sError) { |
| 526 return FALSE; | 524 return FALSE; |
| 527 } | 525 } |
| 528 | 526 |
| 529 void app::TimerProc(CJS_Timer* pTimer) { | 527 void app::TimerProc(CJS_Timer* pTimer) { |
| 530 ASSERT(pTimer != NULL); | |
| 531 | |
| 532 CJS_Runtime* pRuntime = pTimer->GetRuntime(); | 528 CJS_Runtime* pRuntime = pTimer->GetRuntime(); |
| 533 | 529 |
| 534 switch (pTimer->GetType()) { | 530 switch (pTimer->GetType()) { |
| 535 case 0: // interval | 531 case 0: // interval |
| 536 if (pRuntime) | 532 if (pRuntime) |
| 537 RunJsScript(pRuntime, pTimer->GetJScript()); | 533 RunJsScript(pRuntime, pTimer->GetJScript()); |
| 538 break; | 534 break; |
| 539 case 1: | 535 case 1: |
| 540 if (pTimer->GetTimeOut() > 0) { | 536 if (pTimer->GetTimeOut() > 0) { |
| 541 if (pRuntime) | 537 if (pRuntime) |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 763 // FALLTHROUGH | 759 // FALLTHROUGH |
| 764 case 1: | 760 case 1: |
| 765 swQuestion = params[0].ToCFXWideString(); | 761 swQuestion = params[0].ToCFXWideString(); |
| 766 // FALLTHROUGH | 762 // FALLTHROUGH |
| 767 default: | 763 default: |
| 768 break; | 764 break; |
| 769 } | 765 } |
| 770 } | 766 } |
| 771 | 767 |
| 772 CJS_Context* pContext = (CJS_Context*)cc; | 768 CJS_Context* pContext = (CJS_Context*)cc; |
| 773 ASSERT(pContext != NULL); | |
| 774 | |
| 775 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); | 769 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); |
| 776 ASSERT(pApp != NULL); | |
| 777 | 770 |
| 778 const int MAX_INPUT_BYTES = 2048; | 771 const int MAX_INPUT_BYTES = 2048; |
| 779 nonstd::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]); | 772 nonstd::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]); |
| 780 memset(pBuff.get(), 0, MAX_INPUT_BYTES + 2); | 773 memset(pBuff.get(), 0, MAX_INPUT_BYTES + 2); |
| 781 int nLengthBytes = pApp->JS_appResponse( | 774 int nLengthBytes = pApp->JS_appResponse( |
| 782 swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(), swLabel.c_str(), | 775 swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(), swLabel.c_str(), |
| 783 bPassWord, pBuff.get(), MAX_INPUT_BYTES); | 776 bPassWord, pBuff.get(), MAX_INPUT_BYTES); |
| 784 if (nLengthBytes <= 0) { | 777 if (nLengthBytes <= 0) { |
| 785 vRet.SetNull(); | 778 vRet.SetNull(); |
| 786 return FALSE; | 779 return FALSE; |
| 787 } | 780 } |
| 788 nLengthBytes = std::min(nLengthBytes, MAX_INPUT_BYTES); | 781 nLengthBytes = std::min(nLengthBytes, MAX_INPUT_BYTES); |
| 789 | 782 |
| 790 CFX_WideString ret_string = CFX_WideString::FromUTF16LE( | 783 CFX_WideString ret_string = CFX_WideString::FromUTF16LE( |
| 791 (unsigned short*)pBuff.get(), nLengthBytes / sizeof(unsigned short)); | 784 (unsigned short*)pBuff.get(), nLengthBytes / sizeof(unsigned short)); |
| 792 vRet = ret_string.c_str(); | 785 vRet = ret_string.c_str(); |
| 793 return TRUE; | 786 return TRUE; |
| 794 } | 787 } |
| 795 | 788 |
| 796 FX_BOOL app::media(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { | 789 FX_BOOL app::media(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
| 797 return FALSE; | 790 return FALSE; |
| 798 } | 791 } |
| 799 | 792 |
| 800 FX_BOOL app::execDialog(IJS_Context* cc, | 793 FX_BOOL app::execDialog(IJS_Context* cc, |
| 801 const std::vector<CJS_Value>& params, | 794 const std::vector<CJS_Value>& params, |
| 802 CJS_Value& vRet, | 795 CJS_Value& vRet, |
| 803 CFX_WideString& sError) { | 796 CFX_WideString& sError) { |
| 804 return TRUE; | 797 return TRUE; |
| 805 } | 798 } |
| OLD | NEW |