<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[192290] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/192290">192290</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2015-11-10 20:21:36 -0800 (Tue, 10 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move locale information into FontDescription
https://bugs.webkit.org/show_bug.cgi?id=147457

Reviewed by Andreas Kling.

Currently, the &quot;lang&quot; attribute on a node sets locale information in RenderStyle.
Font selection is sensitive to this locale information, and occurs deep within
platform/ code, far away from RenderStyle. Because every RenderStyle owns a
FontDescription, and font selection can consult with FontDescriptions, it makes
sense to move the variable from RenderStyle to FontDescription, and provide
convenience methods on RenderStyle which inspect its FontDescription for locale
information.

This patch is in preparation for correctly obeying locale information when
performing font fallback.

No new tests because there is no behavior change.

* css/CSSPropertyNames.in:
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueWebkitLocale):
* platform/graphics/FontCache.h:
* platform/graphics/FontDescription.cpp:
(WebCore::FontDescription::setLocale):
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::locale):
(WebCore::FontDescription::operator==):
(WebCore::FontCascadeDescription::initialLocale):
(WebCore::FontDescription::setScript): Deleted.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout): Deleted.
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Deleted.
(WebCore::StyleRareInheritedData::operator==): Deleted.
* rendering/style/StyleRareInheritedData.h:
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderCustomh">trunk/Source/WebCore/css/StyleBuilderCustom.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCacheh">trunk/Source/WebCore/platform/graphics/FontCache.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontDescriptioncpp">trunk/Source/WebCore/platform/graphics/FontDescription.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontDescriptionh">trunk/Source/WebCore/platform/graphics/FontDescription.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareInheritedDatacpp">trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleStyleRareInheritedDatah">trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h</a></li>
<li><a href="#trunkSourceWebCorestyleStyleResolveForDocumentcpp">trunk/Source/WebCore/style/StyleResolveForDocument.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/ChangeLog        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2015-11-10  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Move locale information into FontDescription
+        https://bugs.webkit.org/show_bug.cgi?id=147457
+
+        Reviewed by Andreas Kling.
+
+        Currently, the &quot;lang&quot; attribute on a node sets locale information in RenderStyle.
+        Font selection is sensitive to this locale information, and occurs deep within
+        platform/ code, far away from RenderStyle. Because every RenderStyle owns a
+        FontDescription, and font selection can consult with FontDescriptions, it makes
+        sense to move the variable from RenderStyle to FontDescription, and provide
+        convenience methods on RenderStyle which inspect its FontDescription for locale
+        information.
+
+        This patch is in preparation for correctly obeying locale information when
+        performing font fallback.
+
+        No new tests because there is no behavior change.
+
+        * css/CSSPropertyNames.in:
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueWebkitLocale):
+        * platform/graphics/FontCache.h:
+        * platform/graphics/FontDescription.cpp:
+        (WebCore::FontDescription::setLocale):
+        * platform/graphics/FontDescription.h:
+        (WebCore::FontDescription::locale):
+        (WebCore::FontDescription::operator==):
+        (WebCore::FontCascadeDescription::initialLocale):
+        (WebCore::FontDescription::setScript): Deleted.
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::changeRequiresLayout): Deleted.
+        * rendering/style/RenderStyle.h:
+        * rendering/style/StyleRareInheritedData.cpp:
+        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Deleted.
+        (WebCore::StyleRareInheritedData::operator==): Deleted.
+        * rendering/style/StyleRareInheritedData.h:
+        * style/StyleResolveForDocument.cpp:
+        (WebCore::Style::resolveForDocument):
+
</ins><span class="cx"> 2015-11-10  Gyuyoung Kim  &lt;gyuyoung.kim@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Support an applicationVersion argument to UserAgentEfl::standardUserAgent() 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> font-variant-numeric [Inherited, FontProperty, NameForMethods=VariantNumeric, Custom=All]
</span><span class="cx"> font-variant-alternates [Inherited, FontProperty, NameForMethods=VariantAlternates]
</span><span class="cx"> font-variant-east-asian [Inherited, FontProperty, NameForMethods=VariantEastAsian, Custom=All]
</span><del>--webkit-locale [Inherited, Custom=Value]
</del><ins>+-webkit-locale [Inherited, FontProperty, Custom=Value]
</ins><span class="cx"> -webkit-text-orientation [Inherited, Custom=Value]
</span><span class="cx"> -epub-text-orientation = -webkit-text-orientation
</span><span class="cx"> #if defined(ENABLE_IOS_TEXT_AUTOSIZING) &amp;&amp; ENABLE_IOS_TEXT_AUTOSIZING
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -41,7 +41,6 @@
</span><span class="cx"> #include &quot;FontVariantBuilder.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;HTMLElement.h&quot;
</span><del>-#include &quot;LocaleToScriptMapping.h&quot;
</del><span class="cx"> #include &quot;Rect.h&quot;
</span><span class="cx"> #include &quot;RenderTheme.h&quot;
</span><span class="cx"> #include &quot;SVGElement.h&quot;
</span><span class="lines">@@ -696,13 +695,12 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueWebkitLocale(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
</span><del>-    if (primitiveValue.getValueID() == CSSValueAuto)
-        styleResolver.style()-&gt;setLocale(nullAtom);
-    else
-        styleResolver.style()-&gt;setLocale(primitiveValue.getStringValue());
</del><span class="cx"> 
</span><span class="cx">     FontCascadeDescription fontDescription = styleResolver.style()-&gt;fontDescription();
</span><del>-    fontDescription.setScript(localeToScriptCodeForFontSelection(styleResolver.style()-&gt;locale()));
</del><ins>+    if (primitiveValue.getValueID() == CSSValueAuto)
+        fontDescription.setLocale(nullAtom);
+    else
+        fontDescription.setLocale(primitiveValue.getStringValue());
</ins><span class="cx">     styleResolver.setFontDescription(fontDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCache.h (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCache.h        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/platform/graphics/FontCache.h        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -139,6 +139,7 @@
</span><span class="cx"> 
</span><span class="cx">     static const unsigned cHashTableDeletedSize = 0xFFFFFFFFU;
</span><span class="cx"> 
</span><ins>+    // FontCascade::locale() is explicitly not included in this struct.
</ins><span class="cx">     unsigned m_size { 0 };
</span><span class="cx">     unsigned m_weight { 0 };
</span><span class="cx">     std::array&lt;unsigned, 2&gt; m_flags {{ 0, 0 }};
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontDescriptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontDescription.cpp (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontDescription.cpp        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/platform/graphics/FontDescription.cpp        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -30,10 +30,13 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;FontDescription.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;LocaleToScriptMapping.h&quot;
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> struct SameSizeAsFontCascadeDescription {
</span><span class="cx">     Vector&lt;void*&gt; vector;
</span><ins>+    AtomicString string;
</ins><span class="cx">     float size;
</span><span class="cx">     unsigned bitfields1;
</span><span class="cx">     unsigned bitfields2 : 22;
</span><span class="lines">@@ -81,6 +84,12 @@
</span><span class="cx">     
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void FontDescription::setLocale(const AtomicString&amp; locale)
+{
+    m_locale = locale;
+    m_script = localeToScriptCodeForFontSelection(m_locale);
+}
+
</ins><span class="cx"> FontCascadeDescription::FontCascadeDescription()
</span><span class="cx">     : m_isAbsoluteSize(false)
</span><span class="cx">     , m_kerning(static_cast&lt;unsigned&gt;(Kerning::Auto))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontDescriptionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontDescription.h (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontDescription.h        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/platform/graphics/FontDescription.h        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -55,6 +55,7 @@
</span><span class="cx">     FontRenderingMode renderingMode() const { return static_cast&lt;FontRenderingMode&gt;(m_renderingMode); }
</span><span class="cx">     TextRenderingMode textRenderingMode() const { return static_cast&lt;TextRenderingMode&gt;(m_textRendering); }
</span><span class="cx">     UScriptCode script() const { return static_cast&lt;UScriptCode&gt;(m_script); }
</span><ins>+    const AtomicString&amp; locale() const { return m_locale; }
</ins><span class="cx"> 
</span><span class="cx">     FontOrientation orientation() const { return static_cast&lt;FontOrientation&gt;(m_orientation); }
</span><span class="cx">     NonCJKGlyphOrientation nonCJKGlyphOrientation() const { return static_cast&lt;NonCJKGlyphOrientation&gt;(m_nonCJKGlyphOrientation); }
</span><span class="lines">@@ -106,7 +107,7 @@
</span><span class="cx">     void setOrientation(FontOrientation orientation) { m_orientation = orientation; }
</span><span class="cx">     void setNonCJKGlyphOrientation(NonCJKGlyphOrientation orientation) { m_nonCJKGlyphOrientation = static_cast&lt;unsigned&gt;(orientation); }
</span><span class="cx">     void setWidthVariant(FontWidthVariant widthVariant) { m_widthVariant = widthVariant; } // Make sure new callers of this sync with FontPlatformData::isForTextCombine()!
</span><del>-    void setScript(UScriptCode s) { m_script = s; }
</del><ins>+    void setLocale(const AtomicString&amp;);
</ins><span class="cx">     void setFeatureSettings(FontFeatureSettings&amp;&amp; settings) { m_featureSettings = WTF::move(settings); }
</span><span class="cx">     void setFontSynthesis(FontSynthesis fontSynthesis) { m_fontSynthesis = fontSynthesis; }
</span><span class="cx">     void setVariantCommonLigatures(FontVariantLigatures variant) { m_variantCommonLigatures = static_cast&lt;unsigned&gt;(variant); }
</span><span class="lines">@@ -129,6 +130,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     FontFeatureSettings m_featureSettings;
</span><ins>+    AtomicString m_locale;
</ins><span class="cx"> 
</span><span class="cx">     float m_computedSize { 0 }; // Computed size adjusted for the minimum font size and the zoom factor.
</span><span class="cx">     unsigned m_orientation : 1; // FontOrientation - Whether the font is rendering on a horizontal line or a vertical line.
</span><span class="lines">@@ -169,7 +171,7 @@
</span><span class="cx">         &amp;&amp; m_orientation == other.m_orientation
</span><span class="cx">         &amp;&amp; m_nonCJKGlyphOrientation == other.m_nonCJKGlyphOrientation
</span><span class="cx">         &amp;&amp; m_widthVariant == other.m_widthVariant
</span><del>-        &amp;&amp; m_script == other.m_script
</del><ins>+        &amp;&amp; m_locale == other.m_locale
</ins><span class="cx">         &amp;&amp; m_featureSettings == other.m_featureSettings
</span><span class="cx">         &amp;&amp; m_fontSynthesis == other.m_fontSynthesis
</span><span class="cx">         &amp;&amp; m_variantCommonLigatures == other.m_variantCommonLigatures
</span><span class="lines">@@ -264,6 +266,7 @@
</span><span class="cx">     static FontVariantPosition initialVariantPosition() { return FontVariantPosition::Normal; }
</span><span class="cx">     static FontVariantCaps initialVariantCaps() { return FontVariantCaps::Normal; }
</span><span class="cx">     static FontVariantAlternates initialVariantAlternates() { return FontVariantAlternates::Normal; }
</span><ins>+    static const AtomicString&amp; initialLocale() { return nullAtom; }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RefCountedArray&lt;AtomicString&gt; m_families { 1 };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -595,7 +595,6 @@
</span><span class="cx">             || rareInheritedData-&gt;hyphenationLimitBefore != other.rareInheritedData-&gt;hyphenationLimitBefore
</span><span class="cx">             || rareInheritedData-&gt;hyphenationLimitAfter != other.rareInheritedData-&gt;hyphenationLimitAfter
</span><span class="cx">             || rareInheritedData-&gt;hyphenationString != other.rareInheritedData-&gt;hyphenationString
</span><del>-            || rareInheritedData-&gt;locale != other.rareInheritedData-&gt;locale
</del><span class="cx">             || rareInheritedData-&gt;m_rubyPosition != other.rareInheritedData-&gt;m_rubyPosition
</span><span class="cx">             || rareInheritedData-&gt;textEmphasisMark != other.rareInheritedData-&gt;textEmphasisMark
</span><span class="cx">             || rareInheritedData-&gt;textEmphasisPosition != other.rareInheritedData-&gt;textEmphasisPosition
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -1007,7 +1007,7 @@
</span><span class="cx">     short hyphenationLimitAfter() const { return rareInheritedData-&gt;hyphenationLimitAfter; }
</span><span class="cx">     short hyphenationLimitLines() const { return rareInheritedData-&gt;hyphenationLimitLines; }
</span><span class="cx">     const AtomicString&amp; hyphenationString() const { return rareInheritedData-&gt;hyphenationString; }
</span><del>-    const AtomicString&amp; locale() const { return rareInheritedData-&gt;locale; }
</del><ins>+    const AtomicString&amp; locale() const { return fontDescription().locale(); }
</ins><span class="cx">     EBorderFit borderFit() const { return static_cast&lt;EBorderFit&gt;(rareNonInheritedData-&gt;m_borderFit); }
</span><span class="cx">     EResize resize() const { return static_cast&lt;EResize&gt;(rareInheritedData-&gt;resize); }
</span><span class="cx">     ColumnAxis columnAxis() const { return static_cast&lt;ColumnAxis&gt;(rareNonInheritedData-&gt;m_multiCol-&gt;m_axis); }
</span><span class="lines">@@ -1588,7 +1588,6 @@
</span><span class="cx">     void setHyphenationLimitAfter(short limit) { SET_VAR(rareInheritedData, hyphenationLimitAfter, limit); }
</span><span class="cx">     void setHyphenationLimitLines(short limit) { SET_VAR(rareInheritedData, hyphenationLimitLines, limit); }
</span><span class="cx">     void setHyphenationString(const AtomicString&amp; h) { SET_VAR(rareInheritedData, hyphenationString, h); }
</span><del>-    void setLocale(const AtomicString&amp; locale) { SET_VAR(rareInheritedData, locale, locale); }
</del><span class="cx">     void setBorderFit(EBorderFit b) { SET_VAR(rareNonInheritedData, m_borderFit, b); }
</span><span class="cx">     void setResize(EResize r) { SET_VAR(rareInheritedData, resize, r); }
</span><span class="cx">     void setColumnAxis(ColumnAxis axis) { SET_VAR(rareNonInheritedData.access()-&gt;m_multiCol, m_axis, axis); }
</span><span class="lines">@@ -1997,7 +1996,6 @@
</span><span class="cx">     static short initialHyphenationLimitAfter() { return -1; }
</span><span class="cx">     static short initialHyphenationLimitLines() { return -1; }
</span><span class="cx">     static const AtomicString&amp; initialHyphenationString() { return nullAtom; }
</span><del>-    static const AtomicString&amp; initialLocale() { return nullAtom; }
</del><span class="cx">     static EBorderFit initialBorderFit() { return BorderFitBorder; }
</span><span class="cx">     static EResize initialResize() { return RESIZE_NONE; }
</span><span class="cx">     static ControlPart initialAppearance() { return NoControlPart; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareInheritedDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -211,7 +211,6 @@
</span><span class="cx">     , hyphenationLimitBefore(o.hyphenationLimitBefore)
</span><span class="cx">     , hyphenationLimitAfter(o.hyphenationLimitAfter)
</span><span class="cx">     , hyphenationLimitLines(o.hyphenationLimitLines)
</span><del>-    , locale(o.locale)
</del><span class="cx">     , textEmphasisCustomMark(o.textEmphasisCustomMark)
</span><span class="cx">     , m_lineGrid(o.m_lineGrid)
</span><span class="cx">     , m_tabSize(o.m_tabSize)
</span><span class="lines">@@ -288,7 +287,6 @@
</span><span class="cx">         &amp;&amp; touchCalloutEnabled == o.touchCalloutEnabled
</span><span class="cx"> #endif
</span><span class="cx">         &amp;&amp; hyphenationString == o.hyphenationString
</span><del>-        &amp;&amp; locale == o.locale
</del><span class="cx">         &amp;&amp; textEmphasisCustomMark == o.textEmphasisCustomMark
</span><span class="cx">         &amp;&amp; arePointingToEqualData(quotes, o.quotes)
</span><span class="cx">         &amp;&amp; m_tabSize == o.m_tabSize
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleStyleRareInheritedDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -142,8 +142,6 @@
</span><span class="cx">     short hyphenationLimitAfter;
</span><span class="cx">     short hyphenationLimitLines;
</span><span class="cx"> 
</span><del>-    AtomicString locale;
-
</del><span class="cx">     AtomicString textEmphasisCustomMark;
</span><span class="cx">     RefPtr&lt;QuotesData&gt; quotes;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleResolveForDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleResolveForDocument.cpp (192289 => 192290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleResolveForDocument.cpp        2015-11-11 04:01:47 UTC (rev 192289)
+++ trunk/Source/WebCore/style/StyleResolveForDocument.cpp        2015-11-11 04:21:36 UTC (rev 192290)
</span><span class="lines">@@ -59,7 +59,9 @@
</span><span class="cx">     documentStyle.get().setRTLOrdering(document.visuallyOrdered() ? VisualOrder : LogicalOrder);
</span><span class="cx">     documentStyle.get().setZoom(!document.printing() ? renderView.frame().pageZoomFactor() : 1);
</span><span class="cx">     documentStyle.get().setPageScaleTransform(renderView.frame().frameScaleFactor());
</span><del>-    documentStyle.get().setLocale(document.contentLanguage());
</del><ins>+    FontCascadeDescription documentFontDescription = documentStyle.get().fontDescription();
+    documentFontDescription.setLocale(document.contentLanguage());
+    documentStyle.get().setFontDescription(WTF::move(documentFontDescription));
</ins><span class="cx"> 
</span><span class="cx">     // This overrides any -webkit-user-modify inherited from the parent iframe.
</span><span class="cx">     documentStyle.get().setUserModify(document.inDesignMode() ? READ_WRITE : READ_ONLY);
</span><span class="lines">@@ -97,7 +99,7 @@
</span><span class="cx">     const Settings&amp; settings = renderView.frame().settings();
</span><span class="cx"> 
</span><span class="cx">     FontCascadeDescription fontDescription;
</span><del>-    fontDescription.setScript(localeToScriptCodeForFontSelection(documentStyle.get().locale()));
</del><ins>+    fontDescription.setLocale(document.contentLanguage());
</ins><span class="cx">     fontDescription.setRenderingMode(settings.fontRenderingMode());
</span><span class="cx">     fontDescription.setOneFamily(standardFamily);
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>