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

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

Issue 233063004: Suppress layer creation for descendants of GPU-rasterized layers (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address abarth's comments Created 6 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 | Annotate | Revision Log
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 1830 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 RenderBlock* block = toRenderBlock(parent())->createAnonymousBlock() ; 1841 RenderBlock* block = toRenderBlock(parent())->createAnonymousBlock() ;
1842 RenderObjectChildList* childlist = parent()->virtualChildren(); 1842 RenderObjectChildList* childlist = parent()->virtualChildren();
1843 childlist->insertChildNode(parent(), block, this); 1843 childlist->insertChildNode(parent(), block, this);
1844 block->children()->appendChildNode(block, childlist->removeChildNode (parent(), this)); 1844 block->children()->appendChildNode(block, childlist->removeChildNode (parent(), this));
1845 } 1845 }
1846 } 1846 }
1847 } 1847 }
1848 1848
1849 StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff, unsign ed contextSensitiveProperties) const 1849 StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff, unsign ed contextSensitiveProperties) const
1850 { 1850 {
1851 // FIXME: The calls to hasDirectReasonsForCompositing are using state that m ay not be up to date.
1852 DisableCompositingQueryAsserts disabler;
abarth-chromium 2014/04/17 17:29:51 This should be asking whether we have any style-de
ajuma 2014/04/17 19:24:44 Yes, switching to styleDeterminedReasons() does ca
1851 // If transform changed, and the layer does not paint into its own separate backing, then we need to do a layout. 1853 // If transform changed, and the layer does not paint into its own separate backing, then we need to do a layout.
1852 // FIXME: The comment above is what the code does, but it is technically not following spec. This means we will 1854 // FIXME: The comment above is what the code does, but it is technically not following spec. This means we will
1853 // not to layout for 3d transforms, but we should be invoking a simplified r elayout. Is it possible we are avoiding 1855 // not to layout for 3d transforms, but we should be invoking a simplified r elayout. Is it possible we are avoiding
1854 // doing this for some performance reason at this time? 1856 // doing this for some performance reason at this time?
1855 if (contextSensitiveProperties & ContextSensitivePropertyTransform) { 1857 if (contextSensitiveProperties & ContextSensitivePropertyTransform) {
1856 // Text nodes share style with their parents but transforms don't apply to them, 1858 // Text nodes share style with their parents but transforms don't apply to them,
1857 // hence the !isText() check. 1859 // hence the !isText() check.
1858 // FIXME: when transforms are taken into account for overflow, we will n eed to do a layout. 1860 // FIXME: when transforms are taken into account for overflow, we will n eed to do a layout.
1859 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer( )->hasDirectReasonsForCompositing())) { 1861 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer( )->hasDirectReasonsForCompositing())) {
1860 // We need to set at least SimplifiedLayout, but if PositionedMoveme ntOnly is already set 1862 // We need to set at least SimplifiedLayout, but if PositionedMoveme ntOnly is already set
(...skipping 1512 matching lines...) Expand 10 before | Expand all | Expand 10 after
3373 { 3375 {
3374 if (object1) { 3376 if (object1) {
3375 const WebCore::RenderObject* root = object1; 3377 const WebCore::RenderObject* root = object1;
3376 while (root->parent()) 3378 while (root->parent())
3377 root = root->parent(); 3379 root = root->parent();
3378 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3380 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3379 } 3381 }
3380 } 3382 }
3381 3383
3382 #endif 3384 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698