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

Side by Side Diff: Source/core/layout/compositing/CompositingReasonFinder.cpp

Issue 977113003: Rename renderer() to layoutObject(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/layout/compositing/CompositingReasonFinder.h" 6 #include "core/layout/compositing/CompositingReasonFinder.h"
7 7
8 #include "core/CSSPropertyNames.h" 8 #include "core/CSSPropertyNames.h"
9 #include "core/dom/Document.h" 9 #include "core/dom/Document.h"
10 #include "core/frame/FrameView.h" 10 #include "core/frame/FrameView.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 { 43 {
44 // FIXME: LocalFrame::isMainFrame() is probably better. 44 // FIXME: LocalFrame::isMainFrame() is probably better.
45 return !m_layoutView.document().ownerElement(); 45 return !m_layoutView.document().ownerElement();
46 } 46 }
47 47
48 CompositingReasons CompositingReasonFinder::directReasons(const Layer* layer) co nst 48 CompositingReasons CompositingReasonFinder::directReasons(const Layer* layer) co nst
49 { 49 {
50 if (RuntimeEnabledFeatures::slimmingPaintCompositorLayerizationEnabled()) 50 if (RuntimeEnabledFeatures::slimmingPaintCompositorLayerizationEnabled())
51 return CompositingReasonNone; 51 return CompositingReasonNone;
52 52
53 ASSERT(potentialCompositingReasonsFromStyle(layer->renderer()) == layer->pot entialCompositingReasonsFromStyle()); 53 ASSERT(potentialCompositingReasonsFromStyle(layer->layoutObject()) == layer- >potentialCompositingReasonsFromStyle());
54 CompositingReasons styleDeterminedDirectCompositingReasons = layer->potentia lCompositingReasonsFromStyle() & CompositingReasonComboAllDirectStyleDeterminedR easons; 54 CompositingReasons styleDeterminedDirectCompositingReasons = layer->potentia lCompositingReasonsFromStyle() & CompositingReasonComboAllDirectStyleDeterminedR easons;
55 55
56 // Apply optimizations for scroll-blocks-on which require comparing style be tween objects. 56 // Apply optimizations for scroll-blocks-on which require comparing style be tween objects.
57 if ((styleDeterminedDirectCompositingReasons & CompositingReasonScrollBlocks On) && !requiresCompositingForScrollBlocksOn(layer->renderer())) 57 if ((styleDeterminedDirectCompositingReasons & CompositingReasonScrollBlocks On) && !requiresCompositingForScrollBlocksOn(layer->layoutObject()))
58 styleDeterminedDirectCompositingReasons &= ~CompositingReasonScrollBlock sOn; 58 styleDeterminedDirectCompositingReasons &= ~CompositingReasonScrollBlock sOn;
59 59
60 return styleDeterminedDirectCompositingReasons | nonStyleDeterminedDirectRea sons(layer); 60 return styleDeterminedDirectCompositingReasons | nonStyleDeterminedDirectRea sons(layer);
61 } 61 }
62 62
63 // This information doesn't appear to be incorporated into CompositingReasons. 63 // This information doesn't appear to be incorporated into CompositingReasons.
64 bool CompositingReasonFinder::requiresCompositingForScrollableFrame() const 64 bool CompositingReasonFinder::requiresCompositingForScrollableFrame() const
65 { 65 {
66 // Need this done first to determine overflow. 66 // Need this done first to determine overflow.
67 ASSERT(!m_layoutView.needsLayout()); 67 ASSERT(!m_layoutView.needsLayout());
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 bool CompositingReasonFinder::requiresCompositingForTransform(LayoutObject* rend erer) const 139 bool CompositingReasonFinder::requiresCompositingForTransform(LayoutObject* rend erer) const
140 { 140 {
141 // Note that we ask the renderer if it has a transform, because the style ma y have transforms, 141 // Note that we ask the renderer if it has a transform, because the style ma y have transforms,
142 // but the renderer may be an inline that doesn't support them. 142 // but the renderer may be an inline that doesn't support them.
143 return renderer->hasTransformRelatedProperty() && renderer->style()->transfo rm().has3DOperation(); 143 return renderer->hasTransformRelatedProperty() && renderer->style()->transfo rm().has3DOperation();
144 } 144 }
145 145
146 CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons t Layer* layer) const 146 CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons t Layer* layer) const
147 { 147 {
148 CompositingReasons directReasons = CompositingReasonNone; 148 CompositingReasons directReasons = CompositingReasonNone;
149 LayoutObject* renderer = layer->renderer(); 149 LayoutObject* renderer = layer->layoutObject();
150 150
151 if (hasOverflowScrollTrigger()) { 151 if (hasOverflowScrollTrigger()) {
152 if (layer->clipParent()) 152 if (layer->clipParent())
153 directReasons |= CompositingReasonOutOfFlowClipping; 153 directReasons |= CompositingReasonOutOfFlowClipping;
154 154
155 if (layer->needsCompositedScrolling()) 155 if (layer->needsCompositedScrolling())
156 directReasons |= CompositingReasonOverflowScrollingTouch; 156 directReasons |= CompositingReasonOverflowScrollingTouch;
157 } 157 }
158 158
159 // Composite |layer| if it is inside of an ancestor scrolling layer, but tha t 159 // Composite |layer| if it is inside of an ancestor scrolling layer, but tha t
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 // only on the style of their object. This function runs at CompositingRequ irementsUpdater::update 196 // only on the style of their object. This function runs at CompositingRequ irementsUpdater::update
197 // time, and so can consider the style of other objects. 197 // time, and so can consider the style of other objects.
198 const LayoutStyle& style = renderer->styleRef(); 198 const LayoutStyle& style = renderer->styleRef();
199 199
200 // We should only get here by CompositingReasonScrollBlocksOn being a potent ial compositing reason. 200 // We should only get here by CompositingReasonScrollBlocksOn being a potent ial compositing reason.
201 ASSERT(style.hasScrollBlocksOn() && !renderer->isDocumentElement()); 201 ASSERT(style.hasScrollBlocksOn() && !renderer->isDocumentElement());
202 202
203 // scroll-blocks-on style is propagated from the document element to the doc ument. 203 // scroll-blocks-on style is propagated from the document element to the doc ument.
204 ASSERT(!renderer->isLayoutView() 204 ASSERT(!renderer->isLayoutView()
205 || !renderer->document().documentElement() 205 || !renderer->document().documentElement()
206 || !renderer->document().documentElement()->renderer() 206 || !renderer->document().documentElement()->layoutObject()
207 || renderer->document().documentElement()->renderer()->style()->scrollBl ocksOn() == style.scrollBlocksOn()); 207 || renderer->document().documentElement()->layoutObject()->style()->scro llBlocksOn() == style.scrollBlocksOn());
208 208
209 // When a scroll occurs, it's the union of all bits set on the target elemen t's containing block 209 // When a scroll occurs, it's the union of all bits set on the target elemen t's containing block
210 // chain that determines the behavior. Thus we really only need a new layer if this object contains 210 // chain that determines the behavior. Thus we really only need a new layer if this object contains
211 // additional bits from those set by all objects in it's containing block ch ain. But determining 211 // additional bits from those set by all objects in it's containing block ch ain. But determining
212 // this fully is probably more expensive than it's worth. Instead we just h ave fast-paths here for 212 // this fully is probably more expensive than it's worth. Instead we just h ave fast-paths here for
213 // the most common cases of unnecessary layer creation. 213 // the most common cases of unnecessary layer creation.
214 // Optimizing this fully would avoid layer explosion in pathological cases l ike '*' rules. 214 // Optimizing this fully would avoid layer explosion in pathological cases l ike '*' rules.
215 // We could consider tracking the current state in CompositingRequirementsUp dater::update. 215 // We could consider tracking the current state in CompositingRequirementsUp dater::update.
216 216
217 // Ensure iframes don't get composited when they require no more blocking th an their parent. 217 // Ensure iframes don't get composited when they require no more blocking th an their parent.
218 if (renderer->isLayoutView()) { 218 if (renderer->isLayoutView()) {
219 if (const FrameView* parentFrame = toLayoutView(renderer)->frameView()-> parentFrameView()) { 219 if (const FrameView* parentFrame = toLayoutView(renderer)->frameView()-> parentFrameView()) {
220 if (const LayoutView* parentRenderer = parentFrame->layoutView()) { 220 if (const LayoutView* parentRenderer = parentFrame->layoutView()) {
221 // Does this frame contain only blocks-on bits already present i n the parent frame? 221 // Does this frame contain only blocks-on bits already present i n the parent frame?
222 if (!(style.scrollBlocksOn() & ~parentRenderer->style()->scrollB locksOn())) 222 if (!(style.scrollBlocksOn() & ~parentRenderer->style()->scrollB locksOn()))
223 return false; 223 return false;
224 } 224 }
225 } else { 225 } else {
226 // The root frame will either always already be composited, or compo siting will be disabled. 226 // The root frame will either always already be composited, or compo siting will be disabled.
227 // Either way, we don't need to require compositing for scroll block s on. This avoids 227 // Either way, we don't need to require compositing for scroll block s on. This avoids
228 // enabling compositing by default, and avoids cluttering the root l ayers compositing reasons. 228 // enabling compositing by default, and avoids cluttering the root l ayers compositing reasons.
229 return false; 229 return false;
230 } 230 }
231 } 231 }
232 232
233 return true; 233 return true;
234 } 234 }
235 235
236 } 236 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698