Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1696)

Side by Side Diff: Source/core/dom/ChildNodeList.h

Issue 132923003: Make sure the rootNode of a LiveNodeListBase is always a ContainerNode (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Slightly clearer cast Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/dom/ChildNodeList.cpp » ('j') | Source/core/dom/NodeRareData.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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, 2007 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2007 Apple Inc. All rights 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 13 matching lines...) Expand all
24 #ifndef ChildNodeList_h 24 #ifndef ChildNodeList_h
25 #define ChildNodeList_h 25 #define ChildNodeList_h
26 26
27 #include "core/dom/LiveNodeList.h" 27 #include "core/dom/LiveNodeList.h"
28 #include "wtf/PassRefPtr.h" 28 #include "wtf/PassRefPtr.h"
29 29
30 namespace WebCore { 30 namespace WebCore {
31 31
32 class ChildNodeList FINAL : public LiveNodeList { 32 class ChildNodeList FINAL : public LiveNodeList {
33 public: 33 public:
34 static PassRefPtr<ChildNodeList> create(PassRefPtr<Node> rootNode) 34 static PassRefPtr<ChildNodeList> create(PassRefPtr<ContainerNode> rootNode)
35 { 35 {
36 return adoptRef(new ChildNodeList(rootNode)); 36 return adoptRef(new ChildNodeList(rootNode));
37 } 37 }
38 38
39 virtual ~ChildNodeList(); 39 virtual ~ChildNodeList();
40 40
41 protected: 41 protected:
42 explicit ChildNodeList(PassRefPtr<Node> rootNode); 42 explicit ChildNodeList(PassRefPtr<ContainerNode> rootNode);
43 43
44 virtual bool nodeMatches(Element*) const OVERRIDE; 44 virtual bool nodeMatches(Element*) const OVERRIDE;
45 }; 45 };
46 46
47 class EmptyNodeList FINAL : public NodeList {
esprehn 2014/01/17 07:06:20 Please put this in its own file.
Inactive 2014/01/17 15:00:48 Done.
48 public:
49 static PassRefPtr<EmptyNodeList> create(Node* owner)
50 {
51 return adoptRef(new EmptyNodeList(owner));
52 }
53 virtual ~EmptyNodeList();
54
55 Node* ownerNode() const { return m_owner.get(); }
56
57 private:
58 explicit EmptyNodeList(Node* owner) : m_owner(owner) { }
59
60 virtual unsigned length() const OVERRIDE { return 0; }
61 virtual Node* item(unsigned) const OVERRIDE { return 0; }
62 virtual Node* namedItem(const AtomicString&) const OVERRIDE { return 0; }
63
64 virtual bool isEmptyNodeList() const OVERRIDE { return true; }
65
66 RefPtr<Node> m_owner;
67 };
68
47 } // namespace WebCore 69 } // namespace WebCore
48 70
49 #endif // ChildNodeList_h 71 #endif // ChildNodeList_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/dom/ChildNodeList.cpp » ('j') | Source/core/dom/NodeRareData.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698