To make printing not kill the main page. We can just keep deferring the flush until we get unfrozen; all of the property changes will just keep accumulating.
Created attachment 217849 [details] patch
Comment on attachment 217849 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=217849&action=review r=me. But please consider whether the "optimization" or "flush avoidance" I suggested makes any sense. > Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:145 > + if (!m_isFlushingSuspended && m_hasDeferredFlush) { Should we bother checking if our original state was already "!m_isFlushingSuspended" and only schedule the layer flush for the case where state is changing? I.e.: if (m_isFlushingSuspended == isFrozen) return; ... before doing the rest of your code?
http://trac.webkit.org/changeset/159956