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

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

Issue 2046233002: Revert of Don't include scroll offset in offsetFromLayoutObject for scrolling contents layers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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) 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 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 if (PaintLayer* paintingLayer = this->paintingLayer()) 1252 if (PaintLayer* paintingLayer = this->paintingLayer())
1253 paintingLayer->setNeedsRepaint(); 1253 paintingLayer->setNeedsRepaint();
1254 } 1254 }
1255 1255
1256 void LayoutObject::invalidateDisplayItemClients(const LayoutBoxModelObject& pain tInvalidationContainer, PaintInvalidationReason invalidationReason) const 1256 void LayoutObject::invalidateDisplayItemClients(const LayoutBoxModelObject& pain tInvalidationContainer, PaintInvalidationReason invalidationReason) const
1257 { 1257 {
1258 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set. 1258 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set.
1259 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use 1259 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use
1260 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost. 1260 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost.
1261 ASSERT(!paintingLayer() || paintingLayer()->needsRepaint()); 1261 ASSERT(!paintingLayer() || paintingLayer()->needsRepaint());
1262 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this, inval idationReason, this); 1262 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this, inval idationReason);
1263 } 1263 }
1264 1264
1265 void LayoutObject::invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxModelObject& paintInvalidationContainer, const PaintInvalidationState& paintInvalidationState, PaintInvalidationReason invalidationReason) const 1265 void LayoutObject::invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxModelObject& paintInvalidationContainer, const PaintInvalidationState& paintInvalidationState, PaintInvalidationReason invalidationReason) const
1266 { 1266 {
1267 paintInvalidationState.paintingLayer().setNeedsRepaint(); 1267 paintInvalidationState.paintingLayer().setNeedsRepaint();
1268 invalidateDisplayItemClients(paintInvalidationContainer, invalidationReason) ; 1268 invalidateDisplayItemClients(paintInvalidationContainer, invalidationReason) ;
1269 } 1269 }
1270 1270
1271 const LayoutBoxModelObject* LayoutObject::invalidatePaintRectangleInternal(const LayoutRect& dirtyRect) const 1271 const LayoutBoxModelObject* LayoutObject::invalidatePaintRectangleInternal(const LayoutRect& dirtyRect) const
1272 { 1272 {
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
1553 setPreviousPaintInvalidationRect(LayoutRect()); 1553 setPreviousPaintInvalidationRect(LayoutRect());
1554 } 1554 }
1555 1555
1556 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationBacking) 1556 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationBacking)
1557 { 1557 {
1558 ASSERT(oldBounds.location() == newBounds.location()); 1558 ASSERT(oldBounds.location() == newBounds.location());
1559 1559
1560 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX(); 1560 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX();
1561 if (deltaRight > 0) { 1561 if (deltaRight > 0) {
1562 LayoutRect invalidationRect(oldBounds.maxX(), newBounds.y(), deltaRight, newBounds.height()); 1562 LayoutRect invalidationRect(oldBounds.maxX(), newBounds.y(), deltaRight, newBounds.height());
1563 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInva lidationContainer);
1563 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental); 1564 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental);
1564 } else if (deltaRight < 0) { 1565 } else if (deltaRight < 0) {
1565 LayoutRect invalidationRect(newBounds.maxX(), oldBounds.y(), -deltaRight , oldBounds.height()); 1566 LayoutRect invalidationRect(newBounds.maxX(), oldBounds.y(), -deltaRight , oldBounds.height());
1567 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInva lidationContainer);
1566 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental); 1568 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental);
1567 } 1569 }
1568 1570
1569 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY(); 1571 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY();
1570 if (deltaBottom > 0) { 1572 if (deltaBottom > 0) {
1571 LayoutRect invalidationRect(newBounds.x(), oldBounds.maxY(), newBounds.w idth(), deltaBottom); 1573 LayoutRect invalidationRect(newBounds.x(), oldBounds.maxY(), newBounds.w idth(), deltaBottom);
1574 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInva lidationContainer);
1572 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental); 1575 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental);
1573 } else if (deltaBottom < 0) { 1576 } else if (deltaBottom < 0) {
1574 LayoutRect invalidationRect(oldBounds.x(), newBounds.maxY(), oldBounds.w idth(), -deltaBottom); 1577 LayoutRect invalidationRect(oldBounds.x(), newBounds.maxY(), oldBounds.w idth(), -deltaBottom);
1578 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInva lidationContainer);
1575 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental); 1579 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, PaintInvalidationIncremental);
1576 } 1580 }
1577 } 1581 }
1578 1582
1579 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol dBounds, const LayoutRect& newBounds) 1583 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol dBounds, const LayoutRect& newBounds)
1580 { 1584 {
1581 // The following logic avoids invalidating twice if one set of bounds contai ns the other. 1585 // The following logic avoids invalidating twice if one set of bounds contai ns the other.
1582 if (!newBounds.contains(oldBounds)) { 1586 if (!newBounds.contains(oldBounds)) {
1583 LayoutRect invalidationRect = oldBounds; 1587 LayoutRect invalidationRect = oldBounds;
1588 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInva lidationContainer);
1584 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, invalidationReason); 1589 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRe ct, invalidationReason);
1585 1590
1586 if (oldBounds.contains(newBounds)) 1591 if (oldBounds.contains(newBounds))
1587 return; 1592 return;
1588 } 1593 }
1589 1594
1590 LayoutRect invalidationRect = newBounds; 1595 LayoutRect invalidationRect = newBounds;
1596 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalida tionContainer);
1591 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, invalidationReason); 1597 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, invalidationReason);
1592 } 1598 }
1593 1599
1594 void LayoutObject::invalidatePaintForOverflow() 1600 void LayoutObject::invalidatePaintForOverflow()
1595 { 1601 {
1596 } 1602 }
1597 1603
1598 void LayoutObject::invalidatePaintForOverflowIfNeeded() 1604 void LayoutObject::invalidatePaintForOverflowIfNeeded()
1599 { 1605 {
1600 if (shouldInvalidateOverflowForPaint()) 1606 if (shouldInvalidateOverflowForPaint())
(...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after
3571 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set. 3577 // It's caller's responsibility to ensure enclosingSelfPaintingLayer's needs Repaint is set.
3572 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use 3578 // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use
3573 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost. 3579 // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) t o reduce the cost.
3574 ASSERT(!paintingLayer() || paintingLayer()->needsRepaint()); 3580 ASSERT(!paintingLayer() || paintingLayer()->needsRepaint());
3575 3581
3576 // These disablers are valid because we want to use the current compositing/ invalidation status. 3582 // These disablers are valid because we want to use the current compositing/ invalidation status.
3577 DisablePaintInvalidationStateAsserts invalidationDisabler; 3583 DisablePaintInvalidationStateAsserts invalidationDisabler;
3578 DisableCompositingQueryAsserts compositingDisabler; 3584 DisableCompositingQueryAsserts compositingDisabler;
3579 3585
3580 LayoutRect invalidationRect = previousPaintInvalidationRect(); 3586 LayoutRect invalidationRect = previousPaintInvalidationRect();
3587 adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalida tionContainer);
3581 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, reason); 3588 invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, reason);
3582 invalidateDisplayItemClients(paintInvalidationContainer, reason); 3589 invalidateDisplayItemClients(paintInvalidationContainer, reason);
3583 3590
3584 // This method may be used to invalidate paint of an object changing paint i nvalidation container. 3591 // This method may be used to invalidate paint of an object changing paint i nvalidation container.
3585 // Clear previous paint invalidation rect on the original paint invalidation container to avoid 3592 // Clear previous paint invalidation rect on the original paint invalidation container to avoid
3586 // under-invalidation if the new paint invalidation rect on the new paint in validation container 3593 // under-invalidation if the new paint invalidation rect on the new paint in validation container
3587 // happens to be the same as the old one. 3594 // happens to be the same as the old one.
3588 clearPreviousPaintInvalidationRects(); 3595 clearPreviousPaintInvalidationRects();
3589 } 3596 }
3590 3597
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
3687 const blink::LayoutObject* root = object1; 3694 const blink::LayoutObject* root = object1;
3688 while (root->parent()) 3695 while (root->parent())
3689 root = root->parent(); 3696 root = root->parent();
3690 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3697 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3691 } else { 3698 } else {
3692 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3699 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3693 } 3700 }
3694 } 3701 }
3695 3702
3696 #endif 3703 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698