mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-22 10:19:20 +00:00
LibWeb/CSS: Don't allow negative border radius in box-shadow
property
This commit is contained in:
parent
dc58c11217
commit
632fc73643
Notes:
github-actions[bot]
2025-03-14 15:09:14 +00:00
Author: https://github.com/tcl3
Commit: 632fc73643
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3916
Reviewed-by: https://github.com/AtkinsSJ ✅
3 changed files with 115 additions and 0 deletions
|
@ -1816,6 +1816,10 @@ RefPtr<CSSStyleValue> Parser::parse_single_shadow_value(TokenStream<ComponentVal
|
||||||
if (!maybe_blur_radius)
|
if (!maybe_blur_radius)
|
||||||
continue;
|
continue;
|
||||||
blur_radius = maybe_blur_radius;
|
blur_radius = maybe_blur_radius;
|
||||||
|
if (blur_radius->is_length() && blur_radius->as_length().length().raw_value() < 0)
|
||||||
|
return nullptr;
|
||||||
|
if (blur_radius->is_percentage() && blur_radius->as_percentage().value() < 0)
|
||||||
|
return nullptr;
|
||||||
tokens.discard_a_token();
|
tokens.discard_a_token();
|
||||||
|
|
||||||
// spread distance (optional)
|
// spread distance (optional)
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
Harness status: OK
|
||||||
|
|
||||||
|
Found 40 tests
|
||||||
|
|
||||||
|
40 Pass
|
||||||
|
Pass e.style['box-shadow'] = "auto" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1 2" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1% 2%" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1px calc(2px + 2%)" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1px 2px 3px 4px 5px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red 1px 2px blue" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red 4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "-4px red 4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red -4px 4px red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "-4px 4px red 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "-4px 4px 0 red 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset 4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px inset -4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset 4px -4px inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px inset 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px 0 inset 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px red inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red inset 4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px inset red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset red 4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px red inset -4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px inset red -4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset 4px red -4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px red 4px inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red 4px inset -4px" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px inset -4px red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px red inset 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px inset red 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "inset 4px -4px red 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px red 0 inset" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "red 4px -4px inset 0" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "4px -4px inset 0 red" should not set the property value
|
||||||
|
Pass e.style['box-shadow'] = "1px 1px -1px" should not set the property value
|
|
@ -0,0 +1,66 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Backgrounds and Borders Module Level 3: parsing box-shadow with invalid values</title>
|
||||||
|
<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/>
|
||||||
|
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#box-shadow">
|
||||||
|
<meta name="assert" content="box-shadow supports only the grammar 'none | <shadow>#'.">
|
||||||
|
<meta name="assert" content="Lengths must stay adjacent." />
|
||||||
|
<meta name="assert" content="<blur-radius> must be non-negative." />
|
||||||
|
<script src="../../../resources/testharness.js"></script>
|
||||||
|
<script src="../../../resources/testharnessreport.js"></script>
|
||||||
|
<script src="../../../css/support/parsing-testcommon.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test_invalid_value("box-shadow", "auto");
|
||||||
|
test_invalid_value("box-shadow", "1 2");
|
||||||
|
test_invalid_value("box-shadow", "1% 2%");
|
||||||
|
test_invalid_value("box-shadow", "1px calc(2px + 2%)");
|
||||||
|
|
||||||
|
test_invalid_value("box-shadow", "1px");
|
||||||
|
|
||||||
|
test_invalid_value("box-shadow", "1px 2px 3px 4px 5px");
|
||||||
|
test_invalid_value("box-shadow", "red 1px 2px blue");
|
||||||
|
|
||||||
|
|
||||||
|
test_invalid_value("box-shadow", "red");
|
||||||
|
test_invalid_value("box-shadow", "4px red");
|
||||||
|
test_invalid_value("box-shadow", "red 4px");
|
||||||
|
test_invalid_value("box-shadow", "-4px red 4px");
|
||||||
|
test_invalid_value("box-shadow", "red -4px 4px red");
|
||||||
|
test_invalid_value("box-shadow", "-4px 4px red 0");
|
||||||
|
test_invalid_value("box-shadow", "-4px 4px 0 red 0");
|
||||||
|
test_invalid_value("box-shadow", "inset");
|
||||||
|
test_invalid_value("box-shadow", "inset 4px");
|
||||||
|
test_invalid_value("box-shadow", "4px inset");
|
||||||
|
test_invalid_value("box-shadow", "4px inset -4px");
|
||||||
|
test_invalid_value("box-shadow", "inset 4px -4px inset");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px inset 0");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px 0 inset 0");
|
||||||
|
test_invalid_value("box-shadow", "red inset");
|
||||||
|
test_invalid_value("box-shadow", "inset red");
|
||||||
|
test_invalid_value("box-shadow", "4px red inset");
|
||||||
|
test_invalid_value("box-shadow", "red inset 4px");
|
||||||
|
test_invalid_value("box-shadow", "4px inset red");
|
||||||
|
test_invalid_value("box-shadow", "inset red 4px");
|
||||||
|
test_invalid_value("box-shadow", "4px red inset -4px");
|
||||||
|
test_invalid_value("box-shadow", "4px inset red -4px");
|
||||||
|
test_invalid_value("box-shadow", "inset 4px red -4px");
|
||||||
|
test_invalid_value("box-shadow", "4px red 4px inset");
|
||||||
|
test_invalid_value("box-shadow", "red 4px inset -4px");
|
||||||
|
test_invalid_value("box-shadow", "4px inset -4px red");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px red inset 0");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px inset red 0");
|
||||||
|
test_invalid_value("box-shadow", "inset 4px -4px red 0");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px red 0 inset");
|
||||||
|
test_invalid_value("box-shadow", "red 4px -4px inset 0");
|
||||||
|
test_invalid_value("box-shadow", "4px -4px inset 0 red");
|
||||||
|
|
||||||
|
// <blur-radius> must be non-negative
|
||||||
|
test_invalid_value("box-shadow", "1px 1px -1px");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Add table
Add a link
Reference in a new issue