Title: [281387] trunk
Revision
281387
Author
za...@apple.com
Date
2021-08-21 21:24:30 -0700 (Sat, 21 Aug 2021)

Log Message

[LFC][IFC] Add support for -webkit-text-security: disc
https://bugs.webkit.org/show_bug.cgi?id=229047

Reviewed by Antti Koivisto.
Source/WebCore:

The disc glyph affects layout, so let's replace the text before we start measuring the inline content.

* layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
* layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Let's dump the actual disc characters.

* platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
* platform/ios/fast/css/text-overflow-input-expected.txt:
* platform/ios/fast/forms/basic-inputs-expected.txt:
* platform/ios/fast/forms/input-value-expected.txt:
* platform/mac/fast/css/text-overflow-input-expected.txt:
* platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
* platform/mac/fast/forms/basic-inputs-expected.txt:
* platform/mac/fast/forms/input-value-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (281386 => 281387)


--- trunk/LayoutTests/ChangeLog	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/ChangeLog	2021-08-22 04:24:30 UTC (rev 281387)
@@ -1,5 +1,23 @@
 2021-08-21  Alan Bujtas  <za...@apple.com>
 
+        [LFC][IFC] Add support for -webkit-text-security: disc
+        https://bugs.webkit.org/show_bug.cgi?id=229047
+
+        Reviewed by Antti Koivisto.
+        
+        Let's dump the actual disc characters.
+
+        * platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
+        * platform/ios/fast/css/text-overflow-input-expected.txt:
+        * platform/ios/fast/forms/basic-inputs-expected.txt:
+        * platform/ios/fast/forms/input-value-expected.txt:
+        * platform/mac/fast/css/text-overflow-input-expected.txt:
+        * platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
+        * platform/mac/fast/forms/basic-inputs-expected.txt:
+        * platform/mac/fast/forms/input-value-expected.txt:
+
+2021-08-21  Alan Bujtas  <za...@apple.com>
+
         [IFC][Integration] Enable modern line layout for placeholder elements
         https://bugs.webkit.org/show_bug.cgi?id=228887
 

