blob: e822ba8056b250ea9e95311f65abed23fd786fc3 [file] [log] [blame]
K. Moon832a6942022-10-31 20:11:31 +00001// Copyright 2017 The PDFium Authors
Dan Sinclairf4736722017-11-27 18:10:47 +00002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "xfa/fxfa/parser/cxfa_execute.h"
8
Tom Sepezef6c19f2019-01-24 23:30:26 +00009#include "fxjs/xfa/cjx_node.h"
Tom Sepez757a6bf2020-09-17 17:22:38 +000010#include "xfa/fxfa/parser/cxfa_document.h"
Dan Sinclairfe9d6402017-12-14 19:45:53 +000011
Dan Sinclairf4736722017-11-27 18:10:47 +000012namespace {
13
Lei Zhangec7d8e22018-02-07 19:57:25 +000014const CXFA_Node::AttributeData kExecuteAttributeData[] = {
Dan Sinclair21b08272017-11-30 20:22:20 +000015 {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
16 {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
17 {XFA_Attribute::Connection, XFA_AttributeType::CData, nullptr},
Dan Sinclair5fda35f2017-11-30 20:21:00 +000018 {XFA_Attribute::RunAt, XFA_AttributeType::Enum,
Tom Sepez1498ab82018-12-06 17:56:28 +000019 (void*)XFA_AttributeValue::Client},
Dan Sinclair5fda35f2017-11-30 20:21:00 +000020 {XFA_Attribute::ExecuteType, XFA_AttributeType::Enum,
Tom Sepez1498ab82018-12-06 17:56:28 +000021 (void*)XFA_AttributeValue::Import},
Dan Sinclair21b08272017-11-30 20:22:20 +000022 {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
Tom Sepeza8c86c22019-01-25 22:06:03 +000023};
Dan Sinclairf4736722017-11-27 18:10:47 +000024
Dan Sinclairf4736722017-11-27 18:10:47 +000025} // namespace
26
Dan Sinclairc40c5aa2017-11-30 21:29:11 +000027CXFA_Execute::CXFA_Execute(CXFA_Document* doc, XFA_PacketType packet)
Dan Sinclairf4736722017-11-27 18:10:47 +000028 : CXFA_Node(doc,
29 packet,
Tom Sepez0c057582021-08-17 17:37:23 +000030 {XFA_XDPPACKET::kTemplate, XFA_XDPPACKET::kForm},
Dan Sinclairf4736722017-11-27 18:10:47 +000031 XFA_ObjectType::Node,
32 XFA_Element::Execute,
Tom Sepezc0fa5f62019-01-25 20:07:27 +000033 {},
Lei Zhangec7d8e22018-02-07 19:57:25 +000034 kExecuteAttributeData,
Tom Sepez757a6bf2020-09-17 17:22:38 +000035 cppgc::MakeGarbageCollected<CJX_Node>(
36 doc->GetHeap()->GetAllocationHandle(),
37 this)) {}
Dan Sinclairf4736722017-11-27 18:10:47 +000038
Tom Sepez7fc43dd2018-12-13 17:54:26 +000039CXFA_Execute::~CXFA_Execute() = default;