80
82
const QualifiedName& attrName = attr->name();
81
83
if (attrName == altAttr) {
82
84
if (renderer() && renderer()->isImage())
83
static_cast<RenderImage*>(renderer())->updateAltText();
85
toRenderImage(renderer())->updateAltText();
84
86
} else if (attrName == srcAttr)
85
87
m_imageLoader.updateFromElementIgnoringPreviousError();
86
88
else if (attrName == widthAttr)
108
110
if (attr->value().string()[0] == '#')
109
111
usemap = attr->value();
111
usemap = document()->completeURL(parseURL(attr->value())).string();
113
usemap = document()->completeURL(deprecatedParseURL(attr->value())).string();
112
114
setIsLink(!attr->isNull());
113
115
} else if (attrName == ismapAttr)
115
117
else if (attrName == onabortAttr)
116
setInlineEventListenerForTypeAndAttribute(eventNames().abortEvent, attr);
118
setAttributeEventListener(eventNames().abortEvent, createAttributeEventListener(this, attr));
117
119
else if (attrName == onloadAttr)
118
setInlineEventListenerForTypeAndAttribute(eventNames().loadEvent, attr);
120
setAttributeEventListener(eventNames().loadEvent, createAttributeEventListener(this, attr));
119
121
else if (attrName == compositeAttr) {
120
122
if (!parseCompositeOperator(attr->value(), m_compositeOperator))
121
123
m_compositeOperator = CompositeSourceOver;
166
168
HTMLElement::attach();
168
170
if (renderer() && renderer()->isImage()) {
169
RenderImage* imageObj = static_cast<RenderImage*>(renderer());
171
RenderImage* imageObj = toRenderImage(renderer());
170
172
if (imageObj->hasImage())
172
174
imageObj->setCachedImage(m_imageLoader.image());
277
279
|| (attr->name() == usemapAttr && attr->value().string()[0] != '#');
280
String HTMLImageElement::name() const
282
return getAttribute(nameAttr);
285
void HTMLImageElement::setName(const String& value)
287
setAttribute(nameAttr, value);
290
String HTMLImageElement::align() const
292
return getAttribute(alignAttr);
295
void HTMLImageElement::setAlign(const String& value)
297
setAttribute(alignAttr, value);
300
String HTMLImageElement::alt() const
282
const AtomicString& HTMLImageElement::alt() const
302
284
return getAttribute(altAttr);
305
void HTMLImageElement::setAlt(const String& value)
307
setAttribute(altAttr, value);
310
String HTMLImageElement::border() const
312
return getAttribute(borderAttr);
315
void HTMLImageElement::setBorder(const String& value)
317
setAttribute(borderAttr, value);
287
bool HTMLImageElement::draggable() const
289
// Image elements are draggable by default.
290
return !equalIgnoringCase(getAttribute(draggableAttr), "false");
320
293
void HTMLImageElement::setHeight(int value)
373
346
setAttribute(srcAttr, value);
376
String HTMLImageElement::useMap() const
378
return getAttribute(usemapAttr);
381
void HTMLImageElement::setUseMap(const String& value)
383
setAttribute(usemapAttr, value);
386
349
int HTMLImageElement::vspace() const
388
351
// ### return actual vspace
431
394
HTMLElement::addSubresourceAttributeURLs(urls);
433
396
addSubresourceURL(urls, src());
434
addSubresourceURL(urls, document()->completeURL(useMap()));
397
// FIXME: What about when the usemap attribute begins with "#"?
398
addSubresourceURL(urls, document()->completeURL(getAttribute(usemapAttr)));