summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2012-05-15 09:57:23 -0700
committerNicolas Roard <nicolasroard@google.com>2012-05-15 10:02:38 -0700
commitca602195c97340b621ffe0c5a7fdf3732d439219 (patch)
tree729afeab943aabdc543043f016f73a6708808626 /Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
parent0d38139a55b1f371edb1a2a65f4b7ee51daa8e37 (diff)
downloadexternal_webkit-ca602195c97340b621ffe0c5a7fdf3732d439219.zip
external_webkit-ca602195c97340b621ffe0c5a7fdf3732d439219.tar.gz
external_webkit-ca602195c97340b621ffe0c5a7fdf3732d439219.tar.bz2
Fix crash on arstechnica
Not checking for cachedImage for the background images... bug:6482165 Change-Id: I9de5ee9cef446cd07688b40f6b04bdd493e40edd
Diffstat (limited to 'Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
index 8abff96..62a5824 100644
--- a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
@@ -202,4 +202,35 @@ bool FixedBackgroundImageLayerAndroid::drawGL(bool layerTilesDisabled)
return false;
}
+Image* FixedBackgroundImageLayerAndroid::GetCachedImage(PassRefPtr<RenderStyle> aStyle)
+{
+ RefPtr<RenderStyle> style = aStyle;
+ if (!style)
+ return 0;
+
+ if (!style->hasFixedBackgroundImage())
+ return 0;
+
+ FillLayer* layers = style->accessBackgroundLayers();
+ StyleImage* styleImage = layers->image();
+
+ if (!styleImage)
+ return 0;
+
+ if (!styleImage->isLoaded())
+ return 0;
+
+ if (!styleImage->isCachedImage())
+ return 0;
+
+ CachedImage* cachedImage = static_cast<StyleCachedImage*>(styleImage)->cachedImage();
+
+ Image* image = cachedImage->image();
+
+ if (image == Image::nullImage())
+ return 0;
+
+ return image;
+}
+
} // namespace WebCore