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

Side by Side Diff: fpdfsdk/javascript/app.cpp

Issue 2319543003: Remove unused context parameter from JSGetStringFromID (Closed)
Patch Set: rebase Created 4 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/javascript/PublicMethods.cpp ('k') | fpdfsdk/javascript/cjs_context.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 "fpdfsdk/javascript/app.h" 7 #include "fpdfsdk/javascript/app.h"
8 8
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 const std::vector<CJS_Value>& params, 375 const std::vector<CJS_Value>& params,
376 CJS_Value& vRet, 376 CJS_Value& vRet,
377 CFX_WideString& sError) { 377 CFX_WideString& sError) {
378 return TRUE; 378 return TRUE;
379 } 379 }
380 380
381 FX_BOOL app::alert(IJS_Context* cc, 381 FX_BOOL app::alert(IJS_Context* cc,
382 const std::vector<CJS_Value>& params, 382 const std::vector<CJS_Value>& params,
383 CJS_Value& vRet, 383 CJS_Value& vRet,
384 CFX_WideString& sError) { 384 CFX_WideString& sError) {
385 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
386 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 385 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
387 std::vector<CJS_Value> newParams = JS_ExpandKeywordParams( 386 std::vector<CJS_Value> newParams = JS_ExpandKeywordParams(
388 pRuntime, params, 4, L"cMsg", L"nIcon", L"nType", L"cTitle"); 387 pRuntime, params, 4, L"cMsg", L"nIcon", L"nType", L"cTitle");
389 388
390 if (newParams[0].GetType() == CJS_Value::VT_unknown) { 389 if (newParams[0].GetType() == CJS_Value::VT_unknown) {
391 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 390 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
392 return FALSE; 391 return FALSE;
393 } 392 }
394 393
395 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); 394 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
396 if (!pApp) { 395 if (!pApp) {
397 vRet = CJS_Value(pRuntime, 0); 396 vRet = CJS_Value(pRuntime, 0);
398 return TRUE; 397 return TRUE;
399 } 398 }
400 399
401 CFX_WideString swMsg; 400 CFX_WideString swMsg;
(...skipping 21 matching lines...) Expand all
423 iIcon = newParams[1].ToInt(pRuntime); 422 iIcon = newParams[1].ToInt(pRuntime);
424 423
425 int iType = 0; 424 int iType = 0;
426 if (newParams[2].GetType() != CJS_Value::VT_unknown) 425 if (newParams[2].GetType() != CJS_Value::VT_unknown)
427 iType = newParams[2].ToInt(pRuntime); 426 iType = newParams[2].ToInt(pRuntime);
428 427
429 CFX_WideString swTitle; 428 CFX_WideString swTitle;
430 if (newParams[3].GetType() != CJS_Value::VT_unknown) 429 if (newParams[3].GetType() != CJS_Value::VT_unknown)
431 swTitle = newParams[3].ToCFXWideString(pRuntime); 430 swTitle = newParams[3].ToCFXWideString(pRuntime);
432 else 431 else
433 swTitle = JSGetStringFromID(pContext, IDS_STRING_JSALERT); 432 swTitle = JSGetStringFromID(IDS_STRING_JSALERT);
434 433
435 pRuntime->BeginBlock(); 434 pRuntime->BeginBlock();
436 if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) 435 if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument())
437 pDoc->KillFocusAnnot(); 436 pDoc->KillFocusAnnot();
438 437
439 vRet = CJS_Value(pRuntime, pApp->JS_appAlert(swMsg.c_str(), swTitle.c_str(), 438 vRet = CJS_Value(pRuntime, pApp->JS_appAlert(swMsg.c_str(), swTitle.c_str(),
440 iType, iIcon)); 439 iType, iIcon));
441 pRuntime->EndBlock(); 440 pRuntime->EndBlock();
442 return TRUE; 441 return TRUE;
443 } 442 }
444 443
445 FX_BOOL app::beep(IJS_Context* cc, 444 FX_BOOL app::beep(IJS_Context* cc,
446 const std::vector<CJS_Value>& params, 445 const std::vector<CJS_Value>& params,
447 CJS_Value& vRet, 446 CJS_Value& vRet,
448 CFX_WideString& sError) { 447 CFX_WideString& sError) {
449 if (params.size() == 1) { 448 if (params.size() == 1) {
450 CJS_Context* pContext = (CJS_Context*)cc; 449 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
451 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
452 CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp(); 450 CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
453 pEnv->JS_appBeep(params[0].ToInt(pRuntime)); 451 pEnv->JS_appBeep(params[0].ToInt(pRuntime));
454 return TRUE; 452 return TRUE;
455 } 453 }
456 454
457 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR); 455 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
458 return FALSE; 456 return FALSE;
459 } 457 }
460 458
461 FX_BOOL app::findComponent(IJS_Context* cc, 459 FX_BOOL app::findComponent(IJS_Context* cc,
462 const std::vector<CJS_Value>& params, 460 const std::vector<CJS_Value>& params,
463 CJS_Value& vRet, 461 CJS_Value& vRet,
464 CFX_WideString& sError) { 462 CFX_WideString& sError) {
465 return TRUE; 463 return TRUE;
466 } 464 }
467 465
468 FX_BOOL app::popUpMenuEx(IJS_Context* cc, 466 FX_BOOL app::popUpMenuEx(IJS_Context* cc,
469 const std::vector<CJS_Value>& params, 467 const std::vector<CJS_Value>& params,
470 CJS_Value& vRet, 468 CJS_Value& vRet,
471 CFX_WideString& sError) { 469 CFX_WideString& sError) {
472 return FALSE; 470 return FALSE;
473 } 471 }
474 472
475 FX_BOOL app::fs(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { 473 FX_BOOL app::fs(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) {
476 return FALSE; 474 return FALSE;
477 } 475 }
478 476
479 FX_BOOL app::setInterval(IJS_Context* cc, 477 FX_BOOL app::setInterval(IJS_Context* cc,
480 const std::vector<CJS_Value>& params, 478 const std::vector<CJS_Value>& params,
481 CJS_Value& vRet, 479 CJS_Value& vRet,
482 CFX_WideString& sError) { 480 CFX_WideString& sError) {
483 CJS_Context* pContext = (CJS_Context*)cc;
484 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
485
486 if (params.size() > 2 || params.size() == 0) { 481 if (params.size() > 2 || params.size() == 0) {
487 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 482 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
488 return FALSE; 483 return FALSE;
489 } 484 }
490 485
486 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
491 CFX_WideString script = 487 CFX_WideString script =
492 params.size() > 0 ? params[0].ToCFXWideString(pRuntime) : L""; 488 params.size() > 0 ? params[0].ToCFXWideString(pRuntime) : L"";
493 if (script.IsEmpty()) { 489 if (script.IsEmpty()) {
494 sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE); 490 sError = JSGetStringFromID(IDS_STRING_JSAFNUMBER_KEYSTROKE);
495 return TRUE; 491 return TRUE;
496 } 492 }
497 493
498 uint32_t dwInterval = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000; 494 uint32_t dwInterval = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000;
499 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); 495 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
500 496
501 GlobalTimer* timerRef = 497 GlobalTimer* timerRef =
502 new GlobalTimer(this, pApp, pRuntime, 0, script, dwInterval, 0); 498 new GlobalTimer(this, pApp, pRuntime, 0, script, dwInterval, 0);
503 m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef)); 499 m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef));
504 500
505 v8::Local<v8::Object> pRetObj = 501 v8::Local<v8::Object> pRetObj =
506 pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID); 502 pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID);
507 CJS_TimerObj* pJS_TimerObj = 503 CJS_TimerObj* pJS_TimerObj =
508 static_cast<CJS_TimerObj*>(pRuntime->GetObjectPrivate(pRetObj)); 504 static_cast<CJS_TimerObj*>(pRuntime->GetObjectPrivate(pRetObj));
509 TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject()); 505 TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject());
510 pTimerObj->SetTimer(timerRef); 506 pTimerObj->SetTimer(timerRef);
511 507
512 vRet = CJS_Value(pRuntime, pRetObj); 508 vRet = CJS_Value(pRuntime, pRetObj);
513 return TRUE; 509 return TRUE;
514 } 510 }
515 511
516 FX_BOOL app::setTimeOut(IJS_Context* cc, 512 FX_BOOL app::setTimeOut(IJS_Context* cc,
517 const std::vector<CJS_Value>& params, 513 const std::vector<CJS_Value>& params,
518 CJS_Value& vRet, 514 CJS_Value& vRet,
519 CFX_WideString& sError) { 515 CFX_WideString& sError) {
520 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
521 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
522
523 if (params.size() > 2 || params.size() == 0) { 516 if (params.size() > 2 || params.size() == 0) {
524 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 517 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
525 return FALSE; 518 return FALSE;
526 } 519 }
527 520
521 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
528 CFX_WideString script = params[0].ToCFXWideString(pRuntime); 522 CFX_WideString script = params[0].ToCFXWideString(pRuntime);
529 if (script.IsEmpty()) { 523 if (script.IsEmpty()) {
530 sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE); 524 sError = JSGetStringFromID(IDS_STRING_JSAFNUMBER_KEYSTROKE);
531 return TRUE; 525 return TRUE;
532 } 526 }
533 527
534 uint32_t dwTimeOut = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000; 528 uint32_t dwTimeOut = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000;
535 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); 529 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
536 530
537 GlobalTimer* timerRef = 531 GlobalTimer* timerRef =
538 new GlobalTimer(this, pApp, pRuntime, 1, script, dwTimeOut, dwTimeOut); 532 new GlobalTimer(this, pApp, pRuntime, 1, script, dwTimeOut, dwTimeOut);
539 m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef)); 533 m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef));
540 534
541 v8::Local<v8::Object> pRetObj = 535 v8::Local<v8::Object> pRetObj =
542 pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID); 536 pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID);
543 537
544 CJS_TimerObj* pJS_TimerObj = 538 CJS_TimerObj* pJS_TimerObj =
545 static_cast<CJS_TimerObj*>(pRuntime->GetObjectPrivate(pRetObj)); 539 static_cast<CJS_TimerObj*>(pRuntime->GetObjectPrivate(pRetObj));
546 540
547 TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject()); 541 TimerObj* pTimerObj = static_cast<TimerObj*>(pJS_TimerObj->GetEmbedObject());
548 pTimerObj->SetTimer(timerRef); 542 pTimerObj->SetTimer(timerRef);
549 543
550 vRet = CJS_Value(pRuntime, pRetObj); 544 vRet = CJS_Value(pRuntime, pRetObj);
551 return TRUE; 545 return TRUE;
552 } 546 }
553 547
554 FX_BOOL app::clearTimeOut(IJS_Context* cc, 548 FX_BOOL app::clearTimeOut(IJS_Context* cc,
555 const std::vector<CJS_Value>& params, 549 const std::vector<CJS_Value>& params,
556 CJS_Value& vRet, 550 CJS_Value& vRet,
557 CFX_WideString& sError) { 551 CFX_WideString& sError) {
558 CJS_Context* pContext = (CJS_Context*)cc;
559 if (params.size() != 1) { 552 if (params.size() != 1) {
560 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 553 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
561 return FALSE; 554 return FALSE;
562 } 555 }
563 556
564 app::ClearTimerCommon(pContext->GetJSRuntime(), params[0]); 557 app::ClearTimerCommon(CJS_Runtime::FromContext(cc), params[0]);
565 return TRUE; 558 return TRUE;
566 } 559 }
567 560
568 FX_BOOL app::clearInterval(IJS_Context* cc, 561 FX_BOOL app::clearInterval(IJS_Context* cc,
569 const std::vector<CJS_Value>& params, 562 const std::vector<CJS_Value>& params,
570 CJS_Value& vRet, 563 CJS_Value& vRet,
571 CFX_WideString& sError) { 564 CFX_WideString& sError) {
572 CJS_Context* pContext = (CJS_Context*)cc;
573 if (params.size() != 1) { 565 if (params.size() != 1) {
574 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 566 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
575 return FALSE; 567 return FALSE;
576 } 568 }
577 569
578 app::ClearTimerCommon(pContext->GetJSRuntime(), params[0]); 570 app::ClearTimerCommon(CJS_Runtime::FromContext(cc), params[0]);
579 return TRUE; 571 return TRUE;
580 } 572 }
581 573
582 void app::ClearTimerCommon(CJS_Runtime* pRuntime, const CJS_Value& param) { 574 void app::ClearTimerCommon(CJS_Runtime* pRuntime, const CJS_Value& param) {
583 if (param.GetType() != CJS_Value::VT_object) 575 if (param.GetType() != CJS_Value::VT_object)
584 return; 576 return;
585 577
586 v8::Local<v8::Object> pObj = param.ToV8Object(pRuntime); 578 v8::Local<v8::Object> pObj = param.ToV8Object(pRuntime);
587 if (CFXJS_Engine::GetObjDefnID(pObj) != CJS_TimerObj::g_nObjDefnID) 579 if (CFXJS_Engine::GetObjDefnID(pObj) != CJS_TimerObj::g_nObjDefnID)
588 return; 580 return;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 CJS_Value& vRet, 630 CJS_Value& vRet,
639 CFX_WideString& sError) { 631 CFX_WideString& sError) {
640 // Not supported. 632 // Not supported.
641 return TRUE; 633 return TRUE;
642 } 634 }
643 635
644 FX_BOOL app::mailMsg(IJS_Context* cc, 636 FX_BOOL app::mailMsg(IJS_Context* cc,
645 const std::vector<CJS_Value>& params, 637 const std::vector<CJS_Value>& params,
646 CJS_Value& vRet, 638 CJS_Value& vRet,
647 CFX_WideString& sError) { 639 CFX_WideString& sError) {
648 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 640 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
649 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
650 std::vector<CJS_Value> newParams = 641 std::vector<CJS_Value> newParams =
651 JS_ExpandKeywordParams(pRuntime, params, 6, L"bUI", L"cTo", L"cCc", 642 JS_ExpandKeywordParams(pRuntime, params, 6, L"bUI", L"cTo", L"cCc",
652 L"cBcc", L"cSubject", L"cMsg"); 643 L"cBcc", L"cSubject", L"cMsg");
653 644
654 if (newParams[0].GetType() == CJS_Value::VT_unknown) { 645 if (newParams[0].GetType() == CJS_Value::VT_unknown) {
655 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 646 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
656 return FALSE; 647 return FALSE;
657 } 648 }
658 bool bUI = newParams[0].ToBool(pRuntime); 649 bool bUI = newParams[0].ToBool(pRuntime);
659 650
660 CFX_WideString cTo; 651 CFX_WideString cTo;
661 if (newParams[1].GetType() != CJS_Value::VT_unknown) { 652 if (newParams[1].GetType() != CJS_Value::VT_unknown) {
662 cTo = newParams[1].ToCFXWideString(pRuntime); 653 cTo = newParams[1].ToCFXWideString(pRuntime);
663 } else { 654 } else {
664 if (!bUI) { 655 if (!bUI) {
665 // cTo parameter required when UI not invoked. 656 // cTo parameter required when UI not invoked.
666 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 657 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
667 return FALSE; 658 return FALSE;
668 } 659 }
669 } 660 }
670 661
671 CFX_WideString cCc; 662 CFX_WideString cCc;
672 if (newParams[2].GetType() != CJS_Value::VT_unknown) 663 if (newParams[2].GetType() != CJS_Value::VT_unknown)
673 cCc = newParams[2].ToCFXWideString(pRuntime); 664 cCc = newParams[2].ToCFXWideString(pRuntime);
674 665
675 CFX_WideString cBcc; 666 CFX_WideString cBcc;
676 if (newParams[3].GetType() != CJS_Value::VT_unknown) 667 if (newParams[3].GetType() != CJS_Value::VT_unknown)
677 cBcc = newParams[3].ToCFXWideString(pRuntime); 668 cBcc = newParams[3].ToCFXWideString(pRuntime);
678 669
679 CFX_WideString cSubject; 670 CFX_WideString cSubject;
680 if (newParams[4].GetType() != CJS_Value::VT_unknown) 671 if (newParams[4].GetType() != CJS_Value::VT_unknown)
681 cSubject = newParams[4].ToCFXWideString(pRuntime); 672 cSubject = newParams[4].ToCFXWideString(pRuntime);
682 673
683 CFX_WideString cMsg; 674 CFX_WideString cMsg;
684 if (newParams[5].GetType() != CJS_Value::VT_unknown) 675 if (newParams[5].GetType() != CJS_Value::VT_unknown)
685 cMsg = newParams[5].ToCFXWideString(pRuntime); 676 cMsg = newParams[5].ToCFXWideString(pRuntime);
686 677
687 pRuntime->BeginBlock(); 678 pRuntime->BeginBlock();
679 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
688 pContext->GetReaderApp()->JS_docmailForm(nullptr, 0, bUI, cTo.c_str(), 680 pContext->GetReaderApp()->JS_docmailForm(nullptr, 0, bUI, cTo.c_str(),
689 cSubject.c_str(), cCc.c_str(), 681 cSubject.c_str(), cCc.c_str(),
690 cBcc.c_str(), cMsg.c_str()); 682 cBcc.c_str(), cMsg.c_str());
691 pRuntime->EndBlock(); 683 pRuntime->EndBlock();
692 return TRUE; 684 return TRUE;
693 } 685 }
694 686
695 FX_BOOL app::launchURL(IJS_Context* cc, 687 FX_BOOL app::launchURL(IJS_Context* cc,
696 const std::vector<CJS_Value>& params, 688 const std::vector<CJS_Value>& params,
697 CJS_Value& vRet, 689 CJS_Value& vRet,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 const std::vector<CJS_Value>& params, 753 const std::vector<CJS_Value>& params,
762 CJS_Value& vRet, 754 CJS_Value& vRet,
763 CFX_WideString& sError) { 755 CFX_WideString& sError) {
764 return FALSE; 756 return FALSE;
765 } 757 }
766 758
767 FX_BOOL app::response(IJS_Context* cc, 759 FX_BOOL app::response(IJS_Context* cc,
768 const std::vector<CJS_Value>& params, 760 const std::vector<CJS_Value>& params,
769 CJS_Value& vRet, 761 CJS_Value& vRet,
770 CFX_WideString& sError) { 762 CFX_WideString& sError) {
771 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
772 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 763 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
773 std::vector<CJS_Value> newParams = 764 std::vector<CJS_Value> newParams =
774 JS_ExpandKeywordParams(pRuntime, params, 5, L"cQuestion", L"cTitle", 765 JS_ExpandKeywordParams(pRuntime, params, 5, L"cQuestion", L"cTitle",
775 L"cDefault", L"bPassword", L"cLabel"); 766 L"cDefault", L"bPassword", L"cLabel");
776 767
777 if (newParams[0].GetType() == CJS_Value::VT_unknown) { 768 if (newParams[0].GetType() == CJS_Value::VT_unknown) {
778 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 769 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
779 return FALSE; 770 return FALSE;
780 } 771 }
781 CFX_WideString swQuestion = newParams[0].ToCFXWideString(pRuntime); 772 CFX_WideString swQuestion = newParams[0].ToCFXWideString(pRuntime);
782 773
783 CFX_WideString swTitle = L"PDF"; 774 CFX_WideString swTitle = L"PDF";
784 if (newParams[1].GetType() != CJS_Value::VT_unknown) 775 if (newParams[1].GetType() != CJS_Value::VT_unknown)
785 swTitle = newParams[1].ToCFXWideString(pRuntime); 776 swTitle = newParams[1].ToCFXWideString(pRuntime);
786 777
787 CFX_WideString swDefault; 778 CFX_WideString swDefault;
788 if (newParams[2].GetType() != CJS_Value::VT_unknown) 779 if (newParams[2].GetType() != CJS_Value::VT_unknown)
789 swDefault = newParams[2].ToCFXWideString(pRuntime); 780 swDefault = newParams[2].ToCFXWideString(pRuntime);
790 781
791 bool bPassword = false; 782 bool bPassword = false;
792 if (newParams[3].GetType() != CJS_Value::VT_unknown) 783 if (newParams[3].GetType() != CJS_Value::VT_unknown)
793 bPassword = newParams[3].ToBool(pRuntime); 784 bPassword = newParams[3].ToBool(pRuntime);
794 785
795 CFX_WideString swLabel; 786 CFX_WideString swLabel;
796 if (newParams[4].GetType() != CJS_Value::VT_unknown) 787 if (newParams[4].GetType() != CJS_Value::VT_unknown)
797 swLabel = newParams[4].ToCFXWideString(pRuntime); 788 swLabel = newParams[4].ToCFXWideString(pRuntime);
798 789
799 const int MAX_INPUT_BYTES = 2048; 790 const int MAX_INPUT_BYTES = 2048;
800 std::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]); 791 std::unique_ptr<char[]> pBuff(new char[MAX_INPUT_BYTES + 2]);
801 memset(pBuff.get(), 0, MAX_INPUT_BYTES + 2); 792 memset(pBuff.get(), 0, MAX_INPUT_BYTES + 2);
802 793
794 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
803 int nLengthBytes = pContext->GetReaderApp()->JS_appResponse( 795 int nLengthBytes = pContext->GetReaderApp()->JS_appResponse(
804 swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(), swLabel.c_str(), 796 swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(), swLabel.c_str(),
805 bPassword, pBuff.get(), MAX_INPUT_BYTES); 797 bPassword, pBuff.get(), MAX_INPUT_BYTES);
806 798
807 if (nLengthBytes < 0 || nLengthBytes > MAX_INPUT_BYTES) { 799 if (nLengthBytes < 0 || nLengthBytes > MAX_INPUT_BYTES) {
808 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG); 800 sError = JSGetStringFromID(IDS_STRING_JSPARAM_TOOLONG);
809 return FALSE; 801 return FALSE;
810 } 802 }
811 803
812 vRet = CJS_Value(pRuntime, CFX_WideString::FromUTF16LE( 804 vRet = CJS_Value(pRuntime, CFX_WideString::FromUTF16LE(
813 reinterpret_cast<uint16_t*>(pBuff.get()), 805 reinterpret_cast<uint16_t*>(pBuff.get()),
814 nLengthBytes / sizeof(uint16_t)) 806 nLengthBytes / sizeof(uint16_t))
815 .c_str()); 807 .c_str());
816 808
817 return TRUE; 809 return TRUE;
818 } 810 }
819 811
820 FX_BOOL app::media(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { 812 FX_BOOL app::media(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) {
821 return FALSE; 813 return FALSE;
822 } 814 }
823 815
824 FX_BOOL app::execDialog(IJS_Context* cc, 816 FX_BOOL app::execDialog(IJS_Context* cc,
825 const std::vector<CJS_Value>& params, 817 const std::vector<CJS_Value>& params,
826 CJS_Value& vRet, 818 CJS_Value& vRet,
827 CFX_WideString& sError) { 819 CFX_WideString& sError) {
828 return TRUE; 820 return TRUE;
829 } 821 }
OLDNEW
« no previous file with comments | « fpdfsdk/javascript/PublicMethods.cpp ('k') | fpdfsdk/javascript/cjs_context.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698