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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBox.cpp

Issue 1774193002: New paint invalidation using paint property tree walk (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 3804 matching lines...) Expand 10 before | Expand all | Expand 10 after
3815 if (oldLayoutOverflowRect != newLayoutOverflowRect) 3815 if (oldLayoutOverflowRect != newLayoutOverflowRect)
3816 return PaintInvalidationLayoutOverflowBoxChange; 3816 return PaintInvalidationLayoutOverflowBoxChange;
3817 } 3817 }
3818 3818
3819 LayoutSize oldBorderBoxSize = computePreviousBorderBoxSize(oldBounds.size()) ; 3819 LayoutSize oldBorderBoxSize = computePreviousBorderBoxSize(oldBounds.size()) ;
3820 LayoutSize newBorderBoxSize = size(); 3820 LayoutSize newBorderBoxSize = size();
3821 3821
3822 if (oldBorderBoxSize == newBorderBoxSize) 3822 if (oldBorderBoxSize == newBorderBoxSize)
3823 return invalidationReason; 3823 return invalidationReason;
3824 3824
3825 // LayoutBox::incrementallyInvalidatePaint() depends on positionFromPaintInv alidationBacking
3826 // which is not available when slimmingPaintOffsetCachingEnabled.
3827 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && (style()-> hasBoxDecorations() || style()->hasBackground()))
3828 return PaintInvalidationBorderBoxChange;
3829
3830 // TODO(wangxianzhu): Remove incremental invalidation when we remove rect-ba sed paint invalidation.
3831 // See another hasNonCompositedScrollbars() callsite above. 3825 // See another hasNonCompositedScrollbars() callsite above.
3832 if (hasNonCompositedScrollbars()) 3826 if (hasNonCompositedScrollbars())
3833 return PaintInvalidationBorderBoxChange; 3827 return PaintInvalidationBorderBoxChange;
3834 3828
3835 if (style()->hasVisualOverflowingEffect() || style()->hasAppearance() || sty le()->hasFilter() || style()->resize() != RESIZE_NONE) 3829 if (style()->hasVisualOverflowingEffect() || style()->hasAppearance() || sty le()->hasFilter() || style()->resize() != RESIZE_NONE)
3836 return PaintInvalidationBorderBoxChange; 3830 return PaintInvalidationBorderBoxChange;
3837 3831
3838 if (style()->hasBorderRadius()) { 3832 if (style()->hasBorderRadius()) {
3839 // If a border-radius exists and width/height is smaller than radius wid th/height, 3833 // If a border-radius exists and width/height is smaller than radius wid th/height,
3840 // we need to fully invalidate to cover the changed radius. 3834 // we need to fully invalidate to cover the changed radius.
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
4678 } 4672 }
4679 4673
4680 void LayoutBox::IntrinsicSizingInfo::transpose() 4674 void LayoutBox::IntrinsicSizingInfo::transpose()
4681 { 4675 {
4682 size = size.transposedSize(); 4676 size = size.transposedSize();
4683 aspectRatio = aspectRatio.transposedSize(); 4677 aspectRatio = aspectRatio.transposedSize();
4684 std::swap(hasWidth, hasHeight); 4678 std::swap(hasWidth, hasHeight);
4685 } 4679 }
4686 4680
4687 } // namespace blink 4681 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698