| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
| 3 * Copyright (C) 2010 Google Inc. All rights reserved. | 3 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 4 * Copyright (C) 2012 Samsung Electronics. All rights reserved. | 4 * Copyright (C) 2012 Samsung Electronics. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 RenderImage* image = toRenderImage(element().renderer()); | 129 RenderImage* image = toRenderImage(element().renderer()); |
| 130 if (!image) | 130 if (!image) |
| 131 return; | 131 return; |
| 132 image->updateAltText(); | 132 image->updateAltText(); |
| 133 } | 133 } |
| 134 | 134 |
| 135 void ImageInputType::srcAttributeChanged() | 135 void ImageInputType::srcAttributeChanged() |
| 136 { | 136 { |
| 137 if (!element().renderer()) | 137 if (!element().renderer()) |
| 138 return; | 138 return; |
| 139 element().imageLoader()->updateFromElement(ImageLoader::UpdateIgnorePrevious
Error); | 139 element().ensureImageLoader().updateFromElement(ImageLoader::UpdateIgnorePre
viousError); |
| 140 } | 140 } |
| 141 | 141 |
| 142 void ImageInputType::startResourceLoading() | 142 void ImageInputType::startResourceLoading() |
| 143 { | 143 { |
| 144 BaseButtonInputType::startResourceLoading(); | 144 BaseButtonInputType::startResourceLoading(); |
| 145 | 145 |
| 146 HTMLImageLoader* imageLoader = element().imageLoader(); | 146 HTMLImageLoader& imageLoader = element().ensureImageLoader(); |
| 147 imageLoader->updateFromElement(); | 147 imageLoader.updateFromElement(); |
| 148 | 148 |
| 149 RenderImage* renderer = toRenderImage(element().renderer()); | 149 RenderImage* renderer = toRenderImage(element().renderer()); |
| 150 if (!renderer) | 150 if (!renderer) |
| 151 return; | 151 return; |
| 152 | 152 |
| 153 RenderImageResource* imageResource = renderer->imageResource(); | 153 RenderImageResource* imageResource = renderer->imageResource(); |
| 154 imageResource->setImageResource(imageLoader->image()); | 154 imageResource->setImageResource(imageLoader.image()); |
| 155 | 155 |
| 156 // If we have no image at all because we have no src attribute, set | 156 // If we have no image at all because we have no src attribute, set |
| 157 // image height and width for the alt text instead. | 157 // image height and width for the alt text instead. |
| 158 if (!imageLoader->image() && !imageResource->cachedImage()) | 158 if (!imageLoader.image() && !imageResource->cachedImage()) |
| 159 renderer->setImageSizeForAltText(); | 159 renderer->setImageSizeForAltText(); |
| 160 } | 160 } |
| 161 | 161 |
| 162 bool ImageInputType::shouldRespectAlignAttribute() | 162 bool ImageInputType::shouldRespectAlignAttribute() |
| 163 { | 163 { |
| 164 return true; | 164 return true; |
| 165 } | 165 } |
| 166 | 166 |
| 167 bool ImageInputType::canBeSuccessfulSubmitButton() | 167 bool ImageInputType::canBeSuccessfulSubmitButton() |
| 168 { | 168 { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 183 { | 183 { |
| 184 RefPtrWillBeRawPtr<HTMLInputElement> element(this->element()); | 184 RefPtrWillBeRawPtr<HTMLInputElement> element(this->element()); |
| 185 | 185 |
| 186 if (!element->renderer()) { | 186 if (!element->renderer()) { |
| 187 // Check the attribute first for an explicit pixel value. | 187 // Check the attribute first for an explicit pixel value. |
| 188 unsigned height; | 188 unsigned height; |
| 189 if (parseHTMLNonNegativeInteger(element->fastGetAttribute(heightAttr), h
eight)) | 189 if (parseHTMLNonNegativeInteger(element->fastGetAttribute(heightAttr), h
eight)) |
| 190 return height; | 190 return height; |
| 191 | 191 |
| 192 // If the image is available, use its height. | 192 // If the image is available, use its height. |
| 193 if (element->hasImageLoader()) { | 193 HTMLImageLoader* imageLoader = element->imageLoader(); |
| 194 HTMLImageLoader* imageLoader = element->imageLoader(); | 194 if (imageLoader && imageLoader->image()) |
| 195 if (imageLoader->image()) | 195 return imageLoader->image()->imageSizeForRenderer(element->renderer(
), 1).height(); |
| 196 return imageLoader->image()->imageSizeForRenderer(element->rende
rer(), 1).height(); | |
| 197 } | |
| 198 } | 196 } |
| 199 | 197 |
| 200 element->document().updateLayout(); | 198 element->document().updateLayout(); |
| 201 | 199 |
| 202 RenderBox* box = element->renderBox(); | 200 RenderBox* box = element->renderBox(); |
| 203 return box ? adjustForAbsoluteZoom(box->contentHeight(), box) : 0; | 201 return box ? adjustForAbsoluteZoom(box->contentHeight(), box) : 0; |
| 204 } | 202 } |
| 205 | 203 |
| 206 unsigned ImageInputType::width() const | 204 unsigned ImageInputType::width() const |
| 207 { | 205 { |
| 208 RefPtrWillBeRawPtr<HTMLInputElement> element(this->element()); | 206 RefPtrWillBeRawPtr<HTMLInputElement> element(this->element()); |
| 209 | 207 |
| 210 if (!element->renderer()) { | 208 if (!element->renderer()) { |
| 211 // Check the attribute first for an explicit pixel value. | 209 // Check the attribute first for an explicit pixel value. |
| 212 unsigned width; | 210 unsigned width; |
| 213 if (parseHTMLNonNegativeInteger(element->fastGetAttribute(widthAttr), wi
dth)) | 211 if (parseHTMLNonNegativeInteger(element->fastGetAttribute(widthAttr), wi
dth)) |
| 214 return width; | 212 return width; |
| 215 | 213 |
| 216 // If the image is available, use its width. | 214 // If the image is available, use its width. |
| 217 if (element->hasImageLoader()) { | 215 HTMLImageLoader* imageLoader = element->imageLoader(); |
| 218 HTMLImageLoader* imageLoader = element->imageLoader(); | 216 if (imageLoader && imageLoader->image()) |
| 219 if (imageLoader->image()) | 217 return imageLoader->image()->imageSizeForRenderer(element->renderer(
), 1).width(); |
| 220 return imageLoader->image()->imageSizeForRenderer(element->rende
rer(), 1).width(); | |
| 221 } | |
| 222 } | 218 } |
| 223 | 219 |
| 224 element->document().updateLayout(); | 220 element->document().updateLayout(); |
| 225 | 221 |
| 226 RenderBox* box = element->renderBox(); | 222 RenderBox* box = element->renderBox(); |
| 227 return box ? adjustForAbsoluteZoom(box->contentWidth(), box) : 0; | 223 return box ? adjustForAbsoluteZoom(box->contentWidth(), box) : 0; |
| 228 } | 224 } |
| 229 | 225 |
| 230 bool ImageInputType::hasLegalLinkAttribute(const QualifiedName& name) const | 226 bool ImageInputType::hasLegalLinkAttribute(const QualifiedName& name) const |
| 231 { | 227 { |
| 232 return name == srcAttr || BaseButtonInputType::hasLegalLinkAttribute(name); | 228 return name == srcAttr || BaseButtonInputType::hasLegalLinkAttribute(name); |
| 233 } | 229 } |
| 234 | 230 |
| 235 const QualifiedName& ImageInputType::subResourceAttributeName() const | 231 const QualifiedName& ImageInputType::subResourceAttributeName() const |
| 236 { | 232 { |
| 237 return srcAttr; | 233 return srcAttr; |
| 238 } | 234 } |
| 239 | 235 |
| 240 } // namespace blink | 236 } // namespace blink |
| OLD | NEW |