Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(439)

Side by Side Diff: Source/core/html/forms/ImageInputType.cpp

Issue 715633005: Rename HTMLInputElement::imageLoader() to ensureImageLoader() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add missing part Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/html/HTMLInputElement.cpp ('k') | Source/core/page/PageSerializer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « Source/core/html/HTMLInputElement.cpp ('k') | Source/core/page/PageSerializer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698