OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 2 * Copyright (C) 2013 Samsung Electronics. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 14 matching lines...) Expand all Loading... |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #ifndef ParentNode_h | 31 #ifndef ParentNode_h |
32 #define ParentNode_h | 32 #define ParentNode_h |
33 | 33 |
34 #include "core/dom/ContainerNode.h" | 34 #include "core/dom/ContainerNode.h" |
| 35 #include "core/dom/ElementTraversal.h" |
35 | 36 |
36 namespace WebCore { | 37 namespace WebCore { |
37 | 38 |
38 class ParentNode { | 39 class ParentNode { |
39 public: | 40 public: |
40 static PassRefPtr<HTMLCollection> children(ContainerNode* node) | 41 static PassRefPtr<HTMLCollection> children(ContainerNode* node) |
41 { | 42 { |
42 return node->children(); | 43 return node->children(); |
43 } | 44 } |
44 | 45 |
45 static Element* firstElementChild(ContainerNode* node) | 46 static Element* firstElementChild(ContainerNode* node) |
46 { | 47 { |
47 return node->firstElementChild(); | 48 ASSERT(node); |
| 49 return ElementTraversal::firstWithin(*node); |
48 } | 50 } |
49 | 51 |
50 static Element* lastElementChild(ContainerNode* node) | 52 static Element* lastElementChild(ContainerNode* node) |
51 { | 53 { |
52 return node->lastElementChild(); | 54 ASSERT(node); |
| 55 return ElementTraversal::lastWithin(*node); |
53 } | 56 } |
54 | 57 |
55 static unsigned childElementCount(ContainerNode* node) | 58 static unsigned childElementCount(ContainerNode* node) |
56 { | 59 { |
57 return node->childElementCount(); | 60 ASSERT(node); |
| 61 unsigned count = 0; |
| 62 for (Element* child = ElementTraversal::firstWithin(*node); child; child
= ElementTraversal::nextSibling(*child)) |
| 63 ++count; |
| 64 return count; |
58 } | 65 } |
59 }; | 66 }; |
60 | 67 |
61 } // namespace WebCore | 68 } // namespace WebCore |
62 | 69 |
63 #endif // ParentNode_h | 70 #endif // ParentNode_h |
OLD | NEW |