void ImageLoader::updateRenderer() { RenderImageResource* imageResource = renderImageResource(); if (!imageResource) return; // Only update the renderer if it doesn't have an image or if what we have // is a complete image. This prevents flickering in the case where a dynamic // change is happening between two images. CachedImage* cachedImage = imageResource->cachedImage(); if (m_image != cachedImage && (m_imageComplete || !cachedImage)) imageResource->setCachedImage(m_image.get()); }
void ImageElement::setImageIfNecessary(RenderObject* renderObject, ImageLoader* imageLoader) { if (renderObject && renderObject->isImage() && !imageLoader->hasPendingBeforeLoadEvent()) { RenderImage* renderImage = toRenderImage(renderObject); RenderImageResource* renderImageResource = renderImage->imageResource(); if (renderImageResource->hasImage()) return; renderImageResource->setCachedImage(imageLoader->image()); // If we have no image at all because we have no src attribute, set // image height and width for the alt text instead. if (!imageLoader->image() && !renderImageResource->cachedImage()) renderImage->setImageSizeForAltText(); } }
void TextFieldDecorationElement::updateImage() { if (!renderer() || !renderer()->isImage()) return; RenderImageResource* resource = toRenderImage(renderer())->imageResource(); CachedImage* image; if (hostInput()->disabled()) image = m_textFieldDecorator->imageForDisabledState(); else if (hostInput()->readOnly()) image = m_textFieldDecorator->imageForReadonlyState(); else image = m_textFieldDecorator->imageForNormalState(); ASSERT(image); resource->setCachedImage(image); }
void HTMLImageElement::attach() { HTMLElement::attach(); if (renderer() && renderer()->isImage() && !m_imageLoader.hasPendingBeforeLoadEvent()) { RenderImage* renderImage = toRenderImage(renderer()); RenderImageResource* renderImageResource = renderImage->imageResource(); if (renderImageResource->hasImage()) return; renderImageResource->setCachedImage(m_imageLoader.image()); // 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()) renderImage->setImageSizeForAltText(); } }
void HTMLImageElement::attach(const AttachContext& context) { HTMLElement::attach(context); if (renderer() && renderer()->isImage()) { RenderImage* renderImage = toRenderImage(renderer()); RenderImageResource* renderImageResource = renderImage->imageResource(); if (renderImageResource->hasImage()) return; // If we have no image at all because we have no src attribute, set // image height and width for the alt text instead. if (!imageLoader().image() && !renderImageResource->cachedImage()) renderImage->setImageSizeForAltText(); else renderImageResource->setImageResource(imageLoader().image()); } }
void ImageInputType::startResourceLoading() { BaseButtonInputType::startResourceLoading(); HTMLImageLoader* imageLoader = element().imageLoader(); imageLoader->updateFromElement(); RenderImage* renderer = toRenderImage(element().renderer()); if (!renderer) return; RenderImageResource* imageResource = renderer->imageResource(); imageResource->setImageResource(imageLoader->image()); // If we have no image at all because we have no src attribute, set // image height and width for the alt text instead. if (!imageLoader->image() && !imageResource->cachedImage()) renderer->setImageSizeForAltText(); }
void ImageInputType::attach() { BaseButtonInputType::attach(); if (!m_imageLoader) m_imageLoader = adoptPtr(new HTMLImageLoader(element())); m_imageLoader->updateFromElement(); RenderImage* renderer = toRenderImage(element()->renderer()); if (!renderer) return; if (m_imageLoader->hasPendingBeforeLoadEvent()) return; RenderImageResource* imageResource = renderer->imageResource(); imageResource->setCachedImage(m_imageLoader->image()); // 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() && !imageResource->cachedImage()) renderer->setImageSizeForAltText(); }