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

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

Issue 2410893002: Merge CPDFSDK_Document into CPDFSDK_FormFillEnvironment (Closed)
Patch Set: Rebase to master Created 4 years, 2 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
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 <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "core/fpdfapi/font/cpdf_font.h" 12 #include "core/fpdfapi/font/cpdf_font.h"
13 #include "core/fpdfapi/page/cpdf_page.h" 13 #include "core/fpdfapi/page/cpdf_page.h"
14 #include "core/fpdfapi/parser/cpdf_array.h" 14 #include "core/fpdfapi/parser/cpdf_array.h"
15 #include "core/fpdfapi/parser/cpdf_document.h" 15 #include "core/fpdfapi/parser/cpdf_document.h"
16 #include "core/fpdfapi/parser/fpdf_parser_decode.h" 16 #include "core/fpdfapi/parser/fpdf_parser_decode.h"
17 #include "core/fpdfdoc/cpdf_interform.h" 17 #include "core/fpdfdoc/cpdf_interform.h"
18 #include "core/fpdfdoc/cpdf_nametree.h" 18 #include "core/fpdfdoc/cpdf_nametree.h"
19 #include "fpdfsdk/cpdfsdk_annotiterator.h" 19 #include "fpdfsdk/cpdfsdk_annotiterator.h"
20 #include "fpdfsdk/cpdfsdk_document.h"
21 #include "fpdfsdk/cpdfsdk_formfillenvironment.h" 20 #include "fpdfsdk/cpdfsdk_formfillenvironment.h"
22 #include "fpdfsdk/cpdfsdk_interform.h" 21 #include "fpdfsdk/cpdfsdk_interform.h"
23 #include "fpdfsdk/cpdfsdk_pageview.h" 22 #include "fpdfsdk/cpdfsdk_pageview.h"
24 #include "fpdfsdk/cpdfsdk_widget.h" 23 #include "fpdfsdk/cpdfsdk_widget.h"
25 #include "fpdfsdk/javascript/Annot.h" 24 #include "fpdfsdk/javascript/Annot.h"
26 #include "fpdfsdk/javascript/Field.h" 25 #include "fpdfsdk/javascript/Field.h"
27 #include "fpdfsdk/javascript/Icon.h" 26 #include "fpdfsdk/javascript/Icon.h"
28 #include "fpdfsdk/javascript/JS_Define.h" 27 #include "fpdfsdk/javascript/JS_Define.h"
29 #include "fpdfsdk/javascript/JS_EventHandler.h" 28 #include "fpdfsdk/javascript/JS_EventHandler.h"
30 #include "fpdfsdk/javascript/JS_Object.h" 29 #include "fpdfsdk/javascript/JS_Object.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 CJS_PropValue& vp, 165 CJS_PropValue& vp,
167 CFX_WideString& sError) { 166 CFX_WideString& sError) {
168 if (vp.IsSetting()) { 167 if (vp.IsSetting()) {
169 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 168 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
170 return FALSE; 169 return FALSE;
171 } 170 }
172 if (!m_pFormFillEnv) { 171 if (!m_pFormFillEnv) {
173 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 172 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
174 return FALSE; 173 return FALSE;
175 } 174 }
176 CPDFSDK_InterForm* pInterForm = 175 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
177 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
178 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 176 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
179 vp << static_cast<int>(pPDFForm->CountFields(CFX_WideString())); 177 vp << static_cast<int>(pPDFForm->CountFields(CFX_WideString()));
180 return TRUE; 178 return TRUE;
181 } 179 }
182 180
183 FX_BOOL Document::dirty(IJS_Context* cc, 181 FX_BOOL Document::dirty(IJS_Context* cc,
184 CJS_PropValue& vp, 182 CJS_PropValue& vp,
185 CFX_WideString& sError) { 183 CFX_WideString& sError) {
186 if (!m_pFormFillEnv) { 184 if (!m_pFormFillEnv) {
187 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 185 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
188 return FALSE; 186 return FALSE;
189 } 187 }
190 if (vp.IsGetting()) { 188 if (vp.IsGetting()) {
191 vp << !!m_pFormFillEnv->GetSDKDocument()->GetChangeMark(); 189 vp << !!m_pFormFillEnv->GetChangeMark();
192 } else { 190 } else {
193 bool bChanged = false; 191 bool bChanged = false;
194 vp >> bChanged; 192 vp >> bChanged;
195 193
196 if (bChanged) 194 if (bChanged)
197 m_pFormFillEnv->GetSDKDocument()->SetChangeMark(); 195 m_pFormFillEnv->SetChangeMark();
198 else 196 else
199 m_pFormFillEnv->GetSDKDocument()->ClearChangeMark(); 197 m_pFormFillEnv->ClearChangeMark();
200 } 198 }
201 return TRUE; 199 return TRUE;
202 } 200 }
203 201
204 FX_BOOL Document::ADBE(IJS_Context* cc, 202 FX_BOOL Document::ADBE(IJS_Context* cc,
205 CJS_PropValue& vp, 203 CJS_PropValue& vp,
206 CFX_WideString& sError) { 204 CFX_WideString& sError) {
207 if (vp.IsGetting()) 205 if (vp.IsGetting())
208 vp.GetJSValue()->SetNull(CJS_Runtime::FromContext(cc)); 206 vp.GetJSValue()->SetNull(CJS_Runtime::FromContext(cc));
209 207
210 return TRUE; 208 return TRUE;
211 } 209 }
212 210
213 FX_BOOL Document::pageNum(IJS_Context* cc, 211 FX_BOOL Document::pageNum(IJS_Context* cc,
214 CJS_PropValue& vp, 212 CJS_PropValue& vp,
215 CFX_WideString& sError) { 213 CFX_WideString& sError) {
216 if (!m_pFormFillEnv) { 214 if (!m_pFormFillEnv) {
217 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 215 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
218 return FALSE; 216 return FALSE;
219 } 217 }
220 if (vp.IsGetting()) { 218 if (vp.IsGetting()) {
221 if (CPDFSDK_PageView* pPageView = 219 if (CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetCurrentView()) {
222 m_pFormFillEnv->GetSDKDocument()->GetCurrentView()) {
223 vp << pPageView->GetPageIndex(); 220 vp << pPageView->GetPageIndex();
224 } 221 }
225 } else { 222 } else {
226 int iPageCount = m_pFormFillEnv->GetSDKDocument()->GetPageCount(); 223 int iPageCount = m_pFormFillEnv->GetPageCount();
227 int iPageNum = 0; 224 int iPageNum = 0;
228 vp >> iPageNum; 225 vp >> iPageNum;
229 226
230 if (iPageNum >= 0 && iPageNum < iPageCount) { 227 if (iPageNum >= 0 && iPageNum < iPageCount) {
231 m_pFormFillEnv->JS_docgotoPage(iPageNum); 228 m_pFormFillEnv->JS_docgotoPage(iPageNum);
232 } else if (iPageNum >= iPageCount) { 229 } else if (iPageNum >= iPageCount) {
233 m_pFormFillEnv->JS_docgotoPage(iPageCount - 1); 230 m_pFormFillEnv->JS_docgotoPage(iPageCount - 1);
234 } else if (iPageNum < 0) { 231 } else if (iPageNum < 0) {
235 m_pFormFillEnv->JS_docgotoPage(0); 232 m_pFormFillEnv->JS_docgotoPage(0);
236 } 233 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR); 289 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
293 return FALSE; 290 return FALSE;
294 } 291 }
295 if (!m_pFormFillEnv) { 292 if (!m_pFormFillEnv) {
296 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 293 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
297 return FALSE; 294 return FALSE;
298 } 295 }
299 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 296 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
300 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 297 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
301 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime); 298 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
302 CPDFSDK_InterForm* pInterForm = 299 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
303 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
304 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 300 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
305 if (pPDFForm->CountFields(wideName) <= 0) { 301 if (pPDFForm->CountFields(wideName) <= 0) {
306 vRet.SetNull(pRuntime); 302 vRet.SetNull(pRuntime);
307 return TRUE; 303 return TRUE;
308 } 304 }
309 305
310 v8::Local<v8::Object> pFieldObj = 306 v8::Local<v8::Object> pFieldObj =
311 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); 307 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID);
312 CJS_Field* pJSField = 308 CJS_Field* pJSField =
313 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); 309 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj));
(...skipping 17 matching lines...) Expand all
331 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 327 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
332 return FALSE; 328 return FALSE;
333 } 329 }
334 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 330 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
335 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 331 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
336 int nIndex = params[0].ToInt(pRuntime); 332 int nIndex = params[0].ToInt(pRuntime);
337 if (nIndex < 0) { 333 if (nIndex < 0) {
338 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR); 334 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
339 return FALSE; 335 return FALSE;
340 } 336 }
341 CPDFSDK_InterForm* pInterForm = 337 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
342 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
343 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 338 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
344 CPDF_FormField* pField = pPDFForm->GetField(nIndex, CFX_WideString()); 339 CPDF_FormField* pField = pPDFForm->GetField(nIndex, CFX_WideString());
345 if (!pField) 340 if (!pField)
346 return FALSE; 341 return FALSE;
347 342
348 vRet = CJS_Value(pRuntime, pField->GetFullName().c_str()); 343 vRet = CJS_Value(pRuntime, pField->GetFullName().c_str());
349 return TRUE; 344 return TRUE;
350 } 345 }
351 346
352 FX_BOOL Document::importAnFDF(IJS_Context* cc, 347 FX_BOOL Document::importAnFDF(IJS_Context* cc,
(...skipping 24 matching lines...) Expand all
377 // all recipients. 372 // all recipients.
378 // comment: need reader supports 373 // comment: need reader supports
379 FX_BOOL Document::mailForm(IJS_Context* cc, 374 FX_BOOL Document::mailForm(IJS_Context* cc,
380 const std::vector<CJS_Value>& params, 375 const std::vector<CJS_Value>& params,
381 CJS_Value& vRet, 376 CJS_Value& vRet,
382 CFX_WideString& sError) { 377 CFX_WideString& sError) {
383 if (!m_pFormFillEnv) { 378 if (!m_pFormFillEnv) {
384 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 379 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
385 return FALSE; 380 return FALSE;
386 } 381 }
387 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions( 382 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
388 FPDFPERM_EXTRACT_ACCESS)) {
389 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 383 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
390 return FALSE; 384 return FALSE;
391 } 385 }
392 386
393 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 387 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
394 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 388 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
395 389
396 int iLength = params.size(); 390 int iLength = params.size();
397 FX_BOOL bUI = iLength > 0 ? params[0].ToBool(pRuntime) : TRUE; 391 FX_BOOL bUI = iLength > 0 ? params[0].ToBool(pRuntime) : TRUE;
398 CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString(pRuntime) : L""; 392 CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString(pRuntime) : L"";
399 CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString(pRuntime) : L""; 393 CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString(pRuntime) : L"";
400 CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString(pRuntime) : L""; 394 CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString(pRuntime) : L"";
401 CFX_WideString cSubject = 395 CFX_WideString cSubject =
402 iLength > 4 ? params[4].ToCFXWideString(pRuntime) : L""; 396 iLength > 4 ? params[4].ToCFXWideString(pRuntime) : L"";
403 CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString(pRuntime) : L""; 397 CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString(pRuntime) : L"";
404 398
405 CPDFSDK_InterForm* pInterForm = 399 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
406 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
407 CFX_ByteTextBuf textBuf; 400 CFX_ByteTextBuf textBuf;
408 if (!pInterForm->ExportFormToFDFTextBuf(textBuf)) 401 if (!pInterForm->ExportFormToFDFTextBuf(textBuf))
409 return FALSE; 402 return FALSE;
410 403
411 pRuntime->BeginBlock(); 404 pRuntime->BeginBlock();
412 CPDFSDK_FormFillEnvironment* pEnv = pContext->GetFormFillEnv(); 405 CPDFSDK_FormFillEnvironment* pEnv = pContext->GetFormFillEnv();
413 pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, 406 pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI,
414 cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), 407 cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(),
415 cMsg.c_str()); 408 cMsg.c_str());
416 pRuntime->EndBlock(); 409 pRuntime->EndBlock();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 CJS_Value& vRet, 488 CJS_Value& vRet,
496 CFX_WideString& sError) { 489 CFX_WideString& sError) {
497 if (params.size() != 1) { 490 if (params.size() != 1) {
498 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR); 491 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
499 return FALSE; 492 return FALSE;
500 } 493 }
501 if (!m_pFormFillEnv) { 494 if (!m_pFormFillEnv) {
502 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 495 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
503 return FALSE; 496 return FALSE;
504 } 497 }
505 if (!(m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_MODIFY) || 498 if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) ||
506 m_pFormFillEnv->GetSDKDocument()->GetPermissions( 499 m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM))) {
507 FPDFPERM_ANNOT_FORM))) {
508 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 500 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
509 return FALSE; 501 return FALSE;
510 } 502 }
511 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 503 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
512 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 504 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
513 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime); 505 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime);
514 CPDFSDK_InterForm* pInterForm = 506 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
515 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
516 std::vector<CPDFSDK_Widget*> widgets; 507 std::vector<CPDFSDK_Widget*> widgets;
517 pInterForm->GetWidgets(sFieldName, &widgets); 508 pInterForm->GetWidgets(sFieldName, &widgets);
518 if (widgets.empty()) 509 if (widgets.empty())
519 return TRUE; 510 return TRUE;
520 511
521 for (CPDFSDK_Widget* pWidget : widgets) { 512 for (CPDFSDK_Widget* pWidget : widgets) {
522 CFX_FloatRect rcAnnot = pWidget->GetRect(); 513 CFX_FloatRect rcAnnot = pWidget->GetRect();
523 --rcAnnot.left; 514 --rcAnnot.left;
524 --rcAnnot.bottom; 515 --rcAnnot.bottom;
525 ++rcAnnot.right; 516 ++rcAnnot.right;
526 ++rcAnnot.top; 517 ++rcAnnot.top;
527 518
528 std::vector<CFX_FloatRect> aRefresh(1, rcAnnot); 519 std::vector<CFX_FloatRect> aRefresh(1, rcAnnot);
529 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); 520 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage();
530 ASSERT(pPage); 521 ASSERT(pPage);
531 522
532 // If there is currently no pageview associated with the page being used 523 // If there is currently no pageview associated with the page being used
533 // do not create one. We may be in the process of tearing down the document 524 // do not create one. We may be in the process of tearing down the document
534 // and creating a new pageview at this point will cause bad things. 525 // and creating a new pageview at this point will cause bad things.
535 CPDFSDK_PageView* pPageView = 526 CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(pPage, false);
536 m_pFormFillEnv->GetSDKDocument()->GetPageView(pPage, false);
537 if (pPageView) { 527 if (pPageView) {
538 #if PDF_ENABLE_XFA 528 #if PDF_ENABLE_XFA
539 pPageView->DeleteAnnot(pWidget); 529 pPageView->DeleteAnnot(pWidget);
540 #endif // PDF_ENABLE_XFA 530 #endif // PDF_ENABLE_XFA
541 pPageView->UpdateRects(aRefresh); 531 pPageView->UpdateRects(aRefresh);
542 } 532 }
543 } 533 }
544 m_pFormFillEnv->GetSDKDocument()->SetChangeMark(); 534 m_pFormFillEnv->SetChangeMark();
545 535
546 return TRUE; 536 return TRUE;
547 } 537 }
548 538
549 // reset filed values within a document. 539 // reset filed values within a document.
550 // comment: 540 // comment:
551 // note: if the fields names r not rational, aodbe is dumb for it. 541 // note: if the fields names r not rational, aodbe is dumb for it.
552 542
553 FX_BOOL Document::resetForm(IJS_Context* cc, 543 FX_BOOL Document::resetForm(IJS_Context* cc,
554 const std::vector<CJS_Value>& params, 544 const std::vector<CJS_Value>& params,
555 CJS_Value& vRet, 545 CJS_Value& vRet,
556 CFX_WideString& sError) { 546 CFX_WideString& sError) {
557 if (!m_pFormFillEnv) { 547 if (!m_pFormFillEnv) {
558 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 548 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
559 return FALSE; 549 return FALSE;
560 } 550 }
561 if (!(m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_MODIFY) || 551 if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) ||
562 m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_ANNOT_FORM) || 552 m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM) ||
563 m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_FILL_FORM))) { 553 m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM))) {
564 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 554 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
565 return FALSE; 555 return FALSE;
566 } 556 }
567 557
568 CPDFSDK_InterForm* pInterForm = 558 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
569 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
570 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 559 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
571 CJS_Array aName; 560 CJS_Array aName;
572 561
573 if (params.empty()) { 562 if (params.empty()) {
574 pPDFForm->ResetForm(TRUE); 563 pPDFForm->ResetForm(TRUE);
575 m_pFormFillEnv->GetSDKDocument()->SetChangeMark(); 564 m_pFormFillEnv->SetChangeMark();
576 return TRUE; 565 return TRUE;
577 } 566 }
578 567
579 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 568 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
580 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 569 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
581 570
582 switch (params[0].GetType()) { 571 switch (params[0].GetType()) {
583 default: 572 default:
584 aName.Attach(params[0].ToV8Array(pRuntime)); 573 aName.Attach(params[0].ToV8Array(pRuntime));
585 break; 574 break;
586 case CJS_Value::VT_string: 575 case CJS_Value::VT_string:
587 aName.SetElement(pRuntime, 0, params[0]); 576 aName.SetElement(pRuntime, 0, params[0]);
588 break; 577 break;
589 } 578 }
590 579
591 std::vector<CPDF_FormField*> aFields; 580 std::vector<CPDF_FormField*> aFields;
592 for (int i = 0, isz = aName.GetLength(pRuntime); i < isz; ++i) { 581 for (int i = 0, isz = aName.GetLength(pRuntime); i < isz; ++i) {
593 CJS_Value valElement(pRuntime); 582 CJS_Value valElement(pRuntime);
594 aName.GetElement(pRuntime, i, valElement); 583 aName.GetElement(pRuntime, i, valElement);
595 CFX_WideString swVal = valElement.ToCFXWideString(pRuntime); 584 CFX_WideString swVal = valElement.ToCFXWideString(pRuntime);
596 for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; ++j) 585 for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; ++j)
597 aFields.push_back(pPDFForm->GetField(j, swVal)); 586 aFields.push_back(pPDFForm->GetField(j, swVal));
598 } 587 }
599 588
600 if (!aFields.empty()) { 589 if (!aFields.empty()) {
601 pPDFForm->ResetForm(aFields, TRUE, TRUE); 590 pPDFForm->ResetForm(aFields, TRUE, TRUE);
602 m_pFormFillEnv->GetSDKDocument()->SetChangeMark(); 591 m_pFormFillEnv->SetChangeMark();
603 } 592 }
604 593
605 return TRUE; 594 return TRUE;
606 } 595 }
607 596
608 FX_BOOL Document::saveAs(IJS_Context* cc, 597 FX_BOOL Document::saveAs(IJS_Context* cc,
609 const std::vector<CJS_Value>& params, 598 const std::vector<CJS_Value>& params,
610 CJS_Value& vRet, 599 CJS_Value& vRet,
611 CFX_WideString& sError) { 600 CFX_WideString& sError) {
612 // Unsafe, not supported. 601 // Unsafe, not supported.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 pValue = pRuntime->GetObjectProperty(pObj, L"bFDF"); 646 pValue = pRuntime->GetObjectProperty(pObj, L"bFDF");
658 bFDF = CJS_Value(pRuntime, pValue).ToBool(pRuntime); 647 bFDF = CJS_Value(pRuntime, pValue).ToBool(pRuntime);
659 648
660 pValue = pRuntime->GetObjectProperty(pObj, L"bEmpty"); 649 pValue = pRuntime->GetObjectProperty(pObj, L"bEmpty");
661 bEmpty = CJS_Value(pRuntime, pValue).ToBool(pRuntime); 650 bEmpty = CJS_Value(pRuntime, pValue).ToBool(pRuntime);
662 651
663 pValue = pRuntime->GetObjectProperty(pObj, L"aFields"); 652 pValue = pRuntime->GetObjectProperty(pObj, L"aFields");
664 aFields.Attach(CJS_Value(pRuntime, pValue).ToV8Array(pRuntime)); 653 aFields.Attach(CJS_Value(pRuntime, pValue).ToV8Array(pRuntime));
665 } 654 }
666 655
667 CPDFSDK_InterForm* pInterForm = 656 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
668 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
669 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); 657 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
670 if (aFields.GetLength(pRuntime) == 0 && bEmpty) { 658 if (aFields.GetLength(pRuntime) == 0 && bEmpty) {
671 if (pPDFInterForm->CheckRequiredFields(nullptr, true)) { 659 if (pPDFInterForm->CheckRequiredFields(nullptr, true)) {
672 pRuntime->BeginBlock(); 660 pRuntime->BeginBlock();
673 pInterForm->SubmitForm(strURL, FALSE); 661 pInterForm->SubmitForm(strURL, FALSE);
674 pRuntime->EndBlock(); 662 pRuntime->EndBlock();
675 } 663 }
676 return TRUE; 664 return TRUE;
677 } 665 }
678 666
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 CJS_PropValue& vp, 769 CJS_PropValue& vp,
782 CFX_WideString& sError) { 770 CFX_WideString& sError) {
783 if (vp.IsSetting()) { 771 if (vp.IsSetting()) {
784 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 772 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
785 return FALSE; 773 return FALSE;
786 } 774 }
787 if (!m_pFormFillEnv) { 775 if (!m_pFormFillEnv) {
788 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 776 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
789 return FALSE; 777 return FALSE;
790 } 778 }
791 CPDF_Dictionary* pDictionary = 779 CPDF_Dictionary* pDictionary = m_pFormFillEnv->GetPDFDocument()->GetInfo();
792 m_pFormFillEnv->GetSDKDocument()->GetPDFDocument()->GetInfo();
793 if (!pDictionary) 780 if (!pDictionary)
794 return FALSE; 781 return FALSE;
795 782
796 CFX_WideString cwAuthor = pDictionary->GetUnicodeTextFor("Author"); 783 CFX_WideString cwAuthor = pDictionary->GetUnicodeTextFor("Author");
797 CFX_WideString cwTitle = pDictionary->GetUnicodeTextFor("Title"); 784 CFX_WideString cwTitle = pDictionary->GetUnicodeTextFor("Title");
798 CFX_WideString cwSubject = pDictionary->GetUnicodeTextFor("Subject"); 785 CFX_WideString cwSubject = pDictionary->GetUnicodeTextFor("Subject");
799 CFX_WideString cwKeywords = pDictionary->GetUnicodeTextFor("Keywords"); 786 CFX_WideString cwKeywords = pDictionary->GetUnicodeTextFor("Keywords");
800 CFX_WideString cwCreator = pDictionary->GetUnicodeTextFor("Creator"); 787 CFX_WideString cwCreator = pDictionary->GetUnicodeTextFor("Creator");
801 CFX_WideString cwProducer = pDictionary->GetUnicodeTextFor("Producer"); 788 CFX_WideString cwProducer = pDictionary->GetUnicodeTextFor("Producer");
802 CFX_WideString cwCreationDate = 789 CFX_WideString cwCreationDate =
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 } 823 }
837 824
838 FX_BOOL Document::getPropertyInternal(IJS_Context* cc, 825 FX_BOOL Document::getPropertyInternal(IJS_Context* cc,
839 CJS_PropValue& vp, 826 CJS_PropValue& vp,
840 const CFX_ByteString& propName, 827 const CFX_ByteString& propName,
841 CFX_WideString& sError) { 828 CFX_WideString& sError) {
842 if (!m_pFormFillEnv) { 829 if (!m_pFormFillEnv) {
843 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 830 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
844 return FALSE; 831 return FALSE;
845 } 832 }
846 CPDF_Dictionary* pDictionary = 833 CPDF_Dictionary* pDictionary = m_pFormFillEnv->GetPDFDocument()->GetInfo();
847 m_pFormFillEnv->GetSDKDocument()->GetPDFDocument()->GetInfo();
848 if (!pDictionary) 834 if (!pDictionary)
849 return FALSE; 835 return FALSE;
850 836
851 if (vp.IsGetting()) { 837 if (vp.IsGetting()) {
852 vp << pDictionary->GetUnicodeTextFor(propName); 838 vp << pDictionary->GetUnicodeTextFor(propName);
853 } else { 839 } else {
854 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_MODIFY)) { 840 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY)) {
855 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 841 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
856 return FALSE; 842 return FALSE;
857 } 843 }
858 CFX_WideString csProperty; 844 CFX_WideString csProperty;
859 vp >> csProperty; 845 vp >> csProperty;
860 pDictionary->SetStringFor(propName, PDF_EncodeText(csProperty)); 846 pDictionary->SetStringFor(propName, PDF_EncodeText(csProperty));
861 m_pFormFillEnv->GetSDKDocument()->SetChangeMark(); 847 m_pFormFillEnv->SetChangeMark();
862 } 848 }
863 return TRUE; 849 return TRUE;
864 } 850 }
865 851
866 FX_BOOL Document::creationDate(IJS_Context* cc, 852 FX_BOOL Document::creationDate(IJS_Context* cc,
867 CJS_PropValue& vp, 853 CJS_PropValue& vp,
868 CFX_WideString& sError) { 854 CFX_WideString& sError) {
869 return getPropertyInternal(cc, vp, "CreationDate", sError); 855 return getPropertyInternal(cc, vp, "CreationDate", sError);
870 } 856 }
871 857
872 FX_BOOL Document::creator(IJS_Context* cc, 858 FX_BOOL Document::creator(IJS_Context* cc,
873 CJS_PropValue& vp, 859 CJS_PropValue& vp,
874 CFX_WideString& sError) { 860 CFX_WideString& sError) {
875 return getPropertyInternal(cc, vp, "Creator", sError); 861 return getPropertyInternal(cc, vp, "Creator", sError);
876 } 862 }
877 863
878 FX_BOOL Document::delay(IJS_Context* cc, 864 FX_BOOL Document::delay(IJS_Context* cc,
879 CJS_PropValue& vp, 865 CJS_PropValue& vp,
880 CFX_WideString& sError) { 866 CFX_WideString& sError) {
881 if (!m_pFormFillEnv) { 867 if (!m_pFormFillEnv) {
882 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 868 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
883 return FALSE; 869 return FALSE;
884 } 870 }
885 if (vp.IsGetting()) { 871 if (vp.IsGetting()) {
886 vp << m_bDelay; 872 vp << m_bDelay;
887 } else { 873 } else {
888 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_MODIFY)) { 874 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY)) {
889 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 875 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
890 return FALSE; 876 return FALSE;
891 } 877 }
892 vp >> m_bDelay; 878 vp >> m_bDelay;
893 if (m_bDelay) { 879 if (m_bDelay) {
894 m_DelayData.clear(); 880 m_DelayData.clear();
895 } else { 881 } else {
896 std::list<std::unique_ptr<CJS_DelayData>> DelayDataToProcess; 882 std::list<std::unique_ptr<CJS_DelayData>> DelayDataToProcess;
897 DelayDataToProcess.swap(m_DelayData); 883 DelayDataToProcess.swap(m_DelayData);
898 for (const auto& pData : DelayDataToProcess) 884 for (const auto& pData : DelayDataToProcess)
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 CJS_PropValue& vp, 926 CJS_PropValue& vp,
941 CFX_WideString& sError) { 927 CFX_WideString& sError) {
942 if (vp.IsSetting()) { 928 if (vp.IsSetting()) {
943 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 929 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
944 return FALSE; 930 return FALSE;
945 } 931 }
946 if (!m_pFormFillEnv) { 932 if (!m_pFormFillEnv) {
947 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 933 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
948 return FALSE; 934 return FALSE;
949 } 935 }
950 vp << m_pFormFillEnv->GetSDKDocument()->GetPageCount(); 936 vp << m_pFormFillEnv->GetPageCount();
951 return TRUE; 937 return TRUE;
952 } 938 }
953 939
954 FX_BOOL Document::external(IJS_Context* cc, 940 FX_BOOL Document::external(IJS_Context* cc,
955 CJS_PropValue& vp, 941 CJS_PropValue& vp,
956 CFX_WideString& sError) { 942 CFX_WideString& sError) {
957 // In Chrome case, should always return true. 943 // In Chrome case, should always return true.
958 if (vp.IsGetting()) { 944 if (vp.IsGetting()) {
959 vp << true; 945 vp << true;
960 } 946 }
(...skipping 27 matching lines...) Expand all
988 CJS_PropValue& vp, 974 CJS_PropValue& vp,
989 CFX_WideString& sError) { 975 CFX_WideString& sError) {
990 if (vp.IsSetting()) { 976 if (vp.IsSetting()) {
991 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 977 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
992 return FALSE; 978 return FALSE;
993 } 979 }
994 if (!m_pFormFillEnv) { 980 if (!m_pFormFillEnv) {
995 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 981 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
996 return FALSE; 982 return FALSE;
997 } 983 }
998 vp << m_pFormFillEnv->GetSDKDocument()->GetPath(); 984 vp << m_pFormFillEnv->JS_docGetFilePath();
999 return TRUE; 985 return TRUE;
1000 } 986 }
1001 987
1002 FX_BOOL Document::baseURL(IJS_Context* cc, 988 FX_BOOL Document::baseURL(IJS_Context* cc,
1003 CJS_PropValue& vp, 989 CJS_PropValue& vp,
1004 CFX_WideString& sError) { 990 CFX_WideString& sError) {
1005 if (vp.IsGetting()) { 991 if (vp.IsGetting()) {
1006 vp << m_cwBaseURL; 992 vp << m_cwBaseURL;
1007 } else { 993 } else {
1008 vp >> m_cwBaseURL; 994 vp >> m_cwBaseURL;
1009 } 995 }
1010 return TRUE; 996 return TRUE;
1011 } 997 }
1012 998
1013 FX_BOOL Document::calculate(IJS_Context* cc, 999 FX_BOOL Document::calculate(IJS_Context* cc,
1014 CJS_PropValue& vp, 1000 CJS_PropValue& vp,
1015 CFX_WideString& sError) { 1001 CFX_WideString& sError) {
1016 if (!m_pFormFillEnv) { 1002 if (!m_pFormFillEnv) {
1017 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1003 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1018 return FALSE; 1004 return FALSE;
1019 } 1005 }
1020 CPDFSDK_InterForm* pInterForm = 1006 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
1021 m_pFormFillEnv->GetSDKDocument()->GetInterForm();
1022 if (vp.IsGetting()) { 1007 if (vp.IsGetting()) {
1023 vp << !!pInterForm->IsCalculateEnabled(); 1008 vp << !!pInterForm->IsCalculateEnabled();
1024 } else { 1009 } else {
1025 bool bCalculate; 1010 bool bCalculate;
1026 vp >> bCalculate; 1011 vp >> bCalculate;
1027 pInterForm->EnableCalculate(bCalculate); 1012 pInterForm->EnableCalculate(bCalculate);
1028 } 1013 }
1029 return TRUE; 1014 return TRUE;
1030 } 1015 }
1031 1016
1032 FX_BOOL Document::documentFileName(IJS_Context* cc, 1017 FX_BOOL Document::documentFileName(IJS_Context* cc,
1033 CJS_PropValue& vp, 1018 CJS_PropValue& vp,
1034 CFX_WideString& sError) { 1019 CFX_WideString& sError) {
1035 if (vp.IsSetting()) { 1020 if (vp.IsSetting()) {
1036 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 1021 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
1037 return FALSE; 1022 return FALSE;
1038 } 1023 }
1039 if (!m_pFormFillEnv) { 1024 if (!m_pFormFillEnv) {
1040 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1025 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1041 return FALSE; 1026 return FALSE;
1042 } 1027 }
1043 CFX_WideString wsFilePath = m_pFormFillEnv->GetSDKDocument()->GetPath(); 1028 CFX_WideString wsFilePath = m_pFormFillEnv->JS_docGetFilePath();
1044 int32_t i = wsFilePath.GetLength() - 1; 1029 int32_t i = wsFilePath.GetLength() - 1;
1045 for (; i >= 0; i--) { 1030 for (; i >= 0; i--) {
1046 if (wsFilePath.GetAt(i) == L'\\' || wsFilePath.GetAt(i) == L'/') 1031 if (wsFilePath.GetAt(i) == L'\\' || wsFilePath.GetAt(i) == L'/')
1047 break; 1032 break;
1048 } 1033 }
1049 if (i >= 0 && i < wsFilePath.GetLength() - 1) { 1034 if (i >= 0 && i < wsFilePath.GetLength() - 1) {
1050 vp << (wsFilePath.GetBuffer(wsFilePath.GetLength()) + i + 1); 1035 vp << (wsFilePath.GetBuffer(wsFilePath.GetLength()) + i + 1);
1051 } else { 1036 } else {
1052 vp << L""; 1037 vp << L"";
1053 } 1038 }
1054 return TRUE; 1039 return TRUE;
1055 } 1040 }
1056 1041
1057 FX_BOOL Document::path(IJS_Context* cc, 1042 FX_BOOL Document::path(IJS_Context* cc,
1058 CJS_PropValue& vp, 1043 CJS_PropValue& vp,
1059 CFX_WideString& sError) { 1044 CFX_WideString& sError) {
1060 if (vp.IsSetting()) { 1045 if (vp.IsSetting()) {
1061 sError = JSGetStringFromID(IDS_STRING_JSREADONLY); 1046 sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
1062 return FALSE; 1047 return FALSE;
1063 } 1048 }
1064 if (!m_pFormFillEnv) { 1049 if (!m_pFormFillEnv) {
1065 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1050 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1066 return FALSE; 1051 return FALSE;
1067 } 1052 }
1068 vp << app::SysPathToPDFPath(m_pFormFillEnv->GetSDKDocument()->GetPath()); 1053 vp << app::SysPathToPDFPath(m_pFormFillEnv->JS_docGetFilePath());
1069 return TRUE; 1054 return TRUE;
1070 } 1055 }
1071 1056
1072 FX_BOOL Document::pageWindowRect(IJS_Context* cc, 1057 FX_BOOL Document::pageWindowRect(IJS_Context* cc,
1073 CJS_PropValue& vp, 1058 CJS_PropValue& vp,
1074 CFX_WideString& sError) { 1059 CFX_WideString& sError) {
1075 return TRUE; 1060 return TRUE;
1076 } 1061 }
1077 1062
1078 FX_BOOL Document::layout(IJS_Context* cc, 1063 FX_BOOL Document::layout(IJS_Context* cc,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 return FALSE; 1096 return FALSE;
1112 } 1097 }
1113 if (!m_pFormFillEnv) { 1098 if (!m_pFormFillEnv) {
1114 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1099 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1115 return FALSE; 1100 return FALSE;
1116 } 1101 }
1117 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1102 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1118 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1103 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1119 int nPageNo = params[0].ToInt(pRuntime); 1104 int nPageNo = params[0].ToInt(pRuntime);
1120 CFX_WideString swAnnotName = params[1].ToCFXWideString(pRuntime); 1105 CFX_WideString swAnnotName = params[1].ToCFXWideString(pRuntime);
1121 CPDFSDK_PageView* pPageView = 1106 CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(nPageNo);
1122 m_pFormFillEnv->GetSDKDocument()->GetPageView(nPageNo);
1123 if (!pPageView) 1107 if (!pPageView)
1124 return FALSE; 1108 return FALSE;
1125 1109
1126 CPDFSDK_AnnotIterator annotIterator(pPageView, false); 1110 CPDFSDK_AnnotIterator annotIterator(pPageView, false);
1127 CPDFSDK_BAAnnot* pSDKBAAnnot = nullptr; 1111 CPDFSDK_BAAnnot* pSDKBAAnnot = nullptr;
1128 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) { 1112 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) {
1129 CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur); 1113 CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur);
1130 if (pBAAnnot && pBAAnnot->GetAnnotName() == swAnnotName) { 1114 if (pBAAnnot && pBAAnnot->GetAnnotName() == swAnnotName) {
1131 pSDKBAAnnot = pBAAnnot; 1115 pSDKBAAnnot = pBAAnnot;
1132 break; 1116 break;
(...skipping 30 matching lines...) Expand all
1163 if (!m_pFormFillEnv) { 1147 if (!m_pFormFillEnv) {
1164 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1148 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1165 return FALSE; 1149 return FALSE;
1166 } 1150 }
1167 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1151 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1168 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1152 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1169 1153
1170 // TODO(tonikitoo): Add support supported parameters as per 1154 // TODO(tonikitoo): Add support supported parameters as per
1171 // the PDF spec. 1155 // the PDF spec.
1172 1156
1173 int nPageNo = m_pFormFillEnv->GetSDKDocument()->GetPageCount(); 1157 int nPageNo = m_pFormFillEnv->GetPageCount();
1174 CJS_Array annots; 1158 CJS_Array annots;
1175 1159
1176 for (int i = 0; i < nPageNo; ++i) { 1160 for (int i = 0; i < nPageNo; ++i) {
1177 CPDFSDK_PageView* pPageView = 1161 CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(i);
1178 m_pFormFillEnv->GetSDKDocument()->GetPageView(i);
1179 if (!pPageView) 1162 if (!pPageView)
1180 return FALSE; 1163 return FALSE;
1181 1164
1182 CPDFSDK_AnnotIterator annotIterator(pPageView, false); 1165 CPDFSDK_AnnotIterator annotIterator(pPageView, false);
1183 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) { 1166 while (CPDFSDK_Annot* pSDKAnnotCur = annotIterator.Next()) {
1184 CPDFSDK_BAAnnot* pSDKBAAnnot = 1167 CPDFSDK_BAAnnot* pSDKBAAnnot =
1185 static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur); 1168 static_cast<CPDFSDK_BAAnnot*>(pSDKAnnotCur);
1186 if (!pSDKBAAnnot) 1169 if (!pSDKBAAnnot)
1187 return FALSE; 1170 return FALSE;
1188 1171
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 } 1368 }
1386 1369
1387 FX_BOOL Document::calculateNow(IJS_Context* cc, 1370 FX_BOOL Document::calculateNow(IJS_Context* cc,
1388 const std::vector<CJS_Value>& params, 1371 const std::vector<CJS_Value>& params,
1389 CJS_Value& vRet, 1372 CJS_Value& vRet,
1390 CFX_WideString& sError) { 1373 CFX_WideString& sError) {
1391 if (!m_pFormFillEnv) { 1374 if (!m_pFormFillEnv) {
1392 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1375 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1393 return FALSE; 1376 return FALSE;
1394 } 1377 }
1395 if (!(m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_MODIFY) || 1378 if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) ||
1396 m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_ANNOT_FORM) || 1379 m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM) ||
1397 m_pFormFillEnv->GetSDKDocument()->GetPermissions(FPDFPERM_FILL_FORM))) { 1380 m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM))) {
1398 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 1381 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
1399 return FALSE; 1382 return FALSE;
1400 } 1383 }
1401 m_pFormFillEnv->GetSDKDocument()->GetInterForm()->OnCalculate(); 1384 m_pFormFillEnv->GetInterForm()->OnCalculate();
1402 return TRUE; 1385 return TRUE;
1403 } 1386 }
1404 1387
1405 FX_BOOL Document::Collab(IJS_Context* cc, 1388 FX_BOOL Document::Collab(IJS_Context* cc,
1406 CJS_PropValue& vp, 1389 CJS_PropValue& vp,
1407 CFX_WideString& sError) { 1390 CFX_WideString& sError) {
1408 return TRUE; 1391 return TRUE;
1409 } 1392 }
1410 1393
1411 FX_BOOL Document::getPageNthWord(IJS_Context* cc, 1394 FX_BOOL Document::getPageNthWord(IJS_Context* cc,
1412 const std::vector<CJS_Value>& params, 1395 const std::vector<CJS_Value>& params,
1413 CJS_Value& vRet, 1396 CJS_Value& vRet,
1414 CFX_WideString& sError) { 1397 CFX_WideString& sError) {
1415 if (!m_pFormFillEnv) { 1398 if (!m_pFormFillEnv) {
1416 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1399 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1417 return FALSE; 1400 return FALSE;
1418 } 1401 }
1419 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions( 1402 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
1420 FPDFPERM_EXTRACT_ACCESS)) {
1421 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 1403 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
1422 return FALSE; 1404 return FALSE;
1423 } 1405 }
1424 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 1406 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1425 1407
1426 // TODO(tsepez): check maximum allowable params. 1408 // TODO(tsepez): check maximum allowable params.
1427 1409
1428 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0; 1410 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0;
1429 int nWordNo = params.size() > 1 ? params[1].ToInt(pRuntime) : 0; 1411 int nWordNo = params.size() > 1 ? params[1].ToInt(pRuntime) : 0;
1430 bool bStrip = params.size() > 2 ? params[2].ToBool(pRuntime) : true; 1412 bool bStrip = params.size() > 2 ? params[2].ToBool(pRuntime) : true;
1431 1413
1432 CPDF_Document* pDocument = m_pFormFillEnv->GetSDKDocument()->GetPDFDocument(); 1414 CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument();
1433 if (!pDocument) 1415 if (!pDocument)
1434 return FALSE; 1416 return FALSE;
1435 1417
1436 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) { 1418 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
1437 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR); 1419 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
1438 return FALSE; 1420 return FALSE;
1439 } 1421 }
1440 1422
1441 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1423 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1442 if (!pPageDict) 1424 if (!pPageDict)
(...skipping 26 matching lines...) Expand all
1469 } 1451 }
1470 1452
1471 FX_BOOL Document::getPageNthWordQuads(IJS_Context* cc, 1453 FX_BOOL Document::getPageNthWordQuads(IJS_Context* cc,
1472 const std::vector<CJS_Value>& params, 1454 const std::vector<CJS_Value>& params,
1473 CJS_Value& vRet, 1455 CJS_Value& vRet,
1474 CFX_WideString& sError) { 1456 CFX_WideString& sError) {
1475 if (!m_pFormFillEnv) { 1457 if (!m_pFormFillEnv) {
1476 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1458 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1477 return FALSE; 1459 return FALSE;
1478 } 1460 }
1479 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions( 1461 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
1480 FPDFPERM_EXTRACT_ACCESS)) {
1481 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1462 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1482 return FALSE; 1463 return FALSE;
1483 } 1464 }
1484 return FALSE; 1465 return FALSE;
1485 } 1466 }
1486 1467
1487 FX_BOOL Document::getPageNumWords(IJS_Context* cc, 1468 FX_BOOL Document::getPageNumWords(IJS_Context* cc,
1488 const std::vector<CJS_Value>& params, 1469 const std::vector<CJS_Value>& params,
1489 CJS_Value& vRet, 1470 CJS_Value& vRet,
1490 CFX_WideString& sError) { 1471 CFX_WideString& sError) {
1491 if (!m_pFormFillEnv) { 1472 if (!m_pFormFillEnv) {
1492 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1473 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1493 return FALSE; 1474 return FALSE;
1494 } 1475 }
1495 if (!m_pFormFillEnv->GetSDKDocument()->GetPermissions( 1476 if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) {
1496 FPDFPERM_EXTRACT_ACCESS)) {
1497 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 1477 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
1498 return FALSE; 1478 return FALSE;
1499 } 1479 }
1500 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 1480 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1501 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0; 1481 int nPageNo = params.size() > 0 ? params[0].ToInt(pRuntime) : 0;
1502 CPDF_Document* pDocument = m_pFormFillEnv->GetSDKDocument()->GetPDFDocument(); 1482 CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument();
1503 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) { 1483 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
1504 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR); 1484 sError = JSGetStringFromID(IDS_STRING_JSVALUEERROR);
1505 return FALSE; 1485 return FALSE;
1506 } 1486 }
1507 1487
1508 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1488 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1509 if (!pPageDict) 1489 if (!pPageDict)
1510 return FALSE; 1490 return FALSE;
1511 1491
1512 CPDF_Page page(pDocument, pPageDict, true); 1492 CPDF_Page page(pDocument, pPageDict, true);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR); 1659 sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
1680 return FALSE; 1660 return FALSE;
1681 } 1661 }
1682 if (!m_pFormFillEnv) { 1662 if (!m_pFormFillEnv) {
1683 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT); 1663 sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
1684 return FALSE; 1664 return FALSE;
1685 } 1665 }
1686 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); 1666 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
1687 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime); 1667 CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
1688 CFX_ByteString utf8Name = wideName.UTF8Encode(); 1668 CFX_ByteString utf8Name = wideName.UTF8Encode();
1689 CPDF_Document* pDocument = m_pFormFillEnv->GetSDKDocument()->GetPDFDocument(); 1669 CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument();
1690 if (!pDocument) 1670 if (!pDocument)
1691 return FALSE; 1671 return FALSE;
1692 1672
1693 CPDF_NameTree nameTree(pDocument, "Dests"); 1673 CPDF_NameTree nameTree(pDocument, "Dests");
1694 CPDF_Array* destArray = nameTree.LookupNamedDest(pDocument, utf8Name); 1674 CPDF_Array* destArray = nameTree.LookupNamedDest(pDocument, utf8Name);
1695 if (!destArray) 1675 if (!destArray)
1696 return FALSE; 1676 return FALSE;
1697 1677
1698 CPDF_Dest dest(destArray); 1678 CPDF_Dest dest(destArray);
1699 const CPDF_Array* arrayObject = ToArray(dest.GetObject()); 1679 const CPDF_Array* arrayObject = ToArray(dest.GetObject());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1735 } 1715 }
1736 } 1716 }
1737 1717
1738 for (const auto& pData : DelayDataForFieldAndControlIndex) 1718 for (const auto& pData : DelayDataForFieldAndControlIndex)
1739 Field::DoDelay(m_pFormFillEnv.Get(), pData.get()); 1719 Field::DoDelay(m_pFormFillEnv.Get(), pData.get());
1740 } 1720 }
1741 1721
1742 CJS_Document* Document::GetCJSDoc() const { 1722 CJS_Document* Document::GetCJSDoc() const {
1743 return static_cast<CJS_Document*>(m_pJSObject); 1723 return static_cast<CJS_Document*>(m_pJSObject);
1744 } 1724 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698