summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderLayerCompositor.cpp
diff options
context:
space:
mode:
authorPatrick Scott <phanna@android.com>2010-12-21 10:36:17 -0500
committerPatrick Scott <phanna@android.com>2010-12-21 11:40:47 -0500
commit265109f2150dcc0a619e2273152ea43623fc215a (patch)
treeb3991d2b2fc175c88d8338b64dc9d9cd426e540e /WebCore/rendering/RenderLayerCompositor.cpp
parent8349050efe037c35b231c2f108777bed60d470cc (diff)
downloadexternal_webkit-265109f2150dcc0a619e2273152ea43623fc215a.zip
external_webkit-265109f2150dcc0a619e2273152ea43623fc215a.tar.gz
external_webkit-265109f2150dcc0a619e2273152ea43623fc215a.tar.bz2
Fix iframe scrolling.
Do the same check everywhere for enabling scrolling in an iframe. Make sure the owner renderer is a RenderIFrame to avoid trying to composite an embedded object. Also check if the owner layer has visible content since some iframes are marked hidden. Dirty the parent normal flow list when turning on overflow scrolling for divs. Bug: 3280851 Bug: 3290276 Change-Id: I8d0a49324e06426c15abaf552874a32d6e2ee11a
Diffstat (limited to 'WebCore/rendering/RenderLayerCompositor.cpp')
-rw-r--r--WebCore/rendering/RenderLayerCompositor.cpp18
1 files changed, 2 insertions, 16 deletions
diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp
index c6cd277..e6ea32a 100644
--- a/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/WebCore/rendering/RenderLayerCompositor.cpp
@@ -1176,22 +1176,8 @@ bool RenderLayerCompositor::requiresCompositingForMobileSites(const RenderLayer*
#if ENABLE(ANDROID_OVERFLOW_SCROLL)
if (layer->hasOverflowScroll())
return true;
- HTMLFrameOwnerElement* ownerElement = enclosingIFrameElement();
- RenderObject* renderer = ownerElement ? ownerElement->renderer() : 0;
- if (false && layer->isRootLayer() && renderer && renderer->isRenderIFrame()) {
- if (layer->renderer()->frame()) {
- FrameView* view = layer->renderer()->frame()->view();
- if (view) {
- // Enable compositing if the frame can scroll and the contents
- // are larger than the layout dimensions.
- ScrollbarMode h,v;
- view->scrollbarModes(h, v);
- if ((h != ScrollbarAlwaysOff && view->layoutWidth() < view->contentsWidth()) ||
- (v != ScrollbarAlwaysOff && view->layoutHeight() < view->contentsHeight()))
- return true;
- }
- }
- }
+ if (layer->isRootLayer() && m_renderView->frameView()->hasOverflowScroll())
+ return true;
#endif
#if ENABLE(COMPOSITED_FIXED_ELEMENTS)
// First, check if we are in an iframe, and if so bail out