summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-12-07 22:33:43 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-12-07 22:33:43 +0000
commit93bb725b62f9779534c9444c1e1319fe8c28912e (patch)
treeaf0c758c1129dc076cbf67a89f1c23e4703e02bd /xfa/fxfa/parser
parentce6979f8d064507300fe0b3a856687fb958c9a5c (diff)
downloadpdfium-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/parser')
-rw-r--r--xfa/fxfa/parser/cxfa_area.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_arraynodelist.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_arraynodelist.h6
-rw-r--r--xfa/fxfa/parser/cxfa_attachnodelist.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_attachnodelist.h6
-rw-r--r--xfa/fxfa/parser/cxfa_boolean.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_certificate.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_connectionset.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_contentarea.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_datamodel.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_datawindow.cpp25
-rw-r--r--xfa/fxfa/parser/cxfa_datawindow.h18
-rw-r--r--xfa/fxfa/parser/cxfa_date.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_datetime.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_decimal.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_delete.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_delta.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_desc.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_draw.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_eventpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_eventpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_exclgroup.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_exdata.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_field.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_float.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_form.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_handler.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_hostpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_hostpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_insert.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_instancemanager.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_integer.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpagemgr.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_layoutpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_list.cpp28
-rw-r--r--xfa/fxfa/parser/cxfa_list.h18
-rw-r--r--xfa/fxfa/parser/cxfa_logpseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_logpseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_manifest.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp237
-rw-r--r--xfa/fxfa/parser/cxfa_node.h33
-rw-r--r--xfa/fxfa/parser/cxfa_node_statics.cpp53
-rw-r--r--xfa/fxfa/parser/cxfa_nodelist.h31
-rw-r--r--xfa/fxfa/parser/cxfa_object.cpp19
-rw-r--r--xfa/fxfa/parser/cxfa_object.h12
-rw-r--r--xfa/fxfa/parser/cxfa_oid.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_operation.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_packet.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_pagearea.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_pageset.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_password.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_reason.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_ref.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_rootelement.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_select.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_signaturepseudomodel.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_signaturepseudomodel.h18
-rw-r--r--xfa/fxfa/parser/cxfa_soapaction.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_soapaddress.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_source.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_sourceset.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_speak.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_subform.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_subformset.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_template.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_text.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_time.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_tooltip.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_treelist.cpp (renamed from xfa/fxfa/parser/cxfa_nodelist.cpp)21
-rw-r--r--xfa/fxfa/parser/cxfa_treelist.h26
-rw-r--r--xfa/fxfa/parser/cxfa_update.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_uri.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_user.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_variables.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_wsdladdress.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_wsdlconnection.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_xfa.cpp6
-rw-r--r--xfa/fxfa/parser/xfa_basic_data.h3
-rw-r--r--xfa/fxfa/parser/xfa_basic_data_element_script.cpp477
-rw-r--r--xfa/fxfa/parser/xfa_document_datamerger_imp.cpp4
82 files changed, 677 insertions, 874 deletions
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();