Windows needs to use tiled layers when rendering elements grow beyond a certain size. However, Windows only knows how to work with LayerTypeWebTiledLayer. Code changes in the CoreGraphics/CoreAnimation logic caused Windows to be given a LayerTypeTiledBackingLayer layer type, which it could not construct. Consequently, rendering of certain large content (specifically captions in full screen mode) were not being drawn. The fix is to protect Windows from being asked to use a LayerTypeTiledBackingLayer (or LayerTypePageTiledBackingLayer), and instead use the LayerTypeWebTiledLayer type.
Created attachment 208681 [details] Patch
Comment on attachment 208681 [details] Patch r+ but it would be nice to re-enable the tests that should have caught this failure.
rfong and I have a separate task to clean up the various skipped tests on Windows. The tiling tests will get picked up as part of that.
Committed r154030: <http://trac.webkit.org/changeset/154030>
Comment on attachment 208681 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=208681&action=review > Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp:119 > + ASSERT((layerType != LayerTypeTiledBackingLayer) && (layerType != LayerTypePageTiledBackingLayer)); These should be two separate assertions. That way you can tell, if the assertion fires, which bad layer type you are dealing with.
Comment on attachment 208681 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=208681&action=review > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2689 > +#if PLATFORM(WIN) > + PlatformCALayer::LayerType layerType = useTiledLayer ? PlatformCALayer::LayerTypeWebTiledLayer : PlatformCALayer::LayerTypeWebLayer; > +#else > + PlatformCALayer::LayerType layerType = useTiledLayer ? PlatformCALayer::LayerTypeTiledBackingLayer : PlatformCALayer::LayerTypeWebLayer; > +#endif > + > + m_layer = PlatformCALayer::create(layerType, this); Finding this would have been much easier if we had an ASSERT() when PlatformCALayer::create() fails (or a Log() it happens frequently).