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

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

Issue 2923683002: Fix nested border radius with composited child. (Closed)
Patch Set: Add tests and fix tests 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 1571 matching lines...) Expand 10 before | Expand all | Expand 10 after
1582 1582
1583 void PaintLayer::AppendSingleFragmentIgnoringPagination( 1583 void PaintLayer::AppendSingleFragmentIgnoringPagination(
1584 PaintLayerFragments& fragments, 1584 PaintLayerFragments& fragments,
1585 const PaintLayer* root_layer, 1585 const PaintLayer* root_layer,
1586 const LayoutRect& dirty_rect, 1586 const LayoutRect& dirty_rect,
1587 ClipRectsCacheSlot clip_rects_cache_slot, 1587 ClipRectsCacheSlot clip_rects_cache_slot,
1588 PaintLayer::GeometryMapperOption geometry_mapper_option, 1588 PaintLayer::GeometryMapperOption geometry_mapper_option,
1589 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior, 1589 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior,
1590 ShouldRespectOverflowClipType respect_overflow_clip, 1590 ShouldRespectOverflowClipType respect_overflow_clip,
1591 const LayoutPoint* offset_from_root, 1591 const LayoutPoint* offset_from_root,
1592 const LayoutSize& sub_pixel_accumulation) { 1592 const LayoutSize& sub_pixel_accumulation) const {
1593 PaintLayerFragment fragment; 1593 PaintLayerFragment fragment;
1594 ClipRectsContext clip_rects_context(root_layer, clip_rects_cache_slot, 1594 ClipRectsContext clip_rects_context(root_layer, clip_rects_cache_slot,
1595 overlay_scrollbar_clip_behavior, 1595 overlay_scrollbar_clip_behavior,
1596 sub_pixel_accumulation); 1596 sub_pixel_accumulation);
1597 if (respect_overflow_clip == kIgnoreOverflowClip) 1597 if (respect_overflow_clip == kIgnoreOverflowClip)
1598 clip_rects_context.SetIgnoreOverflowClip(); 1598 clip_rects_context.SetIgnoreOverflowClip();
1599 Clipper(geometry_mapper_option) 1599 Clipper(geometry_mapper_option)
1600 .CalculateRects(clip_rects_context, dirty_rect, fragment.layer_bounds, 1600 .CalculateRects(clip_rects_context, dirty_rect, fragment.layer_bounds,
1601 fragment.background_rect, fragment.foreground_rect, 1601 fragment.background_rect, fragment.foreground_rect,
1602 offset_from_root); 1602 offset_from_root);
(...skipping 10 matching lines...) Expand all
1613 void PaintLayer::CollectFragments( 1613 void PaintLayer::CollectFragments(
1614 PaintLayerFragments& fragments, 1614 PaintLayerFragments& fragments,
1615 const PaintLayer* root_layer, 1615 const PaintLayer* root_layer,
1616 const LayoutRect& dirty_rect, 1616 const LayoutRect& dirty_rect,
1617 ClipRectsCacheSlot clip_rects_cache_slot, 1617 ClipRectsCacheSlot clip_rects_cache_slot,
1618 PaintLayer::GeometryMapperOption geometry_mapper_option, 1618 PaintLayer::GeometryMapperOption geometry_mapper_option,
1619 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior, 1619 OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior,
1620 ShouldRespectOverflowClipType respect_overflow_clip, 1620 ShouldRespectOverflowClipType respect_overflow_clip,
1621 const LayoutPoint* offset_from_root, 1621 const LayoutPoint* offset_from_root,
1622 const LayoutSize& sub_pixel_accumulation, 1622 const LayoutSize& sub_pixel_accumulation,
1623 const LayoutRect* layer_bounding_box) { 1623 const LayoutRect* layer_bounding_box) const {
1624 // For unpaginated layers, there is only one fragment. We also avoid 1624 // For unpaginated layers, there is only one fragment. We also avoid
1625 // fragmentation when compositing, due to implementation limitations. 1625 // fragmentation when compositing, due to implementation limitations.
1626 if (!EnclosingPaginationLayer() || 1626 if (!EnclosingPaginationLayer() ||
1627 !ShouldFragmentCompositedBounds(root_layer)) { 1627 !ShouldFragmentCompositedBounds(root_layer)) {
1628 AppendSingleFragmentIgnoringPagination( 1628 AppendSingleFragmentIgnoringPagination(
1629 fragments, root_layer, dirty_rect, clip_rects_cache_slot, 1629 fragments, root_layer, dirty_rect, clip_rects_cache_slot,
1630 geometry_mapper_option, overlay_scrollbar_clip_behavior, 1630 geometry_mapper_option, overlay_scrollbar_clip_behavior,
1631 respect_overflow_clip, offset_from_root, sub_pixel_accumulation); 1631 respect_overflow_clip, offset_from_root, sub_pixel_accumulation);
1632 return; 1632 return;
1633 } 1633 }
(...skipping 1714 matching lines...) Expand 10 before | Expand all | Expand 10 after
3348 } 3348 }
3349 3349
3350 void showLayerTree(const blink::LayoutObject* layoutObject) { 3350 void showLayerTree(const blink::LayoutObject* layoutObject) {
3351 if (!layoutObject) { 3351 if (!layoutObject) {
3352 LOG(INFO) << "Cannot showLayerTree. Root is (nil)"; 3352 LOG(INFO) << "Cannot showLayerTree. Root is (nil)";
3353 return; 3353 return;
3354 } 3354 }
3355 showLayerTree(layoutObject->EnclosingLayer()); 3355 showLayerTree(layoutObject->EnclosingLayer());
3356 } 3356 }
3357 #endif 3357 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698