From a61d17ffd296786f61755ec29a4fcff1223ba88f Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Wed, 15 Jun 2011 14:30:34 -0700 Subject: Fix the crash caused by recent webkit RenderLayerCompositor change We used to rely on the fact that RenderLayerBacking is the only subclass of GraphicsLayerClient, but now the RenderLayerCompositor also inherit it and is used for iframe. That cause us to get invalid pointer in GraphicsLayerAndroid. The solution here is to disable the new webkit approach b/c we have our own iframe support already. bug:4592195 Change-Id: Ia786233907d83028fdc6865c28fbbd5291564ad0 --- Source/WebCore/rendering/RenderLayerCompositor.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Source/WebCore/rendering') diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp index 786f806..66dcf40 100644 --- a/Source/WebCore/rendering/RenderLayerCompositor.cpp +++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp @@ -1520,6 +1520,15 @@ bool RenderLayerCompositor::needsContentsCompositingLayer(const RenderLayer* lay bool RenderLayerCompositor::requiresScrollLayer(RootLayerAttachment attachment) const { +#if PLATFORM(ANDROID) + // Recently, RenderLayerCompositor is changed to be a subclass of + // GraphicsLayerClient, and it is used for iframe. + // http://trac.webkit.org/changeset/75262 + // We have our own support for iframe, before we embrace this new approach, + // we will disable it. + // TODO: Investigate how to utilize this way to support iframe. + return false; +#endif // We need to handle our own scrolling if we're: return !m_renderView->frameView()->platformWidget() // viewless (i.e. non-Mac, or Mac in WebKit2) || attachment == RootLayerAttachedViaEnclosingFrame; // a composited frame on Mac -- cgit v1.1