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

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

Issue 478433002: Avoid RenderObject::paintInvalidationForWholeRenderer() if possible (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: TestExpectations Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderObject.h ('k') | Source/core/rendering/RenderObjectChildList.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 v->invalidatePaintForRectangle(r); 1533 v->invalidatePaintForRectangle(r);
1534 return; 1534 return;
1535 } 1535 }
1536 1536
1537 if (v->usesCompositing()) { 1537 if (v->usesCompositing()) {
1538 ASSERT(paintInvalidationContainer->hasLayer() && (paintInvalidationConta iner->layer()->compositingState() == PaintsIntoOwnBacking || paintInvalidationCo ntainer->layer()->compositingState() == PaintsIntoGroupedBacking)); 1538 ASSERT(paintInvalidationContainer->hasLayer() && (paintInvalidationConta iner->layer()->compositingState() == PaintsIntoOwnBacking || paintInvalidationCo ntainer->layer()->compositingState() == PaintsIntoGroupedBacking));
1539 paintInvalidationContainer->layer()->paintInvalidator().setBackingNeedsP aintInvalidationInRect(r); 1539 paintInvalidationContainer->layer()->paintInvalidator().setBackingNeedsP aintInvalidationInRect(r);
1540 } 1540 }
1541 } 1541 }
1542 1542
1543 void RenderObject::paintInvalidationForWholeRenderer() const 1543 void RenderObject::invalidatePaintForWholeRenderer() const
1544 { 1544 {
1545 if (!isRooted()) 1545 if (!isRooted())
1546 return; 1546 return;
1547 1547
1548 if (view()->document().printing()) 1548 if (view()->document().printing())
1549 return; // Don't invalidate paints if we're printing. 1549 return; // Don't invalidate paints if we're printing.
1550 1550
1551 // FIXME: really, we're in the paint invalidation phase here, and the follow ing queries are legal. 1551 // FIXME: really, we're in the paint invalidation phase here, and the follow ing queries are legal.
1552 // Until those states are fully fledged, I'll just disable the ASSERTS. 1552 // Until those states are fully fledged, I'll just disable the ASSERTS.
1553 DisableCompositingQueryAsserts disabler; 1553 DisableCompositingQueryAsserts disabler;
(...skipping 1847 matching lines...) Expand 10 before | Expand all | Expand 10 after
3401 { 3401 {
3402 ASSERT_NOT_REACHED(); 3402 ASSERT_NOT_REACHED();
3403 return false; 3403 return false;
3404 } 3404 }
3405 3405
3406 bool RenderObject::isRelayoutBoundaryForInspector() const 3406 bool RenderObject::isRelayoutBoundaryForInspector() const
3407 { 3407 {
3408 return objectIsRelayoutBoundary(this); 3408 return objectIsRelayoutBoundary(this);
3409 } 3409 }
3410 3410
3411 void RenderObject::setShouldDoFullPaintInvalidation(bool b, MarkingBehavior mark Behavior)
3412 {
3413 m_bitfields.setShouldDoFullPaintInvalidation(b);
3414
3415 if (markBehavior == MarkContainingBlockChain && b) {
3416 ASSERT(document().lifecycle().state() != DocumentLifecycle::InPaintInval idation);
3417 frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called not during FrameView::updateLayoutAndStyleForPainting().
3418 markContainingBlockChainForPaintInvalidation();
3419 }
3420 }
3421
3411 void RenderObject::clearPaintInvalidationState(const PaintInvalidationState& pai ntInvalidationState) 3422 void RenderObject::clearPaintInvalidationState(const PaintInvalidationState& pai ntInvalidationState)
3412 { 3423 {
3413 // paintInvalidationStateIsDirty should be kept in sync with the 3424 // paintInvalidationStateIsDirty should be kept in sync with the
3414 // booleans that are cleared below. 3425 // booleans that are cleared below.
3415 ASSERT(paintInvalidationState.forceCheckForPaintInvalidation() || paintInval idationStateIsDirty()); 3426 ASSERT(paintInvalidationState.forceCheckForPaintInvalidation() || paintInval idationStateIsDirty());
3416 setShouldDoFullPaintInvalidation(false); 3427 setShouldDoFullPaintInvalidation(false);
3417 setShouldDoFullPaintInvalidationIfSelfPaintingLayer(false); 3428 setShouldDoFullPaintInvalidationIfSelfPaintingLayer(false);
3418 setOnlyNeededPositionedMovementLayout(false); 3429 setOnlyNeededPositionedMovementLayout(false);
3419 setNeededLayoutBecauseOfChildren(false); 3430 setNeededLayoutBecauseOfChildren(false);
3420 setShouldInvalidateOverflowForPaint(false); 3431 setShouldInvalidateOverflowForPaint(false);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3463 { 3474 {
3464 if (object1) { 3475 if (object1) {
3465 const blink::RenderObject* root = object1; 3476 const blink::RenderObject* root = object1;
3466 while (root->parent()) 3477 while (root->parent())
3467 root = root->parent(); 3478 root = root->parent();
3468 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3479 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3469 } 3480 }
3470 } 3481 }
3471 3482
3472 #endif 3483 #endif
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderObject.h ('k') | Source/core/rendering/RenderObjectChildList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698