Source/WebCore/ChangeLog

 12017-02-12 Carlos Garcia Campos <cgarcia@igalia.com>
 2
 3 [GTK] Non-accelerated drawing is broken with HiDPI
 4 https://bugs.webkit.org/show_bug.cgi?id=168128
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 When device scale factor changes, the page notifies the page overlay controller about it. Then overlay root
 9 layers are created to be notified about the device scale factor. That causes us to enter in accelerated
 10 compositing mode, because the graphics layer factory is called. But the render layer compositor doesn't really
 11 enter in accelerated mode, because there aren't page overlays, the accelerated mode is not forced and the website
 12 doesn't require acceleration either. This leaves our drawing area in an inconsistent state, it thinks it's in AC
 13 mode because it has a layer tree host, but without a root layer attached, so nothing is rendered. The page
 14 overlay controller doesn't need to create the layers when device scale factor changes, when an overlay is
 15 installed, layers will be created with the current device scale factor anyway.
 16
 17 * page/PageOverlayController.cpp:
 18 (WebCore::PageOverlayController::didChangeDeviceScaleFactor): Return early if not initialized yet.
 19
1202017-02-12 Dan Bernstein <mitz@apple.com>
221
322 Tried to fix USE(APPLE_INTERNAL_SDK) builds after r212211.

Source/WebCore/page/PageOverlayController.cpp

@@void PageOverlayController::didChangeSettings()
275275
276276void PageOverlayController::didChangeDeviceScaleFactor()
277277{
278  createRootLayersIfNeeded();
 278 if (!m_initialized)
 279 return;
279280
280281 m_documentOverlayRootLayer->noteDeviceOrPageScaleFactorChangedIncludingDescendants();
281282 m_viewOverlayRootLayer->noteDeviceOrPageScaleFactorChangedIncludingDescendants();