Index: Source/core/html/HTMLImageElement.cpp |
diff --git a/Source/core/html/HTMLImageElement.cpp b/Source/core/html/HTMLImageElement.cpp |
index 64266a6c5754f0a5a2b1ffbd9ed80835e2033b80..434646d406bf4441709f87946366a9b361007ec6 100644 |
--- a/Source/core/html/HTMLImageElement.cpp |
+++ b/Source/core/html/HTMLImageElement.cpp |
@@ -51,7 +51,7 @@ using namespace HTMLNames; |
HTMLImageElement::HTMLImageElement(Document& document, HTMLFormElement* form, bool createdByParser) |
: HTMLElement(imgTag, document) |
- , m_imageLoader(this) |
+ , m_imageLoader(HTMLImageLoader::create(this)) |
, m_compositeOperator(CompositeSourceOver) |
, m_imageDevicePixelRatio(1.0f) |
, m_formWasSetByParser(false) |
@@ -90,6 +90,7 @@ HTMLImageElement::~HTMLImageElement() |
void HTMLImageElement::trace(Visitor* visitor) |
{ |
+ visitor->trace(m_imageLoader); |
visitor->trace(m_form); |
HTMLElement::trace(visitor); |
} |
@@ -296,10 +297,10 @@ void HTMLImageElement::attach(const AttachContext& context) |
// If we have no image at all because we have no src attribute, set |
// image height and width for the alt text instead. |
- if (!m_imageLoader.image() && !renderImageResource->cachedImage()) |
+ if (!imageLoader().image() && !renderImageResource->cachedImage()) |
renderImage->setImageSizeForAltText(); |
else |
- renderImageResource->setImageResource(m_imageLoader.image()); |
+ renderImageResource->setImageResource(imageLoader().image()); |
} |
} |
@@ -320,8 +321,8 @@ Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode* |
// If we have been inserted from a renderer-less document, |
// our loader may have not fetched the image, so do it now. |
- if ((insertionPoint->inDocument() && !m_imageLoader.image()) || imageWasModified) |
- m_imageLoader.updateFromElement(m_elementCreatedByParser ? ImageLoader::ForceLoadImmediately : ImageLoader::LoadNormally); |
+ if ((insertionPoint->inDocument() && !imageLoader().image()) || imageWasModified) |
+ imageLoader().updateFromElement(m_elementCreatedByParser ? ImageLoader::ForceLoadImmediately : ImageLoader::LoadNormally); |
return HTMLElement::insertedInto(insertionPoint); |
} |
@@ -343,8 +344,8 @@ int HTMLImageElement::width(bool ignorePendingStylesheets) |
return width; |
// if the image is available, use its width |
- if (m_imageLoader.image()) |
- return m_imageLoader.image()->imageSizeForRenderer(renderer(), 1.0f).width(); |
+ if (imageLoader().image()) |
+ return imageLoader().image()->imageSizeForRenderer(renderer(), 1.0f).width(); |
} |
if (ignorePendingStylesheets) |
@@ -366,8 +367,8 @@ int HTMLImageElement::height(bool ignorePendingStylesheets) |
return height; |
// if the image is available, use its height |
- if (m_imageLoader.image()) |
- return m_imageLoader.image()->imageSizeForRenderer(renderer(), 1.0f).height(); |
+ if (imageLoader().image()) |
+ return imageLoader().image()->imageSizeForRenderer(renderer(), 1.0f).height(); |
} |
if (ignorePendingStylesheets) |
@@ -381,18 +382,18 @@ int HTMLImageElement::height(bool ignorePendingStylesheets) |
int HTMLImageElement::naturalWidth() const |
{ |
- if (!m_imageLoader.image()) |
+ if (!imageLoader().image()) |
return 0; |
- return m_imageLoader.image()->imageSizeForRenderer(renderer(), 1.0f).width(); |
+ return imageLoader().image()->imageSizeForRenderer(renderer(), 1.0f).width(); |
} |
int HTMLImageElement::naturalHeight() const |
{ |
- if (!m_imageLoader.image()) |
+ if (!imageLoader().image()) |
return 0; |
- return m_imageLoader.image()->imageSizeForRenderer(renderer(), 1.0f).height(); |
+ return imageLoader().image()->imageSizeForRenderer(renderer(), 1.0f).height(); |
} |
const AtomicString& HTMLImageElement::currentSrc() const |
@@ -474,12 +475,12 @@ int HTMLImageElement::y() const |
bool HTMLImageElement::complete() const |
{ |
- return m_imageLoader.imageComplete(); |
+ return imageLoader().imageComplete(); |
} |
void HTMLImageElement::didMoveToNewDocument(Document& oldDocument) |
{ |
- m_imageLoader.elementDidMoveToNewDocument(); |
+ imageLoader().elementDidMoveToNewDocument(); |
HTMLElement::didMoveToNewDocument(oldDocument); |
} |
@@ -499,10 +500,10 @@ bool HTMLImageElement::isServerMap() const |
Image* HTMLImageElement::imageContents() |
{ |
- if (!m_imageLoader.imageComplete()) |
+ if (!imageLoader().imageComplete()) |
return 0; |
- return m_imageLoader.image()->image(); |
+ return imageLoader().image()->image(); |
} |
bool HTMLImageElement::isInteractiveContent() const |
@@ -582,9 +583,9 @@ void HTMLImageElement::selectSourceURL(UpdateFromElementBehavior behavior) |
setBestFitURLAndDPRFromImageCandidate(candidate); |
} |
if (behavior == UpdateIgnorePreviousError) |
- m_imageLoader.updateFromElementIgnoringPreviousError(); |
+ imageLoader().updateFromElementIgnoringPreviousError(); |
else |
- m_imageLoader.updateFromElement(); |
+ imageLoader().updateFromElement(); |
} |
const KURL& HTMLImageElement::sourceURL() const |