Changeset 110643 in webkit
- Timestamp:
- Mar 13, 2012 4:58:59 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r110595 r110643 1 2012-03-13 Dan Bernstein <mitz@apple.com> 2 3 <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com 4 https://bugs.webkit.org/show_bug.cgi?id=81051 5 6 Reviewed by Simon Fraser. 7 8 * ManualTests/inline-repaint-container.html: Added. 9 1 10 2012-03-13 Adam Barth <abarth@webkit.org> && Benjamin Poulain <bpoulain@apple.com> 2 11 -
trunk/Source/WebCore/ChangeLog
r110642 r110643 1 2012-03-13 Dan Bernstein <mitz@apple.com> 2 3 <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com 4 https://bugs.webkit.org/show_bug.cgi?id=81051 5 6 Reviewed by Simon Fraser. 7 8 Test: ManualTests/inline-repaint-container.html. 9 10 * rendering/RenderInline.cpp: 11 (WebCore::RenderInline::clippedOverflowRectForRepaint): This function was not handling the 12 case of the repaint container being a descendant of the containing block correctly, leading 13 to the assertion failure, but also to a correctness bug seen in the new test. If the repaint 14 container is a descendant of the containing block, just return the rect in the repaint 15 container coordinates. 16 1 17 2012-03-13 Dan Bernstein <mitz@apple.com> 2 18 -
trunk/Source/WebCore/rendering/RenderInline.cpp
r110224 r110643 1012 1012 // Now invalidate a rectangle. 1013 1013 LayoutUnit ow = style() ? style()->outlineSize() : 0; 1014 1014 1015 bool hitRepaintContainer = false; 1016 1015 1017 // We need to add in the relative position offsets of any inlines (including us) up to our 1016 1018 // containing block. … … 1018 1020 for (const RenderObject* inlineFlow = this; inlineFlow && inlineFlow->isRenderInline() && inlineFlow != cb; 1019 1021 inlineFlow = inlineFlow->parent()) { 1020 if (inlineFlow->style()->position() == RelativePosition && inlineFlow->hasLayer()) 1022 if (inlineFlow == repaintContainer) { 1023 hitRepaintContainer = true; 1024 break; 1025 } 1026 if (inlineFlow->style()->position() == RelativePosition && inlineFlow->hasLayer()) 1021 1027 toRenderInline(inlineFlow)->layer()->relativePositionOffset(left, top); 1022 1028 } 1023 1029 1024 1030 LayoutRect r(-ow + left, -ow + top, boundingBox.width() + ow * 2, boundingBox.height() + ow * 2); 1031 1032 if (hitRepaintContainer) 1033 return r; 1025 1034 1026 1035 if (cb->hasColumns()) … … 1037 1046 r = intersection(repaintRect, boxRect); 1038 1047 } 1039 1040 // FIXME: need to ensure that we compute the correct repaint rect when the repaint container 1041 // is an inline. 1042 if (repaintContainer != this) 1043 cb->computeRectForRepaint(repaintContainer, r); 1048 1049 cb->computeRectForRepaint(repaintContainer, r); 1044 1050 1045 1051 if (ow) {
Note: See TracChangeset
for help on using the changeset viewer.