Index: Source/web/WebNode.cpp |
diff --git a/Source/web/WebNode.cpp b/Source/web/WebNode.cpp |
index 9ce1b976448e9ec9b492f5999dc3ff9971ee2c65..416910254ab9c676ced6965faf987fd99f00664d 100644 |
--- a/Source/web/WebNode.cpp |
+++ b/Source/web/WebNode.cpp |
@@ -49,6 +49,7 @@ |
#include "core/editing/markup.h" |
#include "core/page/Frame.h" |
#include "core/platform/Widget.h" |
+#include "core/rendering/RenderImage.h" |
#include "core/rendering/RenderObject.h" |
#include "core/rendering/RenderWidget.h" |
#include "public/platform/WebString.h" |
@@ -251,6 +252,30 @@ WebElement WebNode::shadowHost() const |
return WebElement(coreNode->shadowHost()); |
} |
+WebImage WebNode::imageContents() |
+{ |
+ if (isNull()) |
+ return WebImage(); |
+ |
+ RefPtr<Node> node = unwrap<Node>(); |
+ |
+ if (!(node->renderer() && node->renderer()->isImage())) |
+ return WebImage(); |
+ |
+ WebCore::RenderImage* renderer = toRenderImage(node->renderer()); |
+ WebCore::CachedImage* cachedImage = renderer->cachedImage(); |
+ if (!cachedImage || cachedImage->errorOccurred()) |
+ return WebImage(); |
+ WebCore::Image* image = cachedImage->imageForRenderer(renderer); |
esprehn
2013/07/25 22:52:03
This should be a method on HTMLImageElement and th
jamesr
2013/07/26 17:54:33
I don't follow. This line isn't reaching into the
|
+ ASSERT(image); |
+ |
+ RefPtr<NativeImageSkia> bitmap = image->nativeImageForCurrentFrame(); |
+ if (!bitmap) |
+ return WebImage(); |
+ |
+ return bitmap->bitmap(); |
+} |
+ |
WebNode::WebNode(const PassRefPtr<Node>& node) |
: m_private(node) |
{ |