summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-05-25 16:12:59 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-25 16:12:59 +0000
commit4ba76201df61467928bba429ea1d8115e292072e (patch)
tree3c440b2d0eb09b7a4d3193033bcc96f0a7e20b9d
parenta2bb072a69b29695242a81e4b75c19c14c39acfb (diff)
downloadpdfium-4ba76201df61467928bba429ea1d8115e292072e.tar.xz
[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 <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
-rw-r--r--fxjs/cfxjse_formcalc_context_embeddertest.cpp19
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.cpp6
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.h1
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_element_script.cpp448
-rw-r--r--xfa/fxfa/parser/xfa_utils.cpp2
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<int32_t>(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) {