Title: [293830] trunk
Revision
293830
Author
z...@igalia.com
Date
2022-05-05 07:45:07 -0700 (Thu, 05 May 2022)

Log Message

<input type=color> should have box-sizing: border-box in UA stylesheet
https://bugs.webkit.org/show_bug.cgi?id=197878

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

* web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:

Source/WebCore:

As discussed at [1], We should have box-sizing: border-box for <input type=color>, the same
as buttons. WebKit currently has content-box. This patch is to change it to box-box.

Since <input type=color> is disabled with WebKitLegacy [2], this fix doesn't apply to it. Hence,
for mac-wk1 platform, the test expectation for html/rendering/non-replaced-elements/form-controls/resets.html
stays as it is.

[1] https://github.com/whatwg/html/issues/4281
[2] https://webkit-search.igalia.com/webkit/source/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml#425-437

* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::colorInputStyleSheet const):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::colorInputStyleSheet const):

LayoutTests:

* platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (293829 => 293830)


--- trunk/LayoutTests/ChangeLog	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/LayoutTests/ChangeLog	2022-05-05 14:45:07 UTC (rev 293830)
@@ -1,3 +1,13 @@
+2022-05-05  Ziran Sun  <z...@igalia.com>
+
+        <input type=color> should have box-sizing: border-box in UA stylesheet
+        https://bugs.webkit.org/show_bug.cgi?id=197878
+
+        Reviewed by Tim Nguyen.
+
+        * platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:
+        * platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt.
+
 2022-05-04  Devin Rousso  <drou...@apple.com>
 
         [Apple Pay] REGRESSION(r291588): `appearance: -apple-pay-button` doesn't work with `border-width: 0`

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (293829 => 293830)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-05-05 14:45:07 UTC (rev 293830)
@@ -1,3 +1,12 @@
+2022-05-05  Ziran Sun  <z...@igalia.com>
+
+        <input type=color> should have box-sizing: border-box in UA stylesheet
+        https://bugs.webkit.org/show_bug.cgi?id=197878
+
+        Reviewed by Tim Nguyen.
+
+        * web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt:
+
 2022-05-04  Ziran Sun  <z...@igalia.com>
 
         [InputElement] Selection after type change needs to follow HTML specification

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt (293829 => 293830)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	2022-05-05 14:45:07 UTC (rev 293830)
@@ -134,7 +134,7 @@
 PASS <input type="color"> - text-shadow
 PASS <input type="color"> - text-align
 PASS <input type="color"> - display
-FAIL <input type="color"> - box-sizing assert_equals: expected "border-box" but got "content-box"
+PASS <input type="color"> - box-sizing
 PASS <input type="checkbox"> - letter-spacing
 PASS <input type="checkbox"> - word-spacing
 PASS <input type="checkbox"> - line-height

Modified: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt (293829 => 293830)


--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	2022-05-05 14:45:07 UTC (rev 293830)
@@ -134,7 +134,7 @@
 PASS <input type="color"> - text-shadow
 PASS <input type="color"> - text-align
 PASS <input type="color"> - display
-FAIL <input type="color"> - box-sizing assert_equals: expected "border-box" but got "content-box"
+PASS <input type="color"> - box-sizing
 PASS <input type="checkbox"> - letter-spacing
 PASS <input type="checkbox"> - word-spacing
 PASS <input type="checkbox"> - line-height

Copied: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt (from rev 293829, trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt) (0 => 293830)


