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

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

Issue 2488343002: Move clearPaintInvalidatinFlags after subtree walk (Closed)
Patch Set: Created 4 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) 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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
7 * Copyright (C) 2010 Google Inc. All rights reserved. 7 * Copyright (C) 2010 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 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 496
497 if (mayNeedPaintInvalidationSubtree()) 497 if (mayNeedPaintInvalidationSubtree())
498 newPaintInvalidationState 498 newPaintInvalidationState
499 .setForceSubtreeInvalidationCheckingWithinContainer(); 499 .setForceSubtreeInvalidationCheckingWithinContainer();
500 500
501 ObjectPaintInvalidator paintInvalidator(*this); 501 ObjectPaintInvalidator paintInvalidator(*this);
502 LayoutRect previousVisualRect = this->previousVisualRect(); 502 LayoutRect previousVisualRect = this->previousVisualRect();
503 LayoutPoint previousLocation = paintInvalidator.previousLocationInBacking(); 503 LayoutPoint previousLocation = paintInvalidator.previousLocationInBacking();
504 PaintInvalidationReason reason = 504 PaintInvalidationReason reason =
505 invalidatePaintIfNeeded(newPaintInvalidationState); 505 invalidatePaintIfNeeded(newPaintInvalidationState);
506 clearPaintInvalidationFlags();
507 506
508 if (previousLocation != paintInvalidator.previousLocationInBacking()) { 507 if (previousLocation != paintInvalidator.previousLocationInBacking()) {
509 newPaintInvalidationState 508 newPaintInvalidationState
510 .setForceSubtreeInvalidationCheckingWithinContainer(); 509 .setForceSubtreeInvalidationCheckingWithinContainer();
511 } 510 }
512 511
513 // TODO(wangxianzhu): Combine this function into LayoutObject:: 512 // TODO(wangxianzhu): Combine this function into LayoutObject::
514 // invalidateTreeIfNeeded() when removing the following workarounds. 513 // invalidateTreeIfNeeded() when removing the following workarounds.
515 514
516 // TODO(wangxianzhu): This is a workaround for crbug.com/533277. Will remove 515 // TODO(wangxianzhu): This is a workaround for crbug.com/533277. Will remove
(...skipping 11 matching lines...) Expand all
528 !usesCompositedScrolling() 527 !usesCompositedScrolling()
529 // Note that isLayoutView() below becomes unnecessary after the launch of 528 // Note that isLayoutView() below becomes unnecessary after the launch of
530 // root layer scrolling. 529 // root layer scrolling.
531 && (hasOverflowClip() || isLayoutView())) { 530 && (hasOverflowClip() || isLayoutView())) {
532 newPaintInvalidationState 531 newPaintInvalidationState
533 .setForceSubtreeInvalidationRectUpdateWithinContainer(); 532 .setForceSubtreeInvalidationRectUpdateWithinContainer();
534 } 533 }
535 534
536 newPaintInvalidationState.updateForChildren(reason); 535 newPaintInvalidationState.updateForChildren(reason);
537 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); 536 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState);
537
538 clearPaintInvalidationFlags();
538 } 539 }
539 540
540 void LayoutBoxModelObject::addOutlineRectsForNormalChildren( 541 void LayoutBoxModelObject::addOutlineRectsForNormalChildren(
541 Vector<LayoutRect>& rects, 542 Vector<LayoutRect>& rects,
542 const LayoutPoint& additionalOffset, 543 const LayoutPoint& additionalOffset,
543 IncludeBlockVisualOverflowOrNot includeBlockOverflows) const { 544 IncludeBlockVisualOverflowOrNot includeBlockOverflows) const {
544 for (LayoutObject* child = slowFirstChild(); child; 545 for (LayoutObject* child = slowFirstChild(); child;
545 child = child->nextSibling()) { 546 child = child->nextSibling()) {
546 // Outlines of out-of-flow positioned descendants are handled in 547 // Outlines of out-of-flow positioned descendants are handled in
547 // LayoutBlock::addOutlineRects(). 548 // LayoutBlock::addOutlineRects().
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 if (rootElementStyle->hasBackground()) 1341 if (rootElementStyle->hasBackground())
1341 return false; 1342 return false;
1342 1343
1343 if (node() != document().firstBodyElement()) 1344 if (node() != document().firstBodyElement())
1344 return false; 1345 return false;
1345 1346
1346 return true; 1347 return true;
1347 } 1348 }
1348 1349
1349 } // namespace blink 1350 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698