REGRESSION (5.0.5-ToT, WebKit2): Flash to white when navigating between pages on wsj.com, other sites (when navigating away from composited page)
<rdar://problem/9523192>
Created attachment 95487 [details] Patch
Comment on attachment 95487 [details] Patch If neither Anders nor Simon plans to review this, I would be willing to.
Comment on attachment 95487 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=95487&action=review > Source/WebKit2/ChangeLog:9 > + WebKit1 has a mechanism to prevent the stale bits from the outgoing page from being erased > + until the incoming page has layout. Adapt this in WebKit2 to prevent the composited layer tree Ironically the WK1 mechanism doesn't do anything with the layer tree, causing layers to get torn down prematurely. > Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1032 > void WebFrameLoaderClient::frameLoadCompleted() > { > - notImplemented(); > + WebPage* webPage = m_frame->page(); > + if (!webPage) > + return; > + > + if (m_frame == m_frame->page()->mainFrame()) > + webPage->drawingArea()->setLayerTreeStateIsFrozen(false); > } What's the timing of frameLoadCompleted(), relative to load events etc? Keeping the layer tree frozen until the load event fires would be bad, I think. > Source/WebKit2/WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:99 > + if (m_layerFlushSchedulingEnabled) > + return; I wonder if we should detect that a flush should have been scheduled, and schedule one here? It seems that we could have have layer changes early in the load that will never get flushed with the current code.
Comment on attachment 95487 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=95487&action=review >> Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1032 >> } > > What's the timing of frameLoadCompleted(), relative to load events etc? Keeping the layer tree frozen until the load event fires would be bad, I think. Oh, I see the above call in dispatchDidFirstLayout() now. This is OK.
Fixed in r87755. <http://trac.webkit.org/changeset/87755>