Changeset 110581 in webkit


Ignore:
Timestamp:
Mar 13, 2012 11:05:47 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, rolling out r110469.
http://trac.webkit.org/changeset/110469
https://bugs.webkit.org/show_bug.cgi?id=81010

This patch still appears to crash (Requested by abarth on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-03-13

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::repaintContentRectangle):
(WebCore):
(WebCore::FrameView::endDeferredRepaints):
(WebCore::FrameView::doDeferredRepaints):
(WebCore::FrameView::deferredRepaintTimerFired):

  • page/FrameView.h:

(FrameView):

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldRepaint):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawSVGToImageBuffer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::imageContentChanged):
(WebCore::SVGImageCache::redrawTimerFired):

  • svg/graphics/SVGImageCache.h:

(SVGImageCache):

Location:
trunk/Source/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r110580 r110581  
     12012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r110469.
     4        http://trac.webkit.org/changeset/110469
     5        https://bugs.webkit.org/show_bug.cgi?id=81010
     6
     7        This patch still appears to crash (Requested by abarth on
     8        #webkit).
     9
     10        * page/FrameView.cpp:
     11        (WebCore::FrameView::FrameView):
     12        (WebCore::FrameView::reset):
     13        (WebCore::FrameView::repaintContentRectangle):
     14        (WebCore):
     15        (WebCore::FrameView::endDeferredRepaints):
     16        (WebCore::FrameView::doDeferredRepaints):
     17        (WebCore::FrameView::deferredRepaintTimerFired):
     18        * page/FrameView.h:
     19        (FrameView):
     20        * rendering/RenderView.cpp:
     21        (WebCore::RenderView::shouldRepaint):
     22        * svg/graphics/SVGImage.cpp:
     23        (WebCore::SVGImage::drawSVGToImageBuffer):
     24        (WebCore::SVGImage::draw):
     25        * svg/graphics/SVGImage.h:
     26        * svg/graphics/SVGImageCache.cpp:
     27        (WebCore::SVGImageCache::imageContentChanged):
     28        (WebCore::SVGImageCache::redrawTimerFired):
     29        * svg/graphics/SVGImageCache.h:
     30        (SVGImageCache):
     31
    1322012-03-13  Max Vujovic  <mvujovic@adobe.com>
    233
  • trunk/Source/WebCore/page/FrameView.cpp

    r110469 r110581  
    139139    , m_inProgrammaticScroll(false)
    140140    , m_deferredRepaintTimer(this, &FrameView::deferredRepaintTimerFired)
    141     , m_disableRepaints(0)
    142141    , m_isTrackingRepaints(false)
    143142    , m_shouldUpdateWhileOffscreen(true)
     
    246245    m_firstVisuallyNonEmptyLayoutCallbackPending = true;
    247246    m_maintainScrollPositionAnchor = 0;
    248     m_disableRepaints = 0;
    249247}
    250248
     
    17571755{
    17581756    ASSERT(!m_frame->ownerElement());
    1759 
     1757   
    17601758    if (m_isTrackingRepaints) {
    17611759        IntRect repaintRect = r;
     
    17831781            m_repaintRects[0].unite(paintRect);
    17841782        m_repaintCount++;
    1785 
    1786         if (!m_deferringRepaints)
    1787             startDeferredRepaintTimer(delay);
    1788 
     1783   
     1784        if (!m_deferringRepaints && !m_deferredRepaintTimer.isActive())
     1785             m_deferredRepaintTimer.startOneShot(delay);
    17891786        return;
    17901787    }
     
    18391836}
    18401837
     1838
    18411839void FrameView::endDeferredRepaints()
    18421840{
     
    18511849    if (--m_deferringRepaints)
    18521850        return;
     1851   
     1852    if (m_deferredRepaintTimer.isActive())
     1853        return;
    18531854
    18541855    if (double delay = adjustedDeferredRepaintDelay()) {
    1855         startDeferredRepaintTimer(delay);
     1856        m_deferredRepaintTimer.startOneShot(delay);
    18561857        return;
    18571858    }
    18581859   
    18591860    doDeferredRepaints();
    1860 }
    1861 
    1862 void FrameView::startDeferredRepaintTimer(double delay)
    1863 {
    1864     if (m_deferredRepaintTimer.isActive())
    1865         return;
    1866 
    1867     if (m_disableRepaints)
    1868         return;
    1869 
    1870     m_deferredRepaintTimer.startOneShot(delay);
    18711861}
    18721862
     
    18871877void FrameView::doDeferredRepaints()
    18881878{
    1889     if (m_disableRepaints)
    1890         return;
    1891 
    18921879    ASSERT(!m_deferringRepaints);
    18931880    if (!shouldUpdate()) {
     
    19481935{
    19491936    doDeferredRepaints();
    1950 }
    1951 
    1952 void FrameView::beginDisableRepaints()
    1953 {
    1954     m_disableRepaints++;
    1955 }
    1956 
    1957 void FrameView::endDisableRepaints()
    1958 {
    1959     ASSERT(m_disableRepaints > 0);
    1960     m_disableRepaints--;
    1961 }
     1937}   
    19621938
    19631939void FrameView::layoutTimerFired(Timer<FrameView>*)
  • trunk/Source/WebCore/page/FrameView.h

    r110469 r110581  
    202202    void endDeferredRepaints();
    203203    void checkStopDelayingDeferredRepaints();
    204     void startDeferredRepaintTimer(double delay);
    205204    void resetDeferredRepaintDelay();
    206 
    207     void beginDisableRepaints();
    208     void endDisableRepaints();
    209     bool repaintsDisabled() { return m_disableRepaints > 0; }
    210205
    211206#if ENABLE(DASHBOARD_SUPPORT)
     
    472467    double m_deferredRepaintDelay;
    473468    double m_lastPaintTime;
    474 
    475     unsigned m_disableRepaints;
    476 
     469   
    477470    bool m_isTrackingRepaints; // Used for testing.
    478471    Vector<IntRect> m_trackedRepaintRects;
  • trunk/Source/WebCore/rendering/RenderView.cpp

    r110469 r110581  
    299299    if (!m_frameView)
    300300        return false;
    301 
    302     if (m_frameView->repaintsDisabled())
    303         return false;
    304 
     301   
    305302    return true;
    306303}
  • trunk/Source/WebCore/svg/graphics/SVGImage.cpp

    r110469 r110581  
    178178    ASSERT(observer);
    179179
    180     // Temporarily reset image observer, we don't want to receive any changeInRect() calls due to this relayout.
     180    // Temporarily reset image observer, we don't want to receive any changeInRect() calls due this relayout.
    181181    setImageObserver(0);
    182 
    183     // Disable repainting; we don't want deferred repaints to schedule any timers due to this relayout.
    184     frame->view()->beginDisableRepaints();
    185 
    186182    renderer->setContainerSize(size);
    187183    frame->view()->resize(this->size());
    188 
    189184    if (zoom != 1)
    190185        frame->setPageZoomFactor(zoom);
     
    208203        frame->view()->layout();
    209204
    210     setImageObserver(observer);
    211 
    212     frame->view()->endDisableRepaints();
     205    setImageObserver(observer);
    213206}
    214207
     
    218211        return;
    219212
    220     FrameView* view = frameView();
     213    FrameView* view = m_page->mainFrame()->view();
    221214
    222215    GraphicsContextStateSaver stateSaver(*context);
     
    261254        return 0;
    262255    return toRenderBox(rootElement->renderer());
    263 }
    264 
    265 FrameView* SVGImage::frameView() const
    266 {
    267     if (!m_page)
    268         return 0;
    269 
    270     return m_page->mainFrame()->view();
    271256}
    272257
  • trunk/Source/WebCore/svg/graphics/SVGImage.h

    r110469 r110581  
    3535namespace WebCore {
    3636
    37 class FrameView;
    3837class ImageBuffer;
    3938class Page;
     
    5554    void drawSVGToImageBuffer(ImageBuffer*, const IntSize&, float zoom, ShouldClearBuffer);
    5655    RenderBox* embeddedContentBox() const;
    57     FrameView* frameView() const;
    5856
    5957    virtual bool isSVGImage() const { return true; }
  • trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp

    r110469 r110581  
    2222
    2323#if ENABLE(SVG)
    24 #include "FrameView.h"
    2524#include "GraphicsContext.h"
    2625#include "ImageBuffer.h"
     
    8382        it->second.imageNeedsUpdate = true;
    8483
    85     // If we're in the middle of layout, start redrawing dirty
    86     // images on a timer; otherwise it's safe to draw immediately.
    87 
    88     FrameView* frameView = m_svgImage->frameView();
    89     if (frameView && frameView->needsLayout()) {
    90         if (!m_redrawTimer.isActive())
    91             m_redrawTimer.startOneShot(0);
    92     } else
    93        redraw();
     84    // Start redrawing dirty images with a timer, as imageContentChanged() may be called
     85    // by the FrameView of the SVGImage which is currently in FrameView::layout().
     86    if (!m_redrawTimer.isActive())
     87        m_redrawTimer.startOneShot(0);
    9488}
    9589
    96 void SVGImageCache::redraw()
     90void SVGImageCache::redrawTimerFired(Timer<SVGImageCache>*)
    9791{
    9892    ImageDataMap::iterator end = m_imageDataMap.end();
     
    110104    ASSERT(m_svgImage->imageObserver());
    111105    m_svgImage->imageObserver()->animationAdvanced(m_svgImage);
    112 }
    113 
    114 void SVGImageCache::redrawTimerFired(Timer<SVGImageCache>*)
    115 {
    116     redraw();
    117106}
    118107
  • trunk/Source/WebCore/svg/graphics/SVGImageCache.h

    r110469 r110581  
    7171private:
    7272    SVGImageCache(SVGImage*);
    73     void redraw();
    7473    void redrawTimerFired(Timer<SVGImageCache>*);
    7574
Note: See TracChangeset for help on using the changeset viewer.