CXFA_ThisProxy is not a CXFA_Node. Fix type-checking method IsNode() to reflect this fact. Bug: chromium:983137 Change-Id: I40495cfdcf5a4a357bd5fa02185747b99a872412 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/57650 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/testing/resources/pixel/xfa_specific/bug_983137.in b/testing/resources/pixel/xfa_specific/bug_983137.in new file mode 100644 index 0000000..5b3b989 --- /dev/null +++ b/testing/resources/pixel/xfa_specific/bug_983137.in
@@ -0,0 +1,51 @@ +{{header}} +{{include ../../xfa_catalog_1_0.fragment}} +{{include ../../xfa_object_2_0.fragment}} +{{include ../../xfa_preamble_3_0.fragment}} +{{include ../../xfa_config_4_0.fragment}} +{{object 5 0}} << + {{streamlen}} +>> +stream +<template> + <subform layout="tb" name="subform1"> + <pageSet id="page" relation="orderedOccurrence"> + <occur initial="1" max="1" min="1"/> + <pageArea id="Page1" name="Page1"> + <occur max="1" min="1"/> + <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/> + <medium long="297mm" short="210mm" stock="a4"/> + </pageArea> + </pageSet> + <event activity="docReady" ref="$host"> + <script contentType="application/x-javascript"> + </script> + </event> + <subform layout="tb" name="subform2"> + <variables name="vara"> + <script contentType="application/x-javascript" name="srpt"> + var z = xfa.record.nodes; + z.append(this) + </script> + </variables> + <occur initial="1" max="10" min="0" name="occur1"> + </occur> + <field h="10mm" name="field1" w="40mm" x="10mm" y="10mm"> + <event activity="ready" ref="$form"> + <script contentType="application/x-javascript"> + var b = xfa.resolveNode("vara.srpt"); + </script> + </event> + </field> + </subform> + </subform> +</template> +endstream +endobj +{{include ../../xfa_locale_6_0.fragment}} +{{include ../../xfa_postamble_7_0.fragment}} +{{include ../../xfa_pages_8_0.fragment}} +{{xref}} +{{trailer}} +{{startxref}} +%%EOF
diff --git a/testing/resources/pixel/xfa_specific/bug_983137_expected.pdf.0.png b/testing/resources/pixel/xfa_specific/bug_983137_expected.pdf.0.png new file mode 100644 index 0000000..e4e08ee --- /dev/null +++ b/testing/resources/pixel/xfa_specific/bug_983137_expected.pdf.0.png Binary files differ
diff --git a/xfa/fxfa/parser/cxfa_object.h b/xfa/fxfa/parser/cxfa_object.h index a36531f..cfbcb13 100644 --- a/xfa/fxfa/parser/cxfa_object.h +++ b/xfa/fxfa/parser/cxfa_object.h
@@ -55,8 +55,7 @@ m_objectType == XFA_ObjectType::ModelNode || m_objectType == XFA_ObjectType::TextNode || m_objectType == XFA_ObjectType::ContainerNode || - m_objectType == XFA_ObjectType::ContentNode || - m_objectType == XFA_ObjectType::ThisProxy; + m_objectType == XFA_ObjectType::ContentNode; } bool IsTreeList() const { return m_objectType == XFA_ObjectType::TreeList; } bool IsContentNode() const {