Chromium Code Reviews| Index: Source/core/html/HTMLImageElement.h |
| diff --git a/Source/core/html/HTMLImageElement.h b/Source/core/html/HTMLImageElement.h |
| index 4d1f09a54e4d72c9a0d4de6537b4e07194009800..93f1b83df9bf87e700021ae1aca7341e0ef01d80 100644 |
| --- a/Source/core/html/HTMLImageElement.h |
| +++ b/Source/core/html/HTMLImageElement.h |
| @@ -24,6 +24,7 @@ |
| #ifndef HTMLImageElement_h |
| #define HTMLImageElement_h |
| +#include "core/frame/ViewportChangeNotifier.h" |
| #include "core/html/HTMLElement.h" |
| #include "core/html/HTMLImageLoader.h" |
| #include "core/html/canvas/CanvasImageSource.h" |
| @@ -101,6 +102,31 @@ protected: |
| virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; |
| private: |
| + class ImageViewportChangeListener: public ViewportChangeListener { |
|
haraken
2014/07/11 06:10:21
Add FINAL.
|
| + public: |
| + static PassRefPtrWillBeRawPtr<ImageViewportChangeListener> create(HTMLImageElement* element) |
| + { |
| + return adoptRefWillBeNoop(new ImageViewportChangeListener(element)); |
| + } |
| + |
| + virtual void viewportChanged() OVERRIDE |
| + { |
| + // Re-selecting the source URL in order to pick a more fitting resource |
| + // And update the image's intrinsic dimensions when the viewport changes. |
| + // Picking of a better fitting resource is UA dependant, not spec required. |
| + m_element->selectSourceURL(ImageLoader::UpdateForce); |
| + } |
| + |
| + ImageViewportChangeListener(HTMLImageElement* element) |
|
haraken
2014/07/11 06:10:21
Add explicit.
|
| + : m_element(element) |
| + { |
| + ASSERT(element); |
| + } |
| + |
| + private: |
| + HTMLImageElement* m_element; |
|
haraken
2014/07/11 06:10:21
I guess this should be RawPtrWillBeMember<HTMLImag
|
| + }; |
| + |
| virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; } |
| virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE; |
| @@ -141,6 +167,11 @@ private: |
| float m_imageDevicePixelRatio; |
| bool m_formWasSetByParser; |
| bool m_elementCreatedByParser; |
| + // Intrinsic sizing is viewport dependant if the 'w' descriptor was used for the picked resource. |
| + bool m_intrinsicSizingViewportDependant; |
| + // Effective size is viewport dependant if the sizes attribute's effective size used v* length units. |
| + bool m_effectiveSizeViewportDependant; |
| + RefPtrWillBeMember<ImageViewportChangeListener> m_viewportListener; |
| }; |
| } //namespace |