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