summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2012-05-23 18:47:46 -0700
committerNicolas Roard <nicolasroard@google.com>2012-05-23 18:47:46 -0700
commite13f94616ccce173b7eb3f9f691d8ff5e3eb86f3 (patch)
treebf8b29d86d6137d8b3d85c23d9e8beb3b546cfd4
parenta6645da2a8bfb194b7ee9c790f1da607e0e984c0 (diff)
downloadexternal_webkit-e13f94616ccce173b7eb3f9f691d8ff5e3eb86f3.zip
external_webkit-e13f94616ccce173b7eb3f9f691d8ff5e3eb86f3.tar.gz
external_webkit-e13f94616ccce173b7eb3f9f691d8ff5e3eb86f3.tar.bz2
Don't set up background images if 1x1
We do this check in other places. We still need a better solution for the general case. bug:6540356 Change-Id: I3f75c62141d7b6993928927117d972d0ec224b55
-rw-r--r--Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp11
-rw-r--r--Source/WebKit/android/jni/WebViewCore.cpp7
2 files changed, 12 insertions, 6 deletions
diff --git a/Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
index ef355c7..5207ace 100644
--- a/Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
@@ -592,6 +592,13 @@ void GraphicsLayerAndroid::updateFixedBackgroundLayers() {
if (!view->style()->hasFixedBackgroundImage())
return;
+ Image* image = FixedBackgroundImageLayerAndroid::GetCachedImage(view->style());
+ if (!image)
+ return;
+
+ if (image->width() == 1 && image->height() == 1)
+ return;
+
SkSafeUnref(m_foregroundClipLayer);
SkSafeUnref(m_fixedBackgroundLayer);
SkSafeUnref(m_foregroundLayer);
@@ -605,10 +612,6 @@ void GraphicsLayerAndroid::updateFixedBackgroundLayers() {
// use the background image and create a layer for it
// the layer will be fixed positioned.
- Image* image = FixedBackgroundImageLayerAndroid::GetCachedImage(view->style());
- if (!image)
- return;
-
m_fixedBackgroundLayer = new FixedBackgroundImageLayerAndroid(view->style(),
view->width(),
view->height());
diff --git a/Source/WebKit/android/jni/WebViewCore.cpp b/Source/WebKit/android/jni/WebViewCore.cpp
index d07b00e..9592d29 100644
--- a/Source/WebKit/android/jni/WebViewCore.cpp
+++ b/Source/WebKit/android/jni/WebViewCore.cpp
@@ -843,8 +843,11 @@ BaseLayerAndroid* WebViewCore::createBaseLayer(GraphicsLayerAndroid* root)
Color viewBackground = view->baseBackgroundColor();
background = bodyHasCSSBackground ? viewBackground.blend(background) : viewBackground;
}
- bodyHasFixedBackgroundImage = style->hasFixedBackgroundImage()
- && FixedBackgroundImageLayerAndroid::GetCachedImage(style);
+ if (style->hasFixedBackgroundImage()) {
+ Image* backgroundImage = FixedBackgroundImageLayerAndroid::GetCachedImage(style);
+ if (backgroundImage && backgroundImage->width() > 1 && backgroundImage->height() > 1)
+ bodyHasFixedBackgroundImage = true;
+ }
}
PicturePileLayerContent* content = new PicturePileLayerContent(m_content);