chromium/out/Default/gen/third_party/blink/renderer/core/html_element_type_helpers.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Generated from template:
//   templates/element_type_helpers.h.tmpl
// and input files:
//   ../../third_party/blink/renderer/core/html/html_tag_names.json5


#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_ELEMENT_TYPE_HELPERS_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_ELEMENT_TYPE_HELPERS_H_

#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"

namespace blink {

class Document;

// Type checking.
class HTMLAnchorElement;
template <>
struct DowncastTraits<HTMLAnchorElement> {};

class HTMLAreaElement;
template <>
struct DowncastTraits<HTMLAreaElement> {};

class HTMLAudioElement;
template <>
struct DowncastTraits<HTMLAudioElement> {};

class HTMLBaseElement;
template <>
struct DowncastTraits<HTMLBaseElement> {};

class HTMLBDIElement;
template <>
struct DowncastTraits<HTMLBDIElement> {};

class HTMLBodyElement;
template <>
struct DowncastTraits<HTMLBodyElement> {};

class HTMLBRElement;
template <>
struct DowncastTraits<HTMLBRElement> {};

class HTMLButtonElement;
template <>
struct DowncastTraits<HTMLButtonElement> {};

class HTMLCanvasElement;
template <>
struct DowncastTraits<HTMLCanvasElement> {};

class HTMLTableCaptionElement;
template <>
struct DowncastTraits<HTMLTableCaptionElement> {};

class HTMLDataElement;
template <>
struct DowncastTraits<HTMLDataElement> {};

class HTMLDataListElement;
template <>
struct DowncastTraits<HTMLDataListElement> {};

class HTMLDetailsElement;
template <>
struct DowncastTraits<HTMLDetailsElement> {};

class HTMLDialogElement;
template <>
struct DowncastTraits<HTMLDialogElement> {};

class HTMLDirectoryElement;
template <>
struct DowncastTraits<HTMLDirectoryElement> {};

class HTMLDivElement;
template <>
struct DowncastTraits<HTMLDivElement> {};

class HTMLDListElement;
template <>
struct DowncastTraits<HTMLDListElement> {};

class HTMLEmbedElement;
template <>
struct DowncastTraits<HTMLEmbedElement> {};

class HTMLFieldSetElement;
template <>
struct DowncastTraits<HTMLFieldSetElement> {};

class HTMLFontElement;
template <>
struct DowncastTraits<HTMLFontElement> {};

class HTMLFormElement;
template <>
struct DowncastTraits<HTMLFormElement> {};

class HTMLFrameElement;
template <>
struct DowncastTraits<HTMLFrameElement> {};

class HTMLFrameSetElement;
template <>
struct DowncastTraits<HTMLFrameSetElement> {};

class HTMLHeadElement;
template <>
struct DowncastTraits<HTMLHeadElement> {};

class HTMLHRElement;
template <>
struct DowncastTraits<HTMLHRElement> {};

class HTMLHtmlElement;
template <>
struct DowncastTraits<HTMLHtmlElement> {};

class HTMLIFrameElement;
template <>
struct DowncastTraits<HTMLIFrameElement> {};

class HTMLImageElement;
template <>
struct DowncastTraits<HTMLImageElement> {};

class HTMLInputElement;
template <>
struct DowncastTraits<HTMLInputElement> {};

class HTMLLabelElement;
template <>
struct DowncastTraits<HTMLLabelElement> {};

class HTMLLegendElement;
template <>
struct DowncastTraits<HTMLLegendElement> {};

class HTMLLIElement;
template <>
struct DowncastTraits<HTMLLIElement> {};

class HTMLLinkElement;
template <>
struct DowncastTraits<HTMLLinkElement> {};

class HTMLListboxElement;
template <>
struct DowncastTraits<HTMLListboxElement> {};

class HTMLMapElement;
template <>
struct DowncastTraits<HTMLMapElement> {};

class HTMLMarqueeElement;
template <>
struct DowncastTraits<HTMLMarqueeElement> {};

class HTMLMenuElement;
template <>
struct DowncastTraits<HTMLMenuElement> {};

class HTMLMetaElement;
template <>
struct DowncastTraits<HTMLMetaElement> {};

class HTMLMeterElement;
template <>
struct DowncastTraits<HTMLMeterElement> {};

class HTMLNoEmbedElement;
template <>
struct DowncastTraits<HTMLNoEmbedElement> {};

class HTMLNoScriptElement;
template <>
struct DowncastTraits<HTMLNoScriptElement> {};

class HTMLOListElement;
template <>
struct DowncastTraits<HTMLOListElement> {};

class HTMLOptGroupElement;
template <>
struct DowncastTraits<HTMLOptGroupElement> {};

class HTMLOptionElement;
template <>
struct DowncastTraits<HTMLOptionElement> {};

class HTMLOutputElement;
template <>
struct DowncastTraits<HTMLOutputElement> {};

class HTMLParagraphElement;
template <>
struct DowncastTraits<HTMLParagraphElement> {};

class HTMLParamElement;
template <>
struct DowncastTraits<HTMLParamElement> {};

class HTMLPictureElement;
template <>
struct DowncastTraits<HTMLPictureElement> {};

class HTMLProgressElement;
template <>
struct DowncastTraits<HTMLProgressElement> {};

class HTMLScriptElement;
template <>
struct DowncastTraits<HTMLScriptElement> {};

class HTMLSelectElement;
template <>
struct DowncastTraits<HTMLSelectElement> {};

class HTMLSelectedOptionElement;
template <>
struct DowncastTraits<HTMLSelectedOptionElement> {};

class HTMLSelectListElement;
template <>
struct DowncastTraits<HTMLSelectListElement> {};

class HTMLSlotElement;
template <>
struct DowncastTraits<HTMLSlotElement> {};

class HTMLSourceElement;
template <>
struct DowncastTraits<HTMLSourceElement> {};

class HTMLSpanElement;
template <>
struct DowncastTraits<HTMLSpanElement> {};

class HTMLStyleElement;
template <>
struct DowncastTraits<HTMLStyleElement> {};

class HTMLSummaryElement;
template <>
struct DowncastTraits<HTMLSummaryElement> {};

class HTMLTableElement;
template <>
struct DowncastTraits<HTMLTableElement> {};

class HTMLTemplateElement;
template <>
struct DowncastTraits<HTMLTemplateElement> {};

class HTMLTextAreaElement;
template <>
struct DowncastTraits<HTMLTextAreaElement> {};

class HTMLTimeElement;
template <>
struct DowncastTraits<HTMLTimeElement> {};

class HTMLTitleElement;
template <>
struct DowncastTraits<HTMLTitleElement> {};

class HTMLTableRowElement;
template <>
struct DowncastTraits<HTMLTableRowElement> {};

class HTMLTrackElement;
template <>
struct DowncastTraits<HTMLTrackElement> {};

class HTMLUListElement;
template <>
struct DowncastTraits<HTMLUListElement> {};

class HTMLVideoElement;
template <>
struct DowncastTraits<HTMLVideoElement> {};

class HTMLWBRElement;
template <>
struct DowncastTraits<HTMLWBRElement> {};



enum class HTMLElementType {};

// Tag checking.
// |tag_name| is the local name for an HTML element in lowercase.
// The corresponding HTMLElement type for the tag name will be returned.
// Do NOT use this function with SVG tag names and SVGElements.
// If |tag_name| is an undefined HTML tag name HTMLUnknownElement is returned.
HTMLElementType HtmlElementTypeForTag(const AtomicString& tag_name, const Document*);

bool IsKnownBuiltinTagName(const AtomicString& tag_name);

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_HTML_ELEMENT_TYPE_HELPERS_H_