Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.cpp

Issue 2923683002: Fix nested border radius with composited child. (Closed)
Patch Set: Split tests, check layer sizes, document Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 1573 matching lines...) Expand 10 before | Expand all | Expand 10 after
1584 1584
1585 void PaintLayer::AppendSingleFragmentIgnoringPagination( 1585 void PaintLayer::AppendSingleFragmentIgnoringPagination(
1586 PaintLayerFragments& fragments, 1586 PaintLayerFragments& fragments,
1587 const PaintLayer* root_layer, 1587 const PaintLayer* root_layer,
1588 const LayoutRect& dirty_rect, 1588 const LayoutRect& dirty_rect,
1589 ClipRectsCacheSlot clip_rects_cache_slot, 1589 ClipRectsCacheSlot clip_rects_cache_slot,
1590 PaintLayer::GeometryMapperOption geometry_mapper_option, 1590 PaintLayer::GeometryMapperOption geometry_mapper_option,
1591 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior, 1591 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior,
1592 ShouldRespectOverflowClipType respect_overflow_clip, 1592 ShouldRespectOverflowClipType respect_overflow_clip,
1593 const LayoutPoint* offset_from_root, 1593 const LayoutPoint* offset_from_root,
1594 const LayoutSize& sub_pixel_accumulation) { 1594 const LayoutSize& sub_pixel_accumulation) const {
1595 PaintLayerFragment fragment; 1595 PaintLayerFragment fragment;
1596 ClipRectsContext clip_rects_context(root_layer, clip_rects_cache_slot, 1596 ClipRectsContext clip_rects_context(root_layer, clip_rects_cache_slot,
1597 overlay_scrollbar_clip_behavior, 1597 overlay_scrollbar_clip_behavior,
1598 sub_pixel_accumulation); 1598 sub_pixel_accumulation);
1599 if (respect_overflow_clip == kIgnoreOverflowClip) 1599 if (respect_overflow_clip == kIgnoreOverflowClip)
1600 clip_rects_context.SetIgnoreOverflowClip(); 1600 clip_rects_context.SetIgnoreOverflowClip();
1601 Clipper(geometry_mapper_option) 1601 Clipper(geometry_mapper_option)
1602 .CalculateRects(clip_rects_context, dirty_rect, fragment.layer_bounds, 1602 .CalculateRects(clip_rects_context, dirty_rect, fragment.layer_bounds,
1603 fragment.background_rect, fragment.foreground_rect, 1603 fragment.background_rect, fragment.foreground_rect,
1604 offset_from_root); 1604 offset_from_root);
(...skipping 10 matching lines...) Expand all
1615 void PaintLayer::CollectFragments( 1615 void PaintLayer::CollectFragments(
1616 PaintLayerFragments& fragments, 1616 PaintLayerFragments& fragments,
1617 const PaintLayer* root_layer, 1617 const PaintLayer* root_layer,
1618 const LayoutRect& dirty_rect, 1618 const LayoutRect& dirty_rect,
1619 ClipRectsCacheSlot clip_rects_cache_slot, 1619 ClipRectsCacheSlot clip_rects_cache_slot,
1620 PaintLayer::GeometryMapperOption geometry_mapper_option, 1620 PaintLayer::GeometryMapperOption geometry_mapper_option,
1621 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior, 1621 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior,
1622 ShouldRespectOverflowClipType respect_overflow_clip, 1622 ShouldRespectOverflowClipType respect_overflow_clip,
1623 const LayoutPoint* offset_from_root, 1623 const LayoutPoint* offset_from_root,
1624 const LayoutSize& sub_pixel_accumulation, 1624 const LayoutSize& sub_pixel_accumulation,
1625 const LayoutRect* layer_bounding_box) { 1625 const LayoutRect* layer_bounding_box) const {
1626 // For unpaginated layers, there is only one fragment. We also avoid 1626 // For unpaginated layers, there is only one fragment. We also avoid
1627 // fragmentation when compositing, due to implementation limitations. 1627 // fragmentation when compositing, due to implementation limitations.
1628 if (!EnclosingPaginationLayer() || 1628 if (!EnclosingPaginationLayer() ||
1629 !ShouldFragmentCompositedBounds(root_layer)) { 1629 !ShouldFragmentCompositedBounds(root_layer)) {
1630 AppendSingleFragmentIgnoringPagination( 1630 AppendSingleFragmentIgnoringPagination(
1631 fragments, root_layer, dirty_rect, clip_rects_cache_slot, 1631 fragments, root_layer, dirty_rect, clip_rects_cache_slot,
1632 geometry_mapper_option, overlay_scrollbar_clip_behavior, 1632 geometry_mapper_option, overlay_scrollbar_clip_behavior,
1633 respect_overflow_clip, offset_from_root, sub_pixel_accumulation); 1633 respect_overflow_clip, offset_from_root, sub_pixel_accumulation);
1634 return; 1634 return;
1635 } 1635 }
(...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after
3347 } 3347 }
3348 3348
3349 void showLayerTree(const blink::LayoutObject* layoutObject) { 3349 void showLayerTree(const blink::LayoutObject* layoutObject) {
3350 if (!layoutObject) { 3350 if (!layoutObject) {
3351 LOG(INFO) << "Cannot showLayerTree. Root is (nil)"; 3351 LOG(INFO) << "Cannot showLayerTree. Root is (nil)";
3352 return; 3352 return;
3353 } 3353 }
3354 showLayerTree(layoutObject->EnclosingLayer()); 3354 showLayerTree(layoutObject->EnclosingLayer());
3355 } 3355 }
3356 #endif 3356 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/PaintLayer.h ('k') | third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698