2010-12-01 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 1 Dec 2010 23:04:01 +0000 (23:04 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 1 Dec 2010 23:04:01 +0000 (23:04 +0000)
commit7afb239ab49f30a89d6ea364d93d62e58f15915e
tree75df470034338406344524711f6db9848b26e9ea
parentcc3c264de380054460a5f4aabc530593853182a0
2010-12-01  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson.

        Size changes on layer-backed drawing areas don't always end up with the correct value
        https://bugs.webkit.org/show_bug.cgi?id=50351
        <rdar://problem/8692966>

        When the UI process does not receive didSetSize messages promptly,
        LayerBackedDrawingAreaProxy::setSize() bails early based on the
        m_isWaitingForDidSetFrameNotification flag.

        In this situation, the final size may be incorrect. didSetSize()
        needs to compare the size that the web process has to the expected size,
        and send a final setSize if they differ.

        * UIProcess/LayerBackedDrawingAreaProxy.cpp:
        (WebKit::LayerBackedDrawingAreaProxy::didSetSize):
        (WebKit::LayerBackedDrawingAreaProxy::didReceiveMessage):
        * UIProcess/LayerBackedDrawingAreaProxy.h:
        * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
        (WebKit::LayerBackedDrawingArea::setSize):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73073 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit2/ChangeLog
WebKit2/UIProcess/LayerBackedDrawingAreaProxy.cpp
WebKit2/UIProcess/LayerBackedDrawingAreaProxy.h
WebKit2/WebProcess/WebPage/LayerBackedDrawingArea.cpp