blob: b12c87802e4b64470dfc573110b9747851ef1754 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/html/DocumentAllNameCollection.h"
#include "core/html/HTMLElement.h"
namespace blink {
DocumentAllNameCollection::DocumentAllNameCollection(ContainerNode& document,
const AtomicString& name)
: HTMLNameCollection(document, kDocumentAllNamedItems, name) {}
bool DocumentAllNameCollection::ElementMatches(const Element& element) const {
// https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#all-named-elements
// Match below type of elements by name but any type of element by id.
if (element.HasTagName(HTMLNames::aTag) ||
element.HasTagName(HTMLNames::buttonTag) ||
element.HasTagName(HTMLNames::embedTag) ||
element.HasTagName(HTMLNames::formTag) ||
element.HasTagName(HTMLNames::frameTag) ||
element.HasTagName(HTMLNames::framesetTag) ||
element.HasTagName(HTMLNames::iframeTag) ||
element.HasTagName(HTMLNames::imgTag) ||
element.HasTagName(HTMLNames::inputTag) ||
element.HasTagName(HTMLNames::mapTag) ||
element.HasTagName(HTMLNames::metaTag) ||
element.HasTagName(HTMLNames::objectTag) ||
element.HasTagName(HTMLNames::selectTag) ||
element.HasTagName(HTMLNames::textareaTag)) {
if (element.GetNameAttribute() == name_)
return true;
}
return element.GetIdAttribute() == name_;
}
} // namespace blink