--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt	2022-05-05 14:45:07 UTC (rev 293830)
@@ -0,0 +1,313 @@
+
+
+PASS <input type="hidden"> - letter-spacing
+PASS <input type="hidden"> - word-spacing
+PASS <input type="hidden"> - line-height
+PASS <input type="hidden"> - text-transform
+PASS <input type="hidden"> - text-indent
+PASS <input type="hidden"> - text-shadow
+PASS <input type="hidden"> - text-align
+PASS <input type="hidden"> - display
+PASS <input type="hidden"> - box-sizing
+PASS <input type="text"> - letter-spacing
+PASS <input type="text"> - word-spacing
+PASS <input type="text"> - line-height
+PASS <input type="text"> - text-transform
+PASS <input type="text"> - text-indent
+PASS <input type="text"> - text-shadow
+PASS <input type="text"> - text-align
+PASS <input type="text"> - display
+PASS <input type="text"> - box-sizing
+PASS <input type="search"> - letter-spacing
+PASS <input type="search"> - word-spacing
+PASS <input type="search"> - line-height
+PASS <input type="search"> - text-transform
+PASS <input type="search"> - text-indent
+PASS <input type="search"> - text-shadow
+PASS <input type="search"> - text-align
+PASS <input type="search"> - display
+PASS <input type="search"> - box-sizing
+PASS <input type="tel"> - letter-spacing
+PASS <input type="tel"> - word-spacing
+PASS <input type="tel"> - line-height
+PASS <input type="tel"> - text-transform
+PASS <input type="tel"> - text-indent
+PASS <input type="tel"> - text-shadow
+PASS <input type="tel"> - text-align
+PASS <input type="tel"> - display
+PASS <input type="tel"> - box-sizing
+PASS <input type="url"> - letter-spacing
+PASS <input type="url"> - word-spacing
+PASS <input type="url"> - line-height
+PASS <input type="url"> - text-transform
+PASS <input type="url"> - text-indent
+PASS <input type="url"> - text-shadow
+PASS <input type="url"> - text-align
+PASS <input type="url"> - display
+PASS <input type="url"> - box-sizing
+PASS <input type="email"> - letter-spacing
+PASS <input type="email"> - word-spacing
+PASS <input type="email"> - line-height
+PASS <input type="email"> - text-transform
+PASS <input type="email"> - text-indent
+PASS <input type="email"> - text-shadow
+PASS <input type="email"> - text-align
+PASS <input type="email"> - display
+PASS <input type="email"> - box-sizing
+PASS <input type="password"> - letter-spacing
+PASS <input type="password"> - word-spacing
+PASS <input type="password"> - line-height
+PASS <input type="password"> - text-transform
+PASS <input type="password"> - text-indent
+PASS <input type="password"> - text-shadow
+PASS <input type="password"> - text-align
+PASS <input type="password"> - display
+PASS <input type="password"> - box-sizing
+PASS <input type="date"> - letter-spacing
+PASS <input type="date"> - word-spacing
+PASS <input type="date"> - line-height
+PASS <input type="date"> - text-transform
+PASS <input type="date"> - text-indent
+PASS <input type="date"> - text-shadow
+PASS <input type="date"> - text-align
+FAIL <input type="date"> - display assert_equals: expected "inline-block" but got "inline-flex"
+PASS <input type="date"> - box-sizing
+PASS <input type="month"> - letter-spacing
+PASS <input type="month"> - word-spacing
+PASS <input type="month"> - line-height
+PASS <input type="month"> - text-transform
+PASS <input type="month"> - text-indent
+PASS <input type="month"> - text-shadow
+PASS <input type="month"> - text-align
+FAIL <input type="month"> - display assert_equals: expected "inline-block" but got "inline-flex"
+PASS <input type="month"> - box-sizing
+PASS <input type="week"> - letter-spacing
+PASS <input type="week"> - word-spacing
+PASS <input type="week"> - line-height
+PASS <input type="week"> - text-transform
+PASS <input type="week"> - text-indent
+PASS <input type="week"> - text-shadow
+PASS <input type="week"> - text-align
+FAIL <input type="week"> - display assert_equals: expected "inline-block" but got "inline-flex"
+PASS <input type="week"> - box-sizing
+PASS <input type="time"> - letter-spacing
+PASS <input type="time"> - word-spacing
+PASS <input type="time"> - line-height
+PASS <input type="time"> - text-transform
+PASS <input type="time"> - text-indent
+PASS <input type="time"> - text-shadow
+PASS <input type="time"> - text-align
+FAIL <input type="time"> - display assert_equals: expected "inline-block" but got "inline-flex"
+PASS <input type="time"> - box-sizing
+PASS <input type="datetime-local"> - letter-spacing
+PASS <input type="datetime-local"> - word-spacing
+PASS <input type="datetime-local"> - line-height
+PASS <input type="datetime-local"> - text-transform
+PASS <input type="datetime-local"> - text-indent
+PASS <input type="datetime-local"> - text-shadow
+PASS <input type="datetime-local"> - text-align
+FAIL <input type="datetime-local"> - display assert_equals: expected "inline-block" but got "inline-flex"
+PASS <input type="datetime-local"> - box-sizing
+PASS <input type="number"> - letter-spacing
+PASS <input type="number"> - word-spacing
+PASS <input type="number"> - line-height
+PASS <input type="number"> - text-transform
+PASS <input type="number"> - text-indent
+PASS <input type="number"> - text-shadow
+PASS <input type="number"> - text-align
+PASS <input type="number"> - display
+PASS <input type="number"> - box-sizing
+PASS <input type="range"> - letter-spacing
+PASS <input type="range"> - word-spacing
+PASS <input type="range"> - line-height
+PASS <input type="range"> - text-transform
+PASS <input type="range"> - text-indent
+PASS <input type="range"> - text-shadow
+PASS <input type="range"> - text-align
+PASS <input type="range"> - display
+PASS <input type="range"> - box-sizing
+PASS <input type="color"> - letter-spacing
+PASS <input type="color"> - word-spacing
+PASS <input type="color"> - line-height
+PASS <input type="color"> - text-transform
+PASS <input type="color"> - text-indent
+PASS <input type="color"> - text-shadow
+PASS <input type="color"> - text-align
+PASS <input type="color"> - display
+FAIL <input type="color"> - box-sizing assert_equals: expected "border-box" but got "content-box"
+PASS <input type="checkbox"> - letter-spacing
+PASS <input type="checkbox"> - word-spacing
+PASS <input type="checkbox"> - line-height
+PASS <input type="checkbox"> - text-transform
+PASS <input type="checkbox"> - text-indent
+PASS <input type="checkbox"> - text-shadow
+PASS <input type="checkbox"> - text-align
+PASS <input type="checkbox"> - display
+PASS <input type="checkbox"> - box-sizing
+PASS <input type="radio"> - letter-spacing
+PASS <input type="radio"> - word-spacing
+PASS <input type="radio"> - line-height
+PASS <input type="radio"> - text-transform
+PASS <input type="radio"> - text-indent
+PASS <input type="radio"> - text-shadow
+PASS <input type="radio"> - text-align
+PASS <input type="radio"> - display
+PASS <input type="radio"> - box-sizing
+PASS <input type="file"> - letter-spacing
+PASS <input type="file"> - word-spacing
+PASS <input type="file"> - line-height
+PASS <input type="file"> - text-transform
+PASS <input type="file"> - text-indent
+PASS <input type="file"> - text-shadow
+PASS <input type="file"> - text-align
+PASS <input type="file"> - display
+PASS <input type="file"> - box-sizing
+PASS <input type="submit"> - letter-spacing
+PASS <input type="submit"> - word-spacing
+PASS <input type="submit"> - line-height
+PASS <input type="submit"> - text-transform
+PASS <input type="submit"> - text-indent
+PASS <input type="submit"> - text-shadow
+PASS <input type="submit"> - text-align
+PASS <input type="submit"> - display
+PASS <input type="submit"> - box-sizing
+PASS <input type="image"> - letter-spacing
+PASS <input type="image"> - word-spacing
+PASS <input type="image"> - line-height
+PASS <input type="image"> - text-transform
+PASS <input type="image"> - text-indent
+PASS <input type="image"> - text-shadow
+PASS <input type="image"> - text-align
+PASS <input type="image"> - display
+PASS <input type="image"> - box-sizing
+PASS <input type="reset"> - letter-spacing
+PASS <input type="reset"> - word-spacing
+PASS <input type="reset"> - line-height
+PASS <input type="reset"> - text-transform
+PASS <input type="reset"> - text-indent
+PASS <input type="reset"> - text-shadow
+PASS <input type="reset"> - text-align
+PASS <input type="reset"> - display
+PASS <input type="reset"> - box-sizing
+PASS <input type="button"> - letter-spacing
+PASS <input type="button"> - word-spacing
+PASS <input type="button"> - line-height
+PASS <input type="button"> - text-transform
+PASS <input type="button"> - text-indent
+PASS <input type="button"> - text-shadow
+PASS <input type="button"> - text-align
+PASS <input type="button"> - display
+PASS <input type="button"> - box-sizing
+PASS <select><optgroup><option> - letter-spacing
+PASS <select><optgroup><option> - word-spacing
+PASS <select><optgroup><option> - line-height
+PASS <select><optgroup><option> - text-transform
+PASS <select><optgroup><option> - text-indent
+PASS <select><optgroup><option> - text-shadow
+PASS <select><optgroup><option> - text-align
+PASS <select><optgroup><option> - display
+PASS <select><optgroup><option> - box-sizing
+PASS <optgroup><option> (in <select>) - letter-spacing
+PASS <optgroup><option> (in <select>) - word-spacing
+PASS <optgroup><option> (in <select>) - line-height
+PASS <optgroup><option> (in <select>) - text-transform
+PASS <optgroup><option> (in <select>) - text-indent
+PASS <optgroup><option> (in <select>) - text-shadow
+PASS <optgroup><option> (in <select>) - text-align
+PASS <optgroup><option> (in <select>) - box-sizing
+PASS <option> (in <select><optgroup>) - letter-spacing
+PASS <option> (in <select><optgroup>) - word-spacing
+PASS <option> (in <select><optgroup>) - line-height
+PASS <option> (in <select><optgroup>) - text-transform
+PASS <option> (in <select><optgroup>) - text-indent
+PASS <option> (in <select><optgroup>) - text-shadow
+PASS <option> (in <select><optgroup>) - text-align
+PASS <option> (in <select><optgroup>) - box-sizing
+PASS <select multiple=""> - letter-spacing
+PASS <select multiple=""> - word-spacing
+PASS <select multiple=""> - line-height
+PASS <select multiple=""> - text-transform
+PASS <select multiple=""> - text-indent
+PASS <select multiple=""> - text-shadow
+PASS <select multiple=""> - text-align
+PASS <select multiple=""> - display
+PASS <select multiple=""> - box-sizing
+PASS <optgroup> - letter-spacing
+PASS <optgroup> - word-spacing
+PASS <optgroup> - line-height
+PASS <optgroup> - text-transform
+PASS <optgroup> - text-indent
+PASS <optgroup> - text-shadow
+PASS <optgroup> - text-align
+PASS <optgroup> - box-sizing
+PASS <option> - letter-spacing
+PASS <option> - word-spacing
+PASS <option> - line-height
+PASS <option> - text-transform
+PASS <option> - text-indent
+PASS <option> - text-shadow
+PASS <option> - text-align
+PASS <option> - box-sizing
+PASS <button> - letter-spacing
+PASS <button> - word-spacing
+PASS <button> - line-height
+PASS <button> - text-transform
+PASS <button> - text-indent
+PASS <button> - text-shadow
+PASS <button> - text-align
+PASS <button> - display
+PASS <button> - box-sizing
+PASS <textarea> - letter-spacing
+PASS <textarea> - word-spacing
+PASS <textarea> - line-height
+PASS <textarea> - text-transform
+PASS <textarea> - text-indent
+PASS <textarea> - text-shadow
+PASS <textarea> - text-align
+PASS <textarea> - display
+PASS <textarea> - box-sizing
+PASS <table><tbody><tr><td> - letter-spacing
+PASS <table><tbody><tr><td> - word-spacing
+PASS <table><tbody><tr><td> - line-height
+PASS <table><tbody><tr><td> - text-transform
+PASS <table><tbody><tr><td> - text-indent
+PASS <table><tbody><tr><td> - text-shadow
+PASS <table><tbody><tr><td> - text-align
+PASS <table><tbody><tr><td> - display
+PASS <table><tbody><tr><td> - box-sizing
+PASS <tbody><tr><td> (in <table>) - letter-spacing
+PASS <tbody><tr><td> (in <table>) - word-spacing
+PASS <tbody><tr><td> (in <table>) - line-height
+PASS <tbody><tr><td> (in <table>) - text-transform
+PASS <tbody><tr><td> (in <table>) - text-indent
+PASS <tbody><tr><td> (in <table>) - text-shadow
+PASS <tbody><tr><td> (in <table>) - text-align
+PASS <tbody><tr><td> (in <table>) - display
+PASS <tbody><tr><td> (in <table>) - box-sizing
+PASS <tr><td> (in <table><tbody>) - letter-spacing
+PASS <tr><td> (in <table><tbody>) - word-spacing
+PASS <tr><td> (in <table><tbody>) - line-height
+PASS <tr><td> (in <table><tbody>) - text-transform
+PASS <tr><td> (in <table><tbody>) - text-indent
+PASS <tr><td> (in <table><tbody>) - text-shadow
+PASS <tr><td> (in <table><tbody>) - text-align
+PASS <tr><td> (in <table><tbody>) - display
+PASS <tr><td> (in <table><tbody>) - box-sizing
+PASS <td> (in <table><tbody><tr>) - letter-spacing
+PASS <td> (in <table><tbody><tr>) - word-spacing
+PASS <td> (in <table><tbody><tr>) - line-height
+PASS <td> (in <table><tbody><tr>) - text-transform
+PASS <td> (in <table><tbody><tr>) - text-indent
+PASS <td> (in <table><tbody><tr>) - text-shadow
+PASS <td> (in <table><tbody><tr>) - text-align
+PASS <td> (in <table><tbody><tr>) - display
+PASS <td> (in <table><tbody><tr>) - box-sizing
+PASS <marquee> - letter-spacing
+PASS <marquee> - word-spacing
+PASS <marquee> - line-height
+PASS <marquee> - text-transform
+PASS <marquee> - text-indent
+PASS <marquee> - text-shadow
+PASS <marquee> - text-align
+PASS <marquee> - box-sizing
+

