Title: [140042] branches/chromium/1312/Source/WebCore
Revision
140042
Author
shawnsi...@chromium.org
Date
2013-01-17 14:28:54 -0800 (Thu, 17 Jan 2013)

Log Message

Manual merge of bugfix from trunk in r133903

Modified Paths

Diff

Modified: branches/chromium/1312/Source/WebCore/ChangeLog (140041 => 140042)


--- branches/chromium/1312/Source/WebCore/ChangeLog	2013-01-17 22:23:29 UTC (rev 140041)
+++ branches/chromium/1312/Source/WebCore/ChangeLog	2013-01-17 22:28:54 UTC (rev 140042)
@@ -1,3 +1,27 @@
+2013-01-17  Shawn Singh  <shawnsi...@chromium.org>
+
+        Fix subpixel rounding bug that caused bad rendering on giftcards.com
+
+        unreviewed, manual merge of existing fixes from trunk.
+        This patch also thanks to e...@chromium.org
+
+        A subtle bug was causing InlineFlowBox to use integers rather than
+        fractional layouts. This caused invalid rects that in some cases
+        such as giftcards.com caused the entire page to render
+        incorrectly. On trunk, it was fixed indirectly by a series of
+        patches by e...@chromium.org.  Instead of merging those hefty
+        patches, this patch manually does the same effect, replacing
+        enclosingIntRect with enclosingFractionalLayoutRect.
+
+        Original bugfix: r133903
+        Dependency on the bugfix: r133779
+
+        * rendering/InlineFlowBox.h:
+        (WebCore::InlineFlowBox::layoutOverflowRect):
+        (WebCore::InlineFlowBox::visualOverflowRect): These instances of
+        enclosingLayoutRect were wrapping enclosingIntRect. but they
+        should be using enclosingFractionalLayoutRect instead.
+
 2012-12-19  Levi Weintraub  <le...@chromium.org>
 
         Push pixel snapping logic into TransformState

Modified: branches/chromium/1312/Source/WebCore/rendering/InlineFlowBox.h (140041 => 140042)


--- branches/chromium/1312/Source/WebCore/rendering/InlineFlowBox.h	2013-01-17 22:23:29 UTC (rev 140041)
+++ branches/chromium/1312/Source/WebCore/rendering/InlineFlowBox.h	2013-01-17 22:28:54 UTC (rev 140042)
@@ -209,7 +209,7 @@
     // respectively are flipped when compared to their physical counterparts.  For example minX is on the left in vertical-lr, but it is on the right in vertical-rl.
     LayoutRect layoutOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) const
     { 
-        return m_overflow ? m_overflow->layoutOverflowRect() : enclosingLayoutRect(frameRectIncludingLineHeight(lineTop, lineBottom));
+        return m_overflow ? m_overflow->layoutOverflowRect() : enclosingFractionalLayoutRect(frameRectIncludingLineHeight(lineTop, lineBottom));
     }
     LayoutUnit logicalLeftLayoutOverflow() const
     {
@@ -243,7 +243,7 @@
 
     LayoutRect visualOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) const
     { 
-        return m_overflow ? m_overflow->visualOverflowRect() : enclosingLayoutRect(frameRectIncludingLineHeight(lineTop, lineBottom));
+        return m_overflow ? m_overflow->visualOverflowRect() : enclosingFractionalLayoutRect(frameRectIncludingLineHeight(lineTop, lineBottom));
     }
     LayoutUnit logicalLeftVisualOverflow() const { return m_overflow ? (isHorizontal() ? m_overflow->visualOverflowRect().x() : m_overflow->visualOverflowRect().y()) : static_cast<LayoutUnit>(logicalLeft()); }
     LayoutUnit logicalRightVisualOverflow() const { return m_overflow ? (isHorizontal() ? m_overflow->visualOverflowRect().maxX() : m_overflow->visualOverflowRect().maxY()) : static_cast<LayoutUnit>(ceilf(logicalRight())); }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to