Cached pages don't update their backing scale factor when it changes
authorbdakin@apple.com <bdakin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 Jun 2013 23:11:39 +0000 (23:11 +0000)
committerbdakin@apple.com <bdakin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 Jun 2013 23:11:39 +0000 (23:11 +0000)
commit871d67f152429c73220bd7f8f82dba5f04a44602
treedd942cd19cbf0fc17ed9ab01bab68e7fc363860d
parent14956b5d8d4f5c88c7a946940688c5424056cd9b
Cached pages don't update their backing scale factor when it changes
https://bugs.webkit.org/show_bug.cgi?id=118206
-and-
<rdar://problem/14261627>

Reviewed by Tim Horton.

It is not sufficient to mark pages in the PageCache as needing a full style
recalc. We also need to ensure that the RenderLayerCompositors for the CachesPages
get updated.

Keep track of whether device scale has been updated with
m_needsDeviceScaleChanged. If that has been marked true, then restore() will call
Frame::deviceOrPageScaleFactorChanged().
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::restore):
* history/CachedPage.h:
(WebCore::CachedPage::markForDeviceScaleChanged):

Propagate markForDeviceScaleChanged() to all of the CachedPages.
* history/PageCache.cpp:
(WebCore::PageCache::markPagesForDeviceScaleChanged):
* history/PageCache.h:

Call PageCache::markPagesForDeviceScaleChanged()
* page/Page.cpp:
(WebCore::Page::setDeviceScaleFactor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@152194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/history/CachedPage.cpp
Source/WebCore/history/CachedPage.h
Source/WebCore/history/PageCache.cpp
Source/WebCore/history/PageCache.h
Source/WebCore/page/Page.cpp