| Index: third_party/WebKit/Source/core/html/HTMLImageElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
|
| index 6c492e273da854fdbb0747be8ecc5d36c61fde20..858b47ac3fcf904668c8797fc5d24b541e5e6fc5 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
|
| @@ -48,6 +48,7 @@
|
| #include "core/layout/LayoutImage.h"
|
| #include "core/page/Page.h"
|
| #include "core/style/ContentData.h"
|
| +#include "core/svg/graphics/SVGImageForContainer.h"
|
| #include "platform/ContentType.h"
|
| #include "platform/EventDispatchForbiddenScope.h"
|
| #include "platform/MIMETypeRegistry.h"
|
| @@ -604,16 +605,23 @@ PassRefPtr<Image> HTMLImageElement::getSourceImageForCanvas(SourceImageStatus* s
|
| return nullptr;
|
| }
|
|
|
| - RefPtr<Image> sourceImage = cachedImage()->image();
|
| -
|
| - // We need to synthesize a container size if a layoutObject is not available to provide one.
|
| - if (!layoutObject() && sourceImage->usesContainerSize())
|
| - sourceImage->setContainerSize(sourceImage->size());
|
| + RefPtr<Image> sourceImage;
|
| + if (cachedImage()->image()->isSVGImage()) {
|
| + sourceImage = SVGImageForContainer::create(toSVGImage(cachedImage()->image()),
|
| + cachedImage()->image()->size(), 1, document().completeURL(imageSourceURL()));
|
| + } else {
|
| + sourceImage = cachedImage()->image();
|
| + }
|
|
|
| *status = NormalSourceImageStatus;
|
| return sourceImage->imageForDefaultFrame();
|
| }
|
|
|
| +bool HTMLImageElement::isSVGSource() const
|
| +{
|
| + return cachedImage() && cachedImage()->image()->isSVGImage();
|
| +}
|
| +
|
| bool HTMLImageElement::wouldTaintOrigin(SecurityOrigin* destinationSecurityOrigin) const
|
| {
|
| ImageResource* image = cachedImage();
|
|
|