Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 return clipRect; | 210 return clipRect; |
| 211 } | 211 } |
| 212 | 212 |
| 213 void DeprecatedPaintLayerClipper::calculateRects(const ClipRectsContext& context , const LayoutRect& paintDirtyRect, LayoutRect& layerBounds, | 213 void DeprecatedPaintLayerClipper::calculateRects(const ClipRectsContext& context , const LayoutRect& paintDirtyRect, LayoutRect& layerBounds, |
| 214 ClipRect& backgroundRect, ClipRect& foregroundRect, ClipRect& outlineRect, c onst LayoutPoint* offsetFromRoot) const | 214 ClipRect& backgroundRect, ClipRect& foregroundRect, ClipRect& outlineRect, c onst LayoutPoint* offsetFromRoot) const |
| 215 { | 215 { |
| 216 bool isClippingRoot = m_layoutObject.layer() == context.rootLayer; | 216 bool isClippingRoot = m_layoutObject.layer() == context.rootLayer; |
| 217 | 217 |
| 218 if (!isClippingRoot && m_layoutObject.layer()->parent()) { | 218 if (!isClippingRoot && m_layoutObject.layer()->parent()) { |
| 219 backgroundRect = backgroundClipRect(context); | 219 backgroundRect = backgroundClipRect(context); |
| 220 backgroundRect.move(roundedIntSize(context.subPixelAccumulation)); | |
|
pdr.
2015/08/17 21:17:53
We used roundedIntSize before, but don't now. Was
qiankun
2015/08/19 09:14:19
It's intentional. The layout test which was added
| |
| 221 backgroundRect.intersect(paintDirtyRect); | 220 backgroundRect.intersect(paintDirtyRect); |
|
pdr.
2015/08/17 21:17:53
This seems wrong... we're intersecting with the pa
qiankun
2015/08/19 09:14:19
Both backgroundRect and paintDirtyRect should move
pdr.
2015/08/20 05:55:13
I'm just worried about the order these are being d
qiankun
2015/08/20 06:08:43
Current implementation is wrong here. I think we s
| |
| 222 } else { | 221 } else { |
| 223 backgroundRect = paintDirtyRect; | 222 backgroundRect = paintDirtyRect; |
| 224 } | 223 } |
| 225 | 224 |
| 225 LayoutPoint offset; | |
| 226 if (offsetFromRoot) { | |
| 227 offset = *offsetFromRoot; | |
| 228 backgroundRect.move(context.subPixelAccumulation); | |
| 229 } else { | |
| 230 m_layoutObject.layer()->convertToLayerCoords(context.rootLayer, offset); | |
| 231 } | |
| 232 layerBounds = LayoutRect(offset, LayoutSize(m_layoutObject.layer()->size())) ; | |
| 233 | |
| 226 foregroundRect = backgroundRect; | 234 foregroundRect = backgroundRect; |
| 227 outlineRect = backgroundRect; | 235 outlineRect = backgroundRect; |
| 228 | 236 |
| 229 LayoutPoint offset; | |
| 230 if (offsetFromRoot) | |
| 231 offset = *offsetFromRoot; | |
| 232 else | |
| 233 m_layoutObject.layer()->convertToLayerCoords(context.rootLayer, offset); | |
| 234 layerBounds = LayoutRect(offset, LayoutSize(m_layoutObject.layer()->size())) ; | |
| 235 | |
| 236 // Update the clip rects that will be passed to child layers. | 237 // Update the clip rects that will be passed to child layers. |
| 237 if (m_layoutObject.hasOverflowClip()) { | 238 if (m_layoutObject.hasOverflowClip()) { |
| 238 // This layer establishes a clip of some kind. | 239 // This layer establishes a clip of some kind. |
| 239 if (shouldRespectOverflowClip(context)) { | 240 if (shouldRespectOverflowClip(context)) { |
| 240 foregroundRect.intersect(toLayoutBox(m_layoutObject).overflowClipRec t(offset, context.scrollbarRelevancy)); | 241 foregroundRect.intersect(toLayoutBox(m_layoutObject).overflowClipRec t(offset, context.scrollbarRelevancy)); |
| 241 if (m_layoutObject.style()->hasBorderRadius()) | 242 if (m_layoutObject.style()->hasBorderRadius()) |
| 242 foregroundRect.setHasRadius(true); | 243 foregroundRect.setHasRadius(true); |
| 243 } | 244 } |
| 244 | 245 |
| 245 // If we establish an overflow clip at all, then go ahead and make sure our background | 246 // If we establish an overflow clip at all, then go ahead and make sure our background |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 383 if (context.respectOverflowClip == IgnoreOverflowClip) | 384 if (context.respectOverflowClip == IgnoreOverflowClip) |
| 384 return false; | 385 return false; |
| 385 | 386 |
| 386 if (layer->isRootLayer() && context.respectOverflowClipForViewport == Ignore OverflowClip) | 387 if (layer->isRootLayer() && context.respectOverflowClipForViewport == Ignore OverflowClip) |
| 387 return false; | 388 return false; |
| 388 | 389 |
| 389 return true; | 390 return true; |
| 390 } | 391 } |
| 391 | 392 |
| 392 } // namespace blink | 393 } // namespace blink |
| OLD | NEW |