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

Unified Diff: Source/core/html/HTMLElement.cpp

Issue 1237143003: bdo (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « Source/core/css/html.css ('k') | Source/core/html/shadow/DateTimeEditElement.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/HTMLElement.cpp
diff --git a/Source/core/html/HTMLElement.cpp b/Source/core/html/HTMLElement.cpp
index caaa841c4bb77df756c18502b7648f7422e9eace..b781220e9c845537e5dcddc18a74e38e5940ecdb 100644
--- a/Source/core/html/HTMLElement.cpp
+++ b/Source/core/html/HTMLElement.cpp
@@ -184,6 +184,62 @@ static inline bool isValidDirAttribute(const AtomicString& value)
return equalIgnoringCase(value, "auto") || equalIgnoringCase(value, "ltr") || equalIgnoringCase(value, "rtl");
}
+static bool shouldUseUnicodeBidiEmbed(const Element* element)
+{
+ if (element->hasTagName(bdoTag)
+ || element->hasTagName(addressTag)
+ || element->hasTagName(blockquoteTag)
+ || element->hasTagName(centerTag)
+ || element->hasTagName(divTag)
+ || element->hasTagName(figureTag)
+ || element->hasTagName(figcaptionTag)
+ || element->hasTagName(footerTag)
+ || element->hasTagName(formTag)
+ || element->hasTagName(headerTag)
+ || element->hasTagName(hrTag)
+ || element->hasTagName(legendTag)
+ || element->hasTagName(listingTag)
+ || element->hasTagName(pTag)
+ || element->hasTagName(plaintextTag)
+ || element->hasTagName(preTag)
+ || element->hasTagName(summaryTag)
+ || element->hasTagName(xmpTag)
+ || element->hasTagName(articleTag)
+ || element->hasTagName(asideTag)
+ || element->hasTagName(h1Tag)
+ || element->hasTagName(h2Tag)
+ || element->hasTagName(h3Tag)
+ || element->hasTagName(h4Tag)
+ || element->hasTagName(h5Tag)
+ || element->hasTagName(h6Tag)
+ || element->hasTagName(hgroupTag)
+ || element->hasTagName(mainTag)
+ || element->hasTagName(navTag)
+ || element->hasTagName(sectionTag)
+ || element->hasTagName(tableTag)
+ || element->hasTagName(captionTag)
+ || element->hasTagName(colgroupTag)
+ || element->hasTagName(colTag)
+ || element->hasTagName(theadTag)
+ || element->hasTagName(tbodyTag)
+ || element->hasTagName(tfootTag)
+ || element->hasTagName(trTag)
+ || element->hasTagName(tdTag)
+ || element->hasTagName(thTag)
+ || element->hasTagName(dirTag)
+ || element->hasTagName(ddTag)
+ || element->hasTagName(dlTag)
+ || element->hasTagName(dtTag)
+ || element->hasTagName(menuTag)
+ || element->hasTagName(olTag)
+ || element->hasTagName(ulTag)
+ || element->hasTagName(liTag)
+ || element->hasTagName(bdiTag)
+ || element->hasTagName(outputTag))
+ return false;
+ return true;
+}
+
void HTMLElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style)
{
if (name == alignAttr) {
@@ -220,7 +276,7 @@ void HTMLElement::collectStyleForPresentationAttribute(const QualifiedName& name
addPropertyToPresentationAttributeStyle(style, CSSPropertyDirection, value);
else
addPropertyToPresentationAttributeStyle(style, CSSPropertyDirection, "ltr");
- if (!hasTagName(bdiTag) && !hasTagName(bdoTag) && !hasTagName(outputTag))
+ if (shouldUseUnicodeBidiEmbed(this))
addPropertyToPresentationAttributeStyle(style, CSSPropertyUnicodeBidi, CSSValueEmbed);
}
} else if (name.matches(XMLNames::langAttr)) {
« no previous file with comments | « Source/core/css/html.css ('k') | Source/core/html/shadow/DateTimeEditElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698