Chromium Code Reviews| 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) |
| { |