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

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

Issue 1382683008: Merge to XFA: Store object definition ID in each js_class. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Rebase. Created 5 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
« no previous file with comments | « fpdfsdk/src/javascript/Document.h ('k') | fpdfsdk/src/javascript/Field.h » ('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 "Document.h" 7 #include "Document.h"
8 8
9 #include "../../../third_party/base/numerics/safe_math.h" 9 #include "../../../third_party/base/numerics/safe_math.h"
10 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment. 10 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment.
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 CFX_WideString wideName = params[0].ToCFXWideString(); 318 CFX_WideString wideName = params[0].ToCFXWideString();
319 319
320 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 320 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
321 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 321 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
322 if (pPDFForm->CountFields(wideName) <= 0) { 322 if (pPDFForm->CountFields(wideName) <= 0) {
323 vRet.SetNull(); 323 vRet.SetNull();
324 return TRUE; 324 return TRUE;
325 } 325 }
326 326
327 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 327 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
328 v8::Local<v8::Object> pFieldObj = 328 v8::Local<v8::Object> pFieldObj = FXJS_NewFxDynamicObj(
329 FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), pContext, 329 pRuntime->GetIsolate(), pContext, CJS_Field::g_nObjDefnID);
330 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Field"));
331 330
332 v8::Isolate* isolate = GetIsolate(cc); 331 v8::Isolate* isolate = GetIsolate(cc);
333 CJS_Field* pJSField = (CJS_Field*)FXJS_GetPrivate(isolate, pFieldObj); 332 CJS_Field* pJSField = (CJS_Field*)FXJS_GetPrivate(isolate, pFieldObj);
334 Field* pField = (Field*)pJSField->GetEmbedObject(); 333 Field* pField = (Field*)pJSField->GetEmbedObject();
335 pField->AttachField(this, wideName); 334 pField->AttachField(this, wideName);
336 335
337 vRet = pJSField; 336 vRet = pJSField;
338 return TRUE; 337 return TRUE;
339 } 338 }
340 339
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), 433 cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(),
435 cMsg.c_str()); 434 cMsg.c_str());
436 pRuntime->EndBlock(); 435 pRuntime->EndBlock();
437 return TRUE; 436 return TRUE;
438 } 437 }
439 438
440 FX_BOOL Document::print(IFXJS_Context* cc, 439 FX_BOOL Document::print(IFXJS_Context* cc,
441 const CJS_Parameters& params, 440 const CJS_Parameters& params,
442 CJS_Value& vRet, 441 CJS_Value& vRet,
443 CFX_WideString& sError) { 442 CFX_WideString& sError) {
444 CJS_Context* pContext = (CJS_Context*)cc;
445 ASSERT(pContext != NULL);
446 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
447 ASSERT(pRuntime != NULL);
448
449 FX_BOOL bUI = TRUE; 443 FX_BOOL bUI = TRUE;
450 int nStart = 0; 444 int nStart = 0;
451 int nEnd = 0; 445 int nEnd = 0;
452 FX_BOOL bSilent = FALSE; 446 FX_BOOL bSilent = FALSE;
453 FX_BOOL bShrinkToFit = FALSE; 447 FX_BOOL bShrinkToFit = FALSE;
454 FX_BOOL bPrintAsImage = FALSE; 448 FX_BOOL bPrintAsImage = FALSE;
455 FX_BOOL bReverse = FALSE; 449 FX_BOOL bReverse = FALSE;
456 FX_BOOL bAnnotations = FALSE; 450 FX_BOOL bAnnotations = FALSE;
457 451
458 int nlength = params.size(); 452 int nlength = params.size();
459 if (nlength == 9) { 453 if (nlength == 9) {
460 if (params[8].GetType() == CJS_Value::VT_fxobject) { 454 if (params[8].GetType() == CJS_Value::VT_fxobject) {
461 v8::Local<v8::Object> pObj = params[8].ToV8Object(); 455 v8::Local<v8::Object> pObj = params[8].ToV8Object();
462 { 456 {
463 if (FXJS_GetObjDefnID(pObj) == 457 if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) {
464 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"PrintParamsObj")) {
465 if (CJS_Object* pJSObj = params[8].ToCJSObject()) { 458 if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
466 if (PrintParamsObj* pprintparamsObj = 459 if (PrintParamsObj* pprintparamsObj =
467 (PrintParamsObj*)pJSObj->GetEmbedObject()) { 460 (PrintParamsObj*)pJSObj->GetEmbedObject()) {
468 bUI = pprintparamsObj->bUI; 461 bUI = pprintparamsObj->bUI;
469 nStart = pprintparamsObj->nStart; 462 nStart = pprintparamsObj->nStart;
470 nEnd = pprintparamsObj->nEnd; 463 nEnd = pprintparamsObj->nEnd;
471 bSilent = pprintparamsObj->bSilent; 464 bSilent = pprintparamsObj->bSilent;
472 bShrinkToFit = pprintparamsObj->bShrinkToFit; 465 bShrinkToFit = pprintparamsObj->bShrinkToFit;
473 bPrintAsImage = pprintparamsObj->bPrintAsImage; 466 bPrintAsImage = pprintparamsObj->bPrintAsImage;
474 bReverse = pprintparamsObj->bReverse; 467 bReverse = pprintparamsObj->bReverse;
(...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after
1403 if (params.size() != 2) { 1396 if (params.size() != 2) {
1404 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1397 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
1405 return FALSE; 1398 return FALSE;
1406 } 1399 }
1407 CFX_WideString swIconName = params[0].ToCFXWideString(); 1400 CFX_WideString swIconName = params[0].ToCFXWideString();
1408 1401
1409 if (params[1].GetType() != CJS_Value::VT_object) { 1402 if (params[1].GetType() != CJS_Value::VT_object) {
1410 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1403 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
1411 return FALSE; 1404 return FALSE;
1412 } 1405 }
1406
1413 v8::Local<v8::Object> pJSIcon = params[1].ToV8Object(); 1407 v8::Local<v8::Object> pJSIcon = params[1].ToV8Object();
1414 1408 if (FXJS_GetObjDefnID(pJSIcon) != CJS_Icon::g_nObjDefnID) {
1415 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1416 if (FXJS_GetObjDefnID(pJSIcon) !=
1417 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Icon")) {
1418 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1409 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
1419 return FALSE; 1410 return FALSE;
1420 } 1411 }
1421 1412
1422 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject(); 1413 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject();
1423 if (!pEmbedObj) { 1414 if (!pEmbedObj) {
1424 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1415 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
1425 return FALSE; 1416 return FALSE;
1426 } 1417 }
1427 1418
(...skipping 27 matching lines...) Expand all
1455 IconElement* pIconElement = NULL; 1446 IconElement* pIconElement = NULL;
1456 int iIconTreeLength = m_pIconTree->GetLength(); 1447 int iIconTreeLength = m_pIconTree->GetLength();
1457 1448
1458 CJS_Context* pContext = (CJS_Context*)cc; 1449 CJS_Context* pContext = (CJS_Context*)cc;
1459 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1450 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1460 1451
1461 for (int i = 0; i < iIconTreeLength; i++) { 1452 for (int i = 0; i < iIconTreeLength; i++) {
1462 pIconElement = (*m_pIconTree)[i]; 1453 pIconElement = (*m_pIconTree)[i];
1463 1454
1464 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( 1455 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(
1465 pRuntime->GetIsolate(), pContext, 1456 pRuntime->GetIsolate(), pContext, CJS_Icon::g_nObjDefnID);
1466 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Icon"));
1467 if (pObj.IsEmpty()) 1457 if (pObj.IsEmpty())
1468 return FALSE; 1458 return FALSE;
1469 1459
1470 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj); 1460 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj);
1471 if (!pJS_Icon) 1461 if (!pJS_Icon)
1472 return FALSE; 1462 return FALSE;
1473 1463
1474 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1464 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1475 if (!pIcon) 1465 if (!pIcon)
1476 return FALSE; 1466 return FALSE;
(...skipping 22 matching lines...) Expand all
1499 CFX_WideString swIconName = params[0].ToCFXWideString(); 1489 CFX_WideString swIconName = params[0].ToCFXWideString();
1500 int iIconCounts = m_pIconTree->GetLength(); 1490 int iIconCounts = m_pIconTree->GetLength();
1501 1491
1502 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1492 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1503 1493
1504 for (int i = 0; i < iIconCounts; i++) { 1494 for (int i = 0; i < iIconCounts; i++) {
1505 if ((*m_pIconTree)[i]->IconName == swIconName) { 1495 if ((*m_pIconTree)[i]->IconName == swIconName) {
1506 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream; 1496 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream;
1507 1497
1508 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj( 1498 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(
1509 pRuntime->GetIsolate(), pContext, 1499 pRuntime->GetIsolate(), pContext, CJS_Icon::g_nObjDefnID);
1510 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"Icon"));
1511 if (pObj.IsEmpty()) 1500 if (pObj.IsEmpty())
1512 return FALSE; 1501 return FALSE;
1513 1502
1514 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj); 1503 CJS_Icon* pJS_Icon = (CJS_Icon*)FXJS_GetPrivate(m_isolate, pObj);
1515 if (!pJS_Icon) 1504 if (!pJS_Icon)
1516 return FALSE; 1505 return FALSE;
1517 1506
1518 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1507 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1519 if (!pIcon) 1508 if (!pIcon)
1520 return FALSE; 1509 return FALSE;
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1701 return TRUE; 1690 return TRUE;
1702 } 1691 }
1703 1692
1704 FX_BOOL Document::getPrintParams(IFXJS_Context* cc, 1693 FX_BOOL Document::getPrintParams(IFXJS_Context* cc,
1705 const CJS_Parameters& params, 1694 const CJS_Parameters& params,
1706 CJS_Value& vRet, 1695 CJS_Value& vRet,
1707 CFX_WideString& sError) { 1696 CFX_WideString& sError) {
1708 CJS_Context* pContext = (CJS_Context*)cc; 1697 CJS_Context* pContext = (CJS_Context*)cc;
1709 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1698 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1710 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj( 1699 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj(
1711 pRuntime->GetIsolate(), pContext, 1700 pRuntime->GetIsolate(), pContext, CJS_PrintParamsObj::g_nObjDefnID);
1712 FXJS_GetObjDefnID(pRuntime->GetIsolate(), L"PrintParamsObj"));
1713 1701
1714 // Not implemented yet. 1702 // Not implemented yet.
1715 1703
1716 vRet = pRetObj; 1704 vRet = pRetObj;
1717 return TRUE; 1705 return TRUE;
1718 } 1706 }
1719 1707
1720 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) 1708 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF)
1721 1709
1722 int Document::CountWords(CPDF_TextObject* pTextObj) { 1710 int Document::CountWords(CPDF_TextObject* pTextObj) {
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1929 CFX_DWordArray DelArray; 1917 CFX_DWordArray DelArray;
1930 1918
1931 for (int j = DelArray.GetSize() - 1; j >= 0; j--) { 1919 for (int j = DelArray.GetSize() - 1; j >= 0; j--) {
1932 m_DelayData.RemoveAt(DelArray[j]); 1920 m_DelayData.RemoveAt(DelArray[j]);
1933 } 1921 }
1934 } 1922 }
1935 1923
1936 CJS_Document* Document::GetCJSDoc() const { 1924 CJS_Document* Document::GetCJSDoc() const {
1937 return static_cast<CJS_Document*>(m_pJSObject); 1925 return static_cast<CJS_Document*>(m_pJSObject);
1938 } 1926 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/Document.h ('k') | fpdfsdk/src/javascript/Field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698