/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include namespace Web::HTML { GC_DEFINE_ALLOCATOR(HTMLHRElement); HTMLHRElement::HTMLHRElement(DOM::Document& document, DOM::QualifiedName qualified_name) : HTMLElement(document, move(qualified_name)) { } HTMLHRElement::~HTMLHRElement() = default; void HTMLHRElement::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(HTMLHRElement); } bool HTMLHRElement::is_presentational_hint(FlyString const& name) const { if (Base::is_presentational_hint(name)) return true; return first_is_one_of(name, HTML::AttributeNames::width); } void HTMLHRElement::apply_presentational_hints(GC::Ref cascaded_properties) const { for_each_attribute([&](auto& name, auto& value) { // https://html.spec.whatwg.org/multipage/rendering.html#the-hr-element-2:maps-to-the-dimension-property if (name == HTML::AttributeNames::width) { if (auto parsed_value = parse_dimension_value(value)) { cascaded_properties->set_property_from_presentational_hint(CSS::PropertyID::Width, *parsed_value); } } }); } }