summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Scott <phanna@android.com>2010-07-23 11:08:20 -0400
committerPatrick Scott <phanna@android.com>2010-07-23 11:32:25 -0400
commitd0a75cfb0ee41e0d0e09d99f8c47dfe8bafe6873 (patch)
tree8eb8a402c3a9a3a66380f8833e1e61526ccb35aa
parenta06658390000824241bdbfe757e1781a90333a95 (diff)
downloadexternal_webkit-d0a75cfb0ee41e0d0e09d99f8c47dfe8bafe6873.zip
external_webkit-d0a75cfb0ee41e0d0e09d99f8c47dfe8bafe6873.tar.gz
external_webkit-d0a75cfb0ee41e0d0e09d99f8c47dfe8bafe6873.tar.bz2
Fix page cycler crashes.
Bug: 2862822 Change-Id: I9de300517eaa2bd4027608d6bae093bf5a1072e0
-rw-r--r--WebCore/rendering/RenderLayer.cpp9
-rw-r--r--WebCore/rendering/RenderLayerCompositor.cpp9
2 files changed, 10 insertions, 8 deletions
diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp
index 75daa94..78fddfd 100644
--- a/WebCore/rendering/RenderLayer.cpp
+++ b/WebCore/rendering/RenderLayer.cpp
@@ -3758,15 +3758,16 @@ bool RenderLayer::shouldBeNormalFlowOnly() const
}
#if ENABLE(ANDROID_OVERFLOW_SCROLL)
-static bool hasOverflowScroll(const RenderLayer* l)
+static bool hasOverflowScroll(const RenderLayer* layer)
{
- RenderLayer* layer = const_cast<RenderLayer*>(l);
RenderBox* box = layer->renderBox();
+ if (!box || !box->node()->hasTagName(HTMLNames::divTag))
+ return false;
EOverflow x = box->style()->overflowX();
EOverflow y = box->style()->overflowY();
return (x == OAUTO || x == OSCROLL || y == OAUTO || y == OSCROLL) &&
- (layer->scrollWidth() > box->clientWidth() ||
- layer->scrollHeight() > box->clientHeight());
+ (box->scrollWidth() > box->clientWidth() ||
+ box->scrollHeight() > box->clientHeight());
}
#endif
diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp
index 1a28c37..fe0d4e8 100644
--- a/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/WebCore/rendering/RenderLayerCompositor.cpp
@@ -1154,14 +1154,15 @@ bool RenderLayerCompositor::requiresCompositingForMobileSites(const RenderLayer*
#endif
#if ENABLE(ANDROID_OVERFLOW_SCROLL)
-static bool requiresCompositingForOverflowScroll(const RenderLayer* l) {
- RenderLayer* layer = const_cast<RenderLayer*>(l);
+static bool requiresCompositingForOverflowScroll(const RenderLayer* layer) {
RenderBox* box = layer->renderBox();
+ if (!box || !box->node()->hasTagName(HTMLNames::divTag))
+ return false;
EOverflow x = box->style()->overflowX();
EOverflow y = box->style()->overflowY();
return (x == OAUTO || x == OSCROLL || y == OAUTO || y == OSCROLL) &&
- (layer->scrollWidth() > box->contentWidth() ||
- layer->scrollHeight() > box->contentHeight());
+ (box->scrollWidth() > box->clientWidth() ||
+ box->scrollHeight() > box->clientHeight());
}
#endif