Chromium Code Reviews| Index: Source/core/html/HTMLImageElement.cpp |
| diff --git a/Source/core/html/HTMLImageElement.cpp b/Source/core/html/HTMLImageElement.cpp |
| index bf88109ed9ecad7b640245f02d5216edaa77a176..a9238a28571ddb4e1f7268e09392227f9c259a44 100644 |
| --- a/Source/core/html/HTMLImageElement.cpp |
| +++ b/Source/core/html/HTMLImageElement.cpp |
| @@ -32,6 +32,7 @@ |
| #include "core/html/HTMLAnchorElement.h" |
| #include "core/html/HTMLFormElement.h" |
| #include "core/html/parser/HTMLParserIdioms.h" |
| +#include "core/page/Page.h" |
| #include "core/rendering/RenderImage.h" |
| using namespace std; |
| @@ -107,13 +108,23 @@ void HTMLImageElement::collectStyleForPresentationAttribute(const QualifiedName& |
| HTMLElement::collectStyleForPresentationAttribute(name, value, style); |
| } |
| +const AtomicString HTMLImageElement::imageSourceURL() const |
| +{ |
| + return m_bestFitImageURL.isEmpty() ? fastGetAttribute(srcAttr) : m_bestFitImageURL; |
| +} |
| + |
| void HTMLImageElement::parseAttribute(const QualifiedName& name, const AtomicString& value) |
| { |
| if (name == altAttr) { |
| if (renderer() && renderer()->isImage()) |
| toRenderImage(renderer())->updateAltText(); |
| - } else if (name == srcAttr) |
| + } else if (name == srcAttr || name == srcsetAttr) { |
| + float deviceScaleFactor = 1.0; |
| + if (Page* page = document().page()) |
| + deviceScaleFactor = page->deviceScaleFactor(); |
|
johnme
2013/09/04 09:50:22
As discussed on blink-dev, you probably want:
flo
|
| + m_bestFitImageURL = bestFitSourceForImageAttributes(deviceScaleFactor, fastGetAttribute(srcAttr), fastGetAttribute(srcsetAttr)); |
| m_imageLoader.updateFromElementIgnoringPreviousError(); |
| + } |
| else if (name == usemapAttr) |
| setIsLink(!value.isNull()); |
| else if (name == onbeforeloadAttr) |