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

Side by Side Diff: Source/core/rendering/RenderObject.cpp

Issue 448793002: Unified invalidation for repaint-only style change of layers (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update requestAnimation-translation-leave-traces-expected.txt Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderLayerModelObject.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 2045 matching lines...) Expand 10 before | Expand all | Expand 10 after
2056 setNeedsLayoutAndPrefWidthsRecalc(); 2056 setNeedsLayoutAndPrefWidthsRecalc();
2057 else if (updatedDiff.needsPositionedMovementLayout()) 2057 else if (updatedDiff.needsPositionedMovementLayout())
2058 setNeedsPositionedMovementLayout(); 2058 setNeedsPositionedMovementLayout();
2059 } 2059 }
2060 2060
2061 if (diff.transformChanged() && !needsLayout()) { 2061 if (diff.transformChanged() && !needsLayout()) {
2062 if (RenderBlock* container = containingBlock()) 2062 if (RenderBlock* container = containingBlock())
2063 container->setNeedsOverflowRecalcAfterStyleChange(); 2063 container->setNeedsOverflowRecalcAfterStyleChange();
2064 } 2064 }
2065 2065
2066 if (updatedDiff.needsRepaint()) { 2066 if (updatedDiff.needsRepaintLayer()) {
2067 toRenderLayerModelObject(this)->layer()->setShouldDoFullPaintInvalidatio nIncludingNonCompositingDescendants();
2068 } else if (updatedDiff.needsRepaint()) {
2067 // Invalidate paints with the new style, e.g., for example if we go from not having 2069 // Invalidate paints with the new style, e.g., for example if we go from not having
2068 // an outline to having an outline. 2070 // an outline to having an outline.
2069 2071
2070 // The paintInvalidationForWholeRenderer() call is needed for non-layout changes to style. See the corresponding 2072 // The paintInvalidationForWholeRenderer() call is needed for non-layout changes to style. See the corresponding
2071 // comment in RenderObject::styleWillChange for why. 2073 // comment in RenderObject::styleWillChange for why.
2072 if (needsLayout()) 2074 if (needsLayout())
2073 setShouldDoFullPaintInvalidation(true); 2075 setShouldDoFullPaintInvalidation(true);
2074 else if (!selfNeedsLayout()) 2076 else if (!selfNeedsLayout())
2075 paintInvalidationForWholeRenderer(); 2077 paintInvalidationForWholeRenderer();
2076 } 2078 }
(...skipping 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after
3457 { 3459 {
3458 if (object1) { 3460 if (object1) {
3459 const blink::RenderObject* root = object1; 3461 const blink::RenderObject* root = object1;
3460 while (root->parent()) 3462 while (root->parent())
3461 root = root->parent(); 3463 root = root->parent();
3462 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3464 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3463 } 3465 }
3464 } 3466 }
3465 3467
3466 #endif 3468 #endif
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderLayerModelObject.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698