Modified: trunk/Source/WebCore/ChangeLog (293829 => 293830)


--- trunk/Source/WebCore/ChangeLog	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/Source/WebCore/ChangeLog	2022-05-05 14:45:07 UTC (rev 293830)
@@ -1,3 +1,26 @@
+2022-05-05  Ziran Sun  <z...@igalia.com>
+
+        <input type=color> should have box-sizing: border-box in UA stylesheet
+        https://bugs.webkit.org/show_bug.cgi?id=197878
+
+        Reviewed by Tim Nguyen.
+
+        As discussed at [1], We should have box-sizing: border-box for <input type=color>, the same
+        as buttons. WebKit currently has content-box. This patch is to change it to box-box.
+
+        Since <input type=color> is disabled with WebKitLegacy [2], this fix doesn't apply to it. Hence,
+        for mac-wk1 platform, the test expectation for html/rendering/non-replaced-elements/form-controls/resets.html
+        stays as it is.        
+
+        [1] https://github.com/whatwg/html/issues/4281
+        [2] https://webkit-search.igalia.com/webkit/source/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml#425-437
+
+        
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::colorInputStyleSheet const):
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::RenderThemeIOS::colorInputStyleSheet const):
+
 2022-05-05  Youenn Fablet  <you...@apple.com>
 
         replaceTrack with different constraints stops sending packets

Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (293829 => 293830)


