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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.cpp

Issue 2080683002: Revert of Invalidate as DisplayItemClient when PaintLayer is setNeedsRepaint (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@TrackObjectInvalidation
Patch Set: Created 4 years, 6 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 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 2835 matching lines...) Expand 10 before | Expand all | Expand 10 after
2846 } 2846 }
2847 } else { 2847 } else {
2848 rect.append(logicalBoundingBox()); 2848 rect.append(logicalBoundingBox());
2849 rects.set(this, rect); 2849 rects.set(this, rect);
2850 } 2850 }
2851 } 2851 }
2852 } 2852 }
2853 2853
2854 void PaintLayer::setNeedsRepaint() 2854 void PaintLayer::setNeedsRepaint()
2855 { 2855 {
2856 setNeedsRepaintInternal(); 2856 m_needsRepaint = true;
2857 2857
2858 // Do this unconditionally to ensure container chain is marked when composit ing status of the layer changes. 2858 // Do this unconditionally to ensure container chain is marked when composit ing status of the layer changes.
2859 markCompositingContainerChainForNeedsRepaint(); 2859 markCompositingContainerChainForNeedsRepaint();
2860 } 2860 }
2861 2861
2862 void PaintLayer::setNeedsRepaintInternal()
2863 {
2864 m_needsRepaint = true;
2865 setDisplayItemsUncached(); // Invalidate as a display item client.
2866 }
2867
2868 void PaintLayer::markCompositingContainerChainForNeedsRepaint() 2862 void PaintLayer::markCompositingContainerChainForNeedsRepaint()
2869 { 2863 {
2870 // Need to access compositingState(). We've ensured correct flag setting whe n compositingState() changes. 2864 // Need to access compositingState(). We've ensured correct flag setting whe n compositingState() changes.
2871 DisableCompositingQueryAsserts disabler; 2865 DisableCompositingQueryAsserts disabler;
2872 2866
2873 PaintLayer* layer = this; 2867 PaintLayer* layer = this;
2874 while (true) { 2868 while (true) {
2875 if (layer->compositingState() == PaintsIntoOwnBacking) 2869 if (layer->compositingState() == PaintsIntoOwnBacking)
2876 return; 2870 return;
2877 if (CompositedLayerMapping* groupedMapping = layer->groupedMapping()) { 2871 if (CompositedLayerMapping* groupedMapping = layer->groupedMapping()) {
2878 // TODO(wkorman): As we clean up the CompositedLayerMapping needsRep aint logic to 2872 // TODO(wkorman): As we clean up the CompositedLayerMapping needsRep aint logic to
2879 // delegate to scrollbars, we may be able to remove the line below a s well. 2873 // delegate to scrollbars, we may be able to remove the line below a s well.
2880 groupedMapping->owningLayer().setNeedsRepaint(); 2874 groupedMapping->owningLayer().setNeedsRepaint();
2881 return; 2875 return;
2882 } 2876 }
2883 2877
2884 PaintLayer* container = layer->compositingContainer(); 2878 PaintLayer* container = layer->compositingContainer();
2885 if (!container) { 2879 if (!container) {
2886 LayoutObject* owner = layer->layoutObject()->frame()->ownerLayoutObj ect(); 2880 LayoutObject* owner = layer->layoutObject()->frame()->ownerLayoutObj ect();
2887 if (!owner) 2881 if (!owner)
2888 break; 2882 break;
2889 container = owner->enclosingLayer(); 2883 container = owner->enclosingLayer();
2890 } 2884 }
2891 if (container->m_needsRepaint) 2885 if (container->m_needsRepaint)
2892 break; 2886 break;
2893 container->setNeedsRepaintInternal(); 2887 container->m_needsRepaint = true;
2894 layer = container; 2888 layer = container;
2895 } 2889 }
2896 } 2890 }
2897 2891
2898 void PaintLayer::clearNeedsRepaintRecursively() 2892 void PaintLayer::clearNeedsRepaintRecursively()
2899 { 2893 {
2900 for (PaintLayer* child = firstChild(); child; child = child->nextSibling()) 2894 for (PaintLayer* child = firstChild(); child; child = child->nextSibling())
2901 child->clearNeedsRepaintRecursively(); 2895 child->clearNeedsRepaintRecursively();
2902 m_needsRepaint = false; 2896 m_needsRepaint = false;
2903 } 2897 }
(...skipping 27 matching lines...) Expand all
2931 2925
2932 void showLayerTree(const blink::LayoutObject* layoutObject) 2926 void showLayerTree(const blink::LayoutObject* layoutObject)
2933 { 2927 {
2934 if (!layoutObject) { 2928 if (!layoutObject) {
2935 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n"); 2929 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n");
2936 return; 2930 return;
2937 } 2931 }
2938 showLayerTree(layoutObject->enclosingLayer()); 2932 showLayerTree(layoutObject->enclosingLayer());
2939 } 2933 }
2940 #endif 2934 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698