Modified: trunk/LayoutTests/platform/ios/fast/css/text-overflow-input-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/ios/fast/css/text-overflow-input-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/ios/fast/css/text-overflow-input-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -151,7 +151,7 @@
 layer at (17,102) size 142x14 backgroundClip at (17,102) size 141x14 clip at (17,102) size 141x14 scrollWidth 387
   RenderBlock {DIV} at (0,0) size 142x14
     RenderText {#text} at (0,0) size 385x14
-      text run at (0,0) width 385: "\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 385: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"
 layer at (17,127) size 139x14 scrollX 148 scrollWidth 288
   RenderBlock {DIV} at (6,3) size 141x15 [color=#A9A9A9]
     RenderText {#text} at (-147,0) size 288x14
@@ -175,7 +175,7 @@
 layer at (17,152) size 142x14 backgroundClip at (17,152) size 141x14 clip at (17,152) size 141x14 scrollWidth 387
   RenderBlock {DIV} at (0,0) size 142x14
     RenderText {#text} at (0,0) size 385x14
-      text run at (0,0) width 385: "\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 385: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"
 layer at (17,213) size 141x14 scrollWidth 288
   RenderBlock {DIV} at (6,3) size 143x15 [color=#A9A9A9]
     RenderText {#text} at (0,0) size 288x14

Modified: trunk/LayoutTests/platform/ios/fast/forms/basic-inputs-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/ios/fast/forms/basic-inputs-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/ios/fast/forms/basic-inputs-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -73,7 +73,7 @@
 layer at (28,389) size 142x14 backgroundClip at (28,389) size 141x14 clip at (28,389) size 141x14
   RenderBlock {DIV} at (0,0) size 142x14
     RenderText {#text} at (0,0) size 21x14
-      text run at (0,0) width 21: "\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}"
 layer at (215,361) size 153x21
   RenderTextControl {INPUT} at (196,3) size 154x22 [bgcolor=#FFFFFF] [border: (1px solid #3C3C4399)]
 layer at (221,364) size 139x14
@@ -87,4 +87,4 @@
 layer at (251,389) size 140x14
   RenderBlock {DIV} at (0,0) size 140x14 [color=#545454]
     RenderText {#text} at (0,0) size 21x14
-      text run at (0,0) width 21: "\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}"

Modified: trunk/LayoutTests/platform/ios/fast/forms/input-value-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/ios/fast/forms/input-value-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/ios/fast/forms/input-value-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -213,7 +213,7 @@
 layer at (399,171) size 142x14
   RenderBlock {DIV} at (0,0) size 142x14
     RenderText {#text} at (0,0) size 42x14
-      text run at (0,0) width 42: "\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 42: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"
 layer at (399,328) size 141x14
   RenderBlock {DIV} at (6,3) size 143x15
     RenderText {#text} at (0,0) size 25x14

Modified: trunk/LayoutTests/platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -15,4 +15,4 @@
 layer at (17,77) size 142x14 backgroundClip at (17,77) size 141x14 clip at (17,77) size 141x14
   RenderBlock {DIV} at (0,0) size 142x14
     RenderText {#text} at (0,0) size 63x14
-      text run at (0,0) width 63: "\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}\x{25CF}"
+      text run at (0,0) width 63: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"

Modified: trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -151,7 +151,7 @@
 layer at (13,96) size 141x13 scrollWidth 386
   RenderBlock {DIV} at (0,0) size 141x13
     RenderText {#text} at (0,0) size 385x13
-      text run at (0,0) width 385: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
+      text run at (0,0) width 385: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"
 layer at (13,119) size 140x13 scrollX 148 scrollWidth 288
   RenderBlock {DIV} at (3,3) size 140x13 [color=#A9A9A9]
     RenderText {#text} at (-147,0) size 288x13

Modified: trunk/LayoutTests/platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -15,4 +15,4 @@
 layer at (13,73) size 141x13
   RenderBlock {DIV} at (0,0) size 141x13
     RenderText {#text} at (0,0) size 63x13
-      text run at (0,0) width 63: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
+      text run at (0,0) width 63: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"

Modified: trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -81,8 +81,8 @@
 layer at (24,353) size 141x13
   RenderBlock {DIV} at (0,0) size 141x13
     RenderText {#text} at (0,0) size 21x13
-      text run at (0,0) width 21: "\x{2022}\x{2022}\x{2022}"
+      text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}"
 layer at (239,353) size 140x13
   RenderBlock {DIV} at (0,0) size 140x13 [color=#545454]
     RenderText {#text} at (0,0) size 21x13
-      text run at (0,0) width 21: "\x{2022}\x{2022}\x{2022}"
+      text run at (0,0) width 21: "\x{F79A}\x{F79A}\x{F79A}"

Modified: trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt (281386 => 281387)


--- trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt	2021-08-22 04:24:30 UTC (rev 281387)
@@ -209,7 +209,7 @@
 layer at (409,161) size 141x13
   RenderBlock {DIV} at (0,0) size 141x13
     RenderText {#text} at (0,0) size 42x13
-      text run at (0,0) width 42: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
+      text run at (0,0) width 42: "\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}\x{F79A}"
 layer at (409,302) size 141x13
   RenderBlock {DIV} at (3,3) size 141x13
     RenderText {#text} at (0,0) size 25x13

Modified: trunk/Source/WebCore/ChangeLog (281386 => 281387)


--- trunk/Source/WebCore/ChangeLog	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/Source/WebCore/ChangeLog	2021-08-22 04:24:30 UTC (rev 281387)
@@ -1,5 +1,21 @@
 2021-08-21  Alan Bujtas  <za...@apple.com>
 
+        [LFC][IFC] Add support for -webkit-text-security: disc
+        https://bugs.webkit.org/show_bug.cgi?id=229047
+
+        Reviewed by Antti Koivisto.
+
+        The disc glyph affects layout, so let's replace the text before we start measuring the inline content.
+
+        * layout/integration/LayoutIntegrationBoxTree.cpp:
+        (WebCore::LayoutIntegration::BoxTree::buildTree):
+        * layout/integration/LayoutIntegrationCoverage.cpp:
+        (WebCore::LayoutIntegration::printReason):
+        (WebCore::LayoutIntegration::canUseForStyle):
+        * layout/integration/LayoutIntegrationCoverage.h:
+
+2021-08-21  Alan Bujtas  <za...@apple.com>
+
         [IFC][Integration] Enable modern line layout for placeholder elements
         https://bugs.webkit.org/show_bug.cgi?id=228887
 

Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp (281386 => 281387)


--- trunk/Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp	2021-08-22 04:24:30 UTC (rev 281387)
@@ -66,7 +66,9 @@
         if (is<RenderText>(childRenderer)) {
             auto& textRenderer = downcast<RenderText>(childRenderer);
             auto style = RenderStyle::createAnonymousStyleWithDisplay(textRenderer.style(), DisplayType::Inline);
-            return makeUnique<Layout::InlineTextBox>(textRenderer.text(), textRenderer.canUseSimplifiedTextMeasuring(), WTFMove(style));
+            return makeUnique<Layout::InlineTextBox>(
+                style.textSecurity() == TextSecurity::None ? textRenderer.text() : RenderBlock::updateSecurityDiscCharacters(style, textRenderer.text())
+                , textRenderer.canUseSimplifiedTextMeasuring(), WTFMove(style));
         }
 
         auto style = RenderStyle::clone(childRenderer.style());

Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp (281386 => 281387)


--- trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp	2021-08-22 03:31:33 UTC (rev 281386)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp	2021-08-22 04:24:30 UTC (rev 281387)
@@ -162,9 +162,6 @@
     case AvoidanceReason::FlowHasAfterWhiteSpaceLineBreak:
         stream << "line-break is after-white-space";
         break;
-    case AvoidanceReason::FlowHasTextSecurity:
-        stream << "text-security is not none";
-        break;
     case AvoidanceReason::FlowHasSVGFont:
         stream << "SVG font";
         break;
@@ -525,10 +522,6 @@
         SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextCombine, reasons, includeReasons);
     if (style.backgroundClip() == FillBox::Text)
         SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextFillBox, reasons, includeReasons);
-    // Special handling of text-security:disc is not yet implemented in the simple line layout code path.
-    // See RenderBlock::updateSecurityDiscCharacters.
-    if (style.textSecurity() != TextSecurity::None)
-        SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextSecurity, reasons, includeReasons);
 
     // These are non-standard properties.
     if (style.lineBreak() == LineBreak::AfterWhiteSpace)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to