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

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

Issue 1585823002: Improve performance when calling PaintLayer::setNeedsRepaint() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@RemoveVisualRect
Patch Set: Created 4 years, 11 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 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 { 422 {
423 ASSERT(!needsLayout()); 423 ASSERT(!needsLayout());
424 424
425 // We specifically need to issue paint invalidations for the viewRect since other layoutObjects 425 // We specifically need to issue paint invalidations for the viewRect since other layoutObjects
426 // short-circuit on full-paint invalidation. 426 // short-circuit on full-paint invalidation.
427 LayoutRect dirtyRect = viewRect(); 427 LayoutRect dirtyRect = viewRect();
428 if (doingFullPaintInvalidation() && !dirtyRect.isEmpty()) { 428 if (doingFullPaintInvalidation() && !dirtyRect.isEmpty()) {
429 const LayoutBoxModelObject& paintInvalidationContainer = paintInvalidati onState.paintInvalidationContainer(); 429 const LayoutBoxModelObject& paintInvalidationContainer = paintInvalidati onState.paintInvalidationContainer();
430 PaintLayer::mapRectToPaintInvalidationBacking(this, &paintInvalidationCo ntainer, dirtyRect, &paintInvalidationState); 430 PaintLayer::mapRectToPaintInvalidationBacking(this, &paintInvalidationCo ntainer, dirtyRect, &paintInvalidationState);
431 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, Pai ntInvalidationFull); 431 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, Pai ntInvalidationFull);
432 invalidateDisplayItemClients(paintInvalidationContainer, PaintInvalidati onFull); 432 invalidateDisplayItemClientsWithPaintInvalidationState(paintInvalidation Container, paintInvalidationState, PaintInvalidationFull);
433 } 433 }
434 LayoutBlock::invalidateTreeIfNeeded(paintInvalidationState); 434 LayoutBlock::invalidateTreeIfNeeded(paintInvalidationState);
435 } 435 }
436 436
437 static void setShouldDoFullPaintInvalidationForViewAndAllDescendantsInternal(Lay outObject* object) 437 static void setShouldDoFullPaintInvalidationForViewAndAllDescendantsInternal(Lay outObject* object)
438 { 438 {
439 object->setShouldDoFullPaintInvalidation(); 439 object->setShouldDoFullPaintInvalidation();
440 for (LayoutObject* child = object->slowFirstChild(); child; child = child->n extSibling()) { 440 for (LayoutObject* child = object->slowFirstChild(); child; child = child->n extSibling()) {
441 setShouldDoFullPaintInvalidationForViewAndAllDescendantsInternal(child); 441 setShouldDoFullPaintInvalidationForViewAndAllDescendantsInternal(child);
442 } 442 }
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 } 998 }
999 999
1000 void LayoutView::sendMediaPositionChangeNotifications(const IntRect& visibleRect ) 1000 void LayoutView::sendMediaPositionChangeNotifications(const IntRect& visibleRect )
1001 { 1001 {
1002 for (auto& media : m_mediaForPositionNotification) { 1002 for (auto& media : m_mediaForPositionNotification) {
1003 media->notifyPositionMayHaveChanged(visibleRect); 1003 media->notifyPositionMayHaveChanged(visibleRect);
1004 } 1004 }
1005 } 1005 }
1006 1006
1007 } // namespace blink 1007 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698