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

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

Issue 2817583006: Add a use-counter for viewport-fixed position:fixed under a filter (Closed)
Patch Set: Merge branch 'master' into usecounterfilter Created 3 years, 8 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 // 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 "core/layout/compositing/CompositingInputsUpdater.h" 5 #include "core/layout/compositing/CompositingInputsUpdater.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/frame/FrameView.h" 8 #include "core/frame/FrameView.h"
9 #include "core/layout/LayoutBlock.h" 9 #include "core/layout/LayoutBlock.h"
10 #include "core/layout/LayoutView.h" 10 #include "core/layout/LayoutView.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 const PaintLayer* parent = layer->Parent(); 179 const PaintLayer* parent = layer->Parent();
180 properties.opacity_ancestor = 180 properties.opacity_ancestor =
181 parent->IsTransparent() ? parent : parent->OpacityAncestor(); 181 parent->IsTransparent() ? parent : parent->OpacityAncestor();
182 properties.transform_ancestor = 182 properties.transform_ancestor =
183 parent->Transform() ? parent : parent->TransformAncestor(); 183 parent->Transform() ? parent : parent->TransformAncestor();
184 properties.filter_ancestor = parent->HasFilterInducingProperty() 184 properties.filter_ancestor = parent->HasFilterInducingProperty()
185 ? parent 185 ? parent
186 : parent->FilterAncestor(); 186 : parent->FilterAncestor();
187 bool layer_is_fixed_position = 187 bool layer_is_fixed_position =
188 layer->GetLayoutObject().Style()->GetPosition() == EPosition::kFixed; 188 layer->GetLayoutObject().Style()->GetPosition() == EPosition::kFixed;
189
190 if (layer_is_fixed_position && properties.filter_ancestor &&
191 layer->FixedToViewport()) {
192 UseCounter::Count(layer->GetLayoutObject().GetDocument(),
193 UseCounter::kViewportFixedPositionUnderFilter);
194 }
195
189 properties.nearest_fixed_position_layer = 196 properties.nearest_fixed_position_layer =
190 layer_is_fixed_position ? layer : parent->NearestFixedPositionLayer(); 197 layer_is_fixed_position ? layer : parent->NearestFixedPositionLayer();
191 198
192 if (info.has_ancestor_with_clip_related_property) { 199 if (info.has_ancestor_with_clip_related_property) {
193 const PaintLayer* parent_layer_on_clipping_container_chain = 200 const PaintLayer* parent_layer_on_clipping_container_chain =
194 FindParentLayerOnClippingContainerChain(layer); 201 FindParentLayerOnClippingContainerChain(layer);
195 const bool parent_has_clip_related_property = 202 const bool parent_has_clip_related_property =
196 parent_layer_on_clipping_container_chain->GetLayoutObject() 203 parent_layer_on_clipping_container_chain->GetLayoutObject()
197 .HasClipRelatedProperty(); 204 .HasClipRelatedProperty();
198 properties.clipping_container = 205 properties.clipping_container =
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 DCHECK(!layer->NeedsCompositingInputsUpdate()); 285 DCHECK(!layer->NeedsCompositingInputsUpdate());
279 286
280 for (PaintLayer* child = layer->FirstChild(); child; 287 for (PaintLayer* child = layer->FirstChild(); child;
281 child = child->NextSibling()) 288 child = child->NextSibling())
282 AssertNeedsCompositingInputsUpdateBitsCleared(child); 289 AssertNeedsCompositingInputsUpdateBitsCleared(child);
283 } 290 }
284 291
285 #endif 292 #endif
286 293
287 } // namespace blink 294 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/UseCounter.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698