-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add block-step-size to CSS parser. #10176
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
|
||
PASS Property block-step-size value '0px' | ||
PASS Property block-step-size value 'none' | ||
PASS Property block-step-size value '100px' | ||
PASS Property block-step-size value '2em' | ||
PASS Property block-step-size value 'calc(10px + 0.5em)' | ||
PASS Property block-step-size value 'calc(10px - 0.5em)' | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>CSS Rhythm: block-step-size computed values</title> | ||
<link rel="author" title="Sammy Gill" href="sammy.gill@apple.com"> | ||
<link rel="help" href="https://drafts.csswg.org/css-rhythm/#block-step-size"> | ||
<meta name="assert" content="Checking computed values for block-step-size"> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="/css/support/computed-testcommon.js"></script> | ||
<script src="/css/support/parsing-testcommon.js"></script> | ||
<style> | ||
#target { | ||
font-size: 40px; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="target"></div> | ||
<script> | ||
test_computed_value("block-step-size", "0px"); | ||
test_computed_value("block-step-size", "none"); | ||
test_computed_value("block-step-size", "100px"); | ||
test_computed_value("block-step-size", "2em", "80px"); | ||
test_computed_value("block-step-size", "calc(10px + 0.5em)", "30px"); | ||
test_computed_value("block-step-size", "calc(10px - 0.5em)", "0px"); | ||
</script> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
|
||
PASS e.style['block-step-size'] = "auto" should not set the property value | ||
PASS e.style['block-step-size'] = "-1px" should not set the property value | ||
PASS e.style['block-step-size'] = "min-content" should not set the property value | ||
PASS e.style['block-step-size'] = "10%" should not set the property value | ||
PASS e.style['block-step-size'] = "20" should not set the property value | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>CSS Rhythm: block-step-size invalid values</title> | ||
<link rel="author" title="Sammy Gill" href="sammy.gill@apple.com"> | ||
<link rel="help" href="https://drafts.csswg.org/css-rhythm/#block-step-size"> | ||
<meta name="assert" content="Invalid values for block-step-size should not be parsed"> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="/css/support/computed-testcommon.js"></script> | ||
<script src="/css/support/parsing-testcommon.js"></script> | ||
<style> | ||
#target { | ||
font-size: 40px; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="target"></div> | ||
<script> | ||
test_invalid_value("block-step-size", "auto"); | ||
test_invalid_value("block-step-size", "-1px"); | ||
test_invalid_value("block-step-size", "min-content"); | ||
test_invalid_value("block-step-size", "10%"); | ||
test_invalid_value("block-step-size", "20"); | ||
</script> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
|
||
PASS e.style['block-step-size'] = "1px" should set the property value | ||
PASS e.style['block-step-size'] = "2em" should set the property value | ||
PASS e.style['block-step-size'] = "0" should set the property value | ||
PASS e.style['block-step-size'] = "none" should set the property value | ||
PASS e.style['block-step-size'] = "calc(2em + 3ex)" should set the property value | ||
PASS e.style['block-step-size'] = "1.2em" should set the property value | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>CSS Rhythm: block-step-size valid values</title> | ||
<link rel="author" title="Sammy Gill" href="sammy.gill@apple.com"> | ||
<link rel="help" href="https://drafts.csswg.org/css-rhythm/#block-step-size"> | ||
<meta name="assert" content="Parsing valid values for block-step-size properties"> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script src="/css/support/computed-testcommon.js"></script> | ||
<script src="/css/support/parsing-testcommon.js"></script> | ||
<style> | ||
#target { | ||
font-size: 40px; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="target"></div> | ||
<script> | ||
test_valid_value("block-step-size", "1px"); | ||
test_valid_value("block-step-size", "2em"); | ||
test_valid_value("block-step-size", "0", "0px"); | ||
test_valid_value("block-step-size", "none"); | ||
test_valid_value("block-step-size", "calc(2em + 3ex)"); | ||
test_valid_value("block-step-size", "1.2em"); | ||
</script> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -173,6 +173,8 @@ class StyleRareNonInheritedData : public RefCounted<StyleRareNonInheritedData> { | |
|
||
float zoom; | ||
|
||
std::optional<Length> blockStepSize; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You need to compare in the equality operator as well and add it to the copy constructor. https://searchfox.org/wubkat/source/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp#161 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Think I got everything but let me know if I missed something |
||
|
||
unsigned overscrollBehaviorX : 2; // OverscrollBehavior | ||
unsigned overscrollBehaviorY : 2; // OverscrollBehavior | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I see, the spec doesn't define whether the property is animatable. Can you file an issue on w3c/csswg-drafts?
Feel free to ignore my comment about animation tests for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://drafts.csswg.org/css-rhythm/#block-step-size
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
w3c/csswg-drafts#8459