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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.h

Issue 1368163002: Workaround rect-based paint invalidation on ancestor clip change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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) 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 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after
1180 void setMayNeedPaintInvalidation(); 1180 void setMayNeedPaintInvalidation();
1181 1181
1182 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); } 1182 bool shouldInvalidateSelection() const { return m_bitfields.shouldInvalidate Selection(); }
1183 void setShouldInvalidateSelection(); 1183 void setShouldInvalidateSelection();
1184 1184
1185 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const 1185 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) const
1186 { 1186 {
1187 // Should check for paint invalidation if some ancestor changed location , because this object 1187 // Should check for paint invalidation if some ancestor changed location , because this object
1188 // may also change paint offset or location in paint invalidation contai ner, even if there is 1188 // may also change paint offset or location in paint invalidation contai ner, even if there is
1189 // no paint invalidation flag set. 1189 // no paint invalidation flag set.
1190 return paintInvalidationState.forcedSubtreeInvalidationWithinContainer() || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState(); 1190 return paintInvalidationState.forcedSubtreeInvalidationWithinContainer()
1191 || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinC ontainer()
1192 || shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState ();
1191 } 1193 }
1192 1194
1193 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st 1195 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() con st
1194 { 1196 {
1195 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation( ); 1197 return mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldInvalidateSelection() || m_bitfields.childShouldCheckForPaintInvalidation( );
1196 } 1198 }
1197 1199
1198 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h asTransformRelatedProperty() && !hasReflection() && !style()->isFlippedBlocksWri tingMode(); } 1200 virtual bool supportsPaintInvalidationStateCachedOffsets() const { return !h asTransformRelatedProperty() && !hasReflection() && !style()->isFlippedBlocksWri tingMode(); }
1199 1201
1200 virtual LayoutRect viewRect() const; 1202 virtual LayoutRect viewRect() const;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 void clearChildNeedsOverflowRecalcAfterStyleChange() { m_bitfields.setChildN eedsOverflowRecalcAfterStyleChange(false); } 1360 void clearChildNeedsOverflowRecalcAfterStyleChange() { m_bitfields.setChildN eedsOverflowRecalcAfterStyleChange(false); }
1359 void setShouldInvalidateOverflowForPaint() { m_bitfields.setShouldInvalidate OverflowForPaint(true); } 1361 void setShouldInvalidateOverflowForPaint() { m_bitfields.setShouldInvalidate OverflowForPaint(true); }
1360 void setEverHadLayout() { m_bitfields.setEverHadLayout(true); } 1362 void setEverHadLayout() { m_bitfields.setEverHadLayout(true); }
1361 1363
1362 // Remove this object and all descendants from the containing LayoutFlowThre ad. 1364 // Remove this object and all descendants from the containing LayoutFlowThre ad.
1363 void removeFromLayoutFlowThread(); 1365 void removeFromLayoutFlowThread();
1364 1366
1365 bool containsInlineWithOutlineAndContinuation() const { return m_bitfields.c ontainsInlineWithOutlineAndContinuation(); } 1367 bool containsInlineWithOutlineAndContinuation() const { return m_bitfields.c ontainsInlineWithOutlineAndContinuation(); }
1366 void setContainsInlineWithOutlineAndContinuation(bool b) { m_bitfields.setCo ntainsInlineWithOutlineAndContinuation(b); } 1368 void setContainsInlineWithOutlineAndContinuation(bool b) { m_bitfields.setCo ntainsInlineWithOutlineAndContinuation(b); }
1367 1369
1370 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; }
1371
1368 private: 1372 private:
1369 void fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalidationConta iner, PaintInvalidationReason, const LayoutRect& oldBounds, const LayoutRect& ne wBounds); 1373 void fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalidationConta iner, PaintInvalidationReason, const LayoutRect& oldBounds, const LayoutRect& ne wBounds);
1370 1374
1371 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; }
1372
1373 // Adjusts a paint invalidation rect in the space of |m_previousPaintInvalid ationRect| and |m_previousPositionFromPaintInvalidationBacking| 1375 // Adjusts a paint invalidation rect in the space of |m_previousPaintInvalid ationRect| and |m_previousPositionFromPaintInvalidationBacking|
1374 // to be in the space of the |paintInvalidationContainer|, 1376 // to be in the space of the |paintInvalidationContainer|,
1375 // if needed. They can be different only if |paintInvalidationContainer| is a composited scroller. 1377 // if needed. They can be different only if |paintInvalidationContainer| is a composited scroller.
1376 void adjustInvalidationRectForCompositedScrolling(LayoutRect&, const LayoutB oxModelObject& paintInvalidationContainer) const; 1378 void adjustInvalidationRectForCompositedScrolling(LayoutRect&, const LayoutB oxModelObject& paintInvalidationContainer) const;
1377 1379
1378 void clearLayoutRootIfNeeded() const; 1380 void clearLayoutRootIfNeeded() const;
1379 1381
1380 bool isInert() const; 1382 bool isInert() const;
1381 1383
1382 void updateImage(StyleImage*, StyleImage*); 1384 void updateImage(StyleImage*, StyleImage*);
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
1902 void showTree(const blink::LayoutObject*); 1904 void showTree(const blink::LayoutObject*);
1903 void showLineTree(const blink::LayoutObject*); 1905 void showLineTree(const blink::LayoutObject*);
1904 void showLayoutTree(const blink::LayoutObject* object1); 1906 void showLayoutTree(const blink::LayoutObject* object1);
1905 // We don't make object2 an optional parameter so that showLayoutTree 1907 // We don't make object2 an optional parameter so that showLayoutTree
1906 // can be called from gdb easily. 1908 // can be called from gdb easily.
1907 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 1909 void showLayoutTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
1908 1910
1909 #endif 1911 #endif
1910 1912
1911 #endif // LayoutObject_h 1913 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698