Changeset 101838 in webkit


Ignore:
Timestamp:
Dec 2, 2011 11:21:19 AM (12 years ago)
Author:
aestes@apple.com
Message:

WebKit2: Freeze the state of the layer tree until frame load completion if incremental rendering is suppressed
https://bugs.webkit.org/show_bug.cgi?id=73641

Reviewed by Darin Adler.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFirstLayout): Do not
un-freeze the layer tree state if incremental rendering is suppressed.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::layerTreeStateIsFrozen): Add a getter for
m_layerTreeStateIsFrozen.

  • WebProcess/WebPage/DrawingAreaImpl.h:

(WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Ditto.

  • WebProcess/WebPage/ca/LayerTreeHostCA.cpp:

(WebKit::LayerTreeHostCA::initialize): WebFrameLoaderClient might have
tried to freeze the state of the layer tree before the layer tree host
was created. When creating the layer tree host, only schedule a layer
flush if the layer tree state isn't frozen.

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r101815 r101838  
     12011-12-02  Andy Estes  <aestes@apple.com>
     2
     3        WebKit2: Freeze the state of the layer tree until frame load completion if incremental rendering is suppressed
     4        https://bugs.webkit.org/show_bug.cgi?id=73641
     5
     6        Reviewed by Darin Adler.
     7
     8        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     9        (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout): Do not
     10        un-freeze the layer tree state if incremental rendering is suppressed.
     11        * WebProcess/WebPage/DrawingArea.h:
     12        (WebKit::DrawingArea::layerTreeStateIsFrozen): Add a getter for
     13        m_layerTreeStateIsFrozen.
     14        * WebProcess/WebPage/DrawingAreaImpl.h:
     15        (WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Ditto.
     16        * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
     17        (WebKit::LayerTreeHostCA::initialize): WebFrameLoaderClient might have
     18        tried to freeze the state of the layer tree before the layer tree host
     19        was created. When creating the layer tree host, only schedule a layer
     20        flush if the layer tree state isn't frozen.
     21
    1222011-12-02  Nayan Kumar K  <nayankk@motorola.com>
    223
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r101609 r101838  
    6565#include <WebCore/ProgressTracker.h>
    6666#include <WebCore/ResourceError.h>
     67#include <WebCore/Settings.h>
    6768#include <WebCore/UIEventWithKeyState.h>
    6869#include <WebCore/Widget.h>
     
    533534    webPage->send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
    534535
    535     if (m_frame == m_frame->page()->mainWebFrame())
     536    if (m_frame == m_frame->page()->mainWebFrame() && !webPage->corePage()->settings()->suppressIncrementalRendering())
    536537        webPage->drawingArea()->setLayerTreeStateIsFrozen(false);
    537538}
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h

    r99615 r101838  
    7070    virtual void forceRepaint() { }
    7171    virtual void setLayerTreeStateIsFrozen(bool) { }
     72    virtual bool layerTreeStateIsFrozen() const { return false; }
    7273
    7374    virtual void didInstallPageOverlay() { }
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h

    r99465 r101838  
    5555    virtual void scroll(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset);
    5656    virtual void setLayerTreeStateIsFrozen(bool);
     57    virtual bool layerTreeStateIsFrozen() const { return m_layerTreeStateIsFrozen; }
    5758    virtual void forceRepaint();
    5859
  • trunk/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp

    r93303 r101838  
    7878    platformInitialize(m_layerTreeContext);
    7979
     80    setLayerFlushSchedulingEnabled(!m_webPage->drawingArea()->layerTreeStateIsFrozen());
    8081    scheduleLayerFlush();
    8182}
Note: See TracChangeset for help on using the changeset viewer.