Title: [227947] trunk
Revision
227947
Author
[email protected]
Date
2018-01-31 17:56:52 -0800 (Wed, 31 Jan 2018)

Log Message

inline-block baseline not computed correctly for vertical-lr
https://bugs.webkit.org/show_bug.cgi?id=170176

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

When computing the baseline position of inline-block elements we use the
InlineFlow logicalTop and the FontMetrics ascent. The issue comes from
the fact that these units are incompatible. The logicalTop of a
vertical-lr element is offset to the left edge, while the ascent is the
distance from the right edge.

We need to either use logical value for the FontMetrics ascent so we can
compute the correctly the baselines of vertical-lr elements, or just using
the logicalBottom for these cases.

The approach based on a logicalAscent API for FontMetrics would require
a lot of work because inline-block logic assumes everything is vertical-rl
and at some point, flips the elements along the block-axis in case of
vertical-lr mode.

While it'd be desirable to get rid of this flipping logic, this patch tries
first the simpler approach of using logicalBottom, which aligns with the
currently implemented logic.

Tests: fast/inline-block/baseline-vertical-01.html
       fast/inline-block/baseline-vertical-02.html
       fast/inline-block/baseline-vertical-03.html
       fast/inline-block/baseline-vertical-04.html
       fast/inline-block/baseline-vertical-05.html
       fast/inline-block/baseline-vertical-06.html
       fast/inline-block/baseline-vertical-07.html
       fast/inline-block/baseline-vertical-08.html

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

LayoutTests:

Tests to evaluate the baseline alignment in vertical modes.
Additionally, several tests were rebaselined.

Some of the new tests are marked as Failure for the ios-sim
platform because of pixel rounding errors in the absolute
positioned elements used as reference.

Finally, there are color differences in the border-styles-vertical-lr-expected.png
caused by changes in the gtk+ platform. Those differences were not noticeable until
now that the patch causes diffs in the expected.txt files.

* fast/inline-block/baseline-vertical-01-expected.html: Added.
* fast/inline-block/baseline-vertical-01.html: Added.
* fast/inline-block/baseline-vertical-02-expected.html: Added.
* fast/inline-block/baseline-vertical-02.html: Added.
* fast/inline-block/baseline-vertical-03-expected.html: Added.
* fast/inline-block/baseline-vertical-03.html: Added.
* fast/inline-block/baseline-vertical-04-expected.html: Added.
* fast/inline-block/baseline-vertical-04.html: Added.
* fast/inline-block/baseline-vertical-05-expected.html: Added.
* fast/inline-block/baseline-vertical-05.html: Added.
* fast/inline-block/baseline-vertical-06-expected.html: Added.
* fast/inline-block/baseline-vertical-06.html: Added.
* fast/inline-block/baseline-vertical-07-expected.html: Added.
* fast/inline-block/baseline-vertical-07.html: Added.
* fast/inline-block/baseline-vertical-08-expected.html: Added.
* fast/inline-block/baseline-vertical-08.html: Added.
* fast/text/emphasis-avoid-ruby-expected.png:
* fast/text/emphasis-avoid-ruby-expected.txt:
* fast/text/emphasis-overlap-expected.png:
* fast/text/emphasis-overlap-expected.txt:
* platform/gtk/fast/backgrounds/background-leakage-transforms-expected.png:
* platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.png:
* platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/ios-simulator/TestExpectations:
* platform/ios/fast/backgrounds/background-leakage-transforms-expected.png: Added.
* platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.png:
* platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/mac/fast/backgrounds/background-leakage-transforms-expected.png:
* platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/win/fast/writing-mode/text-orientation-basic-expected.txt:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (227946 => 227947)


--- trunk/LayoutTests/ChangeLog	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/ChangeLog	2018-02-01 01:56:52 UTC (rev 227947)
@@ -1,3 +1,55 @@
+2018-01-31  Javier Fernandez  <[email protected]>
+
+        inline-block baseline not computed correctly for vertical-lr
+        https://bugs.webkit.org/show_bug.cgi?id=170176
+
+        Reviewed by Manuel Rego Casasnovas.
+
+        Tests to evaluate the baseline alignment in vertical modes.
+        Additionally, several tests were rebaselined.
+
+        Some of the new tests are marked as Failure for the ios-sim
+        platform because of pixel rounding errors in the absolute
+        positioned elements used as reference.
+
+        Finally, there are color differences in the border-styles-vertical-lr-expected.png
+        caused by changes in the gtk+ platform. Those differences were not noticeable until
+        now that the patch causes diffs in the expected.txt files.
+
+        * fast/inline-block/baseline-vertical-01-expected.html: Added.
+        * fast/inline-block/baseline-vertical-01.html: Added.
+        * fast/inline-block/baseline-vertical-02-expected.html: Added.
+        * fast/inline-block/baseline-vertical-02.html: Added.
+        * fast/inline-block/baseline-vertical-03-expected.html: Added.
+        * fast/inline-block/baseline-vertical-03.html: Added.
+        * fast/inline-block/baseline-vertical-04-expected.html: Added.
+        * fast/inline-block/baseline-vertical-04.html: Added.
+        * fast/inline-block/baseline-vertical-05-expected.html: Added.
+        * fast/inline-block/baseline-vertical-05.html: Added.
+        * fast/inline-block/baseline-vertical-06-expected.html: Added.
+        * fast/inline-block/baseline-vertical-06.html: Added.
+        * fast/inline-block/baseline-vertical-07-expected.html: Added.
+        * fast/inline-block/baseline-vertical-07.html: Added.
+        * fast/inline-block/baseline-vertical-08-expected.html: Added.
+        * fast/inline-block/baseline-vertical-08.html: Added.
+        * fast/text/emphasis-avoid-ruby-expected.png:
+        * fast/text/emphasis-avoid-ruby-expected.txt:
+        * fast/text/emphasis-overlap-expected.png:
+        * fast/text/emphasis-overlap-expected.txt:
+        * platform/gtk/fast/backgrounds/background-leakage-transforms-expected.png:
+        * platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
+        * platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.png:
+        * platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt:
+        * platform/ios-simulator/TestExpectations:
+        * platform/ios/fast/backgrounds/background-leakage-transforms-expected.png: Added.
+        * platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
+        * platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.png:
+        * platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
+        * platform/mac/fast/backgrounds/background-leakage-transforms-expected.png:
+        * platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
+        * platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
+        * platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
+
 2018-01-31  Alicia Boya García  <[email protected]>
 
         Unreviewed GTK+ test gardening.

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-01-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-01-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-01-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 45px;
+   top: 20px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 38px;
+   top: 100px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 40px;
+   top: 214px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 8px;
+   top: 305px;
+}
+#container > div { position: absolute; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalLR and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-01.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-01.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-01.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalLR and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-02-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-02-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-02-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 45px;
+   top: 432px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 38px;
+   top: 308px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 40px;
+   top: 209px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 8px;
+   top: 59px;
+}
+#container > div { position: absolute; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalLR and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-02.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-02.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-02.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   font-family: Ahem;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalLR and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-03-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-03-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-03-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 24px;
+   top: 20px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 71px;
+   top: 100px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 73px;
+   top: 214px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 41px;
+   top: 305px;
+}
+#container > div { position: absolute; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalLR and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-03.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-03.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-03.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalLR and LTR container</p>
+<div id="container" class="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-04-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-04-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-04-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 24px;
+   top: 432px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 71px;
+   top: 308px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 73px;
+   top: 209px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 41px;
+   top: 59px;
+}
+#container > div { position: absolute; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalLR and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-04.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-04.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-04.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-lr;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalLR and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-05-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-05-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-05-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 139px;
+   top: 20px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 132px;
+   top: 100px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 134px;
+   top: 214px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 102px;
+   top: 305px;
+}
+#container > div { position: absolute; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalRL and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-05.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-05.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-05.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalRL and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-06-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-06-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-06-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 139px;
+   top: 432px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 132px;
+   top: 308px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 134px;
+   top: 209px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 102px;
+   top: 59px;
+}
+#container > div { position: absolute; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalRL and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-06.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-06.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-06.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+</style>
+
+<p>Test verifying inline-block elements are baseline aligned in a VerticalRL and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-07-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-07-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-07-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 85px;
+   top: 20px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 132px;
+   top: 100px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 134px;
+   top: 214px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 102px;
+   top: 305px;
+}
+#container > div { position: absolute; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalRL and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-07.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-07.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-07.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalRL and LTR container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-08-expected.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-08-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-08-expected.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   left: 85px;
+   top: 432px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   left: 132px;
+   top: 308px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   left: 134px;
+   top: 209px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   left: 102px;
+   top: 59px;
+}
+#container > div { position: absolute; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalRL and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Added: trunk/LayoutTests/fast/inline-block/baseline-vertical-08.html (0 => 227947)


--- trunk/LayoutTests/fast/inline-block/baseline-vertical-08.html	                        (rev 0)
+++ trunk/LayoutTests/fast/inline-block/baseline-vertical-08.html	2018-02-01 01:56:52 UTC (rev 227947)
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<style>
+body { font: 10px/1 monospace; }
+#container {
+   position: relative;
+   background: grey;
+   text-orientation: sideways;
+   width: 250px;
+   height: 500px;
+   writing-mode: vertical-rl;
+   direction: rtl;
+}
+#container :nth-child(1) {
+   font: 24px/1 ahem;
+   border-width: 4px 10px 6px 8px;
+   border-style: solid;
+   padding: 12px 6px 14px 6px;
+   margin: 20px 12px 8px 24px;
+}
+#container :nth-child(2) {
+   font: 40px/1 ahem;
+   border-width: 8px 6px 10px 4px;
+   border-style: solid;
+   padding: 6px 12px 16px 14px;
+   margin: 12px 20px 24px 8px;
+}
+#container :nth-child(3) {
+   font: 60px/1 ahem;
+   border-width: 2px 5px 3px 4px;
+   border-style: solid;
+   padding: 6px 3px 12px 8px;
+   margin: 10px 6px 4px 12px;
+}
+#container :nth-child(4) {
+   font: 80px/1 ahem;
+   border-width: 12px 6px 14px 16px;
+   border-style: solid;
+   padding: 20px 12px 8px 24px;
+   margin: 4px 10px 6px 8px;
+}
+#container > div { display: inline-block; }
+#container :nth-child(1) { padding-left: 60px; }
+#container :nth-child(3) { padding-right: 30px; }
+</style>
+
+<p>Test verifying inline-block elements with extra padding are baseline aligned in a VerticalRL and RTL container</p>
+<div id="container">
+    <div>É</div><div>É</div><div>É</div><div>É</div>
+</div>

Modified: trunk/LayoutTests/fast/text/emphasis-avoid-ruby-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/fast/text/emphasis-avoid-ruby-expected.txt (227946 => 227947)


--- trunk/LayoutTests/fast/text/emphasis-avoid-ruby-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/fast/text/emphasis-avoid-ruby-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -50,8 +50,8 @@
                     text run at (96,0) width 64: "45"
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,184) size 784x64
-        RenderText {#text} at (0,0) size 64x32
-          text run at (0,0) width 64: "1 "
+        RenderText {#text} at (0,16) size 64x32
+          text run at (0,16) width 64: "1 "
         RenderRuby (inline) {RUBY} at (0,0) size 160x32
           RenderRubyRun (anonymous) at (64,0) size 160x48
             RenderRubyText {RT} at (0,48) size 160x16
@@ -66,8 +66,8 @@
                     text run at (96,16) width 64: "45"
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,256) size 784x48
-        RenderText {#text} at (0,16) size 64x32
-          text run at (0,16) width 64: "1 "
+        RenderText {#text} at (0,0) size 64x32
+          text run at (0,0) width 64: "1 "
         RenderRuby (inline) {RUBY} at (0,0) size 160x32
           RenderRubyRun (anonymous) at (64,0) size 160x48
             RenderRubyText {RT} at (0,32) size 160x0

Modified: trunk/LayoutTests/fast/text/emphasis-overlap-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/fast/text/emphasis-overlap-expected.txt (227946 => 227947)


--- trunk/LayoutTests/fast/text/emphasis-overlap-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/fast/text/emphasis-overlap-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -64,7 +64,7 @@
             text run at (0,128) width 128: "4444"
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {DIV} at (0,176) size 784x176
-        RenderBlock {DIV} at (0,8) size 160x144
+        RenderBlock {DIV} at (0,24) size 160x144
           RenderText {#text} at (0,0) size 160x32
             text run at (0,0) width 160: "1111 "
           RenderBR {BR} at (0,0) size 0x0
@@ -82,9 +82,9 @@
           RenderBR {BR} at (0,0) size 0x0
           RenderText {#text} at (0,112) size 128x32
             text run at (0,112) width 128: "4444"
-        RenderText {#text} at (160,10) size 4x18
-          text run at (160,10) width 4: " "
-        RenderBlock {DIV} at (164,8) size 160x144
+        RenderText {#text} at (160,138) size 4x18
+          text run at (160,138) width 4: " "
+        RenderBlock {DIV} at (164,24) size 160x144
           RenderText {#text} at (0,0) size 160x32
             text run at (0,0) width 160: "1111 "
           RenderBR {BR} at (0,0) size 0x0
@@ -102,8 +102,8 @@
           RenderBR {BR} at (0,0) size 0x0
           RenderText {#text} at (0,112) size 128x32
             text run at (0,112) width 128: "4444"
-        RenderText {#text} at (324,10) size 4x18
-          text run at (324,10) width 4: " "
+        RenderText {#text} at (324,138) size 4x18
+          text run at (324,138) width 4: " "
         RenderBlock {DIV} at (328,8) size 160x160
           RenderText {#text} at (0,0) size 160x32
             text run at (0,0) width 160: "1111 "

Modified: trunk/LayoutTests/platform/gtk/fast/backgrounds/background-leakage-transforms-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -1,10 +1,10 @@
-layer at (0,0) size 785x852
+layer at (0,0) size 785x850
   RenderView at (0,0) size 785x600
-layer at (0,0) size 785x852
-  RenderBlock {HTML} at (0,0) size 785x852
-    RenderBody {BODY} at (8,8) size 769x836
-      RenderBlock {DIV} at (0,0) size 769x148
-        RenderBlock {DIV} at (10,10) size 268x128
+layer at (0,0) size 785x850
+  RenderBlock {HTML} at (0,0) size 785x850
+    RenderBody {BODY} at (8,8) size 769x834
+      RenderBlock {DIV} at (0,0) size 769x147
+        RenderBlock {DIV} at (10,10) size 268x127
           RenderBlock {DIV} at (12,12) size 110x100 [bgcolor=#000000] [border: (20px solid #FFFFFF)]
           RenderText {#text} at (132,108) size 4x17
             text run at (132,108) width 4: " "
@@ -12,7 +12,7 @@
           RenderText {#text} at (0,0) size 0x0
         RenderText {#text} at (288,118) size 4x17
           text run at (288,118) width 4: " "
-        RenderBlock {DIV} at (302,10) size 268x128 [bgcolor=#808080]
+        RenderBlock {DIV} at (302,10) size 268x127 [bgcolor=#808080]
           RenderBlock {DIV} at (12,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px solid #0000FF7F)]
           RenderText {#text} at (132,108) size 4x17
             text run at (132,108) width 4: " "
@@ -19,9 +19,9 @@
           RenderBlock {DIV} at (146,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px double #0000FF7F)]
           RenderText {#text} at (0,0) size 0x0
         RenderText {#text} at (0,0) size 0x0
-layer at (8,156) size 769x148
-  RenderBlock {DIV} at (0,148) size 769x148
-    RenderBlock {DIV} at (10,10) size 268x128
+layer at (8,155) size 769x147
+  RenderBlock {DIV} at (0,147) size 769x147
+    RenderBlock {DIV} at (10,10) size 268x127
       RenderBlock {DIV} at (12,12) size 110x100 [bgcolor=#000000] [border: (20px solid #FFFFFF)]
       RenderText {#text} at (132,108) size 4x17
         text run at (132,108) width 4: " "
@@ -29,7 +29,7 @@
       RenderText {#text} at (0,0) size 0x0
     RenderText {#text} at (288,118) size 4x17
       text run at (288,118) width 4: " "
-    RenderBlock {DIV} at (302,10) size 268x128 [bgcolor=#808080]
+    RenderBlock {DIV} at (302,10) size 268x127 [bgcolor=#808080]
       RenderBlock {DIV} at (12,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px solid #0000FF7F)]
       RenderText {#text} at (132,108) size 4x17
         text run at (132,108) width 4: " "
@@ -36,17 +36,17 @@
       RenderBlock {DIV} at (146,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px double #0000FF7F)]
       RenderText {#text} at (0,0) size 0x0
     RenderText {#text} at (0,0) size 0x0
-layer at (8,304) size 158x540
-  RenderBlock {DIV} at (0,296) size 158x540
-    RenderBlock {DIV} at (10,10) size 138x248
+layer at (8,302) size 157x540
+  RenderBlock {DIV} at (0,294) size 157x540
+    RenderBlock {DIV} at (10,10) size 137x248
       RenderBlock {DIV} at (15,12) size 110x100 [bgcolor=#000000] [border: (20px solid #FFFFFF)]
       RenderText {#text} at (2,122) size 17x4
         text run at (2,122) width 4: " "
       RenderBlock {DIV} at (15,136) size 110x100 [bgcolor=#000000] [border: (20px double #FFFFFF)]
       RenderText {#text} at (0,0) size 0x0
-    RenderText {#text} at (129,268) size 17x4
-      text run at (129,268) width 4: " "
-    RenderBlock {DIV} at (10,282) size 138x248 [bgcolor=#808080]
+    RenderText {#text} at (12,268) size 17x4
+      text run at (12,268) width 4: " "
+    RenderBlock {DIV} at (10,282) size 137x248 [bgcolor=#808080]
       RenderBlock {DIV} at (15,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px solid #0000FF7F)]
       RenderText {#text} at (2,122) size 17x4
         text run at (2,122) width 4: " "

Modified: trunk/LayoutTests/platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -12,8 +12,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,83) size 17x4
-          text run at (72,83) width 4: " "
+        RenderText {#text} at (167,83) size 17x4
+          text run at (167,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -22,8 +22,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,170) size 17x4
-          text run at (72,170) width 4: " "
+        RenderText {#text} at (167,170) size 17x4
+          text run at (167,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -32,8 +32,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,257) size 17x4
-          text run at (72,257) width 4: " "
+        RenderText {#text} at (167,257) size 17x4
+          text run at (167,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -42,8 +42,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,344) size 17x4
-          text run at (72,344) width 4: " "
+        RenderText {#text} at (167,344) size 17x4
+          text run at (167,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -52,8 +52,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,431) size 17x4
-          text run at (72,431) width 4: " "
+        RenderText {#text} at (167,431) size 17x4
+          text run at (167,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -72,8 +72,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,83) size 17x4
-          text run at (72,83) width 4: " "
+        RenderText {#text} at (167,83) size 17x4
+          text run at (167,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -82,8 +82,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,170) size 17x4
-          text run at (72,170) width 4: " "
+        RenderText {#text} at (167,170) size 17x4
+          text run at (167,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -92,8 +92,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,257) size 17x4
-          text run at (72,257) width 4: " "
+        RenderText {#text} at (167,257) size 17x4
+          text run at (167,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -102,8 +102,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,344) size 17x4
-          text run at (72,344) width 4: " "
+        RenderText {#text} at (167,344) size 17x4
+          text run at (167,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (28,35) size 71x48
@@ -112,8 +112,8 @@
             RenderText {#text} at (156,0) size 71x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (72,431) size 17x4
-          text run at (72,431) width 4: " "
+        RenderText {#text} at (167,431) size 17x4
+          text run at (167,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 239x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (28,35) size 71x48

Added: trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.png


(Binary files differ)
Index: trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.png =================================================================== --- trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.png 2018-02-01 01:42:34 UTC (rev 227946) +++ trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.png 2018-02-01 01:56:52 UTC (rev 227947) Property changes on: trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.png ___________________________________________________________________

Added: svn:mime-type

+image/png \ No newline at end of property

Modified: trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -44,8 +44,8 @@
         text run at (2,122) width 4: " "
       RenderBlock {DIV} at (16,136) size 110x100 [bgcolor=#000000] [border: (20px double #FFFFFF)]
       RenderText {#text} at (0,0) size 0x0
-    RenderText {#text} at (128,268) size 19x4
-      text run at (128,268) width 4: " "
+    RenderText {#text} at (12,268) size 19x4
+      text run at (12,268) width 4: " "
     RenderBlock {DIV} at (10,282) size 139x248 [bgcolor=#808080]
       RenderBlock {DIV} at (16,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px solid #0000FF7F)]
       RenderText {#text} at (2,122) size 19x4

Modified: trunk/LayoutTests/platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -12,8 +12,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,83) size 19x4
-          text run at (71,83) width 4: " "
+        RenderText {#text} at (166,83) size 19x4
+          text run at (166,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -22,8 +22,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,170) size 19x4
-          text run at (71,170) width 4: " "
+        RenderText {#text} at (166,170) size 19x4
+          text run at (166,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -32,8 +32,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,257) size 19x4
-          text run at (71,257) width 4: " "
+        RenderText {#text} at (166,257) size 19x4
+          text run at (166,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -42,8 +42,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,344) size 19x4
-          text run at (71,344) width 4: " "
+        RenderText {#text} at (166,344) size 19x4
+          text run at (166,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -52,8 +52,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,431) size 19x4
-          text run at (71,431) width 4: " "
+        RenderText {#text} at (166,431) size 19x4
+          text run at (166,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -72,8 +72,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,83) size 19x4
-          text run at (71,83) width 4: " "
+        RenderText {#text} at (166,83) size 19x4
+          text run at (166,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -82,8 +82,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,170) size 19x4
-          text run at (71,170) width 4: " "
+        RenderText {#text} at (166,170) size 19x4
+          text run at (166,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -92,8 +92,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,257) size 19x4
-          text run at (71,257) width 4: " "
+        RenderText {#text} at (166,257) size 19x4
+          text run at (166,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -102,8 +102,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,344) size 19x4
-          text run at (71,344) width 4: " "
+        RenderText {#text} at (166,344) size 19x4
+          text run at (166,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (28,35) size 72x48
@@ -112,8 +112,8 @@
             RenderText {#text} at (156,0) size 72x48
               text run at (156,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,431) size 19x4
-          text run at (71,431) width 4: " "
+        RenderText {#text} at (166,431) size 19x4
+          text run at (166,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 240x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (28,35) size 72x48

Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (227946 => 227947)


--- trunk/LayoutTests/platform/ios-simulator/TestExpectations	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations	2018-02-01 01:56:52 UTC (rev 227947)
@@ -56,6 +56,12 @@
 wasm/iframe-parent-postmessage.html [ Skip ]
 wasm/window-postmessage.html [ Skip ]
 
+# These tests seem to fail due pixel rounding errors in the absolute positioned elements used as reference.
+fast/inline-block/baseline-vertical-01.html [ Failure ]
+fast/inline-block/baseline-vertical-02.html [ Failure ]
+fast/inline-block/baseline-vertical-03.html [ Failure ]
+fast/inline-block/baseline-vertical-04.html [ Failure ]
+
 # WebGL tests which need triaging https://bugs.webkit.org/b/174100
 webgl/1.0.2/conformance/uniforms/uniform-default-values.html [ Failure ]
 

Modified: trunk/LayoutTests/platform/mac/fast/backgrounds/background-leakage-transforms-expected.png


(Binary files differ)

Modified: trunk/LayoutTests/platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -44,8 +44,8 @@
         text run at (2,122) width 4: " "
       RenderBlock {DIV} at (16,136) size 110x100 [bgcolor=#000000] [border: (20px double #FFFFFF)]
       RenderText {#text} at (0,0) size 0x0
-    RenderText {#text} at (128,268) size 18x4
-      text run at (128,268) width 4: " "
+    RenderText {#text} at (12,268) size 18x4
+      text run at (12,268) width 4: " "
     RenderBlock {DIV} at (10,282) size 138x248 [bgcolor=#808080]
       RenderBlock {DIV} at (16,12) size 110x100 [bgcolor=#FFFFFF] [border: (20px solid #0000FF7F)]
       RenderText {#text} at (2,122) size 18x4

Modified: trunk/LayoutTests/platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -12,8 +12,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,83) size 18x4
-          text run at (71,83) width 4: " "
+        RenderText {#text} at (167,83) size 18x4
+          text run at (167,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -22,8 +22,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,170) size 18x4
-          text run at (71,170) width 4: " "
+        RenderText {#text} at (167,170) size 18x4
+          text run at (167,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -32,8 +32,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,257) size 18x4
-          text run at (71,257) width 4: " "
+        RenderText {#text} at (167,257) size 18x4
+          text run at (167,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -42,8 +42,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,344) size 18x4
-          text run at (71,344) width 4: " "
+        RenderText {#text} at (167,344) size 18x4
+          text run at (167,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -52,8 +52,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,431) size 18x4
-          text run at (71,431) width 4: " "
+        RenderText {#text} at (167,431) size 18x4
+          text run at (167,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -72,8 +72,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,83) size 18x4
-          text run at (71,83) width 4: " "
+        RenderText {#text} at (167,83) size 18x4
+          text run at (167,83) width 4: " "
         RenderBlock {DIV} at (0,87) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px groove #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -82,8 +82,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,170) size 18x4
-          text run at (71,170) width 4: " "
+        RenderText {#text} at (167,170) size 18x4
+          text run at (167,170) width 4: " "
         RenderBlock {DIV} at (0,174) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px ridge #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -92,8 +92,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,257) size 18x4
-          text run at (71,257) width 4: " "
+        RenderText {#text} at (167,257) size 18x4
+          text run at (167,257) width 4: " "
         RenderBlock {DIV} at (0,261) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px outset #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -102,8 +102,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,344) size 18x4
-          text run at (71,344) width 4: " "
+        RenderText {#text} at (167,344) size 18x4
+          text run at (167,344) width 4: " "
         RenderBlock {DIV} at (0,348) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px inset #808080)]
             RenderText {#text} at (27,35) size 74x48
@@ -112,8 +112,8 @@
             RenderText {#text} at (155,0) size 74x48
               text run at (155,0) width 48: "   "
           RenderText {#text} at (0,0) size 0x0
-        RenderText {#text} at (71,431) size 18x4
-          text run at (71,431) width 4: " "
+        RenderText {#text} at (167,431) size 18x4
+          text run at (167,431) width 4: " "
         RenderBlock {DIV} at (0,435) size 256x83
           RenderInline {SPAN} at (0,0) size 242x83 [bgcolor=#DDDDDD] [border: (20px double #808080)]
             RenderText {#text} at (27,35) size 74x48

Modified: trunk/LayoutTests/platform/win/fast/writing-mode/text-orientation-basic-expected.txt (227946 => 227947)


--- trunk/LayoutTests/platform/win/fast/writing-mode/text-orientation-basic-expected.txt	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/LayoutTests/platform/win/fast/writing-mode/text-orientation-basic-expected.txt	2018-02-01 01:56:52 UTC (rev 227947)
@@ -35,8 +35,8 @@
             RenderText {#text} at (126,1) size 41x173
               text run at (126,1) width 173: "Hello world"
           RenderBR {BR} at (135,174) size 0x0
-        RenderText {#text} at (1,175) size 41x9
-          text run at (1,175) width 9: " "
+        RenderText {#text} at (126,175) size 41x9
+          text run at (126,175) width 9: " "
         RenderBlock {DIV} at (0,184) size 168x175 [border: (1px solid #008000)]
           RenderInline {SPAN} at (0,0) size 40x173
             RenderText {#text} at (2,1) size 40x173

Modified: trunk/Source/WebCore/ChangeLog (227946 => 227947)


--- trunk/Source/WebCore/ChangeLog	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/Source/WebCore/ChangeLog	2018-02-01 01:56:52 UTC (rev 227947)
@@ -1,3 +1,43 @@
+2018-01-31  Javier Fernandez  <[email protected]>
+
+        inline-block baseline not computed correctly for vertical-lr
+        https://bugs.webkit.org/show_bug.cgi?id=170176
+
+        Reviewed by Manuel Rego Casasnovas.
+
+        When computing the baseline position of inline-block elements we use the
+        InlineFlow logicalTop and the FontMetrics ascent. The issue comes from
+        the fact that these units are incompatible. The logicalTop of a
+        vertical-lr element is offset to the left edge, while the ascent is the
+        distance from the right edge.
+
+        We need to either use logical value for the FontMetrics ascent so we can
+        compute the correctly the baselines of vertical-lr elements, or just using
+        the logicalBottom for these cases.
+
+        The approach based on a logicalAscent API for FontMetrics would require
+        a lot of work because inline-block logic assumes everything is vertical-rl
+        and at some point, flips the elements along the block-axis in case of
+        vertical-lr mode.
+
+        While it'd be desirable to get rid of this flipping logic, this patch tries
+        first the simpler approach of using logicalBottom, which aligns with the
+        currently implemented logic.
+
+        Tests: fast/inline-block/baseline-vertical-01.html
+               fast/inline-block/baseline-vertical-02.html
+               fast/inline-block/baseline-vertical-03.html
+               fast/inline-block/baseline-vertical-04.html
+               fast/inline-block/baseline-vertical-05.html
+               fast/inline-block/baseline-vertical-06.html
+               fast/inline-block/baseline-vertical-07.html
+               fast/inline-block/baseline-vertical-08.html
+
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::inlineBlockBaseline const):
+
 2018-01-31  Said Abou-Hallawa  <[email protected]>
 
         BitmapImage::drawPattern() may not draw a complete frame even after all the data is received

Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (227946 => 227947)


--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2018-02-01 01:56:52 UTC (rev 227947)
@@ -670,6 +670,7 @@
         } else if (!child->renderer().isBR()) {
             const auto& box = downcast<RenderBox>(child->renderer());
             newLogicalTopIncludingMargins = newLogicalTop;
+            // We may flip lines in case of verticalLR mode, so we can assume verticalRL for now.
             LayoutUnit overSideMargin = child->isHorizontal() ? box.marginTop() : box.marginRight();
             LayoutUnit underSideMargin = child->isHorizontal() ? box.marginBottom() : box.marginLeft();
             newLogicalTop += overSideMargin;

Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (227946 => 227947)


--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-01 01:42:34 UTC (rev 227946)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-01 01:56:52 UTC (rev 227947)
@@ -3057,7 +3057,9 @@
         else {
             bool isFirstLine = lastRootBox() == firstRootBox();
             const auto& style = isFirstLine ? firstLineStyle() : this->style();
-            lastBaseline = lastRootBox()->logicalTop() + style.fontMetrics().ascent(lastRootBox()->baselineType());
+            // InlineFlowBox::placeBoxesInBlockDirection will flip lines in case of verticalLR mode, so we can assume verticalRL for now.
+            lastBaseline = style.fontMetrics().ascent(lastRootBox()->baselineType())
+                + (style.isFlippedLinesWritingMode() ? logicalHeight() - lastRootBox()->logicalBottom() : lastRootBox()->logicalTop());
         }
     }
     // According to the CSS spec http://www.w3.org/TR/CSS21/visudet.html, we shouldn't be performing this min, but should
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to