• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef DocumentNameCollection_h
6 #define DocumentNameCollection_h
7 
8 #include "core/html/HTMLElement.h"
9 #include "core/html/HTMLNameCollection.h"
10 
11 namespace blink {
12 
13 class DocumentNameCollection FINAL : public HTMLNameCollection {
14 public:
create(ContainerNode & document,CollectionType type,const AtomicString & name)15     static PassRefPtrWillBeRawPtr<DocumentNameCollection> create(ContainerNode& document, CollectionType type, const AtomicString& name)
16     {
17         ASSERT_UNUSED(type, type == DocumentNamedItems);
18         return adoptRefWillBeNoop(new DocumentNameCollection(document, name));
19     }
20 
item(unsigned offset)21     HTMLElement* item(unsigned offset) const { return toHTMLElement(HTMLNameCollection::item(offset)); }
22 
23     bool elementMatches(const HTMLElement&) const;
24 
25 private:
26     DocumentNameCollection(ContainerNode& document, const AtomicString& name);
27 };
28 
29 DEFINE_TYPE_CASTS(DocumentNameCollection, LiveNodeListBase, collection, collection->type() == DocumentNamedItems, collection.type() == DocumentNamedItems);
30 
31 } // namespace blink
32 
33 #endif // DocumentNameCollection_h
34