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

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

Issue 665673004: Move selection invalidation to the invalidation phase (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated after Xianzhu's comments. Created 6 years, 1 month 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 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) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space 844 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space
845 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same 845 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same
846 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing. 846 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing.
847 // If |paintInvalidationContainer| is 0, invalidate paints via the view. 847 // If |paintInvalidationContainer| is 0, invalidate paints via the view.
848 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99. 848 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99.
849 void invalidatePaintUsingContainer(const RenderLayerModelObject* paintInvali dationContainer, const LayoutRect&, PaintInvalidationReason) const; 849 void invalidatePaintUsingContainer(const RenderLayerModelObject* paintInvali dationContainer, const LayoutRect&, PaintInvalidationReason) const;
850 850
851 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space. 851 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space.
852 void invalidatePaintRectangle(const LayoutRect&) const; 852 void invalidatePaintRectangle(const LayoutRect&) const;
853 853
854 void invalidateSelectionIfNeeded(const RenderLayerModelObject&); 854 void invalidateSelectionIfNeeded(const RenderLayerModelObject&, PaintInvalid ationReason);
855 855
856 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state. 856 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state.
857 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&); 857 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&);
858 858
859 virtual void invalidatePaintForOverflow(); 859 virtual void invalidatePaintForOverflow();
860 void invalidatePaintForOverflowIfNeeded(); 860 void invalidatePaintForOverflowIfNeeded();
861 861
862 void invalidatePaintIncludingNonCompositingDescendants(); 862 void invalidatePaintIncludingNonCompositingDescendants();
863 863
864 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's 864 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 m_bitfields.setLayoutDidGetCalledSinceLastFrame(true); 1187 m_bitfields.setLayoutDidGetCalledSinceLastFrame(true);
1188 1188
1189 // Make sure our parent is marked as needing invalidation. 1189 // Make sure our parent is marked as needing invalidation.
1190 // This would be unneeded if we allowed sub-tree invalidation (akin to s ub-tree layouts). 1190 // This would be unneeded if we allowed sub-tree invalidation (akin to s ub-tree layouts).
1191 markContainingBlockChainForPaintInvalidation(); 1191 markContainingBlockChainForPaintInvalidation();
1192 } 1192 }
1193 void clearLayoutDidGetCalledSinceLastFrame() { m_bitfields.setLayoutDidGetCa lledSinceLastFrame(false); } 1193 void clearLayoutDidGetCalledSinceLastFrame() { m_bitfields.setLayoutDidGetCa lledSinceLastFrame(false); }
1194 1194
1195 void invalidatePaintIncludingNonCompositingDescendantsInternal(const RenderL ayerModelObject* repaintContainer); 1195 void invalidatePaintIncludingNonCompositingDescendantsInternal(const RenderL ayerModelObject* repaintContainer);
1196 1196
1197 LayoutRect previousSelectionRectForPaintInvalidation() const;
1198 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&);
1199
1197 const RenderLayerModelObject* enclosingCompositedContainer() const; 1200 const RenderLayerModelObject* enclosingCompositedContainer() const;
1198 1201
1199 RenderFlowThread* locateFlowThreadContainingBlock() const; 1202 RenderFlowThread* locateFlowThreadContainingBlock() const;
1200 void removeFromRenderFlowThread(); 1203 void removeFromRenderFlowThread();
1201 void removeFromRenderFlowThreadRecursive(RenderFlowThread*); 1204 void removeFromRenderFlowThreadRecursive(RenderFlowThread*);
1202 1205
1203 RenderStyle* cachedFirstLineStyle() const; 1206 RenderStyle* cachedFirstLineStyle() const;
1204 StyleDifference adjustStyleDifference(StyleDifference) const; 1207 StyleDifference adjustStyleDifference(StyleDifference) const;
1205 1208
1206 Color selectionColor(int colorProperty) const; 1209 Color selectionColor(int colorProperty) const;
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); } 1385 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); }
1383 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); } 1386 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); }
1384 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); } 1387 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); }
1385 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); } 1388 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); }
1386 void setChildNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setCh ildNeedsOverflowRecalcAfterStyleChange(b); } 1389 void setChildNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setCh ildNeedsOverflowRecalcAfterStyleChange(b); }
1387 1390
1388 private: 1391 private:
1389 // Store state between styleWillChange and styleDidChange 1392 // Store state between styleWillChange and styleDidChange
1390 static bool s_affectsParentBlock; 1393 static bool s_affectsParentBlock;
1391 1394
1392 // This stores the paint invalidation rect from the previous layout. 1395 // This stores the paint invalidation rect from the previous frame.
1393 LayoutRect m_previousPaintInvalidationRect; 1396 LayoutRect m_previousPaintInvalidationRect;
1394 1397
1395 // This stores the position in the paint invalidation backing's coordinate. 1398 // This stores the position in the paint invalidation backing's coordinate.
1396 // It is used to detect renderer shifts that forces a full invalidation. 1399 // It is used to detect renderer shifts that forces a full invalidation.
1397 LayoutPoint m_previousPositionFromPaintInvalidationBacking; 1400 LayoutPoint m_previousPositionFromPaintInvalidationBacking;
1398 1401
1399 static unsigned s_instanceCount; 1402 static unsigned s_instanceCount;
1400 }; 1403 };
1401 1404
1402 // FIXME: remove this once the render object lifecycle ASSERTS are no longer hit . 1405 // FIXME: remove this once the render object lifecycle ASSERTS are no longer hit .
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 void showTree(const blink::RenderObject*); 1614 void showTree(const blink::RenderObject*);
1612 void showLineTree(const blink::RenderObject*); 1615 void showLineTree(const blink::RenderObject*);
1613 void showRenderTree(const blink::RenderObject* object1); 1616 void showRenderTree(const blink::RenderObject* object1);
1614 // We don't make object2 an optional parameter so that showRenderTree 1617 // We don't make object2 an optional parameter so that showRenderTree
1615 // can be called from gdb easily. 1618 // can be called from gdb easily.
1616 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2); 1619 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2);
1617 1620
1618 #endif 1621 #endif
1619 1622
1620 #endif // RenderObject_h 1623 #endif // RenderObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698