OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2013 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2013 Apple Inc. All r
ights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "sky/engine/bindings/exception_state_placeholder.h" | 27 #include "sky/engine/bindings/exception_state_placeholder.h" |
28 #include "sky/engine/core/dom/Node.h" | 28 #include "sky/engine/core/dom/Node.h" |
29 #include "sky/engine/wtf/OwnPtr.h" | 29 #include "sky/engine/wtf/OwnPtr.h" |
30 #include "sky/engine/wtf/Vector.h" | 30 #include "sky/engine/wtf/Vector.h" |
31 | 31 |
32 namespace blink { | 32 namespace blink { |
33 | 33 |
34 class ExceptionState; | 34 class ExceptionState; |
35 class FloatPoint; | 35 class FloatPoint; |
36 template <typename NodeType> class StaticNodeTypeList; | 36 template <typename NodeType> class StaticNodeTypeList; |
37 typedef StaticNodeTypeList<Element> StaticElementList; | |
38 | 37 |
39 // This constant controls how much buffer is initially allocated | 38 // This constant controls how much buffer is initially allocated |
40 // for a Node Vector that is used to store child Nodes of a given Node. | 39 // for a Node Vector that is used to store child Nodes of a given Node. |
41 // FIXME: Optimize the value. | 40 // FIXME: Optimize the value. |
42 const int initialNodeVectorSize = 11; | 41 const int initialNodeVectorSize = 11; |
43 typedef Vector<RefPtr<Node>, initialNodeVectorSize> NodeVector; | 42 typedef Vector<RefPtr<Node>, initialNodeVectorSize> NodeVector; |
44 | 43 |
45 class ContainerNode : public Node { | 44 class ContainerNode : public Node { |
46 DEFINE_WRAPPERTYPEINFO(); | 45 DEFINE_WRAPPERTYPEINFO(); |
47 public: | 46 public: |
(...skipping 17 matching lines...) Expand all Loading... |
65 void removeChildren(); | 64 void removeChildren(); |
66 PassRefPtr<Node> setChild(PassRefPtr<Node> node, ExceptionState&); | 65 PassRefPtr<Node> setChild(PassRefPtr<Node> node, ExceptionState&); |
67 void setChildren(Vector<RefPtr<Node>>& nodes, ExceptionState&); | 66 void setChildren(Vector<RefPtr<Node>>& nodes, ExceptionState&); |
68 | 67 |
69 bool hasOneChild() const { return m_firstChild && !m_firstChild->nextSibling
(); } | 68 bool hasOneChild() const { return m_firstChild && !m_firstChild->nextSibling
(); } |
70 bool hasOneTextChild() const { return hasOneChild() && m_firstChild->isTextN
ode(); } | 69 bool hasOneTextChild() const { return hasOneChild() && m_firstChild->isTextN
ode(); } |
71 | 70 |
72 unsigned countChildren() const; | 71 unsigned countChildren() const; |
73 | 72 |
74 PassRefPtr<Element> querySelector(const AtomicString& selectors, ExceptionSt
ate&); | 73 PassRefPtr<Element> querySelector(const AtomicString& selectors, ExceptionSt
ate&); |
75 PassRefPtr<StaticElementList> querySelectorAll(const AtomicString& selectors
, ExceptionState&); | 74 Vector<RefPtr<Element>> querySelectorAll(const AtomicString& selectors, Exce
ptionState&); |
76 | 75 |
77 PassRefPtr<Node> insertBefore(PassRefPtr<Node> newChild, Node* refChild, Exc
eptionState& = ASSERT_NO_EXCEPTION); | 76 PassRefPtr<Node> insertBefore(PassRefPtr<Node> newChild, Node* refChild, Exc
eptionState& = ASSERT_NO_EXCEPTION); |
78 PassRefPtr<Node> replaceChild(PassRefPtr<Node> newChild, PassRefPtr<Node> ol
dChild, ExceptionState& = ASSERT_NO_EXCEPTION); | 77 PassRefPtr<Node> replaceChild(PassRefPtr<Node> newChild, PassRefPtr<Node> ol
dChild, ExceptionState& = ASSERT_NO_EXCEPTION); |
79 PassRefPtr<Node> removeChild(PassRefPtr<Node> child, ExceptionState& = ASSER
T_NO_EXCEPTION); | 78 PassRefPtr<Node> removeChild(PassRefPtr<Node> child, ExceptionState& = ASSER
T_NO_EXCEPTION); |
80 PassRefPtr<Node> appendChild(PassRefPtr<Node> newChild, ExceptionState& = AS
SERT_NO_EXCEPTION); | 79 PassRefPtr<Node> appendChild(PassRefPtr<Node> newChild, ExceptionState& = AS
SERT_NO_EXCEPTION); |
81 | 80 |
82 Element* getElementById(const AtomicString& id) const; | 81 Element* getElementById(const AtomicString& id) const; |
83 | 82 |
84 // These methods are only used during parsing. | 83 // These methods are only used during parsing. |
85 // They don't send DOM mutation events or handle reparenting. | 84 // They don't send DOM mutation events or handle reparenting. |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 inline void appendChildNodes(ContainerNode& node, NodeVector& nodes) | 233 inline void appendChildNodes(ContainerNode& node, NodeVector& nodes) |
235 { | 234 { |
236 ASSERT(!nodes.size()); | 235 ASSERT(!nodes.size()); |
237 for (Node* child = node.firstChild(); child; child = child->nextSibling()) | 236 for (Node* child = node.firstChild(); child; child = child->nextSibling()) |
238 nodes.append(child); | 237 nodes.append(child); |
239 } | 238 } |
240 | 239 |
241 } // namespace blink | 240 } // namespace blink |
242 | 241 |
243 #endif // SKY_ENGINE_CORE_DOM_CONTAINERNODE_H_ | 242 #endif // SKY_ENGINE_CORE_DOM_CONTAINERNODE_H_ |
OLD | NEW |