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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp

Issue 1844223002: Literal AtomicString construction can rely on strlen optimization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/html/HTMLImageFallbackHelper.h" 5 #include "core/html/HTMLImageFallbackHelper.h"
6 6
7 #include "core/HTMLNames.h" 7 #include "core/HTMLNames.h"
8 #include "core/InputTypeNames.h" 8 #include "core/InputTypeNames.h"
9 #include "core/dom/ElementRareData.h" 9 #include "core/dom/ElementRareData.h"
10 #include "core/dom/Text.h" 10 #include "core/dom/Text.h"
(...skipping 18 matching lines...) Expand all
29 bool noSrcsetSpecified = !element.hasAttribute(srcsetAttr) || element.getAtt ribute(srcsetAttr).isNull() || element.getAttribute(srcsetAttr).isEmpty(); 29 bool noSrcsetSpecified = !element.hasAttribute(srcsetAttr) || element.getAtt ribute(srcsetAttr).isNull() || element.getAttribute(srcsetAttr).isEmpty();
30 return noSrcSpecified && noSrcsetSpecified; 30 return noSrcSpecified && noSrcsetSpecified;
31 } 31 }
32 32
33 void HTMLImageFallbackHelper::createAltTextShadowTree(Element& element) 33 void HTMLImageFallbackHelper::createAltTextShadowTree(Element& element)
34 { 34 {
35 ShadowRoot& root = element.ensureUserAgentShadowRoot(); 35 ShadowRoot& root = element.ensureUserAgentShadowRoot();
36 36
37 RefPtrWillBeRawPtr<HTMLDivElement> container = HTMLDivElement::create(elemen t.document()); 37 RefPtrWillBeRawPtr<HTMLDivElement> container = HTMLDivElement::create(elemen t.document());
38 root.appendChild(container); 38 root.appendChild(container);
39 container->setAttribute(idAttr, AtomicString("alttext-container", AtomicStri ng::ConstructFromLiteral)); 39 container->setAttribute(idAttr, AtomicString("alttext-container"));
40 container->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden); 40 container->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden);
41 container->setInlineStyleProperty(CSSPropertyBorderWidth, 1, CSSPrimitiveVal ue::UnitType::Pixels); 41 container->setInlineStyleProperty(CSSPropertyBorderWidth, 1, CSSPrimitiveVal ue::UnitType::Pixels);
42 container->setInlineStyleProperty(CSSPropertyBorderStyle, CSSValueSolid); 42 container->setInlineStyleProperty(CSSPropertyBorderStyle, CSSValueSolid);
43 container->setInlineStyleProperty(CSSPropertyBorderColor, CSSValueSilver); 43 container->setInlineStyleProperty(CSSPropertyBorderColor, CSSValueSilver);
44 container->setInlineStyleProperty(CSSPropertyDisplay, CSSValueInlineBlock); 44 container->setInlineStyleProperty(CSSPropertyDisplay, CSSValueInlineBlock);
45 container->setInlineStyleProperty(CSSPropertyBoxSizing, CSSValueBorderBox); 45 container->setInlineStyleProperty(CSSPropertyBoxSizing, CSSValueBorderBox);
46 container->setInlineStyleProperty(CSSPropertyPadding, 1, CSSPrimitiveValue:: UnitType::Pixels); 46 container->setInlineStyleProperty(CSSPropertyPadding, 1, CSSPrimitiveValue:: UnitType::Pixels);
47 47
48 RefPtrWillBeRawPtr<HTMLImageElement> brokenImage = HTMLImageElement::create( element.document()); 48 RefPtrWillBeRawPtr<HTMLImageElement> brokenImage = HTMLImageElement::create( element.document());
49 container->appendChild(brokenImage); 49 container->appendChild(brokenImage);
50 brokenImage->setIsFallbackImage(); 50 brokenImage->setIsFallbackImage();
51 brokenImage->setAttribute(idAttr, AtomicString("alttext-image", AtomicString ::ConstructFromLiteral)); 51 brokenImage->setAttribute(idAttr, AtomicString("alttext-image"));
52 brokenImage->setAttribute(widthAttr, AtomicString("16", AtomicString::Constr uctFromLiteral)); 52 brokenImage->setAttribute(widthAttr, AtomicString("16"));
53 brokenImage->setAttribute(heightAttr, AtomicString("16", AtomicString::Const ructFromLiteral)); 53 brokenImage->setAttribute(heightAttr, AtomicString("16"));
54 brokenImage->setAttribute(alignAttr, AtomicString("left", AtomicString::Cons tructFromLiteral)); 54 brokenImage->setAttribute(alignAttr, AtomicString("left"));
55 brokenImage->setInlineStyleProperty(CSSPropertyMargin, 0, CSSPrimitiveValue: :UnitType::Pixels); 55 brokenImage->setInlineStyleProperty(CSSPropertyMargin, 0, CSSPrimitiveValue: :UnitType::Pixels);
56 56
57 RefPtrWillBeRawPtr<HTMLDivElement> altText = HTMLDivElement::create(element. document()); 57 RefPtrWillBeRawPtr<HTMLDivElement> altText = HTMLDivElement::create(element. document());
58 container->appendChild(altText); 58 container->appendChild(altText);
59 altText->setAttribute(idAttr, AtomicString("alttext", AtomicString::Construc tFromLiteral)); 59 altText->setAttribute(idAttr, AtomicString("alttext"));
60 altText->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden); 60 altText->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden);
61 altText->setInlineStyleProperty(CSSPropertyDisplay, CSSValueBlock); 61 altText->setInlineStyleProperty(CSSPropertyDisplay, CSSValueBlock);
62 62
63 RefPtrWillBeRawPtr<Text> text = Text::create(element.document(), toHTMLEleme nt(element).altText()); 63 RefPtrWillBeRawPtr<Text> text = Text::create(element.document(), toHTMLEleme nt(element).altText());
64 altText->appendChild(text); 64 altText->appendChild(text);
65 } 65 }
66 66
67 PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::customStyleForAltText(Element & element, PassRefPtr<ComputedStyle> newStyle) 67 PassRefPtr<ComputedStyle> HTMLImageFallbackHelper::customStyleForAltText(Element & element, PassRefPtr<ComputedStyle> newStyle)
68 { 68 {
69 // If we have an author shadow root or have not created the UA shadow root y et, bail early. We can't 69 // If we have an author shadow root or have not created the UA shadow root y et, bail early. We can't
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 // This preserves legacy behaviour originally defined when alt-text was mana ged by LayoutImage. 105 // This preserves legacy behaviour originally defined when alt-text was mana ged by LayoutImage.
106 if (noImageSourceSpecified(element)) 106 if (noImageSourceSpecified(element))
107 brokenImage->setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone); 107 brokenImage->setInlineStyleProperty(CSSPropertyDisplay, CSSValueNone);
108 else 108 else
109 brokenImage->setInlineStyleProperty(CSSPropertyDisplay, CSSValueInline); 109 brokenImage->setInlineStyleProperty(CSSPropertyDisplay, CSSValueInline);
110 110
111 return newStyle; 111 return newStyle;
112 } 112 }
113 113
114 } // namespace blink 114 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698