From 4ba76201df61467928bba429ea1d8115e292072e Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Fri, 25 May 2018 16:12:59 +0000 Subject: [xfa] Add missing xfa.event.cancelAction property This CL adds the missing cancleAction property from the xfa.event object. Bug: 1066 Change-Id: I7d38956e2985c1f6ac0eba6de090874f1f72003c Reviewed-on: https://pdfium-review.googlesource.com/32950 Commit-Queue: Ryan Harrison Reviewed-by: Ryan Harrison --- fxjs/cfxjse_formcalc_context_embeddertest.cpp | 19 + fxjs/xfa/cjx_eventpseudomodel.cpp | 6 + fxjs/xfa/cjx_eventpseudomodel.h | 1 + xfa/fxfa/parser/xfa_basic_data_element_script.cpp | 448 +++++++++++----------- xfa/fxfa/parser/xfa_utils.cpp | 2 +- 5 files changed, 252 insertions(+), 224 deletions(-) diff --git a/fxjs/cfxjse_formcalc_context_embeddertest.cpp b/fxjs/cfxjse_formcalc_context_embeddertest.cpp index ba39182364..4b9d93a660 100644 --- a/fxjs/cfxjse_formcalc_context_embeddertest.cpp +++ b/fxjs/cfxjse_formcalc_context_embeddertest.cpp @@ -1554,3 +1554,22 @@ TEST_F(CFXJSE_FormCalcContextEmbedderTest, EventChangeSelection) { EXPECT_EQ(4, context->GetEventParam()->m_iSelStart); EXPECT_EQ(4, context->GetEventParam()->m_iSelEnd); } + +TEST_F(CFXJSE_FormCalcContextEmbedderTest, XFAEventCancelAction) { + ASSERT_TRUE(OpenDocument("simple_xfa.pdf")); + + CXFA_EventParam params; + params.m_bCancelAction = false; + + CFXJSE_Engine* context = GetScriptContext(); + context->SetEventParam(params); + + EXPECT_TRUE(Execute("xfa.event.cancelAction")); + + CFXJSE_Value* value = GetValue(); + EXPECT_TRUE(value->IsBoolean()); + EXPECT_FALSE(value->ToBoolean()); + + EXPECT_TRUE(Execute("xfa.event.cancelAction = \"true\"")); + EXPECT_TRUE(context->GetEventParam()->m_bCancelAction); +} diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp index 0dea7153b7..82b76fce12 100644 --- a/fxjs/xfa/cjx_eventpseudomodel.cpp +++ b/fxjs/xfa/cjx_eventpseudomodel.cpp @@ -56,6 +56,12 @@ CJX_EventPseudoModel::CJX_EventPseudoModel(CScript_EventPseudoModel* model) CJX_EventPseudoModel::~CJX_EventPseudoModel() {} +void CJX_EventPseudoModel::cancelAction(CFXJSE_Value* pValue, + bool bSetting, + XFA_Attribute eAttribute) { + Property(pValue, XFA_Event::CancelAction, bSetting); +} + void CJX_EventPseudoModel::change(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute) { diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h index 92d731c289..5d8bcc3060 100644 --- a/fxjs/xfa/cjx_eventpseudomodel.h +++ b/fxjs/xfa/cjx_eventpseudomodel.h @@ -41,6 +41,7 @@ class CJX_EventPseudoModel : public CJX_Object { JS_METHOD(emit, CJX_EventPseudoModel); JS_METHOD(reset, CJX_EventPseudoModel); + JS_PROP(cancelAction); JS_PROP(change); JS_PROP(commitKey); JS_PROP(fullText); diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp index 80a2bf3d03..3dd179e825 100644 --- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp +++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp @@ -249,229 +249,228 @@ const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[] = { {/* adjustData */ 347, 2, 316}, {/* autoSave */ 349, 2, 316}, {/* contentArea */ 351, 7, 317}, - {/* eventPseudoModel */ 358, 16, 312}, - {/* wsdlAddress */ 374, 2, 320}, - {/* solid */ 376, 2, 316}, - {/* dateTimeSymbols */ 378, 0, 316}, - {/* encryptionLevel */ 378, 2, 316}, - {/* edge */ 380, 6, 316}, - {/* stipple */ 386, 3, 316}, - {/* attributes */ 389, 2, 316}, - {/* versionControl */ 391, 4, 316}, - {/* meridiem */ 395, 0, 316}, - {/* exclGroup */ 395, 30, 316}, - {/* toolTip */ 425, 2, 320}, - {/* compress */ 427, 3, 316}, - {/* reason */ 430, 2, 320}, - {/* execute */ 432, 5, 316}, - {/* contentCopy */ 437, 2, 316}, - {/* dateTimeEdit */ 439, 3, 316}, - {/* config */ 442, 2, 316}, - {/* image */ 444, 8, 316}, - {/* #xHTML */ 452, 1, 316}, - {/* numberOfCopies */ 453, 2, 316}, - {/* behaviorOverride */ 455, 2, 316}, - {/* timeStamp */ 457, 4, 316}, - {/* month */ 461, 0, 316}, - {/* viewerPreferences */ 461, 2, 316}, - {/* scriptModel */ 463, 2, 316}, - {/* decimal */ 465, 6, 318}, - {/* subform */ 471, 31, 317}, - {/* select */ 502, 2, 320}, - {/* window */ 504, 2, 316}, - {/* localeSet */ 506, 2, 316}, - {/* handler */ 508, 4, 320}, - {/* hostPseudoModel */ 512, 11, 312}, - {/* presence */ 523, 2, 316}, - {/* record */ 525, 2, 316}, - {/* embed */ 527, 2, 316}, - {/* version */ 529, 2, 316}, - {/* command */ 531, 3, 316}, - {/* copies */ 534, 2, 316}, - {/* staple */ 536, 3, 316}, - {/* submitFormat */ 539, 3, 316}, - {/* boolean */ 542, 4, 318}, - {/* message */ 546, 4, 316}, - {/* output */ 550, 2, 316}, - {/* psMap */ 552, 0, 316}, - {/* excludeNS */ 552, 2, 316}, - {/* assist */ 554, 3, 316}, - {/* picture */ 557, 6, 316}, - {/* traversal */ 563, 2, 316}, - {/* silentPrint */ 565, 2, 316}, - {/* webClient */ 567, 3, 316}, - {/* layoutPseudoModel */ 570, 1, 312}, - {/* producer */ 571, 2, 316}, - {/* corner */ 573, 8, 316}, - {/* msgId */ 581, 2, 316}, - {/* color */ 583, 4, 316}, - {/* keep */ 587, 5, 316}, - {/* query */ 592, 3, 316}, - {/* insert */ 595, 2, 320}, - {/* imageEdit */ 597, 3, 316}, - {/* validate */ 600, 7, 316}, - {/* digestMethods */ 607, 3, 316}, - {/* numberPatterns */ 610, 0, 316}, - {/* pageSet */ 610, 4, 317}, - {/* integer */ 614, 4, 318}, - {/* soapAddress */ 618, 2, 320}, - {/* equate */ 620, 5, 316}, - {/* formFieldFilling */ 625, 2, 316}, - {/* pageRange */ 627, 2, 316}, - {/* update */ 629, 2, 320}, - {/* connectString */ 631, 2, 320}, - {/* mode */ 633, 4, 316}, - {/* layout */ 637, 2, 316}, - {/* #xml */ 639, 1, 316}, - {/* xsdConnection */ 640, 1, 316}, - {/* traverse */ 641, 4, 316}, - {/* encodings */ 645, 3, 316}, - {/* template */ 648, 2, 319}, - {/* acrobat */ 650, 2, 316}, - {/* validationMessaging */ 652, 2, 316}, - {/* signing */ 654, 3, 316}, - {/* dataWindow */ 657, 4, 312}, - {/* script */ 661, 10, 316}, - {/* addViewerPreferences */ 671, 2, 316}, - {/* alwaysEmbed */ 673, 4, 316}, - {/* passwordEdit */ 677, 4, 316}, - {/* numericEdit */ 681, 3, 316}, - {/* encryptionMethod */ 684, 2, 316}, - {/* change */ 686, 2, 316}, - {/* pageArea */ 688, 8, 317}, - {/* submitUrl */ 696, 3, 316}, - {/* oids */ 699, 3, 316}, - {/* signature */ 702, 2, 316}, - {/* ADBE_JSConsole */ 704, 2, 316}, - {/* caption */ 706, 5, 316}, - {/* relevant */ 711, 4, 316}, - {/* flipLabel */ 715, 2, 316}, - {/* exData */ 717, 8, 318}, - {/* dayNames */ 725, 1, 316}, - {/* soapAction */ 726, 2, 320}, - {/* defaultTypeface */ 728, 3, 316}, - {/* manifest */ 731, 4, 316}, - {/* overflow */ 735, 5, 316}, - {/* linear */ 740, 3, 316}, - {/* currencySymbol */ 743, 1, 316}, - {/* delete */ 744, 2, 320}, - {/* deltas */ 746, 0, 313}, - {/* digestMethod */ 746, 2, 316}, - {/* instanceManager */ 748, 3, 316}, - {/* equateRange */ 751, 5, 316}, - {/* medium */ 756, 7, 316}, - {/* textEdit */ 763, 6, 316}, - {/* templateCache */ 769, 3, 316}, - {/* compressObjectStream */ 772, 2, 316}, - {/* dataValue */ 774, 5, 316}, - {/* accessibleContent */ 779, 2, 316}, - {/* nodeList */ 781, 0, 314}, - {/* includeXDPContent */ 781, 2, 316}, - {/* xmlConnection */ 783, 1, 316}, - {/* validateApprovalSignatures */ 784, 2, 316}, - {/* signData */ 786, 5, 316}, - {/* packets */ 791, 2, 316}, - {/* datePattern */ 793, 1, 316}, - {/* duplexOption */ 794, 2, 316}, - {/* base */ 796, 2, 316}, - {/* bind */ 798, 6, 316}, - {/* compression */ 804, 2, 316}, - {/* user */ 806, 2, 320}, - {/* rectangle */ 808, 3, 316}, - {/* effectiveOutputPolicy */ 811, 4, 316}, - {/* ADBE_JSDebugger */ 815, 2, 316}, - {/* acrobat7 */ 817, 2, 316}, - {/* interactive */ 819, 2, 316}, - {/* locale */ 821, 2, 316}, - {/* currentPage */ 823, 2, 316}, - {/* data */ 825, 2, 316}, - {/* date */ 827, 4, 318}, - {/* desc */ 831, 2, 316}, - {/* encrypt */ 833, 5, 316}, - {/* draw */ 838, 20, 317}, - {/* encryption */ 858, 2, 316}, - {/* meridiemNames */ 860, 0, 316}, - {/* messaging */ 860, 2, 316}, - {/* speak */ 862, 4, 320}, - {/* dataGroup */ 866, 0, 316}, - {/* common */ 866, 2, 316}, - {/* #text */ 868, 1, 316}, - {/* paginationOverride */ 869, 2, 316}, - {/* reasons */ 871, 3, 316}, - {/* signatureProperties */ 874, 2, 316}, - {/* threshold */ 876, 2, 316}, - {/* appearanceFilter */ 878, 4, 316}, - {/* fill */ 882, 3, 316}, - {/* font */ 885, 17, 316}, - {/* form */ 902, 1, 319}, - {/* mediumInfo */ 903, 2, 316}, - {/* certificate */ 905, 2, 320}, - {/* password */ 907, 2, 320}, - {/* runScripts */ 909, 2, 316}, - {/* trace */ 911, 2, 316}, - {/* float */ 913, 4, 318}, - {/* renderPolicy */ 917, 2, 316}, - {/* logPseudoModel */ 919, 0, 312}, - {/* destination */ 919, 2, 316}, - {/* value */ 921, 4, 316}, - {/* bookend */ 925, 4, 316}, - {/* exObject */ 929, 6, 316}, - {/* openAction */ 935, 2, 316}, - {/* neverEmbed */ 937, 4, 316}, - {/* bindItems */ 941, 3, 316}, - {/* calculate */ 944, 3, 316}, - {/* print */ 947, 2, 316}, - {/* extras */ 949, 3, 316}, - {/* proto */ 952, 0, 316}, - {/* dSigData */ 952, 0, 316}, - {/* creator */ 952, 2, 316}, - {/* connect */ 954, 7, 316}, - {/* permissions */ 961, 2, 316}, - {/* connectionSet */ 963, 0, 319}, - {/* submit */ 963, 7, 316}, - {/* range */ 970, 2, 316}, - {/* linearized */ 972, 2, 316}, - {/* packet */ 974, 1, 316}, - {/* rootElement */ 975, 2, 320}, - {/* plaintextMetadata */ 977, 4, 316}, - {/* numberSymbols */ 981, 0, 316}, - {/* printHighQuality */ 981, 2, 316}, - {/* driver */ 983, 2, 316}, - {/* incrementalLoad */ 985, 4, 316}, - {/* subjectDN */ 989, 1, 316}, - {/* compressLogicalStructure */ 990, 2, 316}, - {/* incrementalMerge */ 992, 2, 316}, - {/* radial */ 994, 3, 316}, - {/* variables */ 997, 2, 317}, - {/* timePatterns */ 999, 0, 316}, - {/* effectiveInputPolicy */ 999, 4, 316}, - {/* nameAttr */ 1003, 4, 316}, - {/* conformance */ 1007, 2, 316}, - {/* transform */ 1009, 3, 316}, - {/* lockDocument */ 1012, 4, 316}, - {/* breakAfter */ 1016, 7, 316}, - {/* line */ 1023, 4, 316}, - {/* list */ 1027, 1, 313}, - {/* source */ 1028, 3, 316}, - {/* occur */ 1031, 5, 316}, - {/* pickTrayByPDFSize */ 1036, 2, 316}, - {/* monthNames */ 1038, 1, 316}, - {/* severity */ 1039, 4, 316}, - {/* groupParent */ 1043, 2, 316}, - {/* documentAssembly */ 1045, 2, 316}, - {/* numberSymbol */ 1047, 1, 316}, - {/* tagged */ 1048, 2, 316}, - {/* */ 1050, 5, 316}, - {/* */ 1055, 1, -1}, - {/* */ 1056, 1, 312}, - {/* */ 1057, 0, 313}, - {/* */ 1057, 8, 312}, - {/* */ 1065, 6, 315}, - {/* */ 1071, 0, 316}, - {/* */ 1071, 0, 316}, - {/* */ 1071, 2, 316}, - {/* */ 1073, 2, 316}, -}; + {/* eventPseudoModel */ 358, 17, 312}, + {/* wsdlAddress */ 375, 2, 320}, + {/* solid */ 377, 2, 316}, + {/* dateTimeSymbols */ 379, 0, 316}, + {/* encryptionLevel */ 379, 2, 316}, + {/* edge */ 381, 6, 316}, + {/* stipple */ 387, 3, 316}, + {/* attributes */ 390, 2, 316}, + {/* versionControl */ 392, 4, 316}, + {/* meridiem */ 396, 0, 316}, + {/* exclGroup */ 396, 30, 316}, + {/* toolTip */ 426, 2, 320}, + {/* compress */ 428, 3, 316}, + {/* reason */ 431, 2, 320}, + {/* execute */ 433, 5, 316}, + {/* contentCopy */ 438, 2, 316}, + {/* dateTimeEdit */ 440, 3, 316}, + {/* config */ 443, 2, 316}, + {/* image */ 445, 8, 316}, + {/* #xHTML */ 453, 1, 316}, + {/* numberOfCopies */ 454, 2, 316}, + {/* behaviorOverride */ 456, 2, 316}, + {/* timeStamp */ 458, 4, 316}, + {/* month */ 462, 0, 316}, + {/* viewerPreferences */ 462, 2, 316}, + {/* scriptModel */ 464, 2, 316}, + {/* decimal */ 466, 6, 318}, + {/* subform */ 472, 31, 317}, + {/* select */ 503, 2, 320}, + {/* window */ 505, 2, 316}, + {/* localeSet */ 507, 2, 316}, + {/* handler */ 509, 4, 320}, + {/* hostPseudoModel */ 513, 11, 312}, + {/* presence */ 524, 2, 316}, + {/* record */ 526, 2, 316}, + {/* embed */ 528, 2, 316}, + {/* version */ 530, 2, 316}, + {/* command */ 532, 3, 316}, + {/* copies */ 535, 2, 316}, + {/* staple */ 537, 3, 316}, + {/* submitFormat */ 540, 3, 316}, + {/* boolean */ 543, 4, 318}, + {/* message */ 547, 4, 316}, + {/* output */ 551, 2, 316}, + {/* psMap */ 553, 0, 316}, + {/* excludeNS */ 553, 2, 316}, + {/* assist */ 555, 3, 316}, + {/* picture */ 558, 6, 316}, + {/* traversal */ 564, 2, 316}, + {/* silentPrint */ 566, 2, 316}, + {/* webClient */ 568, 3, 316}, + {/* layoutPseudoModel */ 571, 1, 312}, + {/* producer */ 572, 2, 316}, + {/* corner */ 574, 8, 316}, + {/* msgId */ 582, 2, 316}, + {/* color */ 584, 4, 316}, + {/* keep */ 588, 5, 316}, + {/* query */ 593, 3, 316}, + {/* insert */ 596, 2, 320}, + {/* imageEdit */ 598, 3, 316}, + {/* validate */ 601, 7, 316}, + {/* digestMethods */ 608, 3, 316}, + {/* numberPatterns */ 611, 0, 316}, + {/* pageSet */ 611, 4, 317}, + {/* integer */ 615, 4, 318}, + {/* soapAddress */ 619, 2, 320}, + {/* equate */ 621, 5, 316}, + {/* formFieldFilling */ 626, 2, 316}, + {/* pageRange */ 628, 2, 316}, + {/* update */ 630, 2, 320}, + {/* connectString */ 632, 2, 320}, + {/* mode */ 634, 4, 316}, + {/* layout */ 638, 2, 316}, + {/* #xml */ 640, 1, 316}, + {/* xsdConnection */ 641, 1, 316}, + {/* traverse */ 642, 4, 316}, + {/* encodings */ 646, 3, 316}, + {/* template */ 649, 2, 319}, + {/* acrobat */ 651, 2, 316}, + {/* validationMessaging */ 653, 2, 316}, + {/* signing */ 655, 3, 316}, + {/* dataWindow */ 658, 4, 312}, + {/* script */ 662, 10, 316}, + {/* addViewerPreferences */ 672, 2, 316}, + {/* alwaysEmbed */ 674, 4, 316}, + {/* passwordEdit */ 678, 4, 316}, + {/* numericEdit */ 682, 3, 316}, + {/* encryptionMethod */ 685, 2, 316}, + {/* change */ 687, 2, 316}, + {/* pageArea */ 689, 8, 317}, + {/* submitUrl */ 697, 3, 316}, + {/* oids */ 700, 3, 316}, + {/* signature */ 703, 2, 316}, + {/* ADBE_JSConsole */ 705, 2, 316}, + {/* caption */ 707, 5, 316}, + {/* relevant */ 712, 4, 316}, + {/* flipLabel */ 716, 2, 316}, + {/* exData */ 718, 8, 318}, + {/* dayNames */ 726, 1, 316}, + {/* soapAction */ 727, 2, 320}, + {/* defaultTypeface */ 729, 3, 316}, + {/* manifest */ 732, 4, 316}, + {/* overflow */ 736, 5, 316}, + {/* linear */ 741, 3, 316}, + {/* currencySymbol */ 744, 1, 316}, + {/* delete */ 745, 2, 320}, + {/* deltas */ 747, 0, 313}, + {/* digestMethod */ 747, 2, 316}, + {/* instanceManager */ 749, 3, 316}, + {/* equateRange */ 752, 5, 316}, + {/* medium */ 757, 7, 316}, + {/* textEdit */ 764, 6, 316}, + {/* templateCache */ 770, 3, 316}, + {/* compressObjectStream */ 773, 2, 316}, + {/* dataValue */ 775, 5, 316}, + {/* accessibleContent */ 780, 2, 316}, + {/* nodeList */ 782, 0, 314}, + {/* includeXDPContent */ 782, 2, 316}, + {/* xmlConnection */ 784, 1, 316}, + {/* validateApprovalSignatures */ 785, 2, 316}, + {/* signData */ 787, 5, 316}, + {/* packets */ 792, 2, 316}, + {/* datePattern */ 794, 1, 316}, + {/* duplexOption */ 795, 2, 316}, + {/* base */ 797, 2, 316}, + {/* bind */ 799, 6, 316}, + {/* compression */ 805, 2, 316}, + {/* user */ 807, 2, 320}, + {/* rectangle */ 809, 3, 316}, + {/* effectiveOutputPolicy */ 812, 4, 316}, + {/* ADBE_JSDebugger */ 816, 2, 316}, + {/* acrobat7 */ 818, 2, 316}, + {/* interactive */ 820, 2, 316}, + {/* locale */ 822, 2, 316}, + {/* currentPage */ 824, 2, 316}, + {/* data */ 826, 2, 316}, + {/* date */ 828, 4, 318}, + {/* desc */ 832, 2, 316}, + {/* encrypt */ 834, 5, 316}, + {/* draw */ 839, 20, 317}, + {/* encryption */ 859, 2, 316}, + {/* meridiemNames */ 861, 0, 316}, + {/* messaging */ 861, 2, 316}, + {/* speak */ 863, 4, 320}, + {/* dataGroup */ 867, 0, 316}, + {/* common */ 867, 2, 316}, + {/* #text */ 869, 1, 316}, + {/* paginationOverride */ 870, 2, 316}, + {/* reasons */ 872, 3, 316}, + {/* signatureProperties */ 875, 2, 316}, + {/* threshold */ 877, 2, 316}, + {/* appearanceFilter */ 879, 4, 316}, + {/* fill */ 883, 3, 316}, + {/* font */ 886, 17, 316}, + {/* form */ 903, 1, 319}, + {/* mediumInfo */ 904, 2, 316}, + {/* certificate */ 906, 2, 320}, + {/* password */ 908, 2, 320}, + {/* runScripts */ 910, 2, 316}, + {/* trace */ 912, 2, 316}, + {/* float */ 914, 4, 318}, + {/* renderPolicy */ 918, 2, 316}, + {/* logPseudoModel */ 920, 0, 312}, + {/* destination */ 920, 2, 316}, + {/* value */ 922, 4, 316}, + {/* bookend */ 926, 4, 316}, + {/* exObject */ 930, 6, 316}, + {/* openAction */ 936, 2, 316}, + {/* neverEmbed */ 938, 4, 316}, + {/* bindItems */ 942, 3, 316}, + {/* calculate */ 945, 3, 316}, + {/* print */ 948, 2, 316}, + {/* extras */ 950, 3, 316}, + {/* proto */ 953, 0, 316}, + {/* dSigData */ 953, 0, 316}, + {/* creator */ 953, 2, 316}, + {/* connect */ 955, 7, 316}, + {/* permissions */ 962, 2, 316}, + {/* connectionSet */ 964, 0, 319}, + {/* submit */ 964, 7, 316}, + {/* range */ 971, 2, 316}, + {/* linearized */ 973, 2, 316}, + {/* packet */ 975, 1, 316}, + {/* rootElement */ 976, 2, 320}, + {/* plaintextMetadata */ 978, 4, 316}, + {/* numberSymbols */ 982, 0, 316}, + {/* printHighQuality */ 982, 2, 316}, + {/* driver */ 984, 2, 316}, + {/* incrementalLoad */ 986, 4, 316}, + {/* subjectDN */ 990, 1, 316}, + {/* compressLogicalStructure */ 991, 2, 316}, + {/* incrementalMerge */ 993, 2, 316}, + {/* radial */ 995, 3, 316}, + {/* variables */ 998, 2, 317}, + {/* timePatterns */ 1000, 0, 316}, + {/* effectiveInputPolicy */ 1000, 4, 316}, + {/* nameAttr */ 1004, 4, 316}, + {/* conformance */ 1008, 2, 316}, + {/* transform */ 1010, 3, 316}, + {/* lockDocument */ 1013, 4, 316}, + {/* breakAfter */ 1017, 7, 316}, + {/* line */ 1024, 4, 316}, + {/* list */ 1028, 1, 313}, + {/* source */ 1029, 3, 316}, + {/* occur */ 1032, 5, 316}, + {/* pickTrayByPDFSize */ 1037, 2, 316}, + {/* monthNames */ 1039, 1, 316}, + {/* severity */ 1040, 4, 316}, + {/* groupParent */ 1044, 2, 316}, + {/* documentAssembly */ 1046, 2, 316}, + {/* numberSymbol */ 1048, 1, 316}, + {/* tagged */ 1049, 2, 316}, + {/* */ 1051, 5, 316}, + {/* */ 1056, 1, -1}, + {/* */ 1057, 1, 312}, + {/* */ 1058, 0, 313}, + {/* */ 1058, 8, 312}, + {/* */ 1066, 6, 315}, + {/* */ 1072, 0, 316}, + {/* */ 1072, 0, 316}, + {/* */ 1072, 2, 316}, + {/* */ 1074, 2, 316}}; const int32_t g_iScriptIndexCount = sizeof(g_XFAScriptIndex) / sizeof(XFA_SCRIPTHIERARCHY); const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { @@ -1618,6 +1617,9 @@ const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::target, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, + {0xd8624e04, L"cancelAction", + (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::cancelAction, + XFA_Attribute::Unknown, XFA_ScriptType::Basic}, /* wsdlAddress */ {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_WsdlAddress::use, diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp index de0f76b6b4..9418ec8eda 100644 --- a/xfa/fxfa/parser/xfa_utils.cpp +++ b/xfa/fxfa/parser/xfa_utils.cpp @@ -570,6 +570,7 @@ const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName( if (wsAttributeName.IsEmpty()) return nullptr; + uint32_t uHash = FX_HashCode_GetW(wsAttributeName, false); int32_t iElementIndex = static_cast(eElement); while (iElementIndex != -1) { const XFA_SCRIPTHIERARCHY* scriptIndex = g_XFAScriptIndex + iElementIndex; @@ -579,7 +580,6 @@ const XFA_SCRIPTATTRIBUTEINFO* XFA_GetScriptAttributeByName( continue; } - uint32_t uHash = FX_HashCode_GetW(wsAttributeName, false); size_t iStart = scriptIndex->wAttributeStart; size_t iEnd = iStart + iCount; for (size_t iter = iStart; iter < iEnd; ++iter) { -- cgit v1.2.3