Coordinated Graphics: a long page is scaled vertically while loading.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Feb 2013 01:56:52 +0000 (01:56 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Feb 2013 01:56:52 +0000 (01:56 +0000)
commit523ba1ea20b0f4ae24d366f9bbb33b8aea797bb0
tree75e96d569ad0326508119cd826adf323b742653b
parentfcc78eafc5868fb7c46e15da30b6cca69bc658db
Coordinated Graphics: a long page is scaled vertically while loading.
https://bugs.webkit.org/show_bug.cgi?id=109645

Patch by Huang Dongsung <luxtella@company100.net> on 2013-02-13
Reviewed by Noam Rosenthal.

When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
vertically scaled contents. It is because there is the difference between the
size of a layer and the size of CoordinatedBackingStore.

Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
at the moment of creating, updating and removing a tile. However, it is not
necessary to send tile-related messages when the size of layer is changed.
So this patch resets the size of CoordinatedBackingStore when receiving the
message that is created when the size is changed: SyncLayerState.

There is no current way to reliably test flicker issues.

* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
  Add m_pendingSize to set m_size at the moment of flushing.
  After http://webkit.org/b/108294, m_pendingSize will be removed
  because the bug makes CoordinatedGraphicsScene execute all messages at
  the moment of flushing.
(WebCore::CoordinatedBackingStore::setSize):
(WebCore::CoordinatedBackingStore::commitTileOperations):
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
(CoordinatedBackingStore):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
(WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
(WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
(WebCore::CoordinatedGraphicsScene::createTile):
(WebCore::CoordinatedGraphicsScene::removeTile):
(WebCore::CoordinatedGraphicsScene::updateTile):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@142837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp