Changeset 93432 in webkit


Ignore:
Timestamp:
Aug 19, 2011 1:03:58 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[CSSRegions]Speed up RenderFlowThread repaint of regions
https://bugs.webkit.org/show_bug.cgi?id=66566

Patch by Mihnea Ovidenie <mihnea@adobe.com> on 2011-08-19
Reviewed by David Hyatt.

When in printing or the repaint rectangle is empty, there is no need to iterate
the render flow regions in order to repaint.
Covered by existing tests.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::shouldRepaint):
(WebCore::RenderFlowThread::repaintRectangleInRegions):

  • rendering/RenderFlowThread.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r93430 r93432  
     12011-08-19  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Speed up RenderFlowThread repaint of regions
     4        https://bugs.webkit.org/show_bug.cgi?id=66566
     5
     6        Reviewed by David Hyatt.
     7
     8        When in printing or the repaint rectangle is empty, there is no need to iterate
     9        the render flow regions in order to repaint.
     10        Covered by existing tests.
     11
     12        * rendering/RenderFlowThread.cpp:
     13        (WebCore::RenderFlowThread::shouldRepaint):
     14        (WebCore::RenderFlowThread::repaintRectangleInRegions):
     15        * rendering/RenderFlowThread.h:
     16
    1172011-08-19  Mihnea Ovidenie  <mihnea@adobe.com>
    218
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r93428 r93432  
    3131
    3232#include "RenderFlowThread.h"
     33
    3334#include "HitTestRequest.h"
    3435#include "HitTestResult.h"
     
    400401}
    401402
     403bool RenderFlowThread::shouldRepaint(const LayoutRect& r) const
     404{
     405    if (view()->printing() || r.isEmpty())
     406        return false;
     407
     408    return true;
     409}
     410
    402411void RenderFlowThread::repaintRectangleInRegions(const LayoutRect& repaintRect, bool immediate)
    403412{
     413    if (!shouldRepaint(repaintRect))
     414        return;
     415
    404416    for (RenderRegionList::iterator iter = m_regionList.begin(); iter != m_regionList.end(); ++iter) {
    405417        RenderRegion* region = *iter;
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r93307 r93432  
    105105    void checkInvalidRegions();
    106106
     107    bool shouldRepaint(const LayoutRect&) const;
     108
    107109    typedef ListHashSet<RenderObject*> FlowThreadChildList;
    108110    FlowThreadChildList m_flowThreadChildList;
Note: See TracChangeset for help on using the changeset viewer.