LibWeb: Add Document::get_style_sheet_source()

This returns the source text of the specified style sheet. StyleComputer
now exposes user agent style sheets so that these can also be requested.
This commit is contained in:
Sam Atkins 2024-08-23 11:03:05 +01:00 committed by Sam Atkins
commit 49b2eb5f51
Notes: github-actions[bot] 2024-09-03 09:13:03 +00:00
4 changed files with 98 additions and 4 deletions

View file

@ -1,7 +1,7 @@
/*
* Copyright (c) 2018-2023, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021, the SerenityOS developers.
* Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
* Copyright (c) 2021-2024, Sam Atkins <sam@ladybird.org>
* Copyright (c) 2024, Matthew Olsson <mattco@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
@ -254,6 +254,24 @@ static CSSStyleSheet& svg_stylesheet(DOM::Document const& document)
return *sheet;
}
Optional<String> StyleComputer::user_agent_style_sheet_source(StringView name)
{
extern String default_stylesheet_source;
extern String quirks_mode_stylesheet_source;
extern String mathml_stylesheet_source;
extern String svg_stylesheet_source;
if (name == "CSS/Default.css"sv)
return default_stylesheet_source;
if (name == "CSS/QuirksMode.css"sv)
return quirks_mode_stylesheet_source;
if (name == "MathML/Default.css"sv)
return mathml_stylesheet_source;
if (name == "SVG/Default.css"sv)
return svg_stylesheet_source;
return {};
}
template<typename Callback>
void StyleComputer::for_each_stylesheet(CascadeOrigin cascade_origin, Callback callback) const
{