Changeset 86495 in webkit


Ignore:
Timestamp:
May 14, 2011 1:41:58 PM (13 years ago)
Author:
mitz@apple.com
Message:

WKView does not draw after forced repaint before the first update
https://bugs.webkit.org/show_bug.cgi?id=60845

Reviewed by Alice Liu.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint): Added.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::waitForBackingStoreUpdateOnNextPaint): Set m_hasReceivedFirstUpdate
to true, ensuring that paint() will wait for an update if needed.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::forceRepaint): Call DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint().

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r86494 r86495  
     12011-05-14  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Alice Liu.
     4
     5        WKView does not draw after forced repaint before the first update
     6        https://bugs.webkit.org/show_bug.cgi?id=60845
     7
     8        * UIProcess/DrawingAreaProxy.h:
     9        (WebKit::DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint): Added.
     10        * UIProcess/DrawingAreaProxyImpl.cpp:
     11        (WebKit::DrawingAreaProxyImpl::waitForBackingStoreUpdateOnNextPaint): Set m_hasReceivedFirstUpdate
     12        to true, ensuring that paint() will wait for an update if needed.
     13        * UIProcess/DrawingAreaProxyImpl.h:
     14        * UIProcess/WebPageProxy.cpp:
     15        (WebKit::WebPageProxy::forceRepaint): Call DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint().
     16
    1172011-05-14  Anders Carlsson  <andersca@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h

    r84613 r86495  
    8787    virtual void visibilityDidChange() { }
    8888    virtual void setBackingStoreIsDiscardable(bool) { }
    89    
     89
     90    virtual void waitForBackingStoreUpdateOnNextPaint() { }
     91
    9092    virtual void setPageIsVisible(bool isVisible) = 0;
    9193
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp

    r86473 r86495  
    163163}
    164164
     165void DrawingAreaProxyImpl::waitForBackingStoreUpdateOnNextPaint()
     166{
     167    m_hasReceivedFirstUpdate = true;
     168}
     169
    165170void DrawingAreaProxyImpl::update(uint64_t backingStoreStateID, const UpdateInfo& updateInfo)
    166171{
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h

    r85359 r86495  
    5656    virtual void setPageIsVisible(bool);
    5757    virtual void setBackingStoreIsDiscardable(bool);
     58    virtual void waitForBackingStoreUpdateOnNextPaint();
    5859
    5960    // CoreIPC message handlers
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r86477 r86495  
    13061306    uint64_t callbackID = callback->callbackID();
    13071307    m_voidCallbacks.set(callbackID, callback.get());
     1308    m_drawingArea->waitForBackingStoreUpdateOnNextPaint();
    13081309    process()->send(Messages::WebPage::ForceRepaint(callbackID), m_pageID);
    13091310}
Note: See TracChangeset for help on using the changeset viewer.