mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 13:48:23 +02:00
Automatic update from web-platform-tests Handle non-negativeness of blur radius properly Spec on blur radius says [1]: "... Specifies the blur radius. Negative values are not allowed." Current implementation performs parse time range check, which is incorrect as calc() doesn't always have a double value. And spec requires clamping instead of parse time check for calc() [2]: "Parse-time range-checking of values is not performed within math functions, and therefore out-of-range values do not cause the declaration to become invalid. However, the value resulting from an expression must be clamped to the range allowed in the target context." This patch changes it to pass |kValueRangeNonNegative| to |ConsumeLength| as it handles non-negative calc() more properly. This is also preparation for adding DCHECK into GetDoubleValue() to avoid calling it on calc() without a double value. [1] https://drafts.csswg.org/css-backgrounds-3/#shadow-blur-radius [2] https://drafts.csswg.org/css-values-4/#calc-range Bug: 979895 Change-Id: Ia8c36641f4ec4111ecf5a94a6ffc6eaacf22049c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1691747 Reviewed-by: Emil A Eklund <eae@chromium.org> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org> Cr-Commit-Position: refs/heads/master@{#675815} -- wpt-commits: 65d3f17c56ea812d121669e6268a0cec4a4ea4a6 wpt-pr: 17741
67 lines
4 KiB
HTML
67 lines
4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>CSS Backgrounds and Borders Module Level 3: parsing box-shadow with valid 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 the full grammar 'none | <shadow>#'.">
|
|
<meta name="assert" content="Box shadow color, inset, and length parameters can be mixed in any order." />
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/css/support/parsing-testcommon.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
test_valid_value("box-shadow", "none");
|
|
test_valid_value("box-shadow", "1px 2px");
|
|
test_valid_value("box-shadow", "red 1px 2px 3px -4px inset"); // Edge serializes as "inset 1px 2px 3px -4px red"
|
|
test_valid_value("box-shadow", "inset 1px 2px red", "red 1px 2px inset");
|
|
test_valid_value("box-shadow", "1px -2px inset, red -3px 4px"); // Edge serializes as "inset 1px -2px, -3px 4px red"
|
|
test_valid_value("box-shadow", "inset 1px -2px, -3px 4px red", "1px -2px inset, red -3px 4px");
|
|
|
|
|
|
// color only
|
|
test_valid_value("box-shadow", "4px 4px green", "green 4px 4px");
|
|
test_valid_value("box-shadow", "green -4px 4px", "green -4px 4px");
|
|
test_valid_value("box-shadow", "-4px 4px 0 green", "green -4px 4px 0px");
|
|
test_valid_value("box-shadow", "green -4px 4px 0", "green -4px 4px 0px");
|
|
test_valid_value("box-shadow", "-4px 4px 0 0 green", "green -4px 4px 0px 0px");
|
|
test_valid_value("box-shadow", "green -4px 4px 0 0", "green -4px 4px 0px 0px");
|
|
|
|
// inset only
|
|
test_valid_value("box-shadow", "4px -4px inset", "4px -4px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px", "4px -4px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 inset", "4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px 0", "4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 0 inset", "4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px 0 0", "4px -4px 0px 0px inset");
|
|
|
|
// color and inset
|
|
test_valid_value("box-shadow", "4px -4px green inset", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "4px -4px inset green", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "inset green 4px -4px", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "green inset 4px -4px", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "green 4px -4px inset", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px green", "green 4px -4px inset");
|
|
test_valid_value("box-shadow", "inset green 4px -4px 0", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "green inset 4px -4px 0", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 green inset", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 inset green", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "green 4px -4px 0 inset", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px 0 green", "green 4px -4px 0px inset");
|
|
test_valid_value("box-shadow", "inset green 4px -4px 0 0", "green 4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "green inset 4px -4px 0 0", "green 4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 0 green inset", "green 4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "4px -4px 0 0 inset green", "green 4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "green 4px -4px 0 0 inset", "green 4px -4px 0px 0px inset");
|
|
test_valid_value("box-shadow", "inset 4px -4px 0 0 green", "green 4px -4px 0px 0px inset");
|
|
|
|
// No parse-time range-checking for <blur-radius> given as a math function
|
|
// https://drafts.csswg.org/css-values-4/#calc-range
|
|
test_valid_value("box-shadow", "1px 1px calc(-1px)", "1px 1px calc(-1px)");
|
|
test_valid_value("box-shadow", "1px 1px calc(1em - 2px)", "1px 1px calc(1em - 2px)");
|
|
</script>
|
|
</body>
|
|
</html>
|