--- trunk/Source/WebCore/rendering/RenderTheme.cpp	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp	2022-05-05 14:45:07 UTC (rev 293830)
@@ -1213,7 +1213,7 @@
 
 String RenderTheme::colorInputStyleSheet(const Settings&) const
 {
-    return "input[type=\"color\"] { appearance: auto; width: 44px; height: 23px; outline: none; } "_s;
+    return "input[type=\"color\"] { appearance: auto; width: 44px; height: 23px; box-sizing: border-box; outline: none; } "_s;
 }
 
 #endif // ENABLE(INPUT_TYPE_COLOR)

Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (293829 => 293830)


--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm	2022-05-05 13:42:39 UTC (rev 293829)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm	2022-05-05 14:45:07 UTC (rev 293830)
@@ -2602,7 +2602,7 @@
     if (!settings.iOSFormControlRefreshEnabled())
         return RenderTheme::colorInputStyleSheet(settings);
 
-    return "input[type=\"color\"] { appearance: auto; width: 28px; height: 28px; outline: none; border: initial; border-radius: 50%; } "_s;
+    return "input[type=\"color\"] { appearance: auto; width: 28px; height: 28px; box-sizing: border-box; outline: none; border: initial; border-radius: 50%; } "_s;
 }
 
 void RenderThemeIOS::adjustColorWellStyle(RenderStyle& style, const Element* element) const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to