Changeset 76143 in webkit


Ignore:
Timestamp:
Jan 19, 2011 11:26:55 AM (13 years ago)
Author:
andersca@apple.com
Message:

2011-01-19 Chris Marrin <cmarrin@apple.com>

Reviewed by Simon Fraser.

WK2 - Multiple crashes in PlatformCALayer::replaceSublayer
https://bugs.webkit.org/show_bug.cgi?id=52695

Added a hostingLayer as the parent of the existing drawingLayer.
The hostingLayer is now the root which is passed to the
remote context. It never changes except to track the size
of the window. The backingLayer is now a child of the
hostingLayer, which allow it to switch between tiled and
non-tiled.

I also now give back accurate settings for debug borders and
repaint counters.

  • WebProcess/WebPage/LayerBackedDrawingArea.cpp: (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea): (WebKit::LayerBackedDrawingArea::setSize): (WebKit::LayerBackedDrawingArea::showDebugBorders): (WebKit::LayerBackedDrawingArea::showRepaintCounter):
  • WebProcess/WebPage/LayerBackedDrawingArea.h:
  • WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm: (WebKit::LayerBackedDrawingArea::platformInit): (WebKit::LayerBackedDrawingArea::attachCompositingContext): (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r76142 r76143  
    2626        (WebKit::LayerBackedDrawingArea::attachCompositingContext):
    2727        (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
     28
     292011-01-19  Anders Carlsson  <andersca@apple.com>
     30
     31        Reviewed by Sam Weinig.
     32
     33        Send a new SetSize message if the size differs from the current size
     34        https://bugs.webkit.org/show_bug.cgi?id=52728
     35
     36        * UIProcess/DrawingAreaProxy.h:
     37        (WebKit::DrawingAreaProxy::didSetSize):
     38        Add UpdateInfo parameter.
     39
     40        * UIProcess/DrawingAreaProxy.messages.in:
     41        Add UpdateInfo parameter to the DidSetSize message.
     42
     43        * UIProcess/DrawingAreaProxyImpl.cpp:
     44        (WebKit::DrawingAreaProxyImpl::didSetSize):
     45        If the view size differs from the current size send another SetSize message.
     46
     47        * UIProcess/DrawingAreaProxyImpl.h:
     48        Add UpdateInfo parameter to didSetSize.
     49
     50        * WebProcess/WebPage/DrawingAreaImpl.cpp:
     51        (WebKit::DrawingAreaImpl::setSize):
     52        The DidSetSize message now takes an UpdateInfo parameter.
    2853
    29542011-01-19  Anders Carlsson  <andersca@apple.com>
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h

    r75630 r76143  
    9090    // FIXME: These should be pure virtual.
    9191    virtual void update(const UpdateInfo&) { }
    92     virtual void didSetSize() { }
     92    virtual void didSetSize(const UpdateInfo&) { }
    9393};
    9494
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.messages.in

    r75630 r76143  
    2323messages -> DrawingAreaProxy {
    2424    Update(WebKit::UpdateInfo updateInfo)
    25     DidSetSize()
     25    DidSetSize(WebKit::UpdateInfo updateInfo)
    2626}
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp

    r76139 r76143  
    106106}
    107107
    108 void DrawingAreaProxyImpl::didSetSize()
     108void DrawingAreaProxyImpl::didSetSize(const UpdateInfo& updateInfo)
    109109{
    110110    ASSERT(m_isWaitingForDidSetSize);
    111111    m_isWaitingForDidSetSize = false;
    112112
    113     // FIXME: Send a new SetSize message if needed.
     113    if (m_size != updateInfo.viewSize)
     114        sendSetSize();
    114115
    115116    m_backingStore = nullptr;
  • trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h

    r76139 r76143  
    5353    // CoreIPC message handlers
    5454    virtual void update(const UpdateInfo&);
    55     virtual void didSetSize();
     55    virtual void didSetSize(const UpdateInfo&);
    5656   
    5757    void incorporateUpdate(const UpdateInfo&);
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp

    r76135 r76143  
    141141    m_webPage->layoutIfNeeded();
    142142
     143    UpdateInfo updateInfo;
     144    updateInfo.viewSize = m_webPage->size();
     145
    143146    // FIXME: Repaint.
    144147
    145     m_webPage->send(Messages::DrawingAreaProxy::DidSetSize());
     148    m_webPage->send(Messages::DrawingAreaProxy::DidSetSize(updateInfo));
    146149}
    147150
Note: See TracChangeset for help on using the changeset viewer.