summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/API/JSContextRef.cpp
diff options
context:
space:
mode:
authorSimon Fraser <simon.fraser@apple.com>2013-04-23 14:54:53 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-30 15:04:13 +0200
commit648159cd3e311e08836fe1af5d1f614b992ea2ea (patch)
tree2bb7887cb9d2a8f2772ca23a7af0b2716be77a79 /Source/JavaScriptCore/API/JSContextRef.cpp
parent23fc33e202162bdbe39173744407cc0b98eab66a (diff)
downloadqtwebkit-648159cd3e311e08836fe1af5d1f614b992ea2ea.tar.gz
Late-loading stylesheets can cause composited layers to be blank
https://bugs.webkit.org/show_bug.cgi?id=103773 Reviewed by Tim Horton. Early painting can be short-circuited in RenderBlock::paintContents() if we know a stylesheet is pending, which is done to avoid a flash of unstyled content (FOUC). When the stylesheet finally loaded, Document::styleResolverChanged() would try to repaint everything by calling repaint() on the RenderView(). In a composited world, however, this repaint() doesn't repaint composited layers. This was particularly prevalent on this specific URL because it failed to load a CSS file from typekit.com, so Document::styleResolverChanged() just did the repaint and returned (rather than doing a recalc style as would happen for correctly loaded stylesheets). Fix by making a way to repaint all compositing layers, and calling it from Document::styleResolverChanged(). No tests because this is timing-dependant. * dom/Document.cpp: (WebCore::Document::styleResolverChanged): Call repaintViewAndCompositedLayers(). * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintContents): Fix the comment. * rendering/RenderLayerCompositor.cpp: Convert repaintCompositedLayersAbsoluteRect() and associated recursiveRepaintLayerRect() to allow the rect to be null, which indicates that we should just repaint the entire layer, and improve their names. (WebCore::RenderLayerCompositor::repaintCompositedLayers): (WebCore::RenderLayerCompositor::recursiveRepaintLayer): * rendering/RenderLayerCompositor.h: * rendering/RenderView.cpp: (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers): repaintCompositedLayersAbsoluteRect() was renamed to repaintCompositedLayers(). (WebCore::RenderView::repaintViewAndCompositedLayers): * rendering/RenderView.h: (RenderView): repaintViewRectangle() and repaintRectangleInViewAndCompositedLayers() should not be virtual. Add repaintViewAndCompositedLayers(). Change-Id: I86401d25d06128db33a5e5db099144d6b05850ef git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136277 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/API/JSContextRef.cpp')
0 files changed, 0 insertions, 0 deletions