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

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

Issue 2051333005: Let FrameView track object paint invalidations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@TrackInvalidation
Patch Set: NeedsRebaseline 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) 1997 Martin Jones (mjones@kde.org) 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 * (C) 1997 Torben Weis (weis@kde.org) 3 * (C) 1997 Torben Weis (weis@kde.org)
4 * (C) 1998 Waldo Bastian (bastian@kde.org) 4 * (C) 1998 Waldo Bastian (bastian@kde.org)
5 * (C) 1999 Lars Knoll (knoll@kde.org) 5 * (C) 1999 Lars Knoll (knoll@kde.org)
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) 6 * (C) 1999 Antti Koivisto (koivisto@kde.org)
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc. All rights reserved.
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.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 1431 matching lines...) Expand 10 before | Expand all | Expand 10 after
1442 if (!hasColChangedBackground && !section->shouldCheckForPaintInvalidatio nRegardlessOfPaintInvalidationState()) 1442 if (!hasColChangedBackground && !section->shouldCheckForPaintInvalidatio nRegardlessOfPaintInvalidationState())
1443 continue; 1443 continue;
1444 for (LayoutTableRow* row = section->firstRow(); row; row = row->nextRow( )) { 1444 for (LayoutTableRow* row = section->firstRow(); row; row = row->nextRow( )) {
1445 if (!hasColChangedBackground && !section->backgroundChangedSinceLast PaintInvalidation() && !row->backgroundChangedSinceLastPaintInvalidation()) 1445 if (!hasColChangedBackground && !section->backgroundChangedSinceLast PaintInvalidation() && !row->backgroundChangedSinceLastPaintInvalidation())
1446 continue; 1446 continue;
1447 for (LayoutTableCell* cell = row->firstCell(); cell; cell = cell->ne xtCell()) { 1447 for (LayoutTableCell* cell = row->firstCell(); cell; cell = cell->ne xtCell()) {
1448 bool invalidated = false; 1448 bool invalidated = false;
1449 // Table cells paint container's background on the container's b acking instead of its own (if any), 1449 // Table cells paint container's background on the container's b acking instead of its own (if any),
1450 // so we must invalidate it by the containers. 1450 // so we must invalidate it by the containers.
1451 if (section->backgroundChangedSinceLastPaintInvalidation()) { 1451 if (section->backgroundChangedSinceLastPaintInvalidation()) {
1452 section->invalidateDisplayItemClient(*cell); 1452 section->slowSetPaintingLayerNeedsRepaintAndInvalidateDispla yItemClient(*cell, PaintInvalidationStyleChange);
1453 invalidated = true; 1453 invalidated = true;
1454 } else if (hasColChangedBackground) { 1454 } else if (hasColChangedBackground) {
1455 ColAndColGroup colAndColGroup = colElementAtAbsoluteColumn(c ell->absoluteColumnIndex()); 1455 ColAndColGroup colAndColGroup = colElementAtAbsoluteColumn(c ell->absoluteColumnIndex());
1456 LayoutTableCol* column = colAndColGroup.col; 1456 LayoutTableCol* column = colAndColGroup.col;
1457 LayoutTableCol* columnGroup = colAndColGroup.colgroup; 1457 LayoutTableCol* columnGroup = colAndColGroup.colgroup;
1458 if ((columnGroup && columnGroup->backgroundChangedSinceLastP aintInvalidation()) 1458 if ((columnGroup && columnGroup->backgroundChangedSinceLastP aintInvalidation())
1459 || (column && column->backgroundChangedSinceLastPaintInv alidation())) { 1459 || (column && column->backgroundChangedSinceLastPaintInv alidation())) {
1460 section->invalidateDisplayItemClient(*cell); 1460 section->slowSetPaintingLayerNeedsRepaintAndInvalidateDi splayItemClient(*cell, PaintInvalidationStyleChange);
1461 invalidated = true; 1461 invalidated = true;
1462 } 1462 }
1463 } 1463 }
1464 if ((!invalidated || row->hasSelfPaintingLayer()) && row->backgr oundChangedSinceLastPaintInvalidation()) 1464 if ((!invalidated || row->hasSelfPaintingLayer()) && row->backgr oundChangedSinceLastPaintInvalidation())
1465 row->invalidateDisplayItemClient(*cell); 1465 row->slowSetPaintingLayerNeedsRepaintAndInvalidateDisplayIte mClient(*cell, PaintInvalidationStyleChange);
1466 } 1466 }
1467 } 1467 }
1468 } 1468 }
1469 LayoutBlock::invalidatePaintOfSubtreesIfNeeded(childPaintInvalidationState); 1469 LayoutBlock::invalidatePaintOfSubtreesIfNeeded(childPaintInvalidationState);
1470 } 1470 }
1471 1471
1472 LayoutUnit LayoutTable::paddingTop() const 1472 LayoutUnit LayoutTable::paddingTop() const
1473 { 1473 {
1474 if (collapseBorders()) 1474 if (collapseBorders())
1475 return LayoutUnit(); 1475 return LayoutUnit();
(...skipping 19 matching lines...) Expand all
1495 1495
1496 LayoutUnit LayoutTable::paddingRight() const 1496 LayoutUnit LayoutTable::paddingRight() const
1497 { 1497 {
1498 if (collapseBorders()) 1498 if (collapseBorders())
1499 return LayoutUnit(); 1499 return LayoutUnit();
1500 1500
1501 return LayoutBlock::paddingRight(); 1501 return LayoutBlock::paddingRight();
1502 } 1502 }
1503 1503
1504 } // namespace blink 1504 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutTableCell.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698