1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:57:35 +00:00

LibWeb: Make DOM::Node::create_layout_node() not need parent's style

The StyleResolver can find the specified CSS values for the parent
element via the DOM. Forcing everyone to locate specified values for
their parent was completely unnecessary.
This commit is contained in:
Andreas Kling 2021-01-06 14:27:40 +01:00
parent d9b2650dcc
commit 29a4da30b7
28 changed files with 40 additions and 39 deletions

View file

@ -38,7 +38,7 @@ HTMLBRElement::~HTMLBRElement()
{
}
RefPtr<Layout::Node> HTMLBRElement::create_layout_node(const CSS::StyleProperties*)
RefPtr<Layout::Node> HTMLBRElement::create_layout_node()
{
return adopt(*new Layout::BreakNode(document(), *this));
}

View file

@ -37,7 +37,7 @@ public:
HTMLBRElement(DOM::Document&, const QualifiedName& qualified_name);
virtual ~HTMLBRElement() override;
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
};
}

View file

@ -55,9 +55,9 @@ unsigned HTMLCanvasElement::height() const
return attribute(HTML::AttributeNames::height).to_uint().value_or(150);
}
RefPtr<Layout::Node> HTMLCanvasElement::create_layout_node(const CSS::StyleProperties* parent_style)
RefPtr<Layout::Node> HTMLCanvasElement::create_layout_node()
{
auto style = document().style_resolver().resolve_style(*this, parent_style);
auto style = document().style_resolver().resolve_style(*this);
if (style->display() == CSS::Display::None)
return nullptr;
return adopt(*new Layout::CanvasBox(document(), *this, move(style)));

View file

@ -49,7 +49,7 @@ public:
unsigned height() const;
private:
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
RefPtr<Gfx::Bitmap> m_bitmap;
RefPtr<CanvasRenderingContext2D> m_context;

View file

@ -54,9 +54,9 @@ HTMLIFrameElement::~HTMLIFrameElement()
{
}
RefPtr<Layout::Node> HTMLIFrameElement::create_layout_node(const CSS::StyleProperties* parent_style)
RefPtr<Layout::Node> HTMLIFrameElement::create_layout_node()
{
auto style = document().style_resolver().resolve_style(*this, parent_style);
auto style = document().style_resolver().resolve_style(*this);
return adopt(*new Layout::FrameBox(document(), *this, move(style)));
}

View file

@ -37,7 +37,7 @@ public:
HTMLIFrameElement(DOM::Document&, const QualifiedName& qualified_name);
virtual ~HTMLIFrameElement() override;
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
Frame* content_frame() { return m_content_frame; }
const Frame* content_frame() const { return m_content_frame; }

View file

@ -84,9 +84,9 @@ void HTMLImageElement::parse_attribute(const FlyString& name, const String& valu
m_image_loader.load(document().complete_url(value));
}
RefPtr<Layout::Node> HTMLImageElement::create_layout_node(const CSS::StyleProperties* parent_style)
RefPtr<Layout::Node> HTMLImageElement::create_layout_node()
{
auto style = document().style_resolver().resolve_style(*this, parent_style);
auto style = document().style_resolver().resolve_style(*this);
if (style->display() == CSS::Display::None)
return nullptr;
return adopt(*new Layout::ImageBox(document(), *this, move(style), m_image_loader));

View file

@ -53,7 +53,7 @@ private:
void animate();
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
ImageLoader m_image_loader;
};

View file

@ -62,7 +62,7 @@ void HTMLInputElement::did_click_button(Badge<Layout::ButtonBox>)
}
}
RefPtr<Layout::Node> HTMLInputElement::create_layout_node(const CSS::StyleProperties* parent_style)
RefPtr<Layout::Node> HTMLInputElement::create_layout_node()
{
ASSERT(document().page());
auto& page = *document().page();
@ -71,7 +71,7 @@ RefPtr<Layout::Node> HTMLInputElement::create_layout_node(const CSS::StyleProper
if (type() == "hidden")
return nullptr;
auto style = document().style_resolver().resolve_style(*this, parent_style);
auto style = document().style_resolver().resolve_style(*this);
if (style->display() == CSS::Display::None)
return nullptr;

View file

@ -37,7 +37,7 @@ public:
HTMLInputElement(DOM::Document&, const QualifiedName& qualified_name);
virtual ~HTMLInputElement() override;
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
String type() const { return attribute(HTML::AttributeNames::type); }
String value() const { return attribute(HTML::AttributeNames::value); }

View file

@ -61,12 +61,12 @@ void HTMLObjectElement::parse_attribute(const FlyString& name, const String& val
m_image_loader.load(document().complete_url(value));
}
RefPtr<Layout::Node> HTMLObjectElement::create_layout_node(const CSS::StyleProperties* parent_style)
RefPtr<Layout::Node> HTMLObjectElement::create_layout_node()
{
if (m_should_show_fallback_content)
return HTMLElement::create_layout_node(parent_style);
return HTMLElement::create_layout_node();
auto style = document().style_resolver().resolve_style(*this, parent_style);
auto style = document().style_resolver().resolve_style(*this);
if (style->display() == CSS::Display::None)
return nullptr;
if (m_image_loader.has_image())

View file

@ -46,7 +46,7 @@ public:
String type() const { return attribute(HTML::AttributeNames::type); }
private:
virtual RefPtr<Layout::Node> create_layout_node(const CSS::StyleProperties* parent_style) override;
virtual RefPtr<Layout::Node> create_layout_node() override;
ImageLoader m_image_loader;
bool m_should_show_fallback_content { false };