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

Unified Diff: third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp

Issue 2853733004: Render 0px broken images correctly in quirks mode (Closed)
Patch Set: Render 0px broken images correctly in quirks mode Created 3 years, 7 months 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
Index: third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
diff --git a/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp b/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
index 8a6c2400939be0e6dc28923c82bc97d51fddff6b..6521ccc45798aa9b09a4e20f70f654105b8e1888 100644
--- a/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
@@ -101,11 +101,7 @@ PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::CustomStyleForAltText(
bool treat_as_replaced =
image_has_intrinsic_dimensions &&
(element.GetDocument().InQuirksMode() || image_has_no_alt_attribute);
- // 16px for the image and 2px for its top/left border/padding offset.
- int pixels_for_alt_image = 18;
- if (treat_as_replaced &&
- !ImageSmallerThanAltImage(pixels_for_alt_image, new_style->Width(),
- new_style->Height())) {
+ if (treat_as_replaced) {
// https://html.spec.whatwg.org/multipage/rendering.html#images-3:
// "If the element does not represent an image, but the element already has
// intrinsic dimensions (e.g. from the dimension attributes or CSS rules),
@@ -117,15 +113,6 @@ PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::CustomStyleForAltText(
place_holder->SetInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden);
place_holder->SetInlineStyleProperty(CSSPropertyDisplay,
CSSValueInlineBlock);
- place_holder->SetInlineStyleProperty(CSSPropertyBorderWidth, 1,
- CSSPrimitiveValue::UnitType::kPixels);
- place_holder->SetInlineStyleProperty(CSSPropertyBorderStyle, CSSValueSolid);
- place_holder->SetInlineStyleProperty(CSSPropertyBorderColor,
- CSSValueSilver);
- place_holder->SetInlineStyleProperty(CSSPropertyPadding, 1,
- CSSPrimitiveValue::UnitType::kPixels);
- place_holder->SetInlineStyleProperty(CSSPropertyBoxSizing,
- CSSValueBorderBox);
CSSPrimitiveValue::UnitType unit =
new_style->Height().IsPercent()
? CSSPrimitiveValue::UnitType::kPercentage
@@ -134,13 +121,32 @@ PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::CustomStyleForAltText(
new_style->Height().Value(), unit);
place_holder->SetInlineStyleProperty(CSSPropertyWidth,
new_style->Width().Value(), unit);
- broken_image->SetInlineStyleProperty(CSSPropertyDisplay, CSSValueInline);
- // Make sure the broken image icon appears on the appropriate side of the
- // image for the element's writing direction.
- broken_image->SetInlineStyleProperty(
- CSSPropertyFloat,
- AtomicString(new_style->Direction() == TextDirection::kLtr ? "left"
- : "right"));
+
+ // 16px for the image and 2px for its top/left border/padding offset.
+ int pixels_for_alt_image = 18;
+ if (ImageSmallerThanAltImage(pixels_for_alt_image, new_style->Width(),
+ new_style->Height())) {
+ broken_image->SetInlineStyleProperty(CSSPropertyDisplay, CSSValueNone);
+ } else {
+ place_holder->SetInlineStyleProperty(
+ CSSPropertyBorderWidth, 1, CSSPrimitiveValue::UnitType::kPixels);
+ place_holder->SetInlineStyleProperty(CSSPropertyBorderStyle,
+ CSSValueSolid);
+ place_holder->SetInlineStyleProperty(CSSPropertyBorderColor,
+ CSSValueSilver);
+ place_holder->SetInlineStyleProperty(
+ CSSPropertyPadding, 1, CSSPrimitiveValue::UnitType::kPixels);
+ place_holder->SetInlineStyleProperty(CSSPropertyBoxSizing,
+ CSSValueBorderBox);
+ broken_image->SetInlineStyleProperty(CSSPropertyDisplay, CSSValueInline);
+ // Make sure the broken image icon appears on the appropriate side of the
+ // image for the element's writing direction.
+ broken_image->SetInlineStyleProperty(
+ CSSPropertyFloat,
+ AtomicString(new_style->Direction() == TextDirection::kLtr
+ ? "left"
+ : "right"));
+ }
} else {
// "If the element is an img element that represents nothing and the user
// agent does not expect this to change the user agent is expected to treat
@@ -153,7 +159,7 @@ PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::CustomStyleForAltText(
// user can request the image be displayed or investigate why it is not
// rendering."
// - We opt not to display an icon, like Firefox.
- if (!treat_as_replaced && new_style->Display() == EDisplay::kInline) {
+ if (new_style->Display() == EDisplay::kInline) {
new_style->SetWidth(Length());
new_style->SetHeight(Length());
}
« no previous file with comments | « third_party/WebKit/LayoutTests/platform/win/virtual/mojo-loading/css1/box_properties/float_elements_in_series-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698