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

Side by Side Diff: Source/core/rendering/compositing/RenderLayerCompositor.cpp

Issue 212923005: Do not squash invisible layers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Avoid mucking with canBeComposited Created 6 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 | Annotate | Revision Log
« no previous file with comments | « LayoutTests/compositing/squashing/invisible-layers-should-not-affect-geometry-expected.txt ('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) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 ASSERT(squashingState.hasMostRecentMapping); 776 ASSERT(squashingState.hasMostRecentMapping);
777 if (layer->scrollsWithRespectTo(&squashingState.mostRecentMapping->owningLay er())) 777 if (layer->scrollsWithRespectTo(&squashingState.mostRecentMapping->owningLay er()))
778 return false; 778 return false;
779 779
780 return true; 780 return true;
781 } 781 }
782 782
783 RenderLayerCompositor::CompositingStateTransitionType RenderLayerCompositor::com puteCompositedLayerUpdate(RenderLayer* layer) 783 RenderLayerCompositor::CompositingStateTransitionType RenderLayerCompositor::com puteCompositedLayerUpdate(RenderLayer* layer)
784 { 784 {
785 CompositingStateTransitionType update = NoCompositingStateChange; 785 CompositingStateTransitionType update = NoCompositingStateChange;
786 if (needsOwnBacking(layer)) { 786 if (!layer->subtreeIsInvisible() && needsOwnBacking(layer)) {
787 if (!layer->hasCompositedLayerMapping()) { 787 if (!layer->hasCompositedLayerMapping()) {
788 update = AllocateOwnCompositedLayerMapping; 788 update = AllocateOwnCompositedLayerMapping;
789 } 789 }
790 } else { 790 } else {
791 if (layer->hasCompositedLayerMapping()) 791 if (layer->hasCompositedLayerMapping())
792 update = RemoveOwnCompositedLayerMapping; 792 update = RemoveOwnCompositedLayerMapping;
793 793
794 if (layerSquashingEnabled()) { 794 if (layerSquashingEnabled()) {
795 if (requiresSquashing(layer->compositingReasons())) { 795 if (!layer->subtreeIsInvisible() && requiresSquashing(layer->composi tingReasons())) {
796 // We can't compute at this time whether the squashing layer upd ate is a no-op, 796 // We can't compute at this time whether the squashing layer upd ate is a no-op,
797 // since that requires walking the render layer tree. 797 // since that requires walking the render layer tree.
798 update = PutInSquashingLayer; 798 update = PutInSquashingLayer;
799 } else if (layer->groupedMapping() || layer->lostGroupedMapping()) { 799 } else if (layer->groupedMapping() || layer->lostGroupedMapping()) {
800 update = RemoveFromSquashingLayer; 800 update = RemoveFromSquashingLayer;
801 } 801 }
802 } 802 }
803 } 803 }
804 return update; 804 return update;
805 } 805 }
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after
2162 } else if (graphicsLayer == m_scrollLayer.get()) { 2162 } else if (graphicsLayer == m_scrollLayer.get()) {
2163 name = "LocalFrame Scrolling Layer"; 2163 name = "LocalFrame Scrolling Layer";
2164 } else { 2164 } else {
2165 ASSERT_NOT_REACHED(); 2165 ASSERT_NOT_REACHED();
2166 } 2166 }
2167 2167
2168 return name; 2168 return name;
2169 } 2169 }
2170 2170
2171 } // namespace WebCore 2171 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/compositing/squashing/invisible-layers-should-not-affect-geometry-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698