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

Unified Diff: Source/core/html/forms/ImageInputType.cpp

Issue 696123002: Revert of Use Shadow DOM to display fallback content for images (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/forms/ImageInputType.h ('k') | Source/core/html/forms/InputTypeView.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/forms/ImageInputType.cpp
diff --git a/Source/core/html/forms/ImageInputType.cpp b/Source/core/html/forms/ImageInputType.cpp
index 8966cfa7cae9f4e7948383655787c660f176b53a..fa98dce704df61032bdd12c58210ff8a249f80da 100644
--- a/Source/core/html/forms/ImageInputType.cpp
+++ b/Source/core/html/forms/ImageInputType.cpp
@@ -25,16 +25,13 @@
#include "core/HTMLNames.h"
#include "core/InputTypeNames.h"
-#include "core/dom/shadow/ShadowRoot.h"
#include "core/events/MouseEvent.h"
#include "core/fetch/ImageResource.h"
#include "core/html/FormDataList.h"
#include "core/html/HTMLFormElement.h"
-#include "core/html/HTMLImageFallbackHelper.h"
#include "core/html/HTMLImageLoader.h"
#include "core/html/HTMLInputElement.h"
#include "core/html/parser/HTMLParserIdioms.h"
-#include "core/rendering/RenderBlockFlow.h"
#include "core/rendering/RenderImage.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/text/StringBuilder.h"
@@ -45,7 +42,6 @@
inline ImageInputType::ImageInputType(HTMLInputElement& element)
: BaseButtonInputType(element)
- , m_useFallbackContent(false)
{
}
@@ -121,10 +117,8 @@
event->setDefaultHandled();
}
-RenderObject* ImageInputType::createRenderer(RenderStyle* style) const
-{
- if (m_useFallbackContent)
- return new RenderBlockFlow(&element());
+RenderObject* ImageInputType::createRenderer(RenderStyle*) const
+{
RenderImage* image = new RenderImage(&element());
image->setImageResource(RenderImageResource::create());
return image;
@@ -132,12 +126,10 @@
void ImageInputType::altAttributeChanged()
{
- if (element().userAgentShadowRoot()) {
- Element* text = element().userAgentShadowRoot()->getElementById("alttext");
- String value = element().altText();
- if (text && text->textContent() != value)
- text->setTextContent(element().altText());
- }
+ RenderImage* image = toRenderImage(element().renderer());
+ if (!image)
+ return;
+ image->updateAltText();
}
void ImageInputType::srcAttributeChanged()
@@ -145,13 +137,6 @@
if (!element().renderer())
return;
element().imageLoader()->updateFromElement(ImageLoader::UpdateIgnorePreviousError);
-}
-
-void ImageInputType::valueAttributeChanged()
-{
- if (m_useFallbackContent)
- return;
- BaseButtonInputType::valueAttributeChanged();
}
void ImageInputType::startResourceLoading()
@@ -161,12 +146,17 @@
HTMLImageLoader* imageLoader = element().imageLoader();
imageLoader->updateFromElement();
- RenderObject* renderer = element().renderer();
- if (!renderer || !renderer->isRenderImage())
- return;
-
- RenderImageResource* imageResource = toRenderImage(renderer)->imageResource();
+ 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();
}
bool ImageInputType::shouldRespectAlignAttribute()
@@ -247,57 +237,4 @@
return srcAttr;
}
-void ImageInputType::ensureFallbackContent()
-{
- if (m_useFallbackContent)
- return;
- setUseFallbackContent();
- reattachFallbackContent();
-}
-
-void ImageInputType::setUseFallbackContent()
-{
- if (m_useFallbackContent)
- return;
- m_useFallbackContent = true;
- if (ShadowRoot* root = element().userAgentShadowRoot())
- root->removeChildren();
- createShadowSubtree();
-}
-
-void ImageInputType::ensurePrimaryContent()
-{
- if (!m_useFallbackContent)
- return;
- m_useFallbackContent = false;
- reattachFallbackContent();
-}
-
-void ImageInputType::reattachFallbackContent()
-{
- // This can happen inside of attach() in the middle of a recalcStyle so we need to
- // reattach synchronously here.
- if (element().document().inStyleRecalc())
- element().reattach();
- else
- element().lazyReattachIfAttached();
-}
-
-void ImageInputType::createShadowSubtree()
-{
- if (!m_useFallbackContent) {
- BaseButtonInputType::createShadowSubtree();
- return;
- }
- HTMLImageFallbackHelper::createAltTextShadowTree(element());
-}
-
-PassRefPtr<RenderStyle> ImageInputType::customStyleForRenderer(PassRefPtr<RenderStyle> newStyle)
-{
- if (!m_useFallbackContent)
- return newStyle;
-
- return HTMLImageFallbackHelper::customStyleForAltText(element(), newStyle);
-}
-
} // namespace blink
« no previous file with comments | « Source/core/html/forms/ImageInputType.h ('k') | Source/core/html/forms/InputTypeView.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698