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

Side by Side Diff: fpdfsdk/javascript/Document.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/Annot.cpp ('k') | fpdfsdk/javascript/PublicMethods.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/Document.h" 7 #include "fpdfsdk/javascript/Document.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 m_bDelay(FALSE) {} 156 m_bDelay(FALSE) {}
157 157
158 Document::~Document() { 158 Document::~Document() {
159 } 159 }
160 160
161 // the total number of fileds in document. 161 // the total number of fileds in document.
162 FX_BOOL Document::numFields(IJS_Context* cc, 162 FX_BOOL Document::numFields(IJS_Context* cc,
163 CJS_PropValue& vp, 163 CJS_PropValue& vp,
164 CFX_WideString& sError) { 164 CFX_WideString& sError) {
165 if (vp.IsSetting()) { 165 if (vp.IsSetting()) {
166 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 166 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
167 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
168 return FALSE; 167 return FALSE;
169 } 168 }
170 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 169 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
171 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 170 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
172 vp << (int)pPDFForm->CountFields(); 171 vp << (int)pPDFForm->CountFields();
173 return TRUE; 172 return TRUE;
174 } 173 }
175 174
176 FX_BOOL Document::dirty(IJS_Context* cc, 175 FX_BOOL Document::dirty(IJS_Context* cc,
177 CJS_PropValue& vp, 176 CJS_PropValue& vp,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 270
272 // Maps a field object in PDF document to a JavaScript variable 271 // Maps a field object in PDF document to a JavaScript variable
273 // comment: 272 // comment:
274 // note: the paremter cName, this is clue how to treat if the cName is not a 273 // note: the paremter cName, this is clue how to treat if the cName is not a
275 // valiable filed name in this document 274 // valiable filed name in this document
276 275
277 FX_BOOL Document::getField(IJS_Context* cc, 276 FX_BOOL Document::getField(IJS_Context* cc,
278 const std::vector<CJS_Value>& params, 277 const std::vector<CJS_Value>& params,
279 CJS_Value& vRet, 278 CJS_Value& vRet,
280 CFX_WideString& sError) { 279 CFX_WideString& sError) {
281 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
282
283 if (params.size() < 1) { 280 if (params.size() < 1) {
284 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 281 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
285 return FALSE; 282 return FALSE;
286 } 283 }
287 284
285 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
288 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 286 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
289 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime); 287 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
290 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 288 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
291 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 289 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
292 if (pPDFForm->CountFields(wideName) <= 0) { 290 if (pPDFForm->CountFields(wideName) <= 0) {
293 vRet.SetNull(pRuntime); 291 vRet.SetNull(pRuntime);
294 return TRUE; 292 return TRUE;
295 } 293 }
296 294
297 v8::Local<v8::Object> pFieldObj = 295 v8::Local<v8::Object> pFieldObj =
298 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); 296 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID);
299 CJS_Field* pJSField = 297 CJS_Field* pJSField =
300 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); 298 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj));
301 Field* pField = static_cast<Field*>(pJSField->GetEmbedObject()); 299 Field* pField = static_cast<Field*>(pJSField->GetEmbedObject());
302 pField->AttachField(this, wideName); 300 pField->AttachField(this, wideName);
303 301
304 vRet = CJS_Value(pRuntime, pJSField); 302 vRet = CJS_Value(pRuntime, pJSField);
305 return TRUE; 303 return TRUE;
306 } 304 }
307 305
308 // Gets the name of the nth field in the document 306 // Gets the name of the nth field in the document
309 FX_BOOL Document::getNthFieldName(IJS_Context* cc, 307 FX_BOOL Document::getNthFieldName(IJS_Context* cc,
310 const std::vector<CJS_Value>& params, 308 const std::vector<CJS_Value>& params,
311 CJS_Value& vRet, 309 CJS_Value& vRet,
312 CFX_WideString& sError) { 310 CFX_WideString& sError) {
311 if (params.size() != 1) {
312 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
313 return FALSE;
314 }
313 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 315 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
314 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 316 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
315 317 int nIndex = params[0].ToInt(pRuntime);
316 if (params.size() != 1) { 318 if (nIndex < 0) {
317 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 319 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
318 return FALSE; 320 return FALSE;
319 } 321 }
320 int nIndex = params[0].ToInt(pRuntime);
321 if (nIndex < 0) {
322 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
323 return FALSE;
324 }
325
326 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 322 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
327 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 323 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
328 CPDF_FormField* pField = pPDFForm->GetField(nIndex); 324 CPDF_FormField* pField = pPDFForm->GetField(nIndex);
329 if (!pField) 325 if (!pField)
330 return FALSE; 326 return FALSE;
331 327
332 vRet = CJS_Value(pRuntime, pField->GetFullName().c_str()); 328 vRet = CJS_Value(pRuntime, pField->GetFullName().c_str());
333 return TRUE; 329 return TRUE;
334 } 330 }
335 331
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 459
464 // removes the specified field from the document. 460 // removes the specified field from the document.
465 // comment: 461 // comment:
466 // note: if the filed name is not rational, adobe is dumb for it. 462 // note: if the filed name is not rational, adobe is dumb for it.
467 463
468 FX_BOOL Document::removeField(IJS_Context* cc, 464 FX_BOOL Document::removeField(IJS_Context* cc,
469 const std::vector<CJS_Value>& params, 465 const std::vector<CJS_Value>& params,
470 CJS_Value& vRet, 466 CJS_Value& vRet,
471 CFX_WideString& sError) { 467 CFX_WideString& sError) {
472 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) || 468 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
473 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM))) 469 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM))) {
474 return FALSE; 470 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
475
476 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
477
478 if (params.size() != 1) {
479 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
480 return FALSE; 471 return FALSE;
481 } 472 }
482 473 if (params.size() != 1) {
474 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
475 return FALSE;
476 }
477 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
483 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 478 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
484
485 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime); 479 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime);
486 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 480 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
487 std::vector<CPDFSDK_Widget*> widgets; 481 std::vector<CPDFSDK_Widget*> widgets;
488 pInterForm->GetWidgets(sFieldName, &widgets); 482 pInterForm->GetWidgets(sFieldName, &widgets);
489 if (widgets.empty()) 483 if (widgets.empty())
490 return TRUE; 484 return TRUE;
491 485
492 for (CPDFSDK_Widget* pWidget : widgets) { 486 for (CPDFSDK_Widget* pWidget : widgets) {
493 CFX_FloatRect rcAnnot = pWidget->GetRect(); 487 CFX_FloatRect rcAnnot = pWidget->GetRect();
494 --rcAnnot.left; 488 --rcAnnot.left;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 const std::vector<CJS_Value>& params, 573 const std::vector<CJS_Value>& params,
580 CJS_Value& vRet, 574 CJS_Value& vRet,
581 CFX_WideString& sError) { 575 CFX_WideString& sError) {
582 return TRUE; 576 return TRUE;
583 } 577 }
584 578
585 FX_BOOL Document::submitForm(IJS_Context* cc, 579 FX_BOOL Document::submitForm(IJS_Context* cc,
586 const std::vector<CJS_Value>& params, 580 const std::vector<CJS_Value>& params,
587 CJS_Value& vRet, 581 CJS_Value& vRet,
588 CFX_WideString& sError) { 582 CFX_WideString& sError) {
589 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
590 583
591 int nSize = params.size(); 584 int nSize = params.size();
592 if (nSize < 1) { 585 if (nSize < 1) {
593 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 586 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
594 return FALSE; 587 return FALSE;
595 } 588 }
596 589 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
590 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
597 CJS_Array aFields; 591 CJS_Array aFields;
598 CFX_WideString strURL; 592 CFX_WideString strURL;
599 FX_BOOL bFDF = TRUE; 593 FX_BOOL bFDF = TRUE;
600 FX_BOOL bEmpty = FALSE; 594 FX_BOOL bEmpty = FALSE;
601
602 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
603
604 CJS_Value v = params[0]; 595 CJS_Value v = params[0];
605 if (v.GetType() == CJS_Value::VT_string) { 596 if (v.GetType() == CJS_Value::VT_string) {
606 strURL = params[0].ToCFXWideString(pRuntime); 597 strURL = params[0].ToCFXWideString(pRuntime);
607 if (nSize > 1) 598 if (nSize > 1)
608 bFDF = params[1].ToBool(pRuntime); 599 bFDF = params[1].ToBool(pRuntime);
609 if (nSize > 2) 600 if (nSize > 2)
610 bEmpty = params[2].ToBool(pRuntime); 601 bEmpty = params[2].ToBool(pRuntime);
611 if (nSize > 3) 602 if (nSize > 3)
612 aFields.Attach(params[3].ToV8Array(pRuntime)); 603 aFields.Attach(params[3].ToV8Array(pRuntime));
613 } else if (v.GetType() == CJS_Value::VT_object) { 604 } else if (v.GetType() == CJS_Value::VT_object) {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 FX_BOOL Document::author(IJS_Context* cc, 730 FX_BOOL Document::author(IJS_Context* cc,
740 CJS_PropValue& vp, 731 CJS_PropValue& vp,
741 CFX_WideString& sError) { 732 CFX_WideString& sError) {
742 return getPropertyInternal(cc, vp, "Author", sError); 733 return getPropertyInternal(cc, vp, "Author", sError);
743 } 734 }
744 735
745 FX_BOOL Document::info(IJS_Context* cc, 736 FX_BOOL Document::info(IJS_Context* cc,
746 CJS_PropValue& vp, 737 CJS_PropValue& vp,
747 CFX_WideString& sError) { 738 CFX_WideString& sError) {
748 if (vp.IsSetting()) { 739 if (vp.IsSetting()) {
749 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 740 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
750 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
751 return FALSE; 741 return FALSE;
752 } 742 }
753 743
754 CPDF_Dictionary* pDictionary = m_pDocument->GetPDFDocument()->GetInfo(); 744 CPDF_Dictionary* pDictionary = m_pDocument->GetPDFDocument()->GetInfo();
755 if (!pDictionary) 745 if (!pDictionary)
756 return FALSE; 746 return FALSE;
757 747
758 CFX_WideString cwAuthor = pDictionary->GetUnicodeTextBy("Author"); 748 CFX_WideString cwAuthor = pDictionary->GetUnicodeTextBy("Author");
759 CFX_WideString cwTitle = pDictionary->GetUnicodeTextBy("Title"); 749 CFX_WideString cwTitle = pDictionary->GetUnicodeTextBy("Title");
760 CFX_WideString cwSubject = pDictionary->GetUnicodeTextBy("Subject"); 750 CFX_WideString cwSubject = pDictionary->GetUnicodeTextBy("Subject");
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 if (!m_pDocument || !m_pDocument->GetUnderlyingDocument()) 872 if (!m_pDocument || !m_pDocument->GetUnderlyingDocument())
883 return FALSE; 873 return FALSE;
884 874
885 return getPropertyInternal(cc, vp, "Title", sError); 875 return getPropertyInternal(cc, vp, "Title", sError);
886 } 876 }
887 877
888 FX_BOOL Document::numPages(IJS_Context* cc, 878 FX_BOOL Document::numPages(IJS_Context* cc,
889 CJS_PropValue& vp, 879 CJS_PropValue& vp,
890 CFX_WideString& sError) { 880 CFX_WideString& sError) {
891 if (vp.IsSetting()) { 881 if (vp.IsSetting()) {
892 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 882 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
893 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
894 return FALSE; 883 return FALSE;
895 } 884 }
896 vp << m_pDocument->GetPageCount(); 885 vp << m_pDocument->GetPageCount();
897 return TRUE; 886 return TRUE;
898 } 887 }
899 888
900 FX_BOOL Document::external(IJS_Context* cc, 889 FX_BOOL Document::external(IJS_Context* cc,
901 CJS_PropValue& vp, 890 CJS_PropValue& vp,
902 CFX_WideString& sError) { 891 CFX_WideString& sError) {
903 // In Chrome case,should always return true. 892 // In Chrome case, should always return true.
904 if (vp.IsGetting()) { 893 if (vp.IsGetting()) {
905 vp << true; 894 vp << true;
906 } 895 }
907 return TRUE; 896 return TRUE;
908 } 897 }
909 898
910 FX_BOOL Document::filesize(IJS_Context* cc, 899 FX_BOOL Document::filesize(IJS_Context* cc,
911 CJS_PropValue& vp, 900 CJS_PropValue& vp,
912 CFX_WideString& sError) { 901 CFX_WideString& sError) {
913 if (vp.IsSetting()) { 902 if (vp.IsSetting()) {
914 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 903 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
915 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
916 return FALSE; 904 return FALSE;
917 } 905 }
918 vp << 0; 906 vp << 0;
919 return TRUE; 907 return TRUE;
920 } 908 }
921 909
922 FX_BOOL Document::mouseX(IJS_Context* cc, 910 FX_BOOL Document::mouseX(IJS_Context* cc,
923 CJS_PropValue& vp, 911 CJS_PropValue& vp,
924 CFX_WideString& sError) { 912 CFX_WideString& sError) {
925 return TRUE; 913 return TRUE;
926 } 914 }
927 915
928 FX_BOOL Document::mouseY(IJS_Context* cc, 916 FX_BOOL Document::mouseY(IJS_Context* cc,
929 CJS_PropValue& vp, 917 CJS_PropValue& vp,
930 CFX_WideString& sError) { 918 CFX_WideString& sError) {
931 return TRUE; 919 return TRUE;
932 } 920 }
933 921
934 FX_BOOL Document::URL(IJS_Context* cc, 922 FX_BOOL Document::URL(IJS_Context* cc,
935 CJS_PropValue& vp, 923 CJS_PropValue& vp,
936 CFX_WideString& sError) { 924 CFX_WideString& sError) {
937 if (vp.IsSetting()) { 925 if (vp.IsSetting()) {
938 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 926 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
939 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
940 return FALSE; 927 return FALSE;
941 } 928 }
942 vp << m_pDocument->GetPath(); 929 vp << m_pDocument->GetPath();
943 return TRUE; 930 return TRUE;
944 } 931 }
945 932
946 FX_BOOL Document::baseURL(IJS_Context* cc, 933 FX_BOOL Document::baseURL(IJS_Context* cc,
947 CJS_PropValue& vp, 934 CJS_PropValue& vp,
948 CFX_WideString& sError) { 935 CFX_WideString& sError) {
949 if (vp.IsGetting()) { 936 if (vp.IsGetting()) {
(...skipping 20 matching lines...) Expand all
970 pInterForm->EnableCalculate(bCalculate); 957 pInterForm->EnableCalculate(bCalculate);
971 } 958 }
972 959
973 return TRUE; 960 return TRUE;
974 } 961 }
975 962
976 FX_BOOL Document::documentFileName(IJS_Context* cc, 963 FX_BOOL Document::documentFileName(IJS_Context* cc,
977 CJS_PropValue& vp, 964 CJS_PropValue& vp,
978 CFX_WideString& sError) { 965 CFX_WideString& sError) {
979 if (vp.IsSetting()) { 966 if (vp.IsSetting()) {
980 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 967 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
981 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
982 return FALSE; 968 return FALSE;
983 } 969 }
984 CFX_WideString wsFilePath = m_pDocument->GetPath(); 970 CFX_WideString wsFilePath = m_pDocument->GetPath();
985 int32_t i = wsFilePath.GetLength() - 1; 971 int32_t i = wsFilePath.GetLength() - 1;
986 for (; i >= 0; i--) { 972 for (; i >= 0; i--) {
987 if (wsFilePath.GetAt(i) == L'\\' || wsFilePath.GetAt(i) == L'/') 973 if (wsFilePath.GetAt(i) == L'\\' || wsFilePath.GetAt(i) == L'/')
988 break; 974 break;
989 } 975 }
990 if (i >= 0 && i < wsFilePath.GetLength() - 1) { 976 if (i >= 0 && i < wsFilePath.GetLength() - 1) {
991 vp << (wsFilePath.GetBuffer(wsFilePath.GetLength()) + i + 1); 977 vp << (wsFilePath.GetBuffer(wsFilePath.GetLength()) + i + 1);
992 } else { 978 } else {
993 vp << L""; 979 vp << L"";
994 } 980 }
995 return TRUE; 981 return TRUE;
996 } 982 }
997 983
998 FX_BOOL Document::path(IJS_Context* cc, 984 FX_BOOL Document::path(IJS_Context* cc,
999 CJS_PropValue& vp, 985 CJS_PropValue& vp,
1000 CFX_WideString& sError) { 986 CFX_WideString& sError) {
1001 if (vp.IsSetting()) { 987 if (vp.IsSetting()) {
1002 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 988 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
1003 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1004 return FALSE; 989 return FALSE;
1005 } 990 }
1006 vp << app::SysPathToPDFPath(m_pDocument->GetPath()); 991 vp << app::SysPathToPDFPath(m_pDocument->GetPath());
1007 return TRUE; 992 return TRUE;
1008 } 993 }
1009 994
1010 FX_BOOL Document::pageWindowRect(IJS_Context* cc, 995 FX_BOOL Document::pageWindowRect(IJS_Context* cc,
1011 CJS_PropValue& vp, 996 CJS_PropValue& vp,
1012 CFX_WideString& sError) { 997 CFX_WideString& sError) {
1013 return TRUE; 998 return TRUE;
(...skipping 23 matching lines...) Expand all
1037 const std::vector<CJS_Value>& params, 1022 const std::vector<CJS_Value>& params,
1038 CJS_Value& vRet, 1023 CJS_Value& vRet,
1039 CFX_WideString& sError) { 1024 CFX_WideString& sError) {
1040 return TRUE; 1025 return TRUE;
1041 } 1026 }
1042 1027
1043 FX_BOOL Document::getAnnot(IJS_Context* cc, 1028 FX_BOOL Document::getAnnot(IJS_Context* cc,
1044 const std::vector<CJS_Value>& params, 1029 const std::vector<CJS_Value>& params,
1045 CJS_Value& vRet, 1030 CJS_Value& vRet,
1046 CFX_WideString& sError) { 1031 CFX_WideString& sError) {
1047 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1048 if (params.size() != 2) { 1032 if (params.size() != 2) {
1049 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1033 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
1050 return FALSE; 1034 return FALSE;
1051 } 1035 }
1052 1036 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1053 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1037 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1054 int nPageNo = params[0].ToInt(pRuntime); 1038 int nPageNo = params[0].ToInt(pRuntime);
1055 CFX_WideString swAnnotName = params[1].ToCFXWideString(pRuntime); 1039 CFX_WideString swAnnotName = params[1].ToCFXWideString(pRuntime);
1056
1057 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(nPageNo); 1040 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(nPageNo);
1058 if (!pPageView) 1041 if (!pPageView)
1059 return FALSE; 1042 return FALSE;
1060 1043
1061 CPDFSDK_AnnotIterator annotIterator(pPageView, false); 1044 CPDFSDK_AnnotIterator annotIterator(pPageView, false);
1062 CPDFSDK_BAAnnot* pSDKBAAnnot = nullptr; 1045 CPDFSDK_BAAnnot* pSDKBAAnnot = nullptr;
1063 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) { 1046 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) {
1064 CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur); 1047 CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur);
1065 if (pBAAnnot && pBAAnnot->GetAnnotName() == swAnnotName) { 1048 if (pBAAnnot && pBAAnnot->GetAnnotName() == swAnnotName) {
1066 pSDKBAAnnot = pBAAnnot; 1049 pSDKBAAnnot = pBAAnnot;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1171 1154
1172 bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect) { 1155 bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect) {
1173 return (rect.left <= LinkRect.left && rect.top <= LinkRect.top && 1156 return (rect.left <= LinkRect.left && rect.top <= LinkRect.top &&
1174 rect.right >= LinkRect.right && rect.bottom >= LinkRect.bottom); 1157 rect.right >= LinkRect.right && rect.bottom >= LinkRect.bottom);
1175 } 1158 }
1176 1159
1177 FX_BOOL Document::addIcon(IJS_Context* cc, 1160 FX_BOOL Document::addIcon(IJS_Context* cc,
1178 const std::vector<CJS_Value>& params, 1161 const std::vector<CJS_Value>& params,
1179 CJS_Value& vRet, 1162 CJS_Value& vRet,
1180 CFX_WideString& sError) { 1163 CFX_WideString& sError) {
1181 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1182 1164
1183 if (params.size() != 2) { 1165 if (params.size() != 2) {
1184 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1166 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
1185 return FALSE; 1167 return FALSE;
1186 } 1168 }
1187 1169
1170 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1188 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1171 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1189
1190 CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime); 1172 CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime);
1191 1173
1192 if (params[1].GetType() != CJS_Value::VT_object) { 1174 if (params[1].GetType() != CJS_Value::VT_object) {
1193 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1175 sError = JSGetStringFromID(IDS_STRING_JSTYPEERROR);
1194 return FALSE; 1176 return FALSE;
1195 } 1177 }
1196 1178
1197 v8::Local<v8::Object> pJSIcon = params[1].ToV8Object(pRuntime); 1179 v8::Local<v8::Object> pJSIcon = params[1].ToV8Object(pRuntime);
1198 if (pRuntime->GetObjDefnID(pJSIcon) != CJS_Icon::g_nObjDefnID) { 1180 if (pRuntime->GetObjDefnID(pJSIcon) != CJS_Icon::g_nObjDefnID) {
1199 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1181 sError = JSGetStringFromID(IDS_STRING_JSTYPEERROR);
1200 return FALSE; 1182 return FALSE;
1201 } 1183 }
1202 1184
1203 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject(pRuntime)->GetEmbedObject(); 1185 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject(pRuntime)->GetEmbedObject();
1204 if (!pEmbedObj) { 1186 if (!pEmbedObj) {
1205 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1187 sError = JSGetStringFromID(IDS_STRING_JSTYPEERROR);
1206 return FALSE; 1188 return FALSE;
1207 } 1189 }
1208 1190
1209 m_IconList.push_back(std::unique_ptr<IconElement>( 1191 m_IconList.push_back(std::unique_ptr<IconElement>(
1210 new IconElement(swIconName, (Icon*)pEmbedObj))); 1192 new IconElement(swIconName, (Icon*)pEmbedObj)));
1211 return TRUE; 1193 return TRUE;
1212 } 1194 }
1213 1195
1214 FX_BOOL Document::icons(IJS_Context* cc, 1196 FX_BOOL Document::icons(IJS_Context* cc,
1215 CJS_PropValue& vp, 1197 CJS_PropValue& vp,
1216 CFX_WideString& sError) { 1198 CFX_WideString& sError) {
1217 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1218 if (vp.IsSetting()) { 1199 if (vp.IsSetting()) {
1219 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1200 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
1220 return FALSE; 1201 return FALSE;
1221 } 1202 }
1222 1203
1223 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 1204 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1224 if (m_IconList.empty()) { 1205 if (m_IconList.empty()) {
1225 vp.GetJSValue()->SetNull(pRuntime); 1206 vp.GetJSValue()->SetNull(pRuntime);
1226 return TRUE; 1207 return TRUE;
1227 } 1208 }
1228 1209
1229 CJS_Array Icons; 1210 CJS_Array Icons;
(...skipping 20 matching lines...) Expand all
1250 } 1231 }
1251 1232
1252 vp << Icons; 1233 vp << Icons;
1253 return TRUE; 1234 return TRUE;
1254 } 1235 }
1255 1236
1256 FX_BOOL Document::getIcon(IJS_Context* cc, 1237 FX_BOOL Document::getIcon(IJS_Context* cc,
1257 const std::vector<CJS_Value>& params, 1238 const std::vector<CJS_Value>& params,
1258 CJS_Value& vRet, 1239 CJS_Value& vRet,
1259 CFX_WideString& sError) { 1240 CFX_WideString& sError) {
1260 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1261 if (params.size() != 1) { 1241 if (params.size() != 1) {
1262 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1242 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
1263 return FALSE; 1243 return FALSE;
1264 } 1244 }
1265 1245
1266 if (m_IconList.empty()) 1246 if (m_IconList.empty())
1267 return FALSE; 1247 return FALSE;
1268 1248
1269 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1249 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1270
1271 CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime); 1250 CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime);
1272 1251
1273 for (const auto& pIconElement : m_IconList) { 1252 for (const auto& pIconElement : m_IconList) {
1274 if (pIconElement->IconName == swIconName) { 1253 if (pIconElement->IconName == swIconName) {
1275 Icon* pRetIcon = pIconElement->IconStream; 1254 Icon* pRetIcon = pIconElement->IconStream;
1276 1255
1277 v8::Local<v8::Object> pObj = 1256 v8::Local<v8::Object> pObj =
1278 pRuntime->NewFxDynamicObj(CJS_Icon::g_nObjDefnID); 1257 pRuntime->NewFxDynamicObj(CJS_Icon::g_nObjDefnID);
1279 if (pObj.IsEmpty()) 1258 if (pObj.IsEmpty())
1280 return FALSE; 1259 return FALSE;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1337 FX_BOOL Document::Collab(IJS_Context* cc, 1316 FX_BOOL Document::Collab(IJS_Context* cc,
1338 CJS_PropValue& vp, 1317 CJS_PropValue& vp,
1339 CFX_WideString& sError) { 1318 CFX_WideString& sError) {
1340 return TRUE; 1319 return TRUE;
1341 } 1320 }
1342 1321
1343 FX_BOOL Document::getPageNthWord(IJS_Context* cc, 1322 FX_BOOL Document::getPageNthWord(IJS_Context* cc,
1344 const std::vector<CJS_Value>& params, 1323 const std::vector<CJS_Value>& params,
1345 CJS_Value& vRet, 1324 CJS_Value& vRet,
1346 CFX_WideString& sError) { 1325 CFX_WideString& sError) {
1347 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1348
1349 // TODO(tsepez): check maximum allowable params. 1326 // TODO(tsepez): check maximum allowable params.
1350 1327 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
1351 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) 1328 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
1352 return FALSE; 1329 return FALSE;
1353 1330 }
1354 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1331 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1355
1356 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0; 1332 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0;
1357 int nWordNo = params.size() > 1 ? params[1].ToInt(pRuntime) : 0; 1333 int nWordNo = params.size() > 1 ? params[1].ToInt(pRuntime) : 0;
1358 bool bStrip = params.size() > 2 ? params[2].ToBool(pRuntime) : true; 1334 bool bStrip = params.size() > 2 ? params[2].ToBool(pRuntime) : true;
1359 1335
1360 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); 1336 CPDF_Document* pDocument = m_pDocument->GetPDFDocument();
1361 if (!pDocument) 1337 if (!pDocument)
1362 return FALSE; 1338 return FALSE;
1363 1339
1364 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) { 1340 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
1365 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1341 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
1366 return FALSE; 1342 return FALSE;
1367 } 1343 }
1368 1344
1369 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1345 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1370 if (!pPageDict) 1346 if (!pPageDict)
1371 return FALSE; 1347 return FALSE;
1372 1348
1373 CPDF_Page page(pDocument, pPageDict, true); 1349 CPDF_Page page(pDocument, pPageDict, true);
1374 page.ParseContent(); 1350 page.ParseContent();
1375 1351
(...skipping 27 matching lines...) Expand all
1403 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) 1379 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
1404 return FALSE; 1380 return FALSE;
1405 1381
1406 return FALSE; 1382 return FALSE;
1407 } 1383 }
1408 1384
1409 FX_BOOL Document::getPageNumWords(IJS_Context* cc, 1385 FX_BOOL Document::getPageNumWords(IJS_Context* cc,
1410 const std::vector<CJS_Value>& params, 1386 const std::vector<CJS_Value>& params,
1411 CJS_Value& vRet, 1387 CJS_Value& vRet,
1412 CFX_WideString& sError) { 1388 CFX_WideString& sError) {
1413 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1389 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
1414 1390 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
1415 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
1416 return FALSE; 1391 return FALSE;
1417 1392 }
1418 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1393 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1419
1420 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0; 1394 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0;
1421 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); 1395 CPDF_Document* pDocument = m_pDocument->GetPDFDocument();
1422 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) { 1396 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
1423 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1397 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
1424 return FALSE; 1398 return FALSE;
1425 } 1399 }
1426 1400
1427 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1401 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1428 if (!pPageDict) 1402 if (!pPageDict)
1429 return FALSE; 1403 return FALSE;
1430 1404
1431 CPDF_Page page(pDocument, pPageDict, true); 1405 CPDF_Page page(pDocument, pPageDict, true);
1432 page.ParseContent(); 1406 page.ParseContent();
1433 1407
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1587 CJS_Value& vRet, 1561 CJS_Value& vRet,
1588 CFX_WideString& sError) { 1562 CFX_WideString& sError) {
1589 // Unsafe, not supported. 1563 // Unsafe, not supported.
1590 return TRUE; 1564 return TRUE;
1591 } 1565 }
1592 1566
1593 FX_BOOL Document::gotoNamedDest(IJS_Context* cc, 1567 FX_BOOL Document::gotoNamedDest(IJS_Context* cc,
1594 const std::vector<CJS_Value>& params, 1568 const std::vector<CJS_Value>& params,
1595 CJS_Value& vRet, 1569 CJS_Value& vRet,
1596 CFX_WideString& sError) { 1570 CFX_WideString& sError) {
1597 CJS_Context* context = (CJS_Context*)cc;
1598
1599 if (params.size() != 1) { 1571 if (params.size() != 1) {
1600 sError = JSGetStringFromID(context, IDS_STRING_JSPARAMERROR); 1572 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
1601 return FALSE; 1573 return FALSE;
1602 } 1574 }
1603 1575
1604 CJS_Runtime* pRuntime = context->GetJSRuntime(); 1576 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1605 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime); 1577 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
1606 CFX_ByteString utf8Name = wideName.UTF8Encode(); 1578 CFX_ByteString utf8Name = wideName.UTF8Encode();
1607
1608 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); 1579 CPDF_Document* pDocument = m_pDocument->GetPDFDocument();
1609 if (!pDocument) 1580 if (!pDocument)
1610 return FALSE; 1581 return FALSE;
1611 1582
1612 CPDF_NameTree nameTree(pDocument, "Dests"); 1583 CPDF_NameTree nameTree(pDocument, "Dests");
1613 CPDF_Array* destArray = nameTree.LookupNamedDest(pDocument, utf8Name); 1584 CPDF_Array* destArray = nameTree.LookupNamedDest(pDocument, utf8Name);
1614 if (!destArray) 1585 if (!destArray)
1615 return FALSE; 1586 return FALSE;
1616 1587
1617 CPDF_Dest dest(destArray); 1588 CPDF_Dest dest(destArray);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1654 } 1625 }
1655 } 1626 }
1656 1627
1657 for (const auto& pData : DelayDataForFieldAndControlIndex) 1628 for (const auto& pData : DelayDataForFieldAndControlIndex)
1658 Field::DoDelay(m_pDocument, pData.get()); 1629 Field::DoDelay(m_pDocument, pData.get());
1659 } 1630 }
1660 1631
1661 CJS_Document* Document::GetCJSDoc() const { 1632 CJS_Document* Document::GetCJSDoc() const {
1662 return static_cast<CJS_Document*>(m_pJSObject); 1633 return static_cast<CJS_Document*>(m_pJSObject);
1663 } 1634 }
OLDNEW
« no previous file with comments | « fpdfsdk/javascript/Annot.cpp ('k') | fpdfsdk/javascript/PublicMethods.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698