#include "platform/graphics/GraphicsTypes.h"
#include "wtf/WeakPtr.h"
-namespace WebCore {
+namespace blink {
class HTMLFormElement;
class ImageCandidate;
+class MediaQueryList;
class HTMLImageElement FINAL : public HTMLElement, public CanvasImageSource {
public:
+ class ViewportChangeListener;
+
static PassRefPtrWillBeRawPtr<HTMLImageElement> create(Document&);
static PassRefPtrWillBeRawPtr<HTMLImageElement> create(Document&, HTMLFormElement*, bool createdByParser);
static PassRefPtrWillBeRawPtr<HTMLImageElement> createForJSConstructor(Document&, int width, int height);
ImageResource* cachedImage() const { return imageLoader().image(); }
void setImageResource(ImageResource* i) { imageLoader().setImage(i); };
- void setLoadManually(bool loadManually) { imageLoader().setLoadManually(loadManually); }
-
- const AtomicString& alt() const;
+ void setLoadingImageDocument() { imageLoader().setLoadingImageDocument(); }
void setHeight(int);
virtual FloatSize defaultDestinationSize() const OVERRIDE;
virtual const KURL& sourceURL() const OVERRIDE;
- enum UpdateFromElementBehavior {
- UpdateNormal,
- UpdateIgnorePreviousError
- };
// public so that HTMLPictureElement can call this as well.
- void selectSourceURL(UpdateFromElementBehavior);
+ void selectSourceURL(ImageLoader::UpdateFromElementBehavior);
protected:
explicit HTMLImageElement(Document&, HTMLFormElement* = 0, bool createdByParser = false);
ImageCandidate findBestFitImageFromPictureParent();
void setBestFitURLAndDPRFromImageCandidate(const ImageCandidate&);
HTMLImageLoader& imageLoader() const { return *m_imageLoader; }
+ void notifyViewportChanged();
+ void createMediaQueryListIfDoesNotExist();
OwnPtrWillBeMember<HTMLImageLoader> m_imageLoader;
+ RefPtrWillBeMember<ViewportChangeListener> m_listener;
#if ENABLE(OILPAN)
Member<HTMLFormElement> m_form;
#else
CompositeOperator m_compositeOperator;
AtomicString m_bestFitImageURL;
float m_imageDevicePixelRatio;
- bool m_formWasSetByParser;
- bool m_elementCreatedByParser;
+ unsigned m_formWasSetByParser : 1;
+ unsigned m_elementCreatedByParser : 1;
+ // Intrinsic sizing is viewport dependant if the 'w' descriptor was used for the picked resource.
+ unsigned m_intrinsicSizingViewportDependant : 1;
+ // Effective size is viewport dependant if the sizes attribute's effective size used v* length units.
+ unsigned m_effectiveSizeViewportDependant : 1;
};
} //namespace