diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-12-07 22:33:43 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-12-07 22:33:43 +0000 |
commit | 93bb725b62f9779534c9444c1e1319fe8c28912e (patch) | |
tree | af0c758c1129dc076cbf67a89f1c23e4703e02bd /xfa/fxfa | |
parent | ce6979f8d064507300fe0b3a856687fb958c9a5c (diff) | |
download | pdfium-93bb725b62f9779534c9444c1e1319fe8c28912e.tar.xz |
[xfa] Move JS method information to files.chromium/3288
This CL moves the XFA SOM JS Method information out of the c-array and
into individual CJX class files.
Change-Id: I401046a06aacaf1f04e5a51eb899e479de012e15
Reviewed-on: https://pdfium-review.googlesource.com/20450
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa')
88 files changed, 683 insertions, 886 deletions
diff --git a/xfa/fxfa/cxfa_ffdoc.h b/xfa/fxfa/cxfa_ffdoc.h index 475ead3035..e1835689ec 100644 --- a/xfa/fxfa/cxfa_ffdoc.h +++ b/xfa/fxfa/cxfa_ffdoc.h @@ -17,6 +17,7 @@ class CFGAS_PDFFontMgr; class CFX_ChecksumContext; +class CPDF_Document; class CXFA_FFApp; class CXFA_FFNotify; class CXFA_FFDocView; diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h index e9f88e9c14..a258e02e38 100644 --- a/xfa/fxfa/cxfa_ffwidget.h +++ b/xfa/fxfa/cxfa_ffwidget.h @@ -19,6 +19,7 @@ class CXFA_FFPageView; class CXFA_FFDocView; class CXFA_FFDoc; class CXFA_FFApp; +class CXFA_Graphics; enum class FWL_WidgetHit; inline float XFA_UnitPx2Pt(float fPx, float fDpi) { diff --git a/xfa/fxfa/cxfa_ffwidgethandler.h b/xfa/fxfa/cxfa_ffwidgethandler.h index e2b50dc27c..1ef8854310 100644 --- a/xfa/fxfa/cxfa_ffwidgethandler.h +++ b/xfa/fxfa/cxfa_ffwidgethandler.h @@ -14,6 +14,7 @@ #include "xfa/fxfa/parser/cxfa_document.h" class CXFA_FFDocView; +class CXFA_Graphics; enum class FWL_WidgetHit; class CXFA_FFWidgetHandler { diff --git a/xfa/fxfa/cxfa_rendercontext.h b/xfa/fxfa/cxfa_rendercontext.h index 8f9ef3d0aa..411830d87a 100644 --- a/xfa/fxfa/cxfa_rendercontext.h +++ b/xfa/fxfa/cxfa_rendercontext.h @@ -11,6 +11,8 @@ #include "xfa/fxfa/fxfa.h" +class CXFA_Graphics; + class CXFA_RenderContext { public: CXFA_RenderContext(CXFA_FFPageView* pPageView, diff --git a/xfa/fxfa/fxfa.h b/xfa/fxfa/fxfa.h index b0f70f1fd7..c81a9c2b5f 100644 --- a/xfa/fxfa/fxfa.h +++ b/xfa/fxfa/fxfa.h @@ -13,19 +13,10 @@ #include "xfa/fxfa/cxfa_widgetacc.h" #include "xfa/fxfa/fxfa_basic.h" -class CFGAS_GEFont; -class CXFA_Graphics; -class CPDF_Document; class CXFA_FFPageView; -class CXFA_Node; -class CXFA_NodeList; class CXFA_WidgetAcc; class IFWL_AdapterTimerMgr; class IFX_SeekableReadStream; -class IXFA_AppProvider; -class IXFA_DocEnvironment; -class IXFA_WidgetAccIterator; -class IXFA_WidgetIterator; #define XFA_MBICON_Error 0 #define XFA_MBICON_Warning 1 diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h index 1f375cdcac..b5acd2df40 100644 --- a/xfa/fxfa/fxfa_basic.h +++ b/xfa/fxfa/fxfa_basic.h @@ -831,7 +831,7 @@ enum class XFA_Element : int32_t { CompressObjectStream, DataValue, AccessibleContent, - NodeList, + TreeList, IncludeXDPContent, XmlConnection, ValidateApprovalSignatures, @@ -939,8 +939,6 @@ enum class XFA_AttributeType : uint8_t { }; struct XFA_SCRIPTHIERARCHY { - uint16_t wMethodStart; - uint16_t wMethodCount; uint16_t wAttributeStart; uint16_t wAttributeCount; int16_t wParentIndex; diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp index c242e317f1..6534ac3605 100644 --- a/xfa/fxfa/parser/cxfa_area.cpp +++ b/xfa/fxfa/parser/cxfa_area.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_area.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0}, @@ -37,6 +40,7 @@ CXFA_Area::CXFA_Area(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Area, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_Area::~CXFA_Area() {} diff --git a/xfa/fxfa/parser/cxfa_arraynodelist.cpp b/xfa/fxfa/parser/cxfa_arraynodelist.cpp index 03966c3c6c..3b32d8f022 100644 --- a/xfa/fxfa/parser/cxfa_arraynodelist.cpp +++ b/xfa/fxfa/parser/cxfa_arraynodelist.cpp @@ -11,7 +11,7 @@ #include "third_party/base/stl_util.h" CXFA_ArrayNodeList::CXFA_ArrayNodeList(CXFA_Document* pDocument) - : CXFA_NodeList(pDocument) {} + : CXFA_TreeList(pDocument) {} CXFA_ArrayNodeList::~CXFA_ArrayNodeList() {} diff --git a/xfa/fxfa/parser/cxfa_arraynodelist.h b/xfa/fxfa/parser/cxfa_arraynodelist.h index ba00f3045e..0ebe0c6af6 100644 --- a/xfa/fxfa/parser/cxfa_arraynodelist.h +++ b/xfa/fxfa/parser/cxfa_arraynodelist.h @@ -9,17 +9,17 @@ #include <vector> -#include "xfa/fxfa/parser/cxfa_nodelist.h" +#include "xfa/fxfa/parser/cxfa_treelist.h" class CXFA_Document; class CXFA_Node; -class CXFA_ArrayNodeList : public CXFA_NodeList { +class CXFA_ArrayNodeList : public CXFA_TreeList { public: explicit CXFA_ArrayNodeList(CXFA_Document* pDocument); ~CXFA_ArrayNodeList() override; - // From CXFA_NodeList. + // From CXFA_TreeList. int32_t GetLength() override; bool Append(CXFA_Node* pNode) override; bool Insert(CXFA_Node* pNewNode, CXFA_Node* pBeforeNode) override; diff --git a/xfa/fxfa/parser/cxfa_attachnodelist.cpp b/xfa/fxfa/parser/cxfa_attachnodelist.cpp index 6340377d4d..a793e02bc4 100644 --- a/xfa/fxfa/parser/cxfa_attachnodelist.cpp +++ b/xfa/fxfa/parser/cxfa_attachnodelist.cpp @@ -10,7 +10,7 @@ CXFA_AttachNodeList::CXFA_AttachNodeList(CXFA_Document* pDocument, CXFA_Node* pAttachNode) - : CXFA_NodeList(pDocument) { + : CXFA_TreeList(pDocument) { m_pAttachNode = pAttachNode; } diff --git a/xfa/fxfa/parser/cxfa_attachnodelist.h b/xfa/fxfa/parser/cxfa_attachnodelist.h index 3bb771a476..a657150f43 100644 --- a/xfa/fxfa/parser/cxfa_attachnodelist.h +++ b/xfa/fxfa/parser/cxfa_attachnodelist.h @@ -7,16 +7,16 @@ #ifndef XFA_FXFA_PARSER_CXFA_ATTACHNODELIST_H_ #define XFA_FXFA_PARSER_CXFA_ATTACHNODELIST_H_ -#include "xfa/fxfa/parser/cxfa_nodelist.h" +#include "xfa/fxfa/parser/cxfa_treelist.h" class CXFA_Document; class CXFA_Node; -class CXFA_AttachNodeList : public CXFA_NodeList { +class CXFA_AttachNodeList : public CXFA_TreeList { public: CXFA_AttachNodeList(CXFA_Document* pDocument, CXFA_Node* pAttachNode); - // From CXFA_NodeList. + // From CXFA_TreeList. int32_t GetLength() override; bool Append(CXFA_Node* pNode) override; bool Insert(CXFA_Node* pNewNode, CXFA_Node* pBeforeNode) override; diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp index 74fe2bea74..27931b10b2 100644 --- a/xfa/fxfa/parser/cxfa_boolean.cpp +++ b/xfa/fxfa/parser/cxfa_boolean.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_boolean.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -28,6 +31,7 @@ CXFA_Boolean::CXFA_Boolean(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Boolean, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Boolean::~CXFA_Boolean() {} diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp index d512bf36b9..65d555bda9 100644 --- a/xfa/fxfa/parser/cxfa_certificate.cpp +++ b/xfa/fxfa/parser/cxfa_certificate.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_certificate.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Certificate::CXFA_Certificate(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Certificate, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Certificate::~CXFA_Certificate() {} diff --git a/xfa/fxfa/parser/cxfa_connectionset.cpp b/xfa/fxfa/parser/cxfa_connectionset.cpp index 6dc86b4ac2..78f02e0a1c 100644 --- a/xfa/fxfa/parser/cxfa_connectionset.cpp +++ b/xfa/fxfa/parser/cxfa_connectionset.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_connectionset.h" +#include "fxjs/xfa/cjx_model.h" +#include "third_party/base/ptr_util.h" + namespace { constexpr wchar_t kName[] = L"connectionSet"; @@ -21,6 +24,7 @@ CXFA_ConnectionSet::CXFA_ConnectionSet(CXFA_Document* doc, XFA_Element::ConnectionSet, nullptr, nullptr, - kName) {} + kName, + pdfium::MakeUnique<CJX_Model>(this)) {} CXFA_ConnectionSet::~CXFA_ConnectionSet() {} diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp index 45e2a3ebad..6bf1a0c3f7 100644 --- a/xfa/fxfa/parser/cxfa_contentarea.cpp +++ b/xfa/fxfa/parser/cxfa_contentarea.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_contentarea.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Desc, 1, 0}, @@ -35,6 +38,7 @@ CXFA_ContentArea::CXFA_ContentArea(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::ContentArea, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_ContentArea::~CXFA_ContentArea() {} diff --git a/xfa/fxfa/parser/cxfa_datamodel.cpp b/xfa/fxfa/parser/cxfa_datamodel.cpp index bda8ab521f..686ba4c4cc 100644 --- a/xfa/fxfa/parser/cxfa_datamodel.cpp +++ b/xfa/fxfa/parser/cxfa_datamodel.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_datamodel.h" +#include "fxjs/xfa/cjx_model.h" +#include "third_party/base/ptr_util.h" + namespace { constexpr wchar_t kName[] = L"dataModel"; @@ -20,6 +23,7 @@ CXFA_DataModel::CXFA_DataModel(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::DataModel, nullptr, nullptr, - kName) {} + kName, + pdfium::MakeUnique<CJX_Model>(this)) {} CXFA_DataModel::~CXFA_DataModel() {} diff --git a/xfa/fxfa/parser/cxfa_datawindow.cpp b/xfa/fxfa/parser/cxfa_datawindow.cpp deleted file mode 100644 index 8be722d520..0000000000 --- a/xfa/fxfa/parser/cxfa_datawindow.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_datawindow.h" - -namespace { - -constexpr wchar_t kName[] = L"dataWindow"; - -} // namespace - -CXFA_DataWindow::CXFA_DataWindow(CXFA_Document* doc, XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_Datasets, - XFA_ObjectType::Object, - XFA_Element::DataWindow, - nullptr, - nullptr, - kName) {} - -CXFA_DataWindow::~CXFA_DataWindow() {} diff --git a/xfa/fxfa/parser/cxfa_datawindow.h b/xfa/fxfa/parser/cxfa_datawindow.h deleted file mode 100644 index cd2406fc8b..0000000000 --- a/xfa/fxfa/parser/cxfa_datawindow.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_ -#define XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_DataWindow : public CXFA_Node { - public: - CXFA_DataWindow(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_DataWindow() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_DATAWINDOW_H_ diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp index 671a4d5d51..94cd872c9d 100644 --- a/xfa/fxfa/parser/cxfa_date.cpp +++ b/xfa/fxfa/parser/cxfa_date.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_date.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Date::CXFA_Date(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Date, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Date::~CXFA_Date() {} diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp index d6f99a05be..f25f8f34b0 100644 --- a/xfa/fxfa/parser/cxfa_datetime.cpp +++ b/xfa/fxfa/parser/cxfa_datetime.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_datetime.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_DateTime::CXFA_DateTime(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::DateTime, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_DateTime::~CXFA_DateTime() {} diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp index a8eaaea26a..dbdcc39afd 100644 --- a/xfa/fxfa/parser/cxfa_decimal.cpp +++ b/xfa/fxfa/parser/cxfa_decimal.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_decimal.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -29,6 +32,7 @@ CXFA_Decimal::CXFA_Decimal(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Decimal, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Decimal::~CXFA_Decimal() {} diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp index b7519e152c..ccbba37ff2 100644 --- a/xfa/fxfa/parser/cxfa_delete.cpp +++ b/xfa/fxfa/parser/cxfa_delete.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_delete.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Delete::CXFA_Delete(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Delete, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Delete::~CXFA_Delete() {} diff --git a/xfa/fxfa/parser/cxfa_delta.cpp b/xfa/fxfa/parser/cxfa_delta.cpp index 4d472b8ddb..4b5bf77d7d 100644 --- a/xfa/fxfa/parser/cxfa_delta.cpp +++ b/xfa/fxfa/parser/cxfa_delta.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_delta.h" +#include "fxjs/xfa/cjx_delta.h" +#include "third_party/base/ptr_util.h" + namespace { constexpr wchar_t kName[] = L"delta"; @@ -20,6 +23,7 @@ CXFA_Delta::CXFA_Delta(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Delta, nullptr, nullptr, - kName) {} + kName, + pdfium::MakeUnique<CJX_Delta>(this)) {} CXFA_Delta::~CXFA_Delta() {} diff --git a/xfa/fxfa/parser/cxfa_desc.cpp b/xfa/fxfa/parser/cxfa_desc.cpp index 5c9df2c166..9cda06dd47 100644 --- a/xfa/fxfa/parser/cxfa_desc.cpp +++ b/xfa/fxfa/parser/cxfa_desc.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_desc.h" +#include "fxjs/xfa/cjx_desc.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -33,6 +36,7 @@ CXFA_Desc::CXFA_Desc(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Desc, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Desc>(this)) {} CXFA_Desc::~CXFA_Desc() {} diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp index 5d4c29cf9b..1febee0aef 100644 --- a/xfa/fxfa/parser/cxfa_draw.cpp +++ b/xfa/fxfa/parser/cxfa_draw.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_draw.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -55,6 +58,7 @@ CXFA_Draw::CXFA_Draw(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Draw, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_Draw::~CXFA_Draw() {} diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp b/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp deleted file mode 100644 index b4a5fedd60..0000000000 --- a/xfa/fxfa/parser/cxfa_eventpseudomodel.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_eventpseudomodel.h" - -namespace { - -constexpr wchar_t kName[] = L"eventPseudoModel"; - -} // namespace - -CXFA_EventPseudoModel::CXFA_EventPseudoModel(CXFA_Document* doc, - XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::Object, - XFA_Element::EventPseudoModel, - nullptr, - nullptr, - kName) {} - -CXFA_EventPseudoModel::~CXFA_EventPseudoModel() {} diff --git a/xfa/fxfa/parser/cxfa_eventpseudomodel.h b/xfa/fxfa/parser/cxfa_eventpseudomodel.h deleted file mode 100644 index 018e2ea961..0000000000 --- a/xfa/fxfa/parser/cxfa_eventpseudomodel.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_ -#define XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_EventPseudoModel : public CXFA_Node { - public: - CXFA_EventPseudoModel(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_EventPseudoModel() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_EVENTPSEUDOMODEL_H_ diff --git a/xfa/fxfa/parser/cxfa_exclgroup.cpp b/xfa/fxfa/parser/cxfa_exclgroup.cpp index 745a971121..a24dc36342 100644 --- a/xfa/fxfa/parser/cxfa_exclgroup.cpp +++ b/xfa/fxfa/parser/cxfa_exclgroup.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_exclgroup.h" +#include "fxjs/xfa/cjx_exclgroup.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -57,6 +60,7 @@ CXFA_ExclGroup::CXFA_ExclGroup(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::ExclGroup, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_ExclGroup>(this)) {} CXFA_ExclGroup::~CXFA_ExclGroup() {} diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp index f189480447..437024f6db 100644 --- a/xfa/fxfa/parser/cxfa_exdata.cpp +++ b/xfa/fxfa/parser/cxfa_exdata.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_exdata.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -33,6 +36,7 @@ CXFA_ExData::CXFA_ExData(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::ExData, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_ExData::~CXFA_ExData() {} diff --git a/xfa/fxfa/parser/cxfa_field.cpp b/xfa/fxfa/parser/cxfa_field.cpp index 2b1ef0441e..56b8d59811 100644 --- a/xfa/fxfa/parser/cxfa_field.cpp +++ b/xfa/fxfa/parser/cxfa_field.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_field.h" +#include "fxjs/xfa/cjx_field.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -60,6 +63,7 @@ CXFA_Field::CXFA_Field(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Field, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Field>(this)) {} CXFA_Field::~CXFA_Field() {} diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp index b1b0116cf9..3430a83589 100644 --- a/xfa/fxfa/parser/cxfa_float.cpp +++ b/xfa/fxfa/parser/cxfa_float.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_float.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Float::CXFA_Float(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Float, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Float::~CXFA_Float() {} diff --git a/xfa/fxfa/parser/cxfa_form.cpp b/xfa/fxfa/parser/cxfa_form.cpp index 94068c4d2c..38ce7249a9 100644 --- a/xfa/fxfa/parser/cxfa_form.cpp +++ b/xfa/fxfa/parser/cxfa_form.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_form.h" +#include "fxjs/xfa/cjx_form.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -24,6 +27,7 @@ CXFA_Form::CXFA_Form(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Form, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Form>(this)) {} CXFA_Form::~CXFA_Form() {} diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp index 70f40ae6d9..4a7be948bc 100644 --- a/xfa/fxfa/parser/cxfa_handler.cpp +++ b/xfa/fxfa/parser/cxfa_handler.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_handler.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -28,6 +31,7 @@ CXFA_Handler::CXFA_Handler(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Handler, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Handler::~CXFA_Handler() {} diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp b/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp deleted file mode 100644 index af85c29142..0000000000 --- a/xfa/fxfa/parser/cxfa_hostpseudomodel.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_hostpseudomodel.h" - -namespace { - -constexpr wchar_t kName[] = L"hostPseudoModel"; - -} // namespace - -CXFA_HostPseudoModel::CXFA_HostPseudoModel(CXFA_Document* doc, - XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::Object, - XFA_Element::HostPseudoModel, - nullptr, - nullptr, - kName) {} - -CXFA_HostPseudoModel::~CXFA_HostPseudoModel() {} diff --git a/xfa/fxfa/parser/cxfa_hostpseudomodel.h b/xfa/fxfa/parser/cxfa_hostpseudomodel.h deleted file mode 100644 index 8fabd53cff..0000000000 --- a/xfa/fxfa/parser/cxfa_hostpseudomodel.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_ -#define XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_HostPseudoModel : public CXFA_Node { - public: - CXFA_HostPseudoModel(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_HostPseudoModel() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_HOSTPSEUDOMODEL_H_ diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp index 42b21eb993..a455d785d9 100644 --- a/xfa/fxfa/parser/cxfa_insert.cpp +++ b/xfa/fxfa/parser/cxfa_insert.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_insert.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Insert::CXFA_Insert(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Insert, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Insert::~CXFA_Insert() {} diff --git a/xfa/fxfa/parser/cxfa_instancemanager.cpp b/xfa/fxfa/parser/cxfa_instancemanager.cpp index bd37593440..1ba54990a3 100644 --- a/xfa/fxfa/parser/cxfa_instancemanager.cpp +++ b/xfa/fxfa/parser/cxfa_instancemanager.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_instancemanager.h" +#include "fxjs/xfa/cjx_instancemanager.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Occur, 1, 0}, @@ -27,6 +30,7 @@ CXFA_InstanceManager::CXFA_InstanceManager(CXFA_Document* doc, XFA_Element::InstanceManager, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_InstanceManager>(this)) {} CXFA_InstanceManager::~CXFA_InstanceManager() {} diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp index 7f7b9a8626..514ee4ee58 100644 --- a/xfa/fxfa/parser/cxfa_integer.cpp +++ b/xfa/fxfa/parser/cxfa_integer.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_integer.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -28,6 +31,7 @@ CXFA_Integer::CXFA_Integer(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Integer, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Integer::~CXFA_Integer() {} diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp index 05485d1951..725eb535d4 100644 --- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp +++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp @@ -2108,7 +2108,7 @@ void CXFA_ItemLayoutProcessor::ProcessUnUseBinds(CXFA_Node* pFormNode) { CXFA_Node* pBindNode = pNode->GetBindData(); if (pBindNode) { pBindNode->RemoveBindItem(pNode); - pNode->JSNode()->SetBindingNode(nullptr); + pNode->SetBindingNode(nullptr); } } pNode->SetFlag(XFA_NodeFlag_UnusedNode, true); diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp index 452a573409..9ee05314ed 100644 --- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp +++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp @@ -1699,7 +1699,7 @@ void CXFA_LayoutPageMgr::MergePageSetContents() { CXFA_Node* pBindNode = pNode->GetBindData(); if (pBindNode) { pBindNode->RemoveBindItem(pNode); - pNode->JSNode()->SetBindingNode(nullptr); + pNode->SetBindingNode(nullptr); } } pNode->SetFlag(XFA_NodeFlag_UnusedNode, true); diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp b/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp deleted file mode 100644 index cdf092d832..0000000000 --- a/xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_layoutpseudomodel.h" - -namespace { - -constexpr wchar_t kName[] = L"layoutPseudoModel"; - -} // namespace - -CXFA_LayoutPseudoModel::CXFA_LayoutPseudoModel(CXFA_Document* doc, - XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::Object, - XFA_Element::LayoutPseudoModel, - nullptr, - nullptr, - kName) {} - -CXFA_LayoutPseudoModel::~CXFA_LayoutPseudoModel() {} diff --git a/xfa/fxfa/parser/cxfa_layoutpseudomodel.h b/xfa/fxfa/parser/cxfa_layoutpseudomodel.h deleted file mode 100644 index 8ffa4bba25..0000000000 --- a/xfa/fxfa/parser/cxfa_layoutpseudomodel.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_ -#define XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_LayoutPseudoModel : public CXFA_Node { - public: - CXFA_LayoutPseudoModel(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_LayoutPseudoModel() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_LAYOUTPSEUDOMODEL_H_ diff --git a/xfa/fxfa/parser/cxfa_list.cpp b/xfa/fxfa/parser/cxfa_list.cpp index 4f8c1c8e1f..3d56cac140 100644 --- a/xfa/fxfa/parser/cxfa_list.cpp +++ b/xfa/fxfa/parser/cxfa_list.cpp @@ -6,20 +6,22 @@ #include "xfa/fxfa/parser/cxfa_list.h" -namespace { +#include <utility> -constexpr wchar_t kName[] = L"list"; +#include "core/fxcrt/fx_extension.h" +#include "fxjs/cfxjse_engine.h" +#include "fxjs/xfa/cjx_treelist.h" +#include "xfa/fxfa/parser/cxfa_document.h" +#include "xfa/fxfa/parser/cxfa_node.h" -} // namespace - -CXFA_List::CXFA_List(CXFA_Document* doc, XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::List, - XFA_Element::List, - nullptr, - nullptr, - kName) {} +CXFA_List::CXFA_List(CXFA_Document* pDocument, std::unique_ptr<CJX_Object> obj) + : CXFA_Object(pDocument, + XFA_ObjectType::List, + XFA_Element::List, + WideStringView(L"list"), + std::move(obj)) { + m_pDocument->GetScriptContext()->AddToCacheList( + std::unique_ptr<CXFA_List>(this)); +} CXFA_List::~CXFA_List() {} diff --git a/xfa/fxfa/parser/cxfa_list.h b/xfa/fxfa/parser/cxfa_list.h index c2829352cc..2141a8fb10 100644 --- a/xfa/fxfa/parser/cxfa_list.h +++ b/xfa/fxfa/parser/cxfa_list.h @@ -7,12 +7,24 @@ #ifndef XFA_FXFA_PARSER_CXFA_LIST_H_ #define XFA_FXFA_PARSER_CXFA_LIST_H_ -#include "xfa/fxfa/parser/cxfa_node.h" +#include <memory> -class CXFA_List : public CXFA_Node { +#include "xfa/fxfa/parser/cxfa_object.h" + +class CXFA_Document; + +class CXFA_List : public CXFA_Object { public: - CXFA_List(CXFA_Document* doc, XFA_PacketType packet); ~CXFA_List() override; + + virtual int32_t GetLength() = 0; + virtual bool Append(CXFA_Node* pNode) = 0; + virtual bool Insert(CXFA_Node* pNewNode, CXFA_Node* pBeforeNode) = 0; + virtual bool Remove(CXFA_Node* pNode) = 0; + virtual CXFA_Node* Item(int32_t iIndex) = 0; + + protected: + CXFA_List(CXFA_Document* doc, std::unique_ptr<CJX_Object> js_obj); }; #endif // XFA_FXFA_PARSER_CXFA_LIST_H_ diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.cpp b/xfa/fxfa/parser/cxfa_logpseudomodel.cpp deleted file mode 100644 index c8db05c476..0000000000 --- a/xfa/fxfa/parser/cxfa_logpseudomodel.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_logpseudomodel.h" - -namespace { - -constexpr wchar_t kName[] = L"logPseudoModel"; - -} // namespace - -CXFA_LogPseudoModel::CXFA_LogPseudoModel(CXFA_Document* doc, - XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::Object, - XFA_Element::LogPseudoModel, - nullptr, - nullptr, - kName) {} - -CXFA_LogPseudoModel::~CXFA_LogPseudoModel() {} diff --git a/xfa/fxfa/parser/cxfa_logpseudomodel.h b/xfa/fxfa/parser/cxfa_logpseudomodel.h deleted file mode 100644 index 7d24c42dc7..0000000000 --- a/xfa/fxfa/parser/cxfa_logpseudomodel.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_ -#define XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_LogPseudoModel : public CXFA_Node { - public: - CXFA_LogPseudoModel(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_LogPseudoModel() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_LOGPSEUDOMODEL_H_ diff --git a/xfa/fxfa/parser/cxfa_manifest.cpp b/xfa/fxfa/parser/cxfa_manifest.cpp index 243331cab5..32ec795419 100644 --- a/xfa/fxfa/parser/cxfa_manifest.cpp +++ b/xfa/fxfa/parser/cxfa_manifest.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_manifest.h" +#include "fxjs/xfa/cjx_manifest.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, @@ -31,6 +34,7 @@ CXFA_Manifest::CXFA_Manifest(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Manifest, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Manifest>(this)) {} CXFA_Manifest::~CXFA_Manifest() {} diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index b2966457b1..b404b343db 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -161,12 +161,9 @@ CXFA_Node::CXFA_Node(CXFA_Document* pDoc, XFA_Element eType, const PropertyData* properties, const AttributeData* attributes, - const WideStringView& elementName) - : CXFA_Object(pDoc, - oType, - eType, - elementName, - pdfium::MakeUnique<CJX_Node>(this)), + const WideStringView& elementName, + std::unique_ptr<CJX_Object> js_node) + : CXFA_Object(pDoc, oType, eType, elementName, std::move(js_node)), m_Properties(properties), m_Attributes(attributes), m_ValidPackets(validPackets), @@ -182,6 +179,24 @@ CXFA_Node::CXFA_Node(CXFA_Document* pDoc, ASSERT(m_pDocument); } +CXFA_Node::CXFA_Node(CXFA_Document* pDoc, + XFA_PacketType ePacket, + uint32_t validPackets, + XFA_ObjectType oType, + XFA_Element eType, + const PropertyData* properties, + const AttributeData* attributes, + const WideStringView& elementName) + : CXFA_Node(pDoc, + ePacket, + validPackets, + oType, + eType, + properties, + attributes, + elementName, + pdfium::MakeUnique<CJX_Node>(this)) {} + CXFA_Node::~CXFA_Node() { ASSERT(!m_pParent); @@ -230,7 +245,7 @@ CXFA_Node* CXFA_Node::Clone(bool bRecursive) { } } pClone->SetFlag(XFA_NodeFlag_Initialized, true); - pClone->JSNode()->SetBindingNode(nullptr); + pClone->SetBindingNode(nullptr); return pClone; } @@ -472,33 +487,32 @@ void CXFA_Node::SetTemplateNode(CXFA_Node* pTemplateNode) { CXFA_Node* CXFA_Node::GetBindData() { ASSERT(GetPacketType() == XFA_PacketType::Form); - return JSNode()->GetBindingNode(); + return GetBindingNode(); } std::vector<UnownedPtr<CXFA_Node>>* CXFA_Node::GetBindItems() { - return JSNode()->GetBindingNodes(); + return GetBindingNodes(); } int32_t CXFA_Node::AddBindItem(CXFA_Node* pFormNode) { ASSERT(pFormNode); if (BindsFormItems()) { - std::vector<UnownedPtr<CXFA_Node>>* nodes = JSNode()->GetBindingNodes(); bool found = false; - for (auto& v : *nodes) { + for (auto& v : binding_nodes_) { if (v.Get() == pFormNode) { found = true; break; } } if (!found) - nodes->emplace_back(pFormNode); - return pdfium::CollectionSize<int32_t>(*nodes); + binding_nodes_.emplace_back(pFormNode); + return pdfium::CollectionSize<int32_t>(binding_nodes_); } - CXFA_Node* pOldFormItem = JSNode()->GetBindingNode(); + CXFA_Node* pOldFormItem = GetBindingNode(); if (!pOldFormItem) { - JSNode()->SetBindingNode(pFormNode); + SetBindingNode(pFormNode); return 1; } if (pOldFormItem == pFormNode) @@ -507,7 +521,7 @@ int32_t CXFA_Node::AddBindItem(CXFA_Node* pFormNode) { std::vector<UnownedPtr<CXFA_Node>> items; items.emplace_back(pOldFormItem); items.emplace_back(pFormNode); - JSNode()->SetBindingNodes(std::move(items)); + SetBindingNodes(std::move(items)); m_uNodeFlags |= XFA_NodeFlag_BindFormItems; return 2; @@ -515,33 +529,30 @@ int32_t CXFA_Node::AddBindItem(CXFA_Node* pFormNode) { int32_t CXFA_Node::RemoveBindItem(CXFA_Node* pFormNode) { if (BindsFormItems()) { - std::vector<UnownedPtr<CXFA_Node>>* nodes = JSNode()->GetBindingNodes(); - - auto it = std::find_if(nodes->begin(), nodes->end(), + auto it = std::find_if(binding_nodes_.begin(), binding_nodes_.end(), [&pFormNode](const UnownedPtr<CXFA_Node>& node) { return node.Get() == pFormNode; }); - if (it != nodes->end()) - nodes->erase(it); + if (it != binding_nodes_.end()) + binding_nodes_.erase(it); - if (nodes->size() == 1) { + if (binding_nodes_.size() == 1) { m_uNodeFlags &= ~XFA_NodeFlag_BindFormItems; return 1; } - return pdfium::CollectionSize<int32_t>(*nodes); + return pdfium::CollectionSize<int32_t>(binding_nodes_); } - CXFA_Node* pOldFormItem = JSNode()->GetBindingNode(); + CXFA_Node* pOldFormItem = GetBindingNode(); if (pOldFormItem != pFormNode) return pOldFormItem ? 1 : 0; - JSNode()->SetBindingNode(nullptr); + SetBindingNode(nullptr); return 0; } bool CXFA_Node::HasBindItem() { - return GetPacketType() == XFA_PacketType::Datasets && - JSNode()->GetBindingNode(); + return GetPacketType() == XFA_PacketType::Datasets && GetBindingNode(); } CXFA_WidgetData* CXFA_Node::GetWidgetData() { @@ -1023,14 +1034,6 @@ int32_t CXFA_Node::GetNodeSameClassIndex() const { return pScriptContext->GetIndexByClassName(const_cast<CXFA_Node*>(this)); } -void CXFA_Node::GetSOMExpression(WideString& wsSOMExpression) { - CFXJSE_Engine* pScriptContext = m_pDocument->GetScriptContext(); - if (!pScriptContext) { - return; - } - pScriptContext->GetSomExpression(this, wsSOMExpression); -} - CXFA_Node* CXFA_Node::GetInstanceMgrOfSubform() { CXFA_Node* pInstanceMgr = nullptr; if (m_ePacket == XFA_PacketType::Form) { @@ -1086,9 +1089,10 @@ void CXFA_Node::ClearFlag(uint32_t dwFlag) { } void CXFA_Node::ReleaseBindingNodes() { - // Clear any binding nodes set on our JS node as we don't necessarily destruct - // in an order that makes sense. - JSNode()->ReleaseBindingNodes(); + // Clear any binding nodes as we don't necessarily destruct in an order that + // makes sense. + for (auto& node : binding_nodes_) + node.Release(); for (CXFA_Node* pNode = m_pChild; pNode; pNode = pNode->m_pNext) pNode->ReleaseBindingNodes(); @@ -1281,7 +1285,7 @@ void CXFA_Node::RemoveItem(CXFA_Node* pRemoveInstance, pDataParent->RemoveChild(pDataNode, true); } } - pFormNode->JSNode()->SetBindingNode(nullptr); + pFormNode->SetBindingNode(nullptr); } } @@ -1367,3 +1371,158 @@ pdfium::Optional<void*> CXFA_Node::GetDefaultValue( return {data->default_value}; return {}; } + +void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, + bool bScriptModify) { + CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor(); + if (!pLayoutPro) + return; + + CXFA_FFNotify* pNotify = GetDocument()->GetNotify(); + if (!pNotify) + return; + + if (GetPacketType() != XFA_PacketType::Form) { + pNotify->OnValueChanged(this, eAttribute, this, this); + return; + } + + bool bNeedFindContainer = false; + switch (GetElementType()) { + case XFA_Element::Caption: + bNeedFindContainer = true; + pNotify->OnValueChanged(this, eAttribute, this, + GetNodeItem(XFA_NODEITEM_Parent)); + break; + case XFA_Element::Font: + case XFA_Element::Para: { + bNeedFindContainer = true; + CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + if (pParentNode->GetElementType() == XFA_Element::Caption) { + pNotify->OnValueChanged(this, eAttribute, pParentNode, + pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); + } else { + pNotify->OnValueChanged(this, eAttribute, this, pParentNode); + } + break; + } + case XFA_Element::Margin: { + bNeedFindContainer = true; + CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + XFA_Element eParentType = pParentNode->GetElementType(); + if (pParentNode->IsContainerNode()) { + pNotify->OnValueChanged(this, eAttribute, this, pParentNode); + } else if (eParentType == XFA_Element::Caption) { + pNotify->OnValueChanged(this, eAttribute, pParentNode, + pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); + } else { + CXFA_Node* pNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); + if (pNode && pNode->GetElementType() == XFA_Element::Ui) { + pNotify->OnValueChanged(this, eAttribute, pNode, + pNode->GetNodeItem(XFA_NODEITEM_Parent)); + } + } + break; + } + case XFA_Element::Comb: { + CXFA_Node* pEditNode = GetNodeItem(XFA_NODEITEM_Parent); + XFA_Element eUIType = pEditNode->GetElementType(); + if (pEditNode && (eUIType == XFA_Element::DateTimeEdit || + eUIType == XFA_Element::NumericEdit || + eUIType == XFA_Element::TextEdit)) { + CXFA_Node* pUINode = pEditNode->GetNodeItem(XFA_NODEITEM_Parent); + if (pUINode) { + pNotify->OnValueChanged(this, eAttribute, pUINode, + pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + } + } + break; + } + case XFA_Element::Button: + case XFA_Element::Barcode: + case XFA_Element::ChoiceList: + case XFA_Element::DateTimeEdit: + case XFA_Element::NumericEdit: + case XFA_Element::PasswordEdit: + case XFA_Element::TextEdit: { + CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); + if (pUINode) { + pNotify->OnValueChanged(this, eAttribute, pUINode, + pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + } + break; + } + case XFA_Element::CheckButton: { + bNeedFindContainer = true; + CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); + if (pUINode) { + pNotify->OnValueChanged(this, eAttribute, pUINode, + pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + } + break; + } + case XFA_Element::Keep: + case XFA_Element::Bookend: + case XFA_Element::Break: + case XFA_Element::BreakAfter: + case XFA_Element::BreakBefore: + case XFA_Element::Overflow: + bNeedFindContainer = true; + break; + case XFA_Element::Area: + case XFA_Element::Draw: + case XFA_Element::ExclGroup: + case XFA_Element::Field: + case XFA_Element::Subform: + case XFA_Element::SubformSet: + pLayoutPro->AddChangedContainer(this); + pNotify->OnValueChanged(this, eAttribute, this, this); + break; + case XFA_Element::Sharptext: + case XFA_Element::Sharpxml: + case XFA_Element::SharpxHTML: { + CXFA_Node* pTextNode = GetNodeItem(XFA_NODEITEM_Parent); + if (!pTextNode) + return; + + CXFA_Node* pValueNode = pTextNode->GetNodeItem(XFA_NODEITEM_Parent); + if (!pValueNode) + return; + + XFA_Element eType = pValueNode->GetElementType(); + if (eType == XFA_Element::Value) { + bNeedFindContainer = true; + CXFA_Node* pNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); + if (pNode && pNode->IsContainerNode()) { + if (bScriptModify) + pValueNode = pNode; + + pNotify->OnValueChanged(this, eAttribute, pValueNode, pNode); + } else { + pNotify->OnValueChanged(this, eAttribute, pNode, + pNode->GetNodeItem(XFA_NODEITEM_Parent)); + } + } else { + if (eType == XFA_Element::Items) { + CXFA_Node* pNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); + if (pNode && pNode->IsContainerNode()) { + pNotify->OnValueChanged(this, eAttribute, pValueNode, pNode); + } + } + } + break; + } + default: + break; + } + + if (!bNeedFindContainer) + return; + + CXFA_Node* pParent = this; + while (pParent && !pParent->IsContainerNode()) + pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); + + if (pParent) + pLayoutPro->AddChangedContainer(pParent); +} diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index ab9f5e2806..9508daeec9 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -80,6 +80,8 @@ class CXFA_Node : public CXFA_Object { bool HasPropertyFlags(XFA_Element property, uint8_t flags) const; uint8_t PropertyOccuranceCount(XFA_Element property) const; + void SendAttributeChangeMessage(XFA_Attribute eAttribute, bool bScriptModify); + bool HasAttribute(XFA_Attribute attr) const; XFA_Attribute GetAttribute(size_t i) const; XFA_AttributeType GetAttributeType(XFA_Attribute type) const; @@ -114,7 +116,27 @@ class CXFA_Node : public CXFA_Object { bool IsLayoutGeneratedNode() const { return HasFlag(XFA_NodeFlag_LayoutGeneratedNode); } + + void SetBindingNodes(std::vector<UnownedPtr<CXFA_Node>> nodes) { + binding_nodes_ = std::move(nodes); + } + std::vector<UnownedPtr<CXFA_Node>>* GetBindingNodes() { + return &binding_nodes_; + } + void SetBindingNode(CXFA_Node* node) { + binding_nodes_.clear(); + if (node) + binding_nodes_.emplace_back(node); + } + CXFA_Node* GetBindingNode() const { + if (binding_nodes_.empty()) + return nullptr; + return binding_nodes_[0].Get(); + } + // TODO(dsinclair): This should not be needed. Nodes should get un-bound when + // they're deleted instead of us pointing to bad objects. void ReleaseBindingNodes(); + bool BindsFormItems() const { return HasFlag(XFA_NodeFlag_BindFormItems); } bool HasRemovedChildren() const { return HasFlag(XFA_NodeFlag_HasRemovedChildren); @@ -168,7 +190,6 @@ class CXFA_Node : public CXFA_Object { CXFA_Node* GetNextSameClassSibling(XFA_Element eType) const; int32_t GetNodeSameNameIndex() const; int32_t GetNodeSameClassIndex() const; - void GetSOMExpression(WideString& wsSOMExpression); CXFA_Node* GetInstanceMgrOfSubform(); CXFA_Node* GetOccurNode(); @@ -188,6 +209,15 @@ class CXFA_Node : public CXFA_Object { XFA_Element eType, const PropertyData* properties, const AttributeData* attributes, + const WideStringView& elementName, + std::unique_ptr<CJX_Object> js_node); + CXFA_Node(CXFA_Document* pDoc, + XFA_PacketType ePacket, + uint32_t validPackets, + XFA_ObjectType oType, + XFA_Element eType, + const PropertyData* properties, + const AttributeData* attributes, const WideStringView& elementName); private: @@ -212,6 +242,7 @@ class CXFA_Node : public CXFA_Object { uint16_t m_uNodeFlags; uint32_t m_dwNameHash; CXFA_Node* m_pAuxNode; + std::vector<UnownedPtr<CXFA_Node>> binding_nodes_; }; #endif // XFA_FXFA_PARSER_CXFA_NODE_H_ diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp index 2508890ff8..75e512e069 100644 --- a/xfa/fxfa/parser/cxfa_node_statics.cpp +++ b/xfa/fxfa/parser/cxfa_node_statics.cpp @@ -72,7 +72,6 @@ #include "xfa/fxfa/parser/cxfa_datagroup.h" #include "xfa/fxfa/parser/cxfa_datamodel.h" #include "xfa/fxfa/parser/cxfa_datavalue.h" -#include "xfa/fxfa/parser/cxfa_datawindow.h" #include "xfa/fxfa/parser/cxfa_date.h" #include "xfa/fxfa/parser/cxfa_datepattern.h" #include "xfa/fxfa/parser/cxfa_datepatterns.h" @@ -115,7 +114,6 @@ #include "xfa/fxfa/parser/cxfa_era.h" #include "xfa/fxfa/parser/cxfa_eranames.h" #include "xfa/fxfa/parser/cxfa_event.h" -#include "xfa/fxfa/parser/cxfa_eventpseudomodel.h" #include "xfa/fxfa/parser/cxfa_exclgroup.h" #include "xfa/fxfa/parser/cxfa_exclude.h" #include "xfa/fxfa/parser/cxfa_excludens.h" @@ -135,7 +133,6 @@ #include "xfa/fxfa/parser/cxfa_formfieldfilling.h" #include "xfa/fxfa/parser/cxfa_groupparent.h" #include "xfa/fxfa/parser/cxfa_handler.h" -#include "xfa/fxfa/parser/cxfa_hostpseudomodel.h" #include "xfa/fxfa/parser/cxfa_hyphenation.h" #include "xfa/fxfa/parser/cxfa_ifempty.h" #include "xfa/fxfa/parser/cxfa_image.h" @@ -154,17 +151,14 @@ #include "xfa/fxfa/parser/cxfa_keyusage.h" #include "xfa/fxfa/parser/cxfa_labelprinter.h" #include "xfa/fxfa/parser/cxfa_layout.h" -#include "xfa/fxfa/parser/cxfa_layoutpseudomodel.h" #include "xfa/fxfa/parser/cxfa_level.h" #include "xfa/fxfa/parser/cxfa_line.h" #include "xfa/fxfa/parser/cxfa_linear.h" #include "xfa/fxfa/parser/cxfa_linearized.h" -#include "xfa/fxfa/parser/cxfa_list.h" #include "xfa/fxfa/parser/cxfa_locale.h" #include "xfa/fxfa/parser/cxfa_localeset.h" #include "xfa/fxfa/parser/cxfa_lockdocument.h" #include "xfa/fxfa/parser/cxfa_log.h" -#include "xfa/fxfa/parser/cxfa_logpseudomodel.h" #include "xfa/fxfa/parser/cxfa_manifest.h" #include "xfa/fxfa/parser/cxfa_map.h" #include "xfa/fxfa/parser/cxfa_margin.h" @@ -253,7 +247,6 @@ #include "xfa/fxfa/parser/cxfa_sharpxml.h" #include "xfa/fxfa/parser/cxfa_signature.h" #include "xfa/fxfa/parser/cxfa_signatureproperties.h" -#include "xfa/fxfa/parser/cxfa_signaturepseudomodel.h" #include "xfa/fxfa/parser/cxfa_signdata.h" #include "xfa/fxfa/parser/cxfa_signing.h" #include "xfa/fxfa/parser/cxfa_silentprint.h" @@ -391,7 +384,6 @@ struct ElementNameInfo { {0x23e27b84 /* typefaces */, XFA_Element::Typefaces}, {0x23f4aa75 /* subjectDNs */, XFA_Element::SubjectDNs}, {0x240d5e8e /* issuers */, XFA_Element::Issuers}, - {0x2457a033 /* signaturePseudoModel */, XFA_Element::SignaturePseudoModel}, {0x24a52f8a /* wsdlConnection */, XFA_Element::WsdlConnection}, {0x254ebd07 /* debug */, XFA_Element::Debug}, {0x2655c66a /* delta */, XFA_Element::Delta}, @@ -425,7 +417,6 @@ struct ElementNameInfo { {0x3e1c91c5 /* adjustData */, XFA_Element::AdjustData}, {0x3e7a9408 /* autoSave */, XFA_Element::AutoSave}, {0x3ecead94 /* contentArea */, XFA_Element::ContentArea}, - {0x3ef334e3 /* eventPseudoModel */, XFA_Element::EventPseudoModel}, {0x3fadaec0 /* wsdlAddress */, XFA_Element::WsdlAddress}, {0x40623b5b /* solid */, XFA_Element::Solid}, {0x41f0bd76 /* dateTimeSymbols */, XFA_Element::DateTimeSymbols}, @@ -457,7 +448,6 @@ struct ElementNameInfo { {0x5436d198 /* window */, XFA_Element::Window}, {0x5473b6dc /* localeSet */, XFA_Element::LocaleSet}, {0x56ae179e /* handler */, XFA_Element::Handler}, - {0x5700bd5f /* hostPseudoModel */, XFA_Element::HostPseudoModel}, {0x570ce835 /* presence */, XFA_Element::Presence}, {0x5779d65f /* record */, XFA_Element::Record}, {0x59c8f27d /* embed */, XFA_Element::Embed}, @@ -476,7 +466,6 @@ struct ElementNameInfo { {0x67fe7334 /* traversal */, XFA_Element::Traversal}, {0x6894589c /* silentPrint */, XFA_Element::SilentPrint}, {0x68a16bbd /* webClient */, XFA_Element::WebClient}, - {0x69f115df /* layoutPseudoModel */, XFA_Element::LayoutPseudoModel}, {0x6a4bc084 /* producer */, XFA_Element::Producer}, {0x6a9e04c9 /* corner */, XFA_Element::Corner}, {0x6ccd7274 /* msgId */, XFA_Element::MsgId}, @@ -506,7 +495,6 @@ struct ElementNameInfo { {0x803d5bbc /* acrobat */, XFA_Element::Acrobat}, {0x821d6569 /* validationMessaging */, XFA_Element::ValidationMessaging}, {0x830e688f /* signing */, XFA_Element::Signing}, - {0x83a550d2 /* dataWindow */, XFA_Element::DataWindow}, {0x83dab9f5 /* script */, XFA_Element::Script}, {0x8411ebcd /* addViewerPreferences */, XFA_Element::AddViewerPreferences}, {0x8777642e /* alwaysEmbed */, XFA_Element::AlwaysEmbed}, @@ -588,7 +576,6 @@ struct ElementNameInfo { {0xd1227e6f /* trace */, XFA_Element::Trace}, {0xd1532876 /* float */, XFA_Element::Float}, {0xd17a6c30 /* renderPolicy */, XFA_Element::RenderPolicy}, - {0xd4bf6823 /* logPseudoModel */, XFA_Element::LogPseudoModel}, {0xd58aa962 /* destination */, XFA_Element::Destination}, {0xd6e27f1d /* value */, XFA_Element::Value}, {0xd7a14462 /* bookend */, XFA_Element::Bookend}, @@ -629,7 +616,6 @@ struct ElementNameInfo { {0xf1433e88 /* lockDocument */, XFA_Element::LockDocument}, {0xf54eb997 /* breakAfter */, XFA_Element::BreakAfter}, {0xf616da28 /* line */, XFA_Element::Line}, - {0xf616f3dc /* list */, XFA_Element::List}, {0xf7055fb1 /* source */, XFA_Element::Source}, {0xf7eebe1c /* occur */, XFA_Element::Occur}, {0xf8d10d97 /* pickTrayByPDFSize */, XFA_Element::PickTrayByPDFSize}, @@ -923,7 +909,6 @@ XFA_Attribute CXFA_Node::NameToAttribute(const WideStringView& name) { std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, XFA_Element element, XFA_PacketType packet) { - ASSERT(element != XFA_Element::NodeList); std::unique_ptr<CXFA_Node> node; switch (element) { case XFA_Element::Ps: @@ -1121,9 +1106,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::Issuers: node = pdfium::MakeUnique<CXFA_Issuers>(doc, packet); break; - case XFA_Element::SignaturePseudoModel: - node = pdfium::MakeUnique<CXFA_SignaturePseudoModel>(doc, packet); - break; case XFA_Element::WsdlConnection: node = pdfium::MakeUnique<CXFA_WsdlConnection>(doc, packet); break; @@ -1223,9 +1205,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::ContentArea: node = pdfium::MakeUnique<CXFA_ContentArea>(doc, packet); break; - case XFA_Element::EventPseudoModel: - node = pdfium::MakeUnique<CXFA_EventPseudoModel>(doc, packet); - break; case XFA_Element::WsdlAddress: node = pdfium::MakeUnique<CXFA_WsdlAddress>(doc, packet); break; @@ -1319,9 +1298,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::Handler: node = pdfium::MakeUnique<CXFA_Handler>(doc, packet); break; - case XFA_Element::HostPseudoModel: - node = pdfium::MakeUnique<CXFA_HostPseudoModel>(doc, packet); - break; case XFA_Element::Presence: node = pdfium::MakeUnique<CXFA_Presence>(doc, packet); break; @@ -1376,9 +1352,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::WebClient: node = pdfium::MakeUnique<CXFA_WebClient>(doc, packet); break; - case XFA_Element::LayoutPseudoModel: - node = pdfium::MakeUnique<CXFA_LayoutPseudoModel>(doc, packet); - break; case XFA_Element::Producer: node = pdfium::MakeUnique<CXFA_Producer>(doc, packet); break; @@ -1466,9 +1439,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::Signing: node = pdfium::MakeUnique<CXFA_Signing>(doc, packet); break; - case XFA_Element::DataWindow: - node = pdfium::MakeUnique<CXFA_DataWindow>(doc, packet); - break; case XFA_Element::Script: node = pdfium::MakeUnique<CXFA_Script>(doc, packet); break; @@ -1706,9 +1676,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::RenderPolicy: node = pdfium::MakeUnique<CXFA_RenderPolicy>(doc, packet); break; - case XFA_Element::LogPseudoModel: - node = pdfium::MakeUnique<CXFA_LogPseudoModel>(doc, packet); - break; case XFA_Element::Destination: node = pdfium::MakeUnique<CXFA_Destination>(doc, packet); break; @@ -1826,9 +1793,6 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::Line: node = pdfium::MakeUnique<CXFA_Line>(doc, packet); break; - case XFA_Element::List: - node = pdfium::MakeUnique<CXFA_List>(doc, packet); - break; case XFA_Element::Source: node = pdfium::MakeUnique<CXFA_Source>(doc, packet); break; @@ -1859,8 +1823,7 @@ std::unique_ptr<CXFA_Node> CXFA_Node::Create(CXFA_Document* doc, case XFA_Element::Items: node = pdfium::MakeUnique<CXFA_Items>(doc, packet); break; - case XFA_Element::Unknown: - case XFA_Element::NodeList: + default: NOTREACHED(); return nullptr; } @@ -2500,8 +2463,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"subjectDNs"; case XFA_Element::Issuers: return L"issuers"; - case XFA_Element::SignaturePseudoModel: - return L"signaturePseudoModel"; case XFA_Element::WsdlConnection: return L"wsdlConnection"; case XFA_Element::Debug: @@ -2568,8 +2529,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"autoSave"; case XFA_Element::ContentArea: return L"contentArea"; - case XFA_Element::EventPseudoModel: - return L"eventPseudoModel"; case XFA_Element::WsdlAddress: return L"wsdlAddress"; case XFA_Element::Solid: @@ -2632,8 +2591,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"localeSet"; case XFA_Element::Handler: return L"handler"; - case XFA_Element::HostPseudoModel: - return L"hostPseudoModel"; case XFA_Element::Presence: return L"presence"; case XFA_Element::Record: @@ -2670,8 +2627,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"silentPrint"; case XFA_Element::WebClient: return L"webClient"; - case XFA_Element::LayoutPseudoModel: - return L"layoutPseudoModel"; case XFA_Element::Producer: return L"producer"; case XFA_Element::Corner: @@ -2730,8 +2685,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"validationMessaging"; case XFA_Element::Signing: return L"signing"; - case XFA_Element::DataWindow: - return L"dataWindow"; case XFA_Element::Script: return L"script"; case XFA_Element::AddViewerPreferences: @@ -2890,8 +2843,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"float"; case XFA_Element::RenderPolicy: return L"renderPolicy"; - case XFA_Element::LogPseudoModel: - return L"logPseudoModel"; case XFA_Element::Destination: return L"destination"; case XFA_Element::Value: @@ -2970,8 +2921,6 @@ WideString CXFA_Node::ElementToName(XFA_Element attr) { return L"breakAfter"; case XFA_Element::Line: return L"line"; - case XFA_Element::List: - return L"list"; case XFA_Element::Source: return L"source"; case XFA_Element::Occur: diff --git a/xfa/fxfa/parser/cxfa_nodelist.h b/xfa/fxfa/parser/cxfa_nodelist.h deleted file mode 100644 index df1c46201c..0000000000 --- a/xfa/fxfa/parser/cxfa_nodelist.h +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_NODELIST_H_ -#define XFA_FXFA_PARSER_CXFA_NODELIST_H_ - -#include "fxjs/cjx_nodelist.h" -#include "xfa/fxfa/fxfa_basic.h" -#include "xfa/fxfa/parser/cxfa_object.h" - -class CXFA_Node; - -class CXFA_NodeList : public CXFA_Object { - public: - explicit CXFA_NodeList(CXFA_Document* pDocument); - ~CXFA_NodeList() override; - - CJX_NodeList* JSNodeList() { return static_cast<CJX_NodeList*>(JSObject()); } - - CXFA_Node* NamedItem(const WideStringView& wsName); - virtual int32_t GetLength() = 0; - virtual bool Append(CXFA_Node* pNode) = 0; - virtual bool Insert(CXFA_Node* pNewNode, CXFA_Node* pBeforeNode) = 0; - virtual bool Remove(CXFA_Node* pNode) = 0; - virtual CXFA_Node* Item(int32_t iIndex) = 0; -}; - -#endif // XFA_FXFA_PARSER_CXFA_NODELIST_H_ diff --git a/xfa/fxfa/parser/cxfa_object.cpp b/xfa/fxfa/parser/cxfa_object.cpp index 7823015695..93d31244f6 100644 --- a/xfa/fxfa/parser/cxfa_object.cpp +++ b/xfa/fxfa/parser/cxfa_object.cpp @@ -9,11 +9,12 @@ #include <utility> #include "core/fxcrt/fx_extension.h" +#include "fxjs/cfxjse_engine.h" #include "fxjs/cfxjse_value.h" #include "xfa/fxfa/cxfa_ffnotify.h" #include "xfa/fxfa/parser/cxfa_document.h" #include "xfa/fxfa/parser/cxfa_node.h" -#include "xfa/fxfa/parser/cxfa_nodelist.h" +#include "xfa/fxfa/parser/cxfa_treelist.h" CXFA_Object::CXFA_Object(CXFA_Document* pDocument, XFA_ObjectType objectType, @@ -30,20 +31,28 @@ CXFA_Object::CXFA_Object(CXFA_Document* pDocument, CXFA_Object::~CXFA_Object() {} +void CXFA_Object::GetSOMExpression(WideString& wsSOMExpression) { + CFXJSE_Engine* pScriptContext = m_pDocument->GetScriptContext(); + if (!pScriptContext) + return; + + pScriptContext->GetSomExpression(ToNode(this), wsSOMExpression); +} + CXFA_Node* CXFA_Object::AsNode() { return IsNode() ? static_cast<CXFA_Node*>(this) : nullptr; } -CXFA_NodeList* CXFA_Object::AsNodeList() { - return IsNodeList() ? static_cast<CXFA_NodeList*>(this) : nullptr; +CXFA_TreeList* CXFA_Object::AsTreeList() { + return IsTreeList() ? static_cast<CXFA_TreeList*>(this) : nullptr; } const CXFA_Node* CXFA_Object::AsNode() const { return IsNode() ? static_cast<const CXFA_Node*>(this) : nullptr; } -const CXFA_NodeList* CXFA_Object::AsNodeList() const { - return IsNodeList() ? static_cast<const CXFA_NodeList*>(this) : nullptr; +const CXFA_TreeList* CXFA_Object::AsTreeList() const { + return IsTreeList() ? static_cast<const CXFA_TreeList*>(this) : nullptr; } CXFA_Node* ToNode(CXFA_Object* pObj) { diff --git a/xfa/fxfa/parser/cxfa_object.h b/xfa/fxfa/parser/cxfa_object.h index a53328ddb9..ce9ce9333b 100644 --- a/xfa/fxfa/parser/cxfa_object.h +++ b/xfa/fxfa/parser/cxfa_object.h @@ -16,12 +16,12 @@ enum class XFA_ObjectType { Object, List, - NodeList, Node, NodeC, NodeV, ModelNode, TextNode, + TreeList, ContainerNode, ContentNode, VariablesThis @@ -30,7 +30,7 @@ enum class XFA_ObjectType { class CJX_Object; class CXFA_Document; class CXFA_Node; -class CXFA_NodeList; +class CXFA_TreeList; class CXFA_Object : public CFXJSE_HostObject { public: @@ -49,7 +49,7 @@ class CXFA_Object : public CFXJSE_HostObject { m_objectType == XFA_ObjectType::ContentNode || m_objectType == XFA_ObjectType::VariablesThis; } - bool IsNodeList() const { return m_objectType == XFA_ObjectType::NodeList; } + bool IsTreeList() const { return m_objectType == XFA_ObjectType::TreeList; } bool IsContentNode() const { return m_objectType == XFA_ObjectType::ContentNode; } @@ -63,10 +63,10 @@ class CXFA_Object : public CFXJSE_HostObject { } CXFA_Node* AsNode(); - CXFA_NodeList* AsNodeList(); + CXFA_TreeList* AsTreeList(); const CXFA_Node* AsNode() const; - const CXFA_NodeList* AsNodeList() const; + const CXFA_TreeList* AsTreeList() const; CJX_Object* JSObject() { return m_pJSObject.get(); } const CJX_Object* JSObject() const { return m_pJSObject.get(); } @@ -75,6 +75,8 @@ class CXFA_Object : public CFXJSE_HostObject { WideStringView GetClassName() const { return m_elementName; } uint32_t GetClassHashCode() const { return m_elementNameHash; } + void GetSOMExpression(WideString& wsSOMExpression); + protected: CXFA_Object(CXFA_Document* pDocument, XFA_ObjectType objectType, diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp index be0d12f5e5..ad61086945 100644 --- a/xfa/fxfa/parser/cxfa_oid.cpp +++ b/xfa/fxfa/parser/cxfa_oid.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_oid.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Oid::CXFA_Oid(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Oid, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Oid::~CXFA_Oid() {} diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp index 3fd753cb54..7364e96390 100644 --- a/xfa/fxfa/parser/cxfa_operation.cpp +++ b/xfa/fxfa/parser/cxfa_operation.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_operation.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -29,6 +32,7 @@ CXFA_Operation::CXFA_Operation(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Operation, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Operation::~CXFA_Operation() {} diff --git a/xfa/fxfa/parser/cxfa_packet.cpp b/xfa/fxfa/parser/cxfa_packet.cpp index 646933a9fc..6112271980 100644 --- a/xfa/fxfa/parser/cxfa_packet.cpp +++ b/xfa/fxfa/parser/cxfa_packet.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_packet.h" +#include "fxjs/xfa/cjx_packet.h" +#include "third_party/base/ptr_util.h" + namespace { constexpr wchar_t kName[] = L"packet"; @@ -20,6 +23,7 @@ CXFA_Packet::CXFA_Packet(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Packet, nullptr, nullptr, - kName) {} + kName, + pdfium::MakeUnique<CJX_Packet>(this)) {} CXFA_Packet::~CXFA_Packet() {} diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp index b9b7869f59..ef2ba9e7ed 100644 --- a/xfa/fxfa/parser/cxfa_pagearea.cpp +++ b/xfa/fxfa/parser/cxfa_pagearea.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_pagearea.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Medium, 1, 0}, @@ -41,6 +44,7 @@ CXFA_PageArea::CXFA_PageArea(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::PageArea, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_PageArea::~CXFA_PageArea() {} diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp index 9de123af12..536fec1db8 100644 --- a/xfa/fxfa/parser/cxfa_pageset.cpp +++ b/xfa/fxfa/parser/cxfa_pageset.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_pageset.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0}, @@ -35,6 +38,7 @@ CXFA_PageSet::CXFA_PageSet(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::PageSet, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_PageSet::~CXFA_PageSet() {} diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp index 1d7a60fc37..d6f70fb170 100644 --- a/xfa/fxfa/parser/cxfa_password.cpp +++ b/xfa/fxfa/parser/cxfa_password.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_password.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Password::CXFA_Password(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Password, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Password::~CXFA_Password() {} diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp index 2d8ab2c9db..befad7dc21 100644 --- a/xfa/fxfa/parser/cxfa_reason.cpp +++ b/xfa/fxfa/parser/cxfa_reason.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_reason.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Reason::CXFA_Reason(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Reason, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Reason::~CXFA_Reason() {} diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp index 51bea82254..eea1292483 100644 --- a/xfa/fxfa/parser/cxfa_ref.cpp +++ b/xfa/fxfa/parser/cxfa_ref.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_ref.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -26,6 +29,7 @@ CXFA_Ref::CXFA_Ref(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Ref, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Ref::~CXFA_Ref() {} diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp index 7f9e868fd8..5ba4ed3bb6 100644 --- a/xfa/fxfa/parser/cxfa_rootelement.cpp +++ b/xfa/fxfa/parser/cxfa_rootelement.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_rootelement.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_RootElement::CXFA_RootElement(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::RootElement, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_RootElement::~CXFA_RootElement() {} diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp index 690413b4ce..74170151a6 100644 --- a/xfa/fxfa/parser/cxfa_select.cpp +++ b/xfa/fxfa/parser/cxfa_select.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_select.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Select::CXFA_Select(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Select, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Select::~CXFA_Select() {} diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp b/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp deleted file mode 100644 index 0899e6277f..0000000000 --- a/xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "xfa/fxfa/parser/cxfa_signaturepseudomodel.h" - -namespace { - -constexpr wchar_t kName[] = L"signaturePseudoModel"; - -} // namespace - -CXFA_SignaturePseudoModel::CXFA_SignaturePseudoModel(CXFA_Document* doc, - XFA_PacketType packet) - : CXFA_Node(doc, - packet, - XFA_XDPPACKET_XDP, - XFA_ObjectType::Object, - XFA_Element::SignaturePseudoModel, - nullptr, - nullptr, - kName) {} - -CXFA_SignaturePseudoModel::~CXFA_SignaturePseudoModel() {} diff --git a/xfa/fxfa/parser/cxfa_signaturepseudomodel.h b/xfa/fxfa/parser/cxfa_signaturepseudomodel.h deleted file mode 100644 index bfb3dfb2ed..0000000000 --- a/xfa/fxfa/parser/cxfa_signaturepseudomodel.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_ -#define XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_ - -#include "xfa/fxfa/parser/cxfa_node.h" - -class CXFA_SignaturePseudoModel : public CXFA_Node { - public: - CXFA_SignaturePseudoModel(CXFA_Document* doc, XFA_PacketType packet); - ~CXFA_SignaturePseudoModel() override; -}; - -#endif // XFA_FXFA_PARSER_CXFA_SIGNATUREPSEUDOMODEL_H_ diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp index b6aa0d15ae..49c0b44af2 100644 --- a/xfa/fxfa/parser/cxfa_soapaction.cpp +++ b/xfa/fxfa/parser/cxfa_soapaction.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_soapaction.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_SoapAction::CXFA_SoapAction(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::SoapAction, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_SoapAction::~CXFA_SoapAction() {} diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp index 9e857ad291..9974a48569 100644 --- a/xfa/fxfa/parser/cxfa_soapaddress.cpp +++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_soapaddress.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_SoapAddress::CXFA_SoapAddress(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::SoapAddress, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_SoapAddress::~CXFA_SoapAddress() {} diff --git a/xfa/fxfa/parser/cxfa_source.cpp b/xfa/fxfa/parser/cxfa_source.cpp index 98f2b94973..95d37364b2 100644 --- a/xfa/fxfa/parser/cxfa_source.cpp +++ b/xfa/fxfa/parser/cxfa_source.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_source.h" +#include "fxjs/xfa/cjx_source.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Connect, 1, 0}, @@ -29,6 +32,7 @@ CXFA_Source::CXFA_Source(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Source, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Source>(this)) {} CXFA_Source::~CXFA_Source() {} diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp index 2617c3041b..79a498de9f 100644 --- a/xfa/fxfa/parser/cxfa_sourceset.cpp +++ b/xfa/fxfa/parser/cxfa_sourceset.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_sourceset.h" +#include "fxjs/xfa/cjx_model.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_SourceSet::CXFA_SourceSet(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::SourceSet, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Model>(this)) {} CXFA_SourceSet::~CXFA_SourceSet() {} diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp index b4171782ec..7b3fa367c9 100644 --- a/xfa/fxfa/parser/cxfa_speak.cpp +++ b/xfa/fxfa/parser/cxfa_speak.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_speak.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -30,6 +33,7 @@ CXFA_Speak::CXFA_Speak(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Speak, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Speak::~CXFA_Speak() {} diff --git a/xfa/fxfa/parser/cxfa_subform.cpp b/xfa/fxfa/parser/cxfa_subform.cpp index 6e932f52ce..7bb7fa7d7d 100644 --- a/xfa/fxfa/parser/cxfa_subform.cpp +++ b/xfa/fxfa/parser/cxfa_subform.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_subform.h" +#include "fxjs/xfa/cjx_subform.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -68,6 +71,7 @@ CXFA_Subform::CXFA_Subform(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Subform, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Subform>(this)) {} CXFA_Subform::~CXFA_Subform() {} diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp index 69f883879f..d29cbd4722 100644 --- a/xfa/fxfa/parser/cxfa_subformset.cpp +++ b/xfa/fxfa/parser/cxfa_subformset.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_subformset.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -35,6 +38,7 @@ CXFA_SubformSet::CXFA_SubformSet(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::SubformSet, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_SubformSet::~CXFA_SubformSet() {} diff --git a/xfa/fxfa/parser/cxfa_template.cpp b/xfa/fxfa/parser/cxfa_template.cpp index d847bf8e0c..3f9afa17b8 100644 --- a/xfa/fxfa/parser/cxfa_template.cpp +++ b/xfa/fxfa/parser/cxfa_template.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_template.h" +#include "fxjs/xfa/cjx_template.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -33,6 +36,7 @@ CXFA_Template::CXFA_Template(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Template, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Template>(this)) {} CXFA_Template::~CXFA_Template() {} diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp index 80b4eb2d7c..883cdacfa0 100644 --- a/xfa/fxfa/parser/cxfa_text.cpp +++ b/xfa/fxfa/parser/cxfa_text.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_text.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -30,6 +33,7 @@ CXFA_Text::CXFA_Text(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Text, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Text::~CXFA_Text() {} diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp index e4c8705432..808ee8327b 100644 --- a/xfa/fxfa/parser/cxfa_time.cpp +++ b/xfa/fxfa/parser/cxfa_time.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_time.h" +#include "fxjs/xfa/cjx_content.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Time::CXFA_Time(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Time, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Content>(this)) {} CXFA_Time::~CXFA_Time() {} diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp index a8721bf936..4abcdb96c5 100644 --- a/xfa/fxfa/parser/cxfa_tooltip.cpp +++ b/xfa/fxfa/parser/cxfa_tooltip.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_tooltip.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_ToolTip::CXFA_ToolTip(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::ToolTip, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_ToolTip::~CXFA_ToolTip() {} diff --git a/xfa/fxfa/parser/cxfa_nodelist.cpp b/xfa/fxfa/parser/cxfa_treelist.cpp index e05062ff88..520818c94a 100644 --- a/xfa/fxfa/parser/cxfa_nodelist.cpp +++ b/xfa/fxfa/parser/cxfa_treelist.cpp @@ -1,32 +1,29 @@ -// Copyright 2016 PDFium Authors. All rights reserved. +// Copyright 2017 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/fxfa/parser/cxfa_nodelist.h" +#include "xfa/fxfa/parser/cxfa_treelist.h" #include <memory> #include "core/fxcrt/fx_extension.h" #include "fxjs/cfxjse_engine.h" -#include "fxjs/cjx_nodelist.h" +#include "fxjs/xfa/cjx_treelist.h" #include "xfa/fxfa/parser/cxfa_document.h" +#include "xfa/fxfa/parser/cxfa_list.h" #include "xfa/fxfa/parser/cxfa_node.h" -CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument) - : CXFA_Object(pDocument, - XFA_ObjectType::NodeList, - XFA_Element::NodeList, - WideStringView(L"nodeList"), - pdfium::MakeUnique<CJX_NodeList>(this)) { +CXFA_TreeList::CXFA_TreeList(CXFA_Document* pDocument) + : CXFA_List(pDocument, pdfium::MakeUnique<CJX_TreeList>(this)) { m_pDocument->GetScriptContext()->AddToCacheList( - std::unique_ptr<CXFA_NodeList>(this)); + std::unique_ptr<CXFA_TreeList>(this)); } -CXFA_NodeList::~CXFA_NodeList() {} +CXFA_TreeList::~CXFA_TreeList() {} -CXFA_Node* CXFA_NodeList::NamedItem(const WideStringView& wsName) { +CXFA_Node* CXFA_TreeList::NamedItem(const WideStringView& wsName) { uint32_t dwHashCode = FX_HashCode_GetW(wsName, false); int32_t iCount = GetLength(); for (int32_t i = 0; i < iCount; i++) { diff --git a/xfa/fxfa/parser/cxfa_treelist.h b/xfa/fxfa/parser/cxfa_treelist.h new file mode 100644 index 0000000000..890fc89507 --- /dev/null +++ b/xfa/fxfa/parser/cxfa_treelist.h @@ -0,0 +1,26 @@ +// Copyright 2017 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_FXFA_PARSER_CXFA_TREELIST_H_ +#define XFA_FXFA_PARSER_CXFA_TREELIST_H_ + +#include "fxjs/xfa/cjx_treelist.h" +#include "xfa/fxfa/fxfa_basic.h" +#include "xfa/fxfa/parser/cxfa_list.h" + +class CXFA_Node; + +class CXFA_TreeList : public CXFA_List { + public: + explicit CXFA_TreeList(CXFA_Document* pDocument); + ~CXFA_TreeList() override; + + CJX_TreeList* JSNodeList() { return static_cast<CJX_TreeList*>(JSObject()); } + + CXFA_Node* NamedItem(const WideStringView& wsName); +}; + +#endif // XFA_FXFA_PARSER_CXFA_TREELIST_H_ diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp index f9f9d1c8e7..8c5f6b4911 100644 --- a/xfa/fxfa/parser/cxfa_update.cpp +++ b/xfa/fxfa/parser/cxfa_update.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_update.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_Update::CXFA_Update(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Update, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Update::~CXFA_Update() {} diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp index 6cdffceabb..2732ea6703 100644 --- a/xfa/fxfa/parser/cxfa_uri.cpp +++ b/xfa/fxfa/parser/cxfa_uri.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_uri.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -29,6 +32,7 @@ CXFA_Uri::CXFA_Uri(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Uri, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_Uri::~CXFA_Uri() {} diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp index b8a7bda7c0..7a31c4bf3a 100644 --- a/xfa/fxfa/parser/cxfa_user.cpp +++ b/xfa/fxfa/parser/cxfa_user.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_user.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_User::CXFA_User(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::User, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_User::~CXFA_User() {} diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp index 1942fb29ea..157c294bd6 100644 --- a/xfa/fxfa/parser/cxfa_variables.cpp +++ b/xfa/fxfa/parser/cxfa_variables.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_variables.h" +#include "fxjs/xfa/cjx_container.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -26,6 +29,7 @@ CXFA_Variables::CXFA_Variables(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Variables, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Container>(this)) {} CXFA_Variables::~CXFA_Variables() {} diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp index 94707bc063..2a27cbf237 100644 --- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp +++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_wsdladdress.h" +#include "fxjs/xfa/cjx_textnode.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -27,6 +30,7 @@ CXFA_WsdlAddress::CXFA_WsdlAddress(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::WsdlAddress, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_TextNode>(this)) {} CXFA_WsdlAddress::~CXFA_WsdlAddress() {} diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp index 4c68a7ce68..6159f49b97 100644 --- a/xfa/fxfa/parser/cxfa_wsdlconnection.cpp +++ b/xfa/fxfa/parser/cxfa_wsdlconnection.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_wsdlconnection.h" +#include "fxjs/xfa/cjx_wsdlconnection.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::PropertyData kPropertyData[] = { @@ -34,6 +37,7 @@ CXFA_WsdlConnection::CXFA_WsdlConnection(CXFA_Document* doc, XFA_Element::WsdlConnection, kPropertyData, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_WsdlConnection>(this)) {} CXFA_WsdlConnection::~CXFA_WsdlConnection() {} diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp index cd7f0ce106..08658296da 100644 --- a/xfa/fxfa/parser/cxfa_xfa.cpp +++ b/xfa/fxfa/parser/cxfa_xfa.cpp @@ -6,6 +6,9 @@ #include "xfa/fxfa/parser/cxfa_xfa.h" +#include "fxjs/xfa/cjx_model.h" +#include "third_party/base/ptr_util.h" + namespace { const CXFA_Node::AttributeData kAttributeData[] = { @@ -25,6 +28,7 @@ CXFA_Xfa::CXFA_Xfa(CXFA_Document* doc, XFA_PacketType packet) XFA_Element::Xfa, nullptr, kAttributeData, - kName) {} + kName, + pdfium::MakeUnique<CJX_Model>(this)) {} CXFA_Xfa::~CXFA_Xfa() {} diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h index 02fbc99392..b394d35fe5 100644 --- a/xfa/fxfa/parser/xfa_basic_data.h +++ b/xfa/fxfa/parser/xfa_basic_data.h @@ -17,9 +17,6 @@ extern const int32_t g_iXFAEnumCount; extern const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[]; extern const int32_t g_iScriptIndexCount; -extern const XFA_METHODINFO g_SomMethodData[]; -extern const int32_t g_iSomMethodCount; - extern const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[]; extern const int32_t g_iSomAttributeCount; diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp index 112db1efb5..865bf8d1ef 100644 --- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp +++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp @@ -12,381 +12,97 @@ #include "fxjs/cjx_layoutpseudomodel.h" #include "fxjs/cjx_logpseudomodel.h" #include "fxjs/cjx_node.h" -#include "fxjs/cjx_nodelist.h" #include "fxjs/cjx_signaturepseudomodel.h" +#include "fxjs/xfa/cjx_tree.h" +#include "fxjs/xfa/cjx_treelist.h" #include "xfa/fxfa/fxfa_basic.h" const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[] = { - {0, 0, 0, 2, 316}, {0, 0, 2, 2, 316}, {0, 0, 4, 2, 316}, - {0, 0, 6, 8, 316}, {0, 0, 14, 4, 316}, {0, 0, 18, 5, 317}, - {0, 0, 23, 2, 316}, {0, 0, 25, 1, 316}, {0, 0, 26, 12, 316}, - {0, 0, 38, 2, 316}, {0, 0, 40, 1, 316}, {0, 0, 41, 3, 316}, - {0, 0, 44, 2, 316}, {0, 0, 46, 6, 316}, {0, 0, 52, 0, 316}, - {0, 0, 52, 2, 319}, {0, 0, 54, 2, 316}, {0, 0, 56, 6, 316}, - {0, 0, 62, 0, 316}, {0, 0, 62, 0, 316}, {0, 0, 62, 2, 316}, - {0, 0, 64, 2, 316}, {0, 0, 66, 6, 316}, {0, 0, 72, 4, 316}, - {0, 0, 76, 7, 316}, {0, 0, 83, 2, 320}, {0, 0, 85, 3, 316}, - {0, 0, 88, 3, 316}, {0, 0, 91, 2, 320}, {0, 0, 93, 6, 320}, - {0, 0, 99, 4, 316}, {0, 0, 103, 2, 316}, {0, 0, 105, 3, 319}, - {0, 0, 108, 4, 316}, {0, 0, 112, 3, 316}, {0, 0, 115, 2, 316}, - {0, 0, 117, 6, 316}, {0, 0, 123, 12, 316}, {0, 0, 135, 2, 316}, - {0, 0, 137, 5, 316}, {0, 0, 142, 2, 316}, {0, 0, 144, 3, 316}, - {0, 0, 147, 1, 316}, {0, 0, 148, 14, 316}, {0, 0, 162, 2, 316}, - {0, 0, 164, 2, 316}, {0, 0, 166, 3, 316}, {0, 0, 169, 2, 316}, - {0, 0, 171, 2, 316}, {0, 0, 173, 2, 316}, {0, 0, 175, 4, 316}, - {0, 0, 179, 2, 316}, {0, 0, 181, 2, 316}, {0, 0, 183, 0, 319}, - {0, 0, 183, 20, 316}, {0, 0, 203, 1, 316}, {0, 0, 204, 3, 316}, - {0, 0, 207, 2, 316}, {0, 0, 209, 0, 316}, {0, 0, 209, 2, 316}, - {0, 0, 211, 2, 316}, {0, 0, 213, 4, 320}, {0, 0, 217, 0, 316}, - {0, 0, 217, 1, 316}, {0, 0, 218, 3, 316}, {0, 4, 221, 0, 312}, - {4, 1, 221, 1, 316}, {5, 0, 222, 2, 316}, {5, 1, 224, 3, -1}, - {6, 0, 227, 0, 316}, {6, 0, 227, 2, 316}, {6, 0, 229, 2, 316}, - {6, 0, 231, 3, 316}, {6, 0, 234, 2, 316}, {6, 0, 236, 6, 316}, - {6, 0, 242, 10, 317}, {6, 0, 252, 9, 316}, {6, 0, 261, 5, 318}, - {6, 0, 266, 4, 318}, {6, 0, 270, 2, 316}, {6, 0, 272, 2, 316}, - {6, 0, 274, 5, 316}, {6, 0, 279, 3, 316}, {6, 0, 282, 2, 316}, - {6, 0, 284, 2, 316}, {6, 0, 286, 2, 316}, {6, 0, 288, 2, 316}, - {6, 0, 290, 4, 316}, {6, 0, 294, 3, 316}, {6, 0, 297, 3, 316}, - {6, 0, 300, 2, 316}, {6, 0, 302, 2, 316}, {6, 0, 304, 2, 316}, - {6, 13, 306, 36, 317}, {19, 0, 342, 3, 316}, {19, 0, 345, 2, 316}, - {19, 0, 347, 2, 316}, {19, 0, 349, 2, 316}, {19, 0, 351, 7, 317}, - {19, 2, 358, 16, 312}, {21, 0, 374, 2, 320}, {21, 0, 376, 2, 316}, - {21, 0, 378, 0, 316}, {21, 0, 378, 2, 316}, {21, 0, 380, 6, 316}, - {21, 0, 386, 3, 316}, {21, 0, 389, 2, 316}, {21, 0, 391, 4, 316}, - {21, 0, 395, 0, 316}, {21, 5, 395, 30, 316}, {26, 0, 425, 2, 320}, - {26, 0, 427, 3, 316}, {26, 0, 430, 2, 320}, {26, 0, 432, 5, 316}, - {26, 0, 437, 2, 316}, {26, 0, 439, 3, 316}, {26, 0, 442, 2, 316}, - {26, 0, 444, 8, 316}, {26, 0, 452, 1, 316}, {26, 0, 453, 2, 316}, - {26, 0, 455, 2, 316}, {26, 0, 457, 4, 316}, {26, 0, 461, 0, 316}, - {26, 0, 461, 2, 316}, {26, 0, 463, 2, 316}, {26, 0, 465, 6, 318}, - {26, 5, 471, 31, 317}, {31, 0, 502, 2, 320}, {31, 0, 504, 2, 316}, - {31, 0, 506, 2, 316}, {31, 0, 508, 4, 320}, {31, 16, 512, 11, 312}, - {47, 0, 523, 2, 316}, {47, 0, 525, 2, 316}, {47, 0, 527, 2, 316}, - {47, 0, 529, 2, 316}, {47, 0, 531, 3, 316}, {47, 0, 534, 2, 316}, - {47, 0, 536, 3, 316}, {47, 0, 539, 3, 316}, {47, 0, 542, 4, 318}, - {47, 0, 546, 4, 316}, {47, 0, 550, 2, 316}, {47, 0, 552, 0, 316}, - {47, 0, 552, 2, 316}, {47, 0, 554, 3, 316}, {47, 0, 557, 6, 316}, - {47, 0, 563, 2, 316}, {47, 0, 565, 2, 316}, {47, 0, 567, 3, 316}, - {47, 19, 570, 1, 312}, {66, 0, 571, 2, 316}, {66, 0, 573, 8, 316}, - {66, 0, 581, 2, 316}, {66, 0, 583, 4, 316}, {66, 0, 587, 5, 316}, - {66, 0, 592, 3, 316}, {66, 0, 595, 2, 320}, {66, 0, 597, 3, 316}, - {66, 0, 600, 7, 316}, {66, 0, 607, 3, 316}, {66, 0, 610, 0, 316}, - {66, 0, 610, 4, 317}, {66, 0, 614, 4, 318}, {66, 0, 618, 2, 320}, - {66, 0, 620, 5, 316}, {66, 0, 625, 2, 316}, {66, 0, 627, 2, 316}, - {66, 0, 629, 2, 320}, {66, 0, 631, 2, 320}, {66, 0, 633, 4, 316}, - {66, 0, 637, 2, 316}, {66, 0, 639, 1, 316}, {66, 0, 640, 1, 316}, - {66, 0, 641, 4, 316}, {66, 0, 645, 3, 316}, {66, 7, 648, 2, 319}, - {73, 0, 650, 2, 316}, {73, 0, 652, 2, 316}, {73, 0, 654, 3, 316}, - {73, 4, 657, 4, 312}, {77, 0, 661, 10, 316}, {77, 0, 671, 2, 316}, - {77, 0, 673, 4, 316}, {77, 0, 677, 4, 316}, {77, 0, 681, 3, 316}, - {77, 0, 684, 2, 316}, {77, 0, 686, 2, 316}, {77, 0, 688, 8, 317}, - {77, 0, 696, 3, 316}, {77, 0, 699, 3, 316}, {77, 0, 702, 2, 316}, - {77, 0, 704, 2, 316}, {77, 0, 706, 5, 316}, {77, 0, 711, 4, 316}, - {77, 0, 715, 2, 316}, {77, 0, 717, 8, 318}, {77, 0, 725, 1, 316}, - {77, 0, 726, 2, 320}, {77, 0, 728, 3, 316}, {77, 1, 731, 4, 316}, - {78, 0, 735, 5, 316}, {78, 0, 740, 3, 316}, {78, 0, 743, 1, 316}, - {78, 0, 744, 2, 320}, {78, 0, 746, 0, 313}, {78, 0, 746, 2, 316}, - {78, 5, 748, 3, 316}, {83, 0, 751, 5, 316}, {83, 0, 756, 7, 316}, - {83, 0, 763, 6, 316}, {83, 0, 769, 3, 316}, {83, 0, 772, 2, 316}, - {83, 0, 774, 5, 316}, {83, 0, 779, 2, 316}, {83, 0, 781, 0, 314}, - {83, 0, 781, 2, 316}, {83, 0, 783, 1, 316}, {83, 0, 784, 2, 316}, - {83, 0, 786, 5, 316}, {83, 0, 791, 2, 316}, {83, 0, 793, 1, 316}, - {83, 0, 794, 2, 316}, {83, 0, 796, 2, 316}, {83, 0, 798, 6, 316}, - {83, 0, 804, 2, 316}, {83, 0, 806, 2, 320}, {83, 0, 808, 3, 316}, - {83, 0, 811, 4, 316}, {83, 0, 815, 2, 316}, {83, 0, 817, 2, 316}, - {83, 0, 819, 2, 316}, {83, 0, 821, 2, 316}, {83, 0, 823, 2, 316}, - {83, 0, 825, 2, 316}, {83, 0, 827, 4, 318}, {83, 1, 831, 2, 316}, - {84, 0, 833, 5, 316}, {84, 0, 838, 20, 317}, {84, 0, 858, 2, 316}, - {84, 0, 860, 0, 316}, {84, 0, 860, 2, 316}, {84, 0, 862, 4, 320}, - {84, 0, 866, 0, 316}, {84, 0, 866, 2, 316}, {84, 0, 868, 1, 316}, - {84, 0, 869, 2, 316}, {84, 0, 871, 3, 316}, {84, 0, 874, 2, 316}, - {84, 0, 876, 2, 316}, {84, 0, 878, 4, 316}, {84, 0, 882, 3, 316}, - {84, 0, 885, 17, 316}, {84, 6, 902, 1, 319}, {90, 0, 903, 2, 316}, - {90, 0, 905, 2, 320}, {90, 0, 907, 2, 320}, {90, 0, 909, 2, 316}, - {90, 0, 911, 2, 316}, {90, 0, 913, 4, 318}, {90, 0, 917, 2, 316}, - {90, 5, 919, 0, 312}, {95, 0, 919, 2, 316}, {95, 0, 921, 4, 316}, - {95, 0, 925, 4, 316}, {95, 0, 929, 6, 316}, {95, 0, 935, 2, 316}, - {95, 0, 937, 4, 316}, {95, 0, 941, 3, 316}, {95, 0, 944, 3, 316}, - {95, 0, 947, 2, 316}, {95, 0, 949, 3, 316}, {95, 0, 952, 0, 316}, - {95, 0, 952, 0, 316}, {95, 0, 952, 2, 316}, {95, 0, 954, 7, 316}, - {95, 0, 961, 2, 316}, {95, 0, 963, 0, 319}, {95, 0, 963, 7, 316}, - {95, 0, 970, 2, 316}, {95, 0, 972, 2, 316}, {95, 3, 974, 1, 316}, - {98, 0, 975, 2, 320}, {98, 0, 977, 4, 316}, {98, 0, 981, 0, 316}, - {98, 0, 981, 2, 316}, {98, 0, 983, 2, 316}, {98, 0, 985, 4, 316}, - {98, 0, 989, 1, 316}, {98, 0, 990, 2, 316}, {98, 0, 992, 2, 316}, - {98, 0, 994, 3, 316}, {98, 0, 997, 2, 317}, {98, 0, 999, 0, 316}, - {98, 0, 999, 4, 316}, {98, 0, 1003, 4, 316}, {98, 0, 1007, 2, 316}, - {98, 0, 1009, 3, 316}, {98, 0, 1012, 4, 316}, {98, 0, 1016, 7, 316}, - {98, 0, 1023, 4, 316}, {98, 0, 1027, 1, 313}, {98, 17, 1028, 3, 316}, - {115, 0, 1031, 5, 316}, {115, 0, 1036, 2, 316}, {115, 0, 1038, 1, 316}, - {115, 0, 1039, 4, 316}, {115, 0, 1043, 2, 316}, {115, 0, 1045, 2, 316}, - {115, 0, 1047, 1, 316}, {115, 0, 1048, 2, 316}, {115, 0, 1050, 5, 316}, - {115, 0, 1055, 1, -1}, {115, 4, 1056, 1, 312}, {119, 1, 1057, 0, 313}, - {120, 2, 1057, 8, 312}, {122, 11, 1065, 6, 315}, {133, 2, 1071, 0, 316}, - {135, 0, 1071, 0, 316}, {135, 3, 1071, 2, 316}, {138, 0, 1073, 2, 316}, + {0, 2, 316}, {2, 2, 316}, {4, 2, 316}, {6, 8, 316}, + {14, 4, 316}, {18, 5, 317}, {23, 2, 316}, {25, 1, 316}, + {26, 12, 316}, {38, 2, 316}, {40, 1, 316}, {41, 3, 316}, + {44, 2, 316}, {46, 6, 316}, {52, 0, 316}, {52, 2, 319}, + {54, 2, 316}, {56, 6, 316}, {62, 0, 316}, {62, 0, 316}, + {62, 2, 316}, {64, 2, 316}, {66, 6, 316}, {72, 4, 316}, + {76, 7, 316}, {83, 2, 320}, {85, 3, 316}, {88, 3, 316}, + {91, 2, 320}, {93, 6, 320}, {99, 4, 316}, {103, 2, 316}, + {105, 3, 319}, {108, 4, 316}, {112, 3, 316}, {115, 2, 316}, + {117, 6, 316}, {123, 12, 316}, {135, 2, 316}, {137, 5, 316}, + {142, 2, 316}, {144, 3, 316}, {147, 1, 316}, {148, 14, 316}, + {162, 2, 316}, {164, 2, 316}, {166, 3, 316}, {169, 2, 316}, + {171, 2, 316}, {173, 2, 316}, {175, 4, 316}, {179, 2, 316}, + {181, 2, 316}, {183, 0, 319}, {183, 20, 316}, {203, 1, 316}, + {204, 3, 316}, {207, 2, 316}, {209, 0, 316}, {209, 2, 316}, + {211, 2, 316}, {213, 4, 320}, {217, 0, 316}, {217, 1, 316}, + {218, 3, 316}, {221, 0, 312}, {221, 1, 316}, {222, 2, 316}, + {224, 3, -1}, {227, 0, 316}, {227, 2, 316}, {229, 2, 316}, + {231, 3, 316}, {234, 2, 316}, {236, 6, 316}, {242, 10, 317}, + {252, 9, 316}, {261, 5, 318}, {266, 4, 318}, {270, 2, 316}, + {272, 2, 316}, {274, 5, 316}, {279, 3, 316}, {282, 2, 316}, + {284, 2, 316}, {286, 2, 316}, {288, 2, 316}, {290, 4, 316}, + {294, 3, 316}, {297, 3, 316}, {300, 2, 316}, {302, 2, 316}, + {304, 2, 316}, {306, 36, 317}, {342, 3, 316}, {345, 2, 316}, + {347, 2, 316}, {349, 2, 316}, {351, 7, 317}, {358, 16, 312}, + {374, 2, 320}, {376, 2, 316}, {378, 0, 316}, {378, 2, 316}, + {380, 6, 316}, {386, 3, 316}, {389, 2, 316}, {391, 4, 316}, + {395, 0, 316}, {395, 30, 316}, {425, 2, 320}, {427, 3, 316}, + {430, 2, 320}, {432, 5, 316}, {437, 2, 316}, {439, 3, 316}, + {442, 2, 316}, {444, 8, 316}, {452, 1, 316}, {453, 2, 316}, + {455, 2, 316}, {457, 4, 316}, {461, 0, 316}, {461, 2, 316}, + {463, 2, 316}, {465, 6, 318}, {471, 31, 317}, {502, 2, 320}, + {504, 2, 316}, {506, 2, 316}, {508, 4, 320}, {512, 11, 312}, + {523, 2, 316}, {525, 2, 316}, {527, 2, 316}, {529, 2, 316}, + {531, 3, 316}, {534, 2, 316}, {536, 3, 316}, {539, 3, 316}, + {542, 4, 318}, {546, 4, 316}, {550, 2, 316}, {552, 0, 316}, + {552, 2, 316}, {554, 3, 316}, {557, 6, 316}, {563, 2, 316}, + {565, 2, 316}, {567, 3, 316}, {570, 1, 312}, {571, 2, 316}, + {573, 8, 316}, {581, 2, 316}, {583, 4, 316}, {587, 5, 316}, + {592, 3, 316}, {595, 2, 320}, {597, 3, 316}, {600, 7, 316}, + {607, 3, 316}, {610, 0, 316}, {610, 4, 317}, {614, 4, 318}, + {618, 2, 320}, {620, 5, 316}, {625, 2, 316}, {627, 2, 316}, + {629, 2, 320}, {631, 2, 320}, {633, 4, 316}, {637, 2, 316}, + {639, 1, 316}, {640, 1, 316}, {641, 4, 316}, {645, 3, 316}, + {648, 2, 319}, {650, 2, 316}, {652, 2, 316}, {654, 3, 316}, + {657, 4, 312}, {661, 10, 316}, {671, 2, 316}, {673, 4, 316}, + {677, 4, 316}, {681, 3, 316}, {684, 2, 316}, {686, 2, 316}, + {688, 8, 317}, {696, 3, 316}, {699, 3, 316}, {702, 2, 316}, + {704, 2, 316}, {706, 5, 316}, {711, 4, 316}, {715, 2, 316}, + {717, 8, 318}, {725, 1, 316}, {726, 2, 320}, {728, 3, 316}, + {731, 4, 316}, {735, 5, 316}, {740, 3, 316}, {743, 1, 316}, + {744, 2, 320}, {746, 0, 313}, {746, 2, 316}, {748, 3, 316}, + {751, 5, 316}, {756, 7, 316}, {763, 6, 316}, {769, 3, 316}, + {772, 2, 316}, {774, 5, 316}, {779, 2, 316}, {781, 0, 314}, + {781, 2, 316}, {783, 1, 316}, {784, 2, 316}, {786, 5, 316}, + {791, 2, 316}, {793, 1, 316}, {794, 2, 316}, {796, 2, 316}, + {798, 6, 316}, {804, 2, 316}, {806, 2, 320}, {808, 3, 316}, + {811, 4, 316}, {815, 2, 316}, {817, 2, 316}, {819, 2, 316}, + {821, 2, 316}, {823, 2, 316}, {825, 2, 316}, {827, 4, 318}, + {831, 2, 316}, {833, 5, 316}, {838, 20, 317}, {858, 2, 316}, + {860, 0, 316}, {860, 2, 316}, {862, 4, 320}, {866, 0, 316}, + {866, 2, 316}, {868, 1, 316}, {869, 2, 316}, {871, 3, 316}, + {874, 2, 316}, {876, 2, 316}, {878, 4, 316}, {882, 3, 316}, + {885, 17, 316}, {902, 1, 319}, {903, 2, 316}, {905, 2, 320}, + {907, 2, 320}, {909, 2, 316}, {911, 2, 316}, {913, 4, 318}, + {917, 2, 316}, {919, 0, 312}, {919, 2, 316}, {921, 4, 316}, + {925, 4, 316}, {929, 6, 316}, {935, 2, 316}, {937, 4, 316}, + {941, 3, 316}, {944, 3, 316}, {947, 2, 316}, {949, 3, 316}, + {952, 0, 316}, {952, 0, 316}, {952, 2, 316}, {954, 7, 316}, + {961, 2, 316}, {963, 0, 319}, {963, 7, 316}, {970, 2, 316}, + {972, 2, 316}, {974, 1, 316}, {975, 2, 320}, {977, 4, 316}, + {981, 0, 316}, {981, 2, 316}, {983, 2, 316}, {985, 4, 316}, + {989, 1, 316}, {990, 2, 316}, {992, 2, 316}, {994, 3, 316}, + {997, 2, 317}, {999, 0, 316}, {999, 4, 316}, {1003, 4, 316}, + {1007, 2, 316}, {1009, 3, 316}, {1012, 4, 316}, {1016, 7, 316}, + {1023, 4, 316}, {1027, 1, 313}, {1028, 3, 316}, {1031, 5, 316}, + {1036, 2, 316}, {1038, 1, 316}, {1039, 4, 316}, {1043, 2, 316}, + {1045, 2, 316}, {1047, 1, 316}, {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}, }; const int32_t g_iScriptIndexCount = sizeof(g_XFAScriptIndex) / sizeof(XFA_SCRIPTHIERARCHY); -const XFA_METHODINFO g_SomMethodData[] = { - {0x3c752495, L"verify", - (XFA_METHOD_CALLBACK)&CJX_SignaturePseudoModel::Verify}, - {0xa68635f1, L"sign", (XFA_METHOD_CALLBACK)&CJX_SignaturePseudoModel::Sign}, - {0xa7f2c5e6, L"enumerate", - (XFA_METHOD_CALLBACK)&CJX_SignaturePseudoModel::Enumerate}, - {0xd8ed1467, L"clear", - (XFA_METHOD_CALLBACK)&CJX_SignaturePseudoModel::Clear}, - {0x4bdcce13, L"execute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_WsdlConnection_Execute}, - {0x1c296ba4, L"restore", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Delta_Restore}, - {0x7d123a9, L"clearItems", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_ClearItems}, - {0xfb0b007, L"execEvent", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_ExecEvent}, - {0x6716ce97, L"execInitialize", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_ExecInitialize}, - {0x7bb919c2, L"deleteItem", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_DeleteItem}, - {0x9f053d5e, L"getSaveItem", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_GetSaveItem}, - {0xbbd32747, L"boundItem", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_BoundItem}, - {0xc492d950, L"getItemState", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_GetItemState}, - {0xc6013cd3, L"execCalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_ExecCalculate}, - {0xd8930d0e, L"setItems", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_SetItems}, - {0xe0f15045, L"getDisplayItem", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_GetDisplayItem}, - {0xe23acddc, L"setItemState", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_SetItemState}, - {0xe2dfb2f8, L"addItem", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_AddItem}, - {0xef8ce48f, L"execValidate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Field_ExecValidate}, - {0x461079ef, L"emit", (XFA_METHOD_CALLBACK)&CJX_EventPseudoModel::Emit}, - {0xfec90c63, L"reset", (XFA_METHOD_CALLBACK)&CJX_EventPseudoModel::Reset}, - {0xfb0b007, L"execEvent", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ExclGroup_ExecEvent}, - {0x3d832221, L"selectedMember", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ExclGroup_SelectedMember}, - {0x6716ce97, L"execInitialize", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ExclGroup_ExecInitialize}, - {0xc6013cd3, L"execCalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ExclGroup_ExecCalculate}, - {0xef8ce48f, L"execValidate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ExclGroup_ExecValidate}, - {0xfb0b007, L"execEvent", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Subform_ExecEvent}, - {0x6716ce97, L"execInitialize", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Subform_ExecInitialize}, - {0xc6013cd3, L"execCalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Subform_ExecCalculate}, - {0xd9b9b1f1, L"getInvalidObjects", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Subform_GetInvalidObjects}, - {0xef8ce48f, L"execValidate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Subform_ExecValidate}, - {0xa366b7c, L"exportData", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::ExportData}, - {0x16cc226c, L"gotoURL", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::GotoURL}, - {0x1e0722f5, L"pageDown", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::PageDown}, - {0x3e66cb2c, L"setFocus", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::SetFocus}, - {0x4ac9faae, L"openList", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::OpenList}, - {0x7b89714f, L"response", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::Response}, - {0x7fd9fd58, L"documentInBatch", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::DocumentInBatch}, - {0xaf1d019d, L"resetData", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::ResetData}, - {0xb07be13c, L"beep", (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::Beep}, - {0xb1882ca0, L"getFocus", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::GetFocus}, - {0xbf4ba9ee, L"messageBox", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::MessageBox}, - {0xd6d4dbc1, L"documentCountInBatch", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::DocumentCountInBatch}, - {0xdd7676ed, L"print", (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::Print}, - {0xe2f863d0, L"currentDateTime", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::CurrentDateTime}, - {0xf995d0f5, L"importData", - (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::ImportData}, - {0xfeb96b62, L"pageUp", (XFA_METHOD_CALLBACK)&CJX_HostPseudoModel::PageUp}, - {0x68, L"h", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::H}, - {0x77, L"w", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::W}, - {0x78, L"x", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::X}, - {0x79, L"y", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::Y}, - {0x5460206, L"pageCount", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::PageCount}, - {0x5eb5b0f, L"pageSpan", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::PageSpan}, - {0x10f1b1bd, L"page", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::Page}, - {0x1c1e6318, L"pageContent", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::PageContent}, - {0x1c1f4a5c, L"absPageCount", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::AbsPageCount}, - {0x1ec47db5, L"absPageCountInBatch", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::AbsPageCountInBatch}, - {0x2e4ecbdb, L"sheetCountInBatch", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::SheetCountInBatch}, - {0x2fcff4b5, L"relayout", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::Relayout}, - {0x3bf1c2a5, L"absPageSpan", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::AbsPageSpan}, - {0x5775c2cc, L"absPageInBatch", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::AbsPageInBatch}, - {0x8c5feb32, L"sheetInBatch", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::SheetInBatch}, - {0x8f3a8379, L"sheet", (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::Sheet}, - {0x96f3c4cb, L"relayoutPageArea", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::RelayoutPageArea}, - {0xd2a4a542, L"sheetCount", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::SheetCount}, - {0xe74f0653, L"absPage", - (XFA_METHOD_CALLBACK)&CJX_LayoutPseudoModel::AbsPage}, - {0x44c352ad, L"formNodes", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_FormNodes}, - {0x45efb847, L"remerge", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_Remerge}, - {0x6716ce97, L"execInitialize", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_ExecInitialize}, - {0x712c6afa, L"createNode", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_CreateNode}, - {0xa8a35e25, L"recalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_Recalculate}, - {0xc6013cd3, L"execCalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_ExecCalculate}, - {0xef8ce48f, L"execValidate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Template_ExecValidate}, - {0x4cc1c0f9, L"moveCurrentRecord", - (XFA_METHOD_CALLBACK)&CJX_DataWindow::MoveCurrentRecord}, - {0x5779d65f, L"record", (XFA_METHOD_CALLBACK)&CJX_DataWindow::Record}, - {0x8a476498, L"gotoRecord", - (XFA_METHOD_CALLBACK)&CJX_DataWindow::GotoRecord}, - {0xaac241c8, L"isRecordGroup", - (XFA_METHOD_CALLBACK)&CJX_DataWindow::IsRecordGroup}, - {0x1c6f4277, L"evaluate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Manifest_Evaluate}, - {0x2afec2cc, L"moveInstance", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_InstanceManager_MoveInstance}, - {0x2bf94a63, L"removeInstance", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_InstanceManager_RemoveInstance}, - {0x303adaf4, L"setInstances", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_InstanceManager_SetInstances}, - {0x4d76b89e, L"addInstance", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_InstanceManager_AddInstance}, - {0xc660dc8a, L"insertInstance", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_InstanceManager_InsertInstance}, - {0xddfd1ea1, L"metadata", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Desc_Metadata}, - {0x44c352ad, L"formNodes", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_FormNodes}, - {0x45efb847, L"remerge", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_Remerge}, - {0x6716ce97, L"execInitialize", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_ExecInitialize}, - {0xa8a35e25, L"recalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_Recalculate}, - {0xc6013cd3, L"execCalculate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_ExecCalculate}, - {0xef8ce48f, L"execValidate", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Form_ExecValidate}, - {0x60490a85, L"message", (XFA_METHOD_CALLBACK)&CJX_LogPseudoModel::Message}, - {0x60ecfcc9, L"traceDeactivate", - (XFA_METHOD_CALLBACK)&CJX_LogPseudoModel::TraceDeactivate}, - {0x86a0f4c0, L"traceActivate", - (XFA_METHOD_CALLBACK)&CJX_LogPseudoModel::TraceActivate}, - {0x93eac39a, L"traceEnabled", - (XFA_METHOD_CALLBACK)&CJX_LogPseudoModel::TraceEnabled}, - {0xd1227e6f, L"trace", (XFA_METHOD_CALLBACK)&CJX_LogPseudoModel::Trace}, - {0x36c0ee14, L"getAttribute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Packet_GetAttribute}, - {0x5468e2a0, L"setAttribute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Packet_SetAttribute}, - {0xadc48de2, L"removeAttribute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Packet_RemoveAttribute}, - {0x3848b3f, L"next", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Next}, - {0x14e25bc8, L"cancelBatch", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_CancelBatch}, - {0x3ce05d68, L"first", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_First}, - {0x649e1e65, L"updateBatch", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_UpdateBatch}, - {0x6a3405dd, L"previous", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Previous}, - {0x74818fb3, L"isBOF", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_IsBOF}, - {0x74d07a76, L"isEOF", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_IsEOF}, - {0x7613cb66, L"cancel", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Cancel}, - {0x7baca2e3, L"update", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Update}, - {0x8b90e1f2, L"open", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Open}, - {0x9c6471b3, L"delete", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Delete}, - {0xa7315093, L"addNew", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_AddNew}, - {0xa7ce5f8d, L"requery", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Requery}, - {0xc7368674, L"resync", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Resync}, - {0xd9f47f36, L"close", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Close}, - {0xf54481d4, L"last", (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_Last}, - {0xf7965460, L"hasDataChanged", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_Source_HasDataChanged}, - {0x6275f6af, L"item", - (XFA_METHOD_CALLBACK)&CJX_NodeList::Script_ListClass_Item}, - {0x7033bfd5, L"insert", - (XFA_METHOD_CALLBACK)&CJX_NodeList::Script_ListClass_Insert}, - {0x9cab7cae, L"remove", - (XFA_METHOD_CALLBACK)&CJX_NodeList::Script_ListClass_Remove}, - {0xda12e518, L"append", - (XFA_METHOD_CALLBACK)&CJX_NodeList::Script_ListClass_Append}, - {0xd892a054, L"namedItem", - (XFA_METHOD_CALLBACK)&CJX_NodeList::Script_TreelistClass_NamedItem}, - {0xba2dd386, L"resolveNode", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_TreeClass_ResolveNode}, - {0xe509e2b9, L"resolveNodes", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_TreeClass_ResolveNodes}, - {0x1bca1ebd, L"applyXSL", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_ApplyXSL}, - {0x36c0ee14, L"getAttribute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_GetAttribute}, - {0x5468e2a0, L"setAttribute", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_SetAttribute}, - {0x5ee00996, L"setElement", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_SetElement}, - {0x92dada4f, L"saveFilteredXML", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_SaveFilteredXML}, - {0x9c456500, L"saveXML", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_SaveXML}, - {0xabd3200a, L"getElement", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_GetElement}, - {0xb269c60d, L"isPropertySpecified", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_IsPropertySpecified}, - {0xb528be91, L"loadXML", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_LoadXML}, - {0xd9f46591, L"clone", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_Clone}, - {0xe006a76b, L"assignNode", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_NodeClass_AssignNode}, - {0x7303fcea, L"getDelta", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ContainerClass_GetDelta}, - {0xe7742c9d, L"getDeltas", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ContainerClass_GetDeltas}, - {0x30ff6aad, L"clearErrorList", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ModelClass_ClearErrorList}, - {0x712c6afa, L"createNode", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ModelClass_CreateNode}, - {0x83a6411d, L"isCompatibleNS", - (XFA_METHOD_CALLBACK)&CJX_Node::Script_ModelClass_IsCompatibleNS}, -}; -const int32_t g_iSomMethodCount = - sizeof(g_SomMethodData) / sizeof(XFA_METHODINFO); - const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { {0xbe52dfbf, L"desc", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Attribute_String, @@ -3435,8 +3151,7 @@ const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { {0xd996fa9b, L"hand", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Attribute_String, XFA_Attribute::Hand, XFA_ScriptType::Basic}, - {0xa60dd202, L"length", - (XFA_ATTRIBUTE_CALLBACK)&CJX_NodeList::Script_ListClass_Length, + {0xa60dd202, L"length", (XFA_ATTRIBUTE_CALLBACK)&CJX_List::length, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, {0x20146, L"db", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Source_Db, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, @@ -3519,32 +3234,26 @@ const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = { {0xb2c80857, L"className", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ObjectClass_ClassName, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, - {0xa60dd202, L"length", - (XFA_ATTRIBUTE_CALLBACK)&CJX_NodeList::Script_ListClass_Length, + {0xa60dd202, L"length", (XFA_ATTRIBUTE_CALLBACK)&CJX_TreeList::length, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, {0x31b19c1, L"name", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Attribute_String, XFA_Attribute::Name, XFA_ScriptType::Basic}, - {0x9f9d0f9, L"all", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_All, + {0x9f9d0f9, L"all", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::all, XFA_Attribute::Unknown, XFA_ScriptType::Object}, - {0x4df15659, L"nodes", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_Nodes, + {0x4df15659, L"nodes", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::nodes, XFA_Attribute::Unknown, XFA_ScriptType::Object}, - {0x78a8d6cf, L"classAll", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_ClassAll, + {0x78a8d6cf, L"classAll", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::classAll, XFA_Attribute::Unknown, XFA_ScriptType::Object}, - {0xcad6d8ca, L"parent", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_Parent, + {0xcad6d8ca, L"parent", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::parent, XFA_Attribute::Unknown, XFA_ScriptType::Object}, - {0xd5679c78, L"index", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_Index, + {0xd5679c78, L"index", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::index, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, - {0xdb5b4bce, L"classIndex", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_ClassIndex, + {0xdb5b4bce, L"classIndex", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::classIndex, XFA_Attribute::Unknown, XFA_ScriptType::Basic}, {0xe4989adf, L"somExpression", - (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_TreeClass_SomExpression, - XFA_Attribute::Unknown, XFA_ScriptType::Basic}, + (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::somExpression, XFA_Attribute::Unknown, + XFA_ScriptType::Basic}, {0x21aed, L"id", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_Attribute_String, XFA_Attribute::Id, XFA_ScriptType::Basic}, {0x234a1, L"ns", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::Script_NodeClass_Ns, diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp index 868361e336..405bb21ba3 100644 --- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp +++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp @@ -114,7 +114,7 @@ bool FormValueNode_SetChildContent(CXFA_Node* pValueNode, void CreateDataBinding(CXFA_Node* pFormNode, CXFA_Node* pDataNode, bool bDataToForm) { - pFormNode->JSNode()->SetBindingNode(pDataNode); + pFormNode->SetBindingNode(pDataNode); pDataNode->AddBindItem(pFormNode); XFA_Element eType = pFormNode->GetElementType(); if (eType != XFA_Element::Field && eType != XFA_Element::ExclGroup) @@ -1535,7 +1535,7 @@ void CXFA_Document::DoDataRemerge(bool bDoDataMerge) { while (CXFA_Node* pNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) pFormRoot->RemoveChild(pNode, true); - pFormRoot->JSNode()->SetBindingNode(nullptr); + pFormRoot->SetBindingNode(nullptr); } m_rgGlobalBinding.clear(); |