mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:17:34 +00:00
LibWeb: Make CSSConditionRule.conditionText
read-only
Previously @media rule conditions could be updated by assigning to `conditionText`. This change aligns our implementation with the CSSOM specification, which says `CSSConditionRule.conditionText` should be read-only.
This commit is contained in:
parent
b08fd1b9ae
commit
4646a87eba
8 changed files with 29 additions and 15 deletions
|
@ -0,0 +1,4 @@
|
|||
@media rule conditionText initial value: not all
|
||||
@media rule conditionText value after assignment: not all
|
||||
@supports rule conditionText initial value: not (unsupported-property: unsupported-value)
|
||||
@supports rule conditionText value after assignment: not (unsupported-property: unsupported-value)
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
@media not all {
|
||||
div { color: red; }
|
||||
}
|
||||
@supports not (unsupported-property: unsupported-value) {
|
||||
div { display: none; }
|
||||
}
|
||||
</style>
|
||||
<div>This text shouldn't be visible</div>
|
||||
<script src="../include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
const mediaRule = document.styleSheets[0].cssRules[0];
|
||||
println(`@media rule conditionText initial value: ${mediaRule.conditionText}`);
|
||||
mediaRule.conditionText = "all";
|
||||
println(`@media rule conditionText value after assignment: ${mediaRule.conditionText}`);
|
||||
|
||||
const supportsRule = document.styleSheets[0].cssRules[1];
|
||||
println(`@supports rule conditionText initial value: ${supportsRule.conditionText}`);
|
||||
mediaRule.conditionText = "(unsupported-property: unsupported-value)";
|
||||
println(`@supports rule conditionText value after assignment: ${supportsRule.conditionText}`);
|
||||
});
|
||||
</script>
|
|
@ -19,7 +19,6 @@ public:
|
|||
virtual ~CSSConditionRule() = default;
|
||||
|
||||
virtual String condition_text() const = 0;
|
||||
virtual void set_condition_text(String const&) = 0;
|
||||
virtual bool condition_matches() const = 0;
|
||||
|
||||
virtual void for_each_effective_style_rule(Function<void(CSSStyleRule const&)> const& callback) const override;
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
// https://drafts.csswg.org/css-conditional-3/#the-cssconditionrule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSConditionRule : CSSGroupingRule {
|
||||
attribute CSSOMString conditionText;
|
||||
readonly attribute CSSOMString conditionText;
|
||||
};
|
||||
|
|
|
@ -42,11 +42,6 @@ String CSSMediaRule::condition_text() const
|
|||
return m_media->media_text();
|
||||
}
|
||||
|
||||
void CSSMediaRule::set_condition_text(String const& text)
|
||||
{
|
||||
m_media->set_media_text(text);
|
||||
}
|
||||
|
||||
// https://www.w3.org/TR/cssom-1/#serialize-a-css-rule
|
||||
String CSSMediaRule::serialized() const
|
||||
{
|
||||
|
|
|
@ -26,7 +26,6 @@ public:
|
|||
virtual Type type() const override { return Type::Media; }
|
||||
|
||||
virtual String condition_text() const override;
|
||||
virtual void set_condition_text(String const&) override;
|
||||
virtual bool condition_matches() const override { return m_media->matches(); }
|
||||
|
||||
MediaList* media() const { return m_media; }
|
||||
|
|
|
@ -35,12 +35,6 @@ String CSSSupportsRule::condition_text() const
|
|||
return m_supports->to_string();
|
||||
}
|
||||
|
||||
void CSSSupportsRule::set_condition_text(String const& text)
|
||||
{
|
||||
if (auto new_supports = parse_css_supports(Parser::ParsingContext { realm() }, text))
|
||||
m_supports = new_supports.release_nonnull();
|
||||
}
|
||||
|
||||
// https://www.w3.org/TR/cssom-1/#serialize-a-css-rule
|
||||
String CSSSupportsRule::serialized() const
|
||||
{
|
||||
|
|
|
@ -27,7 +27,6 @@ public:
|
|||
virtual Type type() const override { return Type::Supports; }
|
||||
|
||||
String condition_text() const override;
|
||||
void set_condition_text(String const&) override;
|
||||
virtual bool condition_matches() const override { return m_supports->matches(); }
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue