Title: [148027] trunk
Revision
148027
Author
[email protected]
Date
2013-04-09 09:46:49 -0700 (Tue, 09 Apr 2013)

Log Message

Whitespace in particular source code changes rendering; does not in Firefox
https://bugs.webkit.org/show_bug.cgi?id=100943

Patch by Arnaud Renevier <[email protected]> on 2013-04-09
Reviewed by Darin Adler.

Source/WebCore:

A render inline which requires a line box is considered a possible
trailing object. So, ensureLineBoxInsideIgnoredSpaces will be called
for it, even if it is placed after a text render ending with a single
space.

Tests: fast/text/whitespace/trailing-space-before-empty-span-1.html
       fast/text/whitespace/trailing-space-before-empty-span-2.html

* rendering/RenderBlockLineLayout.cpp:
(TrailingObjects):
(WebCore::TrailingObjects::appendBoxIfNeeded):
(WebCore::RenderBlock::LineBreaker::nextSegmentBreak):

LayoutTests:

* fast/text/whitespace/trailing-space-before-empty-span-1-expected.html: Added.
* fast/text/whitespace/trailing-space-before-empty-span-1.html: A test
    with a span whose text ends with a single span. A following span
    is empty but requires a line box (because it has some padding).
    The second span should be rendered.
* fast/text/whitespace/trailing-space-before-empty-span-2-expected.html: Added.
* fast/text/whitespace/trailing-space-before-empty-span-2.html: Same
    test as trailing-space-before-empty-span-1.html except that second
    span contains whitespace only text.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (148026 => 148027)


--- trunk/LayoutTests/ChangeLog	2013-04-09 15:27:05 UTC (rev 148026)
+++ trunk/LayoutTests/ChangeLog	2013-04-09 16:46:49 UTC (rev 148027)
@@ -1,3 +1,20 @@
+2013-04-09  Arnaud Renevier  <[email protected]>
+
+        Whitespace in particular source code changes rendering; does not in Firefox
+        https://bugs.webkit.org/show_bug.cgi?id=100943
+
+        Reviewed by Darin Adler.
+
+        * fast/text/whitespace/trailing-space-before-empty-span-1-expected.html: Added.
+        * fast/text/whitespace/trailing-space-before-empty-span-1.html: A test
+            with a span whose text ends with a single span. A following span
+            is empty but requires a line box (because it has some padding).
+            The second span should be rendered.
+        * fast/text/whitespace/trailing-space-before-empty-span-2-expected.html: Added.
+        * fast/text/whitespace/trailing-space-before-empty-span-2.html: Same
+            test as trailing-space-before-empty-span-1.html except that second
+            span contains whitespace only text.
+
 2013-04-09  Andrei Bucur  <[email protected]>
 
         Use DOM ordering for list counts

Added: trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1-expected.html (0 => 148027)


--- trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1-expected.html	2013-04-09 16:46:49 UTC (rev 148027)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<style type="text/css">
+.colored {
+    background-color: yellow;
+    padding: 16px;
+}
+</style>
+</head>
+
+<div><span>AB</span><span class="colored"></span></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1.html (0 => 148027)


--- trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-1.html	2013-04-09 16:46:49 UTC (rev 148027)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<style type="text/css">
+.colored {
+    background-color: yellow;
+    padding: 16px;
+}
+</style>
+</head>
+
+<div><span>AB </span><span class="colored"></span></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2-expected.html (0 => 148027)


--- trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2-expected.html	2013-04-09 16:46:49 UTC (rev 148027)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<style type="text/css">
+.colored {
+    background-color: yellow;
+    padding: 16px;
+}
+</style>
+</head>
+
+<div><span>AB</span><span class="colored"></span></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2.html (0 => 148027)


--- trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2.html	                        (rev 0)
+++ trunk/LayoutTests/fast/text/whitespace/trailing-space-before-empty-span-2.html	2013-04-09 16:46:49 UTC (rev 148027)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+
+<style type="text/css">
+.colored {
+    background-color: yellow;
+    padding: 16px;
+}
+</style>
+</head>
+
+<div><span>AB </span><span class="colored">  </span></div>
+
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (148026 => 148027)


--- trunk/Source/WebCore/ChangeLog	2013-04-09 15:27:05 UTC (rev 148026)
+++ trunk/Source/WebCore/ChangeLog	2013-04-09 16:46:49 UTC (rev 148027)
@@ -1,3 +1,23 @@
+2013-04-09  Arnaud Renevier  <[email protected]>
+
+        Whitespace in particular source code changes rendering; does not in Firefox
+        https://bugs.webkit.org/show_bug.cgi?id=100943
+
+        Reviewed by Darin Adler.
+
+        A render inline which requires a line box is considered a possible
+        trailing object. So, ensureLineBoxInsideIgnoredSpaces will be called
+        for it, even if it is placed after a text render ending with a single
+        space.
+
+        Tests: fast/text/whitespace/trailing-space-before-empty-span-1.html
+               fast/text/whitespace/trailing-space-before-empty-span-2.html
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (TrailingObjects):
+        (WebCore::TrailingObjects::appendBoxIfNeeded):
+        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
+
 2013-04-09  Andrei Bucur  <[email protected]>
 
         Use DOM ordering for list counts

Modified: trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp (148026 => 148027)


--- trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2013-04-09 15:27:05 UTC (rev 148026)
+++ trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp	2013-04-09 16:46:49 UTC (rev 148027)
@@ -2514,7 +2514,7 @@
     TrailingObjects();
     void setTrailingWhitespace(RenderText*);
     void clear();
-    void appendBoxIfNeeded(RenderBox*);
+    void appendBoxIfNeeded(RenderBoxModelObject*);
 
     enum CollapseFirstSpaceOrNot { DoNotCollapseFirstSpace, CollapseFirstSpace };
 
@@ -2522,7 +2522,7 @@
 
 private:
     RenderText* m_whitespace;
-    Vector<RenderBox*, 4> m_boxes;
+    Vector<RenderBoxModelObject*, 4> m_boxes;
 };
 
 TrailingObjects::TrailingObjects()
@@ -2542,7 +2542,7 @@
     m_boxes.clear();
 }
 
-inline void TrailingObjects::appendBoxIfNeeded(RenderBox* box)
+inline void TrailingObjects::appendBoxIfNeeded(RenderBoxModelObject* box)
 {
     if (m_whitespace)
         m_boxes.append(box);
@@ -2813,6 +2813,8 @@
                     currentCharacterIsSpace = true;
                     currentCharacterIsWS = true;
                     ignoringSpaces = true;
+                } else {
+                    trailingObjects.appendBoxIfNeeded(flowBox);
                 }
             }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to