<!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>[195180] trunk</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/195180">195180</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2016-01-16 20:54:32 -0800 (Sat, 16 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove TextRun::allowsRoundingHacks()
https://bugs.webkit.org/show_bug.cgi?id=153185

Reviewed by Simon Fraser.

Source/WebCore:

Rounding hacks are disallowed by default, and are only re-enabled on iOS 4 and
earlier, which are not supported OSes. Because they are disallowed on all
supported configurations, remove support for them wholesale.

No new tests.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* platform/graphics/FontCascade.cpp:
* platform/graphics/FontCascade.h:
(WebCore::FontCascade::isRoundingHackCharacter): Deleted.
* platform/graphics/StringTruncator.cpp:
(WebCore::stringWidth):
(WebCore::truncateString):
(WebCore::StringTruncator::centerTruncate):
(WebCore::StringTruncator::rightTruncate):
(WebCore::StringTruncator::width):
(WebCore::StringTruncator::leftTruncate):
(WebCore::StringTruncator::rightClipToCharacter):
(WebCore::StringTruncator::rightClipToWord):
* platform/graphics/StringTruncator.h:
* platform/graphics/TextRun.cpp:
(WebCore::TextRun::setAllowsRoundingHacks): Deleted.
(WebCore::TextRun::allowsRoundingHacks): Deleted.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::applyRunRounding): Deleted.
(WebCore::TextRun::applyWordRounding): Deleted.
(WebCore::TextRun::disableRoundingHacks): Deleted.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/mac/DragImageMac.mm:
(WebCore::widthWithFont): Deleted.
(WebCore::drawAtPoint): Deleted.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::fileTextValue):
(WebCore::RenderFileUploadControl::paintObject): Deleted.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::updateFromElement): Deleted.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::getAverageCharWidth): Deleted.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::fileListNameForWidth):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::fileListNameForWidth):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun): Deleted.
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::constructTextRun): Deleted.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Deleted.
(WebCore::Internals::allowRoundingHacks): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit/ios:

* Misc/WebUIKitSupport.mm:
(WebKitInitialize): Deleted.

Source/WebKit/mac:

* Misc/WebKitNSStringExtras.mm:
(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Deleted.
(-[NSString _web_widthWithFont:]): Deleted.
* WebView/WebView.mm:
(+[WebView _setAllowsRoundingHacks:]): Deleted.
(+[WebView _allowsRoundingHacks]): Deleted.
* WebView/WebViewPrivate.h:

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting): Deleted.

LayoutTests:

* platform/mac/fast/text/rounding-hacks-expansion.html: Removed.
* platform/mac/fast/text/rounding-hacks.html: Removed.
* platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png: Removed.
* platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt: Removed.
* platform/mac/platform/mac/fast/text/rounding-hacks-expected.png: Removed.
* platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt: Removed.
* svg/text/svg-font-word-rounding-hacks-spaces-expected.html: Removed.
* svg/text/svg-font-word-rounding-hacks-spaces.html: Removed.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadecpp">trunk/Source/WebCore/platform/graphics/FontCascade.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadeh">trunk/Source/WebCore/platform/graphics/FontCascade.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsStringTruncatorcpp">trunk/Source/WebCore/platform/graphics/StringTruncator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsStringTruncatorh">trunk/Source/WebCore/platform/graphics/StringTruncator.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTextRuncpp">trunk/Source/WebCore/platform/graphics/TextRun.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTextRunh">trunk/Source/WebCore/platform/graphics/TextRun.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsWidthIteratorcpp">trunk/Source/WebCore/platform/graphics/WidthIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp">trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacDragImageMacmm">trunk/Source/WebCore/platform/mac/DragImageMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformwinDragImageWincpp">trunk/Source/WebCore/platform/win/DragImageWin.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinWebCoreTextRenderercpp">trunk/Source/WebCore/platform/win/WebCoreTextRenderer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFileUploadControlcpp">trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListBoxcpp">trunk/Source/WebCore/rendering/RenderListBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlcpp">trunk/Source/WebCore/rendering/RenderTextControl.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemecpp">trunk/Source/WebCore/rendering/RenderTheme.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeGtkcpp">trunk/Source/WebCore/rendering/RenderThemeGtk.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp">trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricscpp">trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosMiscWebUIKitSupportmm">trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacMiscWebKitNSStringExtrasmm">trunk/Source/WebKit/mac/Misc/WebKitNSStringExtras.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewPrivateh">trunk/Source/WebKit/mac/WebView/WebViewPrivate.h</a></li>
<li><a href="#trunkSourceWebKitwinWebKitGraphicscpp">trunk/Source/WebKit/win/WebKitGraphics.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacfasttextroundinghacksexpansionhtml">trunk/LayoutTests/platform/mac/fast/text/rounding-hacks-expansion.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfasttextroundinghackshtml">trunk/LayoutTests/platform/mac/fast/text/rounding-hacks.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpansionexpectedpng">trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpansionexpectedtxt">trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpectedpng">trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpectedtxt">trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgtextsvgfontwordroundinghacksspacesexpectedhtml">trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces-expected.html</a></li>
<li><a href="#trunkLayoutTestssvgtextsvgfontwordroundinghacksspaceshtml">trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/ChangeLog        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2016-01-16  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Remove TextRun::allowsRoundingHacks()
+        https://bugs.webkit.org/show_bug.cgi?id=153185
+
+        Reviewed by Simon Fraser.
+
+        * platform/mac/fast/text/rounding-hacks-expansion.html: Removed.
+        * platform/mac/fast/text/rounding-hacks.html: Removed.
+        * platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png: Removed.
+        * platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt: Removed.
+        * platform/mac/platform/mac/fast/text/rounding-hacks-expected.png: Removed.
+        * platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt: Removed.
+        * svg/text/svg-font-word-rounding-hacks-spaces-expected.html: Removed.
+        * svg/text/svg-font-word-rounding-hacks-spaces.html: Removed.
+
</ins><span class="cx"> 2016-01-16  Skachkov Oleksandr  &lt;gskachkov@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [ES6] Arrow function syntax. Arrow function should support the destructuring parameters.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasttextroundinghacksexpansionhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/text/rounding-hacks-expansion.html (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/text/rounding-hacks-expansion.html        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/platform/mac/fast/text/rounding-hacks-expansion.html        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;script&gt;
-    if (window.internals)
-        internals.allowRoundingHacks();
-&lt;/script&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
-&lt;div style=&quot;text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;&quot;&gt;Given an opportunity to make a mistake&lt;/div&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasttextroundinghackshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/text/rounding-hacks.html (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/text/rounding-hacks.html        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/platform/mac/fast/text/rounding-hacks.html        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;script&gt;
-    if (window.internals)
-        internals.allowRoundingHacks();
-&lt;/script&gt;
-&lt;div style=&quot;font-family: 'lucida grande'; font-size: 22px;&quot;&gt;
-    Lorem ipsum dolor sit amet,  consectetur adipiscing elit. Praesent
-    ullamcorper accumsan hendrerit. Phasellus  bibendum fringilla
-    sollicitudin. Donec blandit rutrum neque eget euismod.  Nullam nec
-    felis turpis, vitae tempor enim. Aenean venenatis blandit dui
-    vel ultrices. Donec porta nunc ut nibh  adipiscing id suscipit
-&lt;/div&gt;
-&lt;div style=&quot;font-family: 'lucida grande'; font-size: 18px;&quot;&gt;
-    dolor facilisis. Vestibulum vitae enim vitae dolor  sollicitudin
-    imperdiet sit amet ac tortor. Quisque egestas adipiscing volutpat.
-    Proin eu nibh eros, quis luctus urna. Sed tincidunt iaculis  tempor.
-    Vestibulum dapibus lorem sit amet libero
-    pharetra at sodales nisi pulvinar. Morbi eu risus lectus,  id scelerisque
-    neque. Aenean eget mauris nulla. Nunc egestas elit nec lorem fermentum
-    mattis. Sed adipiscing metus nec diam congue at ornare sapien faucibus.
-    Vestibulum varius tempor quam sed malesuada.  Sed vitae quam nulla.
-&lt;/div&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpansionexpectedpng"></a>
<div class="binary"><h4>Deleted: trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpansionexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-layer at (0,0) size 800x600
-  RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
-  RenderBlock {HTML} at (0,0) size 800x600
-    RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,42) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,84) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,126) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,168) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,210) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,252) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,294) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,336) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,378) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,420) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,462) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
-      RenderBlock {DIV} at (0,504) size 306x42 [border: (3px solid #00FFFF)]
-        RenderText {#text} at (3,3) size 300x36
-          text run at (3,3) width 300: &quot;Given an opportunity to make a&quot;
-          text run at (3,21) width 61: &quot;mistake&quot;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpectedpng"></a>
<div class="binary"><h4>Deleted: trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacplatformmacfasttextroundinghacksexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-layer at (0,0) size 800x600
-  RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
-  RenderBlock {HTML} at (0,0) size 800x600
-    RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock {DIV} at (0,0) size 784x130
-        RenderText {#text} at (0,0) size 777x130
-          text run at (0,0) width 313: &quot;Lorem ipsum dolor sit amet, &quot;
-          text run at (313,0) width 387: &quot;consectetur adipiscing elit. Praesent&quot;
-          text run at (0,26) width 468: &quot;ullamcorper accumsan hendrerit. Phasellus &quot;
-          text run at (468,26) width 199: &quot;bibendum fringilla&quot;
-          text run at (0,52) width 604: &quot;sollicitudin. Donec blandit rutrum neque eget euismod. &quot;
-          text run at (604,52) width 128: &quot;Nullam nec &quot;
-          text run at (732,52) width 45: &quot;felis&quot;
-          text run at (0,78) width 606: &quot;turpis, vitae tempor enim. Aenean venenatis blandit dui &quot;
-          text run at (606,78) width 124: &quot;vel ultrices.&quot;
-          text run at (0,104) width 283: &quot;Donec porta nunc ut nibh &quot;
-          text run at (283,104) width 227: &quot;adipiscing id suscipit&quot;
-      RenderBlock {DIV} at (0,130) size 784x147
-        RenderText {#text} at (0,0) size 766x147
-          text run at (0,0) width 434: &quot;dolor facilisis. Vestibulum vitae enim vitae dolor &quot;
-          text run at (434,0) width 102: &quot;sollicitudin &quot;
-          text run at (536,0) width 189: &quot;imperdiet sit amet ac&quot;
-          text run at (0,21) width 394: &quot;tortor. Quisque egestas adipiscing volutpat. &quot;
-          text run at (394,21) width 360: &quot;Proin eu nibh eros, quis luctus urna. Sed&quot;
-          text run at (0,42) width 146: &quot;tincidunt iaculis &quot;
-          text run at (146,42) width 76: &quot;tempor. &quot;
-          text run at (222,42) width 373: &quot;Vestibulum dapibus lorem sit amet libero &quot;
-          text run at (595,42) width 169: &quot;pharetra at sodales&quot;
-          text run at (0,63) width 318: &quot;nisi pulvinar. Morbi eu risus lectus, &quot;
-          text run at (318,63) width 127: &quot;id scelerisque &quot;
-          text run at (445,63) width 297: &quot;neque. Aenean eget mauris nulla.&quot;
-          text run at (0,84) width 355: &quot;Nunc egestas elit nec lorem fermentum &quot;
-          text run at (355,84) width 411: &quot;mattis. Sed adipiscing metus nec diam congue&quot;
-          text run at (0,105) width 235: &quot;at ornare sapien faucibus. &quot;
-          text run at (235,105) width 433: &quot;Vestibulum varius tempor quam sed malesuada. &quot;
-          text run at (668,105) width 80: &quot;Sed vitae&quot;
-          text run at (0,126) width 105: &quot;quam nulla.&quot;
</del></span></pre></div>
<a id="trunkLayoutTestssvgtextsvgfontwordroundinghacksspacesexpectedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces-expected.html (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces-expected.html        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces-expected.html        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,24 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.blackbox {
-    display: inline-block;
-    width: 14px;
-    height: 21px;
-    background: black;
-}
-.whitebox {
-    display: inline-block;
-    width: 14px;
-    height: 21px;
-    background: white;
-}
-&lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;div style=&quot;display: none;&quot;&gt;This test makes sure that text drawn with an SVG font with word-wrapping hacks has spaces.
-The test is successful if the space between the two boxes below is the same as the width of each of the boxes.&lt;/div&gt;
-&lt;div&gt;&lt;div class=&quot;blackbox&quot;&gt;&lt;/div&gt;&lt;div class=&quot;whitebox&quot;&gt;&lt;/div&gt;&lt;div class=&quot;blackbox&quot;&gt;&lt;/div&gt;&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgtextsvgfontwordroundinghacksspaceshtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces.html (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces.html        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/LayoutTests/svg/text/svg-font-word-rounding-hacks-spaces.html        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,20 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-@font-face {
-    font-family: 'Litherum';
-    src: url(&quot;resources/Litherum.svg&quot;) format(svg)
-}
-&lt;/style&gt;
-&lt;script&gt;
-if (window.internals)
-    window.internals.allowRoundingHacks();
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;div style=&quot;display: none;&quot;&gt;This test makes sure that text drawn with an SVG font with word-wrapping hacks has spaces.
-The test is successful if the space between the two boxes below is the same as the width of each of the boxes.&lt;/div&gt;
-&lt;div style=&quot;font: 14px Litherum;&quot;&gt;a a&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/ChangeLog        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,3 +1,68 @@
</span><ins>+2016-01-16  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Remove TextRun::allowsRoundingHacks()
+        https://bugs.webkit.org/show_bug.cgi?id=153185
+
+        Reviewed by Simon Fraser.
+
+        Rounding hacks are disallowed by default, and are only re-enabled on iOS 4 and
+        earlier, which are not supported OSes. Because they are disallowed on all
+        supported configurations, remove support for them wholesale.
+
+        No new tests.
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::drawTextInternal):
+        * platform/graphics/FontCascade.cpp:
+        * platform/graphics/FontCascade.h:
+        (WebCore::FontCascade::isRoundingHackCharacter): Deleted.
+        * platform/graphics/StringTruncator.cpp:
+        (WebCore::stringWidth):
+        (WebCore::truncateString):
+        (WebCore::StringTruncator::centerTruncate):
+        (WebCore::StringTruncator::rightTruncate):
+        (WebCore::StringTruncator::width):
+        (WebCore::StringTruncator::leftTruncate):
+        (WebCore::StringTruncator::rightClipToCharacter):
+        (WebCore::StringTruncator::rightClipToWord):
+        * platform/graphics/StringTruncator.h:
+        * platform/graphics/TextRun.cpp:
+        (WebCore::TextRun::setAllowsRoundingHacks): Deleted.
+        (WebCore::TextRun::allowsRoundingHacks): Deleted.
+        * platform/graphics/TextRun.h:
+        (WebCore::TextRun::TextRun):
+        (WebCore::TextRun::applyRunRounding): Deleted.
+        (WebCore::TextRun::applyWordRounding): Deleted.
+        (WebCore::TextRun::disableRoundingHacks): Deleted.
+        * platform/graphics/WidthIterator.cpp:
+        (WebCore::WidthIterator::advanceInternal):
+        * platform/graphics/mac/ComplexTextController.cpp:
+        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
+        * platform/mac/DragImageMac.mm:
+        (WebCore::widthWithFont): Deleted.
+        (WebCore::drawAtPoint): Deleted.
+        * rendering/RenderFileUploadControl.cpp:
+        (WebCore::RenderFileUploadControl::fileTextValue):
+        (WebCore::RenderFileUploadControl::paintObject): Deleted.
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::paintItemForeground):
+        (WebCore::RenderListBox::updateFromElement): Deleted.
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::getAverageCharWidth): Deleted.
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::fileListNameForWidth):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::fileListNameForWidth):
+        * rendering/svg/SVGInlineTextBox.cpp:
+        (WebCore::SVGInlineTextBox::constructTextRun): Deleted.
+        * rendering/svg/SVGTextMetrics.cpp:
+        (WebCore::SVGTextMetrics::constructTextRun): Deleted.
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState): Deleted.
+        (WebCore::Internals::allowRoundingHacks): Deleted.
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
</ins><span class="cx"> 2016-01-16  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Allocate style sheet media queries in BumpArena.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -2362,7 +2362,7 @@
</span><span class="cx">     bool isRTL = direction == RTL;
</span><span class="cx">     bool override = computedStyle ? isOverride(computedStyle-&gt;unicodeBidi()) : false;
</span><span class="cx"> 
</span><del>-    TextRun textRun(normalizedText, 0, 0, AllowTrailingExpansion, direction, override, true, TextRun::NoRounding);
</del><ins>+    TextRun textRun(normalizedText, 0, 0, AllowTrailingExpansion, direction, override, true);
</ins><span class="cx">     // Draw the item text at the correct point.
</span><span class="cx">     FloatPoint location(x, y);
</span><span class="cx">     switch (state().textBaseline) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -46,17 +46,6 @@
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;FontCascadeFonts&gt; retrieveOrAddCachedFonts(const FontCascadeDescription&amp;, RefPtr&lt;FontSelector&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-const uint8_t FontCascade::s_roundingHackCharacterTable[256] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 1 /*\t*/, 1 /*\n*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    1 /*space*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 /*-*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 /*?*/,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    1 /*no-break space*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
</del><span class="cx"> static bool isDrawnWithSVGFont(const TextRun&amp; run)
</span><span class="cx"> {
</span><span class="cx">     return run.renderingContext();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascade.h (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/FontCascade.h        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -265,12 +265,6 @@
</span><span class="cx">     static CodePath codePath();
</span><span class="cx">     static CodePath s_codePath;
</span><span class="cx"> 
</span><del>-    static const uint8_t s_roundingHackCharacterTable[256];
-    static bool isRoundingHackCharacter(UChar32 c)
-    {
-        return !(c &amp; ~0xFF) &amp;&amp; s_roundingHackCharacterTable[c];
-    }
-
</del><span class="cx">     FontSelector* fontSelector() const;
</span><span class="cx">     static bool treatAsSpace(UChar c) { return c == ' ' || c == '\t' || c == '\n' || c == noBreakSpace; }
</span><span class="cx">     static bool treatAsZeroWidthSpace(UChar c) { return treatAsZeroWidthSpaceInComplexScript(c) || c == 0x200c || c == 0x200d; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsStringTruncatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/StringTruncator.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/StringTruncator.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/StringTruncator.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -192,15 +192,13 @@
</span><span class="cx">     return length - adjustedStartIndex;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static float stringWidth(const FontCascade&amp; renderer, const UChar* characters, unsigned length, bool disableRoundingHacks)
</del><ins>+static float stringWidth(const FontCascade&amp; renderer, const UChar* characters, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     TextRun run(StringView(characters, length));
</span><del>-    if (disableRoundingHacks)
-        run.disableRoundingHacks();
</del><span class="cx">     return renderer.width(run);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static String truncateString(const String&amp; string, float maxWidth, const FontCascade&amp; font, TruncationFunction truncateToBuffer, bool disableRoundingHacks, float* resultWidth = nullptr, bool shouldInsertEllipsis = true,  float customTruncationElementWidth = 0, bool alwaysTruncate = false)
</del><ins>+static String truncateString(const String&amp; string, float maxWidth, const FontCascade&amp; font, TruncationFunction truncateToBuffer, float* resultWidth = nullptr, bool shouldInsertEllipsis = true,  float customTruncationElementWidth = 0, bool alwaysTruncate = false)
</ins><span class="cx"> {
</span><span class="cx">     if (string.isEmpty())
</span><span class="cx">         return string;
</span><span class="lines">@@ -210,7 +208,7 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(maxWidth &gt;= 0);
</span><span class="cx"> 
</span><del>-    float currentEllipsisWidth = shouldInsertEllipsis ? stringWidth(font, &amp;horizontalEllipsis, 1, disableRoundingHacks) : customTruncationElementWidth;
</del><ins>+    float currentEllipsisWidth = shouldInsertEllipsis ? stringWidth(font, &amp;horizontalEllipsis, 1) : customTruncationElementWidth;
</ins><span class="cx"> 
</span><span class="cx">     UChar stringBuffer[STRING_BUFFER_SIZE];
</span><span class="cx">     unsigned truncatedLength;
</span><span class="lines">@@ -229,7 +227,7 @@
</span><span class="cx">         truncatedLength = length;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    float width = stringWidth(font, stringBuffer, truncatedLength, disableRoundingHacks);
</del><ins>+    float width = stringWidth(font, stringBuffer, truncatedLength);
</ins><span class="cx">     if (!shouldInsertEllipsis &amp;&amp; alwaysTruncate)
</span><span class="cx">         width += customTruncationElementWidth;
</span><span class="cx">     if ((width - maxWidth) &lt; 0.0001) { // Ignore rounding errors.
</span><span class="lines">@@ -269,7 +267,7 @@
</span><span class="cx"> 
</span><span class="cx">         truncatedLength = truncateToBuffer(string, length, keepCount, stringBuffer, shouldInsertEllipsis);
</span><span class="cx"> 
</span><del>-        width = stringWidth(font, stringBuffer, truncatedLength, disableRoundingHacks);
</del><ins>+        width = stringWidth(font, stringBuffer, truncatedLength);
</ins><span class="cx">         if (!shouldInsertEllipsis)
</span><span class="cx">             width += customTruncationElementWidth;
</span><span class="cx">         if (width &lt;= maxWidth) {
</span><span class="lines">@@ -295,44 +293,44 @@
</span><span class="cx">     return String(stringBuffer, truncatedLength);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::centerTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+String StringTruncator::centerTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, centerTruncateToBuffer, !enableRoundingHacks);
</del><ins>+    return truncateString(string, maxWidth, font, centerTruncateToBuffer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::rightTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+String StringTruncator::rightTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, rightTruncateToBuffer, !enableRoundingHacks);
</del><ins>+    return truncateString(string, maxWidth, font, rightTruncateToBuffer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-float StringTruncator::width(const String&amp; string, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+float StringTruncator::width(const String&amp; string, const FontCascade&amp; font)
</ins><span class="cx"> {
</span><del>-    return stringWidth(font, StringView(string).upconvertedCharacters(), string.length(), !enableRoundingHacks);
</del><ins>+    return stringWidth(font, StringView(string).upconvertedCharacters(), string.length());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::centerTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::centerTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, centerTruncateToBuffer, !enableRoundingHacks, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+    return truncateString(string, maxWidth, font, centerTruncateToBuffer, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::rightTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::rightTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, rightTruncateToBuffer, !enableRoundingHacks, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+    return truncateString(string, maxWidth, font, rightTruncateToBuffer, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::leftTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::leftTruncate(const String&amp; string, float maxWidth, const FontCascade&amp; font, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, leftTruncateToBuffer, !enableRoundingHacks, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+    return truncateString(string, maxWidth, font, leftTruncateToBuffer, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::rightClipToCharacter(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::rightClipToCharacter(const String&amp; string, float maxWidth, const FontCascade&amp; font, float&amp; resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, rightClipToCharacterBuffer, !enableRoundingHacks, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+    return truncateString(string, maxWidth, font, rightClipToCharacterBuffer, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StringTruncator::rightClipToWord(const String&amp; string, float maxWidth, const FontCascade&amp; font, EnableRoundingHacksOrNot enableRoundingHacks, float&amp; resultWidth, bool shouldInsertEllipsis,  float customTruncationElementWidth, bool alwaysTruncate)
</del><ins>+String StringTruncator::rightClipToWord(const String&amp; string, float maxWidth, const FontCascade&amp; font, float&amp; resultWidth, bool shouldInsertEllipsis,  float customTruncationElementWidth, bool alwaysTruncate)
</ins><span class="cx"> {
</span><del>-    return truncateString(string, maxWidth, font, rightClipToWordBuffer, !enableRoundingHacks, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth, alwaysTruncate);
</del><ins>+    return truncateString(string, maxWidth, font, rightClipToWordBuffer, &amp;resultWidth, shouldInsertEllipsis, customTruncationElementWidth, alwaysTruncate);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsStringTruncatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/StringTruncator.h (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/StringTruncator.h        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/StringTruncator.h        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -37,18 +37,16 @@
</span><span class="cx"> 
</span><span class="cx"> class StringTruncator {
</span><span class="cx"> public:
</span><del>-    enum EnableRoundingHacksOrNot { DisableRoundingHacks, EnableRoundingHacks };
</del><ins>+    WEBCORE_EXPORT static String centerTruncate(const String&amp;, float maxWidth, const FontCascade&amp;);
+    WEBCORE_EXPORT static String rightTruncate(const String&amp;, float maxWidth, const FontCascade&amp;);
</ins><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static String centerTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot = DisableRoundingHacks);
-    WEBCORE_EXPORT static String rightTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot = DisableRoundingHacks);
</del><ins>+    WEBCORE_EXPORT static String centerTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+    WEBCORE_EXPORT static String rightTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+    WEBCORE_EXPORT static String leftTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+    WEBCORE_EXPORT static String rightClipToCharacter(const String&amp;, float maxWidth, const FontCascade&amp;, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+    WEBCORE_EXPORT static String rightClipToWord(const String&amp;, float maxWidth, const FontCascade&amp;, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0, bool alwaysTruncate = false);
</ins><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static String centerTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
-    WEBCORE_EXPORT static String rightTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
-    WEBCORE_EXPORT static String leftTruncate(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
-    WEBCORE_EXPORT static String rightClipToCharacter(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
-    WEBCORE_EXPORT static String rightClipToWord(const String&amp;, float maxWidth, const FontCascade&amp;, EnableRoundingHacksOrNot, float&amp; resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0, bool alwaysTruncate = false);
-
-    WEBCORE_EXPORT static float width(const String&amp;, const FontCascade&amp;, EnableRoundingHacksOrNot = DisableRoundingHacks);
</del><ins>+    WEBCORE_EXPORT static float width(const String&amp;, const FontCascade&amp;);
</ins><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTextRuncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TextRun.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TextRun.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/TextRun.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -41,16 +41,4 @@
</span><span class="cx"> 
</span><span class="cx"> COMPILE_ASSERT(sizeof(TextRun) == sizeof(ExpectedTextRunSize), TextRun_is_not_of_expected_size);
</span><span class="cx"> 
</span><del>-bool TextRun::s_allowsRoundingHacks = false;
-
-void TextRun::setAllowsRoundingHacks(bool allowsRoundingHacks)
-{
-    s_allowsRoundingHacks = allowsRoundingHacks;
</del><span class="cx"> }
</span><del>-
-bool TextRun::allowsRoundingHacks()
-{
-    return s_allowsRoundingHacks;
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTextRunh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TextRun.h (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TextRun.h        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/TextRun.h        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -45,15 +45,7 @@
</span><span class="cx"> class TextRun {
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    enum RoundingHackFlags {
-        NoRounding = 0,
-        RunRounding = 1 &lt;&lt; 0,
-        WordRounding = 1 &lt;&lt; 1,
-    };
-
-    typedef unsigned RoundingHacks;
-
-    explicit TextRun(StringView text, float xpos = 0, float expansion = 0, ExpansionBehavior expansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion, TextDirection direction = LTR, bool directionalOverride = false, bool characterScanForCodePath = true, RoundingHacks roundingHacks = RunRounding | WordRounding)
</del><ins>+    explicit TextRun(StringView text, float xpos = 0, float expansion = 0, ExpansionBehavior expansionBehavior = AllowTrailingExpansion | ForbidLeadingExpansion, TextDirection direction = LTR, bool directionalOverride = false, bool characterScanForCodePath = true)
</ins><span class="cx">         : m_text(text)
</span><span class="cx">         , m_charactersLength(text.length())
</span><span class="cx">         , m_tabSize(0)
</span><span class="lines">@@ -65,8 +57,6 @@
</span><span class="cx">         , m_direction(direction)
</span><span class="cx">         , m_directionalOverride(directionalOverride)
</span><span class="cx">         , m_characterScanForCodePath(characterScanForCodePath)
</span><del>-        , m_applyRunRounding((roundingHacks &amp; RunRounding) &amp;&amp; s_allowsRoundingHacks)
-        , m_applyWordRounding((roundingHacks &amp; WordRounding) &amp;&amp; s_allowsRoundingHacks)
</del><span class="cx">         , m_disableSpacing(false)
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -118,12 +108,9 @@
</span><span class="cx">     bool ltr() const { return m_direction == LTR; }
</span><span class="cx">     bool directionalOverride() const { return m_directionalOverride; }
</span><span class="cx">     bool characterScanForCodePath() const { return m_characterScanForCodePath; }
</span><del>-    bool applyRunRounding() const { return m_applyRunRounding; }
-    bool applyWordRounding() const { return m_applyWordRounding; }
</del><span class="cx">     bool spacingDisabled() const { return m_disableSpacing; }
</span><span class="cx"> 
</span><span class="cx">     void disableSpacing() { m_disableSpacing = true; }
</span><del>-    void disableRoundingHacks() { m_applyRunRounding = m_applyWordRounding = false; }
</del><span class="cx">     void setDirection(TextDirection direction) { m_direction = direction; }
</span><span class="cx">     void setDirectionalOverride(bool override) { m_directionalOverride = override; }
</span><span class="cx">     void setCharacterScanForCodePath(bool scan) { m_characterScanForCodePath = scan; }
</span><span class="lines">@@ -145,12 +132,7 @@
</span><span class="cx">     RenderingContext* renderingContext() const { return m_renderingContext.get(); }
</span><span class="cx">     void setRenderingContext(PassRefPtr&lt;RenderingContext&gt; context) { m_renderingContext = context; }
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static void setAllowsRoundingHacks(bool);
-    WEBCORE_EXPORT static bool allowsRoundingHacks();
-
</del><span class="cx"> private:
</span><del>-    WEBCORE_EXPORT static bool s_allowsRoundingHacks;
-    
</del><span class="cx">     RefPtr&lt;RenderingContext&gt; m_renderingContext;
</span><span class="cx"> 
</span><span class="cx">     StringView m_text;
</span><span class="lines">@@ -171,8 +153,6 @@
</span><span class="cx">     unsigned m_direction : 1;
</span><span class="cx">     unsigned m_directionalOverride : 1; // Was this direction set by an override character.
</span><span class="cx">     unsigned m_characterScanForCodePath : 1;
</span><del>-    unsigned m_applyRunRounding : 1;
-    unsigned m_applyWordRounding : 1;
</del><span class="cx">     unsigned m_disableSpacing : 1;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsWidthIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/WidthIterator.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -237,13 +237,6 @@
</span><span class="cx"> 
</span><span class="cx">             // SVG uses horizontalGlyphStretch(), when textLength is used to stretch/squeeze text.
</span><span class="cx">             width *= m_run.horizontalGlyphStretch();
</span><del>-
-            // We special case spaces in two ways when applying word rounding.
-            // First, we round spaces to an adjusted width in all fonts.
-            // Second, in fixed-pitch fonts we ensure that all characters that
-            // match the width of the space character have the same width as the space character.
-            if (m_run.applyWordRounding() &amp;&amp; width == font-&gt;spaceWidth() &amp;&amp; (font-&gt;pitch() == FixedPitch || glyph == font-&gt;spaceGlyph()))
-                width = font-&gt;adjustedSpaceWidth();
</del><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (font != lastFontData &amp;&amp; width) {
</span><span class="lines">@@ -297,34 +290,29 @@
</span><span class="cx">                 if (m_expansion) {
</span><span class="cx">                     bool expandLeft, expandRight;
</span><span class="cx">                     std::tie(expandLeft, expandRight) = expansionLocation(ideograph, treatAsSpace, m_run.ltr(), m_isAfterExpansion, forbidLeadingExpansion, forbidTrailingExpansion, forceLeadingExpansion, forceTrailingExpansion);
</span><del>-                    float previousExpansion = m_expansion;
</del><span class="cx">                     if (expandLeft) {
</span><span class="cx">                         if (m_run.ltr()) {
</span><span class="cx">                             // Increase previous width
</span><span class="cx">                             m_expansion -= m_expansionPerOpportunity;
</span><del>-                            float expansionAtThisOpportunity = !m_run.applyWordRounding() ? m_expansionPerOpportunity : roundf(previousExpansion) - roundf(m_expansion);
-                            m_runWidthSoFar += expansionAtThisOpportunity;
</del><ins>+                            m_runWidthSoFar += m_expansionPerOpportunity;
</ins><span class="cx">                             if (glyphBuffer) {
</span><span class="cx">                                 if (glyphBuffer-&gt;isEmpty()) {
</span><span class="cx">                                     if (m_forTextEmphasis)
</span><span class="cx">                                         glyphBuffer-&gt;add(font-&gt;zeroWidthSpaceGlyph(), font, m_expansionPerOpportunity, currentCharacter);
</span><span class="cx">                                     else
</span><del>-                                        glyphBuffer-&gt;add(font-&gt;spaceGlyph(), font, expansionAtThisOpportunity, currentCharacter);
</del><ins>+                                        glyphBuffer-&gt;add(font-&gt;spaceGlyph(), font, m_expansionPerOpportunity, currentCharacter);
</ins><span class="cx">                                 } else
</span><del>-                                    glyphBuffer-&gt;expandLastAdvance(expansionAtThisOpportunity);
</del><ins>+                                    glyphBuffer-&gt;expandLastAdvance(m_expansionPerOpportunity);
</ins><span class="cx">                             }
</span><span class="cx">                         } else {
</span><span class="cx">                             // Increase next width
</span><del>-                            float expansionAtThisOpportunity = !m_run.applyWordRounding() ? m_expansionPerOpportunity : roundf(previousExpansion) - roundf(m_expansion - m_expansionPerOpportunity);
-                            leftoverJustificationWidth += expansionAtThisOpportunity;
</del><ins>+                            leftoverJustificationWidth += m_expansionPerOpportunity;
</ins><span class="cx">                             m_isAfterExpansion = true;
</span><span class="cx">                         }
</span><del>-                        previousExpansion = m_expansion;
</del><span class="cx">                     }
</span><span class="cx">                     if (expandRight) {
</span><span class="cx">                         m_expansion -= m_expansionPerOpportunity;
</span><del>-                        float expansionAtThisOpportunity = !m_run.applyWordRounding() ? m_expansionPerOpportunity : roundf(previousExpansion) - roundf(m_expansion);
-                        width += expansionAtThisOpportunity;
</del><ins>+                        width += m_expansionPerOpportunity;
</ins><span class="cx">                         if (m_run.ltr())
</span><span class="cx">                             m_isAfterExpansion = true;
</span><span class="cx">                     }
</span><span class="lines">@@ -359,32 +347,8 @@
</span><span class="cx"> 
</span><span class="cx">         float oldWidth = width;
</span><span class="cx"> 
</span><del>-        // Force characters that are used to determine word boundaries for the rounding hack
-        // to be integer width, so following words will start on an integer boundary.
-        if (m_run.applyWordRounding() &amp;&amp; FontCascade::isRoundingHackCharacter(character)) {
-            width = ceilf(width);
</del><ins>+        widthSinceLastRounding += width;
</ins><span class="cx"> 
</span><del>-            // Since widthSinceLastRounding can lose precision if we include measurements for
-            // preceding whitespace, we bypass it here.
-            m_runWidthSoFar += width;
-
-            // Since this is a rounding hack character, we should have reset this sum on the previous
-            // iteration.
-            ASSERT(!widthSinceLastRounding);
-        } else {
-            // Check to see if the next character is a &quot;rounding hack character&quot;, if so, adjust
-            // width so that the total run width will be on an integer boundary.
-            if ((m_run.applyWordRounding() &amp;&amp; static_cast&lt;unsigned&gt;(textIterator.currentCharacter()) &lt; m_run.length() &amp;&amp; FontCascade::isRoundingHackCharacter(*(textIterator.characters())))
-                || (m_run.applyRunRounding() &amp;&amp; static_cast&lt;unsigned&gt;(textIterator.currentCharacter()) &gt;= m_run.length())) {
-                float totalWidth = widthSinceLastRounding + width;
-                widthSinceLastRounding = ceilf(totalWidth);
-                width += widthSinceLastRounding - totalWidth;
-                m_runWidthSoFar += widthSinceLastRounding;
-                widthSinceLastRounding = 0;
-            } else
-                widthSinceLastRounding += width;
-        }
-
</del><span class="cx">         if (glyphBuffer)
</span><span class="cx">             glyphBuffer-&gt;add(glyph, font, (rtl ? oldWidth + lastRoundingWidth : width), currentCharacter);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -668,7 +668,6 @@
</span><span class="cx"> 
</span><span class="cx">         bool lastRun = r + 1 == runCount;
</span><span class="cx">         float spaceWidth = font.spaceWidth() - font.syntheticBoldOffset();
</span><del>-        CGFloat roundedSpaceWidth = std::round(spaceWidth);
</del><span class="cx">         const UChar* cp = complexTextRun.characters();
</span><span class="cx">         CGPoint glyphOrigin = CGPointZero;
</span><span class="cx">         CFIndex lastCharacterIndex = m_run.ltr() ? std::numeric_limits&lt;CFIndex&gt;::min() : std::numeric_limits&lt;CFIndex&gt;::max();
</span><span class="lines">@@ -704,17 +703,8 @@
</span><span class="cx">                 glyph = font.spaceGlyph();
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            float roundedAdvanceWidth = roundf(advance.width);
</del><span class="cx">             advance.width += font.syntheticBoldOffset();
</span><span class="cx"> 
</span><del>- 
-            // We special case spaces in two ways when applying word rounding. 
-            // First, we round spaces to an adjusted width in all fonts. 
-            // Second, in fixed-pitch fonts we ensure that all glyphs that 
-            // match the width of the space glyph have the same width as the space glyph. 
-            if (m_run.applyWordRounding() &amp;&amp; roundedAdvanceWidth == roundedSpaceWidth &amp;&amp; (font.pitch() == FixedPitch || glyph == font.spaceGlyph()))
-                advance.width = font.adjustedSpaceWidth();
-
</del><span class="cx">             if (hasExtraSpacing) {
</span><span class="cx">                 // If we're a glyph with an advance, add in letter-spacing.
</span><span class="cx">                 // That way we weed out zero width lurkers.  This behavior matches the fast text code path.
</span><span class="lines">@@ -744,22 +734,18 @@
</span><span class="cx">                     if (m_expansion) {
</span><span class="cx">                         bool expandLeft, expandRight;
</span><span class="cx">                         std::tie(expandLeft, expandRight) = expansionLocation(ideograph, treatAsSpace, m_run.ltr(), afterExpansion, forbidLeadingExpansion, forbidTrailingExpansion, forceLeadingExpansion, forceTrailingExpansion);
</span><del>-                        float previousExpansion = m_expansion;
</del><span class="cx">                         if (expandLeft) {
</span><span class="cx">                             // Increase previous width
</span><span class="cx">                             m_expansion -= m_expansionPerOpportunity;
</span><del>-                            float expansionAtThisOpportunity = !m_run.applyWordRounding() ? m_expansionPerOpportunity : roundf(previousExpansion) - roundf(m_expansion);
-                            m_totalWidth += expansionAtThisOpportunity;
</del><ins>+                            m_totalWidth += m_expansionPerOpportunity;
</ins><span class="cx">                             if (m_adjustedAdvances.isEmpty())
</span><del>-                                m_leadingExpansion = expansionAtThisOpportunity;
</del><ins>+                                m_leadingExpansion = m_expansionPerOpportunity;
</ins><span class="cx">                             else
</span><del>-                                m_adjustedAdvances.last().width += expansionAtThisOpportunity;
-                            previousExpansion = m_expansion;
</del><ins>+                                m_adjustedAdvances.last().width += m_expansionPerOpportunity;
</ins><span class="cx">                         }
</span><span class="cx">                         if (expandRight) {
</span><span class="cx">                             m_expansion -= m_expansionPerOpportunity;
</span><del>-                            float expansionAtThisOpportunity = !m_run.applyWordRounding() ? m_expansionPerOpportunity : roundf(previousExpansion) - roundf(m_expansion);
-                            advance.width += expansionAtThisOpportunity;
</del><ins>+                            advance.width += m_expansionPerOpportunity;
</ins><span class="cx">                             afterExpansion = true;
</span><span class="cx">                         }
</span><span class="cx">                     } else
</span><span class="lines">@@ -772,34 +758,8 @@
</span><span class="cx">                     afterExpansion = false;
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            // Apply rounding hacks if needed.
-            // We adjust the width of the last character of a &quot;word&quot; to ensure an integer width. 
-            // Force characters that are used to determine word boundaries for the rounding hack 
-            // to be integer width, so the following words will start on an integer boundary. 
-            if (m_run.applyWordRounding() &amp;&amp; FontCascade::isRoundingHackCharacter(ch)) 
-                advance.width = std::ceil(advance.width);
</del><ins>+            widthSinceLastCommit += advance.width; 
</ins><span class="cx"> 
</span><del>-            // Check to see if the next character is a &quot;rounding hack character&quot;, if so, adjust the 
-            // width so that the total run width will be on an integer boundary.
-            bool needsRoundingForCharacter = m_run.applyWordRounding() &amp;&amp; !lastGlyph &amp;&amp; FontCascade::isRoundingHackCharacter(nextCh);
-            if (needsRoundingForCharacter || (m_run.applyRunRounding() &amp;&amp; lastGlyph)) {
-                CGFloat totalWidth = widthSinceLastCommit + advance.width; 
-                widthSinceLastCommit = std::ceil(totalWidth);
-                CGFloat extraWidth = widthSinceLastCommit - totalWidth; 
-                if (m_run.ltr()) 
-                    advance.width += extraWidth; 
-                else { 
-                    if (m_lastRoundingGlyph) 
-                        m_adjustedAdvances[m_lastRoundingGlyph - 1].width += extraWidth; 
-                    else 
-                        m_finalRoundingWidth = extraWidth; 
-                    m_lastRoundingGlyph = m_adjustedAdvances.size() + 1; 
-                } 
-                m_totalWidth += widthSinceLastCommit; 
-                widthSinceLastCommit = 0; 
-            } else 
-                widthSinceLastCommit += advance.width; 
-
</del><span class="cx">             // FIXME: Combining marks should receive a text emphasis mark if they are combine with a space.
</span><span class="cx">             if (m_forTextEmphasis &amp;&amp; (!FontCascade::canReceiveTextEmphasis(ch) || (U_GET_GC_MASK(ch) &amp; U_GC_M_MASK)))
</span><span class="cx">                 glyph = 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacDragImageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/DragImageMac.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/DragImageMac.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/mac/DragImageMac.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -194,7 +194,6 @@
</span><span class="cx">     if (canUseFastRenderer(buffer.data(), length)) {
</span><span class="cx">         FontCascade webCoreFont(FontPlatformData(toCTFont(font), [font pointSize]));
</span><span class="cx">         TextRun run(StringView(buffer.data(), length));
</span><del>-        run.disableRoundingHacks();
</del><span class="cx">         return webCoreFont.width(run);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -226,7 +225,6 @@
</span><span class="cx">             
</span><span class="cx">         FontCascade webCoreFont(FontPlatformData(toCTFont(font), [font pointSize]), Antialiased);
</span><span class="cx">         TextRun run(StringView(buffer.data(), length));
</span><del>-        run.disableRoundingHacks();
</del><span class="cx"> 
</span><span class="cx">         CGFloat red;
</span><span class="cx">         CGFloat green;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinDragImageWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/DragImageWin.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/DragImageWin.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/win/DragImageWin.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -199,13 +199,13 @@
</span><span class="cx">     static const Color bottomColor(255, 255, 255, 127); // original alpha = 0.5
</span><span class="cx">     if (drawURLString) {
</span><span class="cx">         if (clipURLString)
</span><del>-            urlString = StringTruncator::rightTruncate(urlString, imageSize.width() - (DragLabelBorderX * 2.0f), *urlFont, StringTruncator::EnableRoundingHacks);
</del><ins>+            urlString = StringTruncator::rightTruncate(urlString, imageSize.width() - (DragLabelBorderX * 2.0f), *urlFont);
</ins><span class="cx">         IntPoint textPos(DragLabelBorderX, imageSize.height() - (LabelBorderYOffset + urlFont-&gt;fontMetrics().descent()));
</span><span class="cx">         WebCoreDrawDoubledTextAtPoint(context, urlString, textPos, *urlFont, topColor, bottomColor);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (clipLabelString)
</span><del>-        label = StringTruncator::rightTruncate(label, imageSize.width() - (DragLabelBorderX * 2.0f), *labelFont, StringTruncator::EnableRoundingHacks);
</del><ins>+        label = StringTruncator::rightTruncate(label, imageSize.width() - (DragLabelBorderX * 2.0f), *labelFont);
</ins><span class="cx"> 
</span><span class="cx">     IntPoint textPos(DragLabelBorderX, DragLabelBorderY + labelFont-&gt;pixelSize());
</span><span class="cx">     WebCoreDrawDoubledTextAtPoint(context, label, textPos, *labelFont, topColor, bottomColor);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinWebCoreTextRenderercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/WebCoreTextRenderer.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/WebCoreTextRenderer.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/platform/win/WebCoreTextRenderer.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> float WebCoreTextFloatWidth(const String&amp; text, const FontCascade&amp; font)
</span><span class="cx"> {
</span><del>-    return StringTruncator::width(text, font, StringTruncator::EnableRoundingHacks);
</del><ins>+    return StringTruncator::width(text, font);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCoreSetShouldUseFontSmoothing(bool smooth)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFileUploadControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -134,7 +134,6 @@
</span><span class="cx">         const String&amp; displayedFilename = fileTextValue();
</span><span class="cx">         const FontCascade&amp; font = style().fontCascade();
</span><span class="cx">         TextRun textRun = constructTextRun(this, font, displayedFilename, style(), AllowTrailingExpansion, RespectDirection | RespectDirectionOverride);
</span><del>-        textRun.disableRoundingHacks();
</del><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">         int iconHeight = nodeHeight(uploadButton());
</span><span class="lines">@@ -271,7 +270,7 @@
</span><span class="cx">     ASSERT(inputElement().files());
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     if (inputElement().files()-&gt;length())
</span><del>-        return StringTruncator::rightTruncate(inputElement().displayString(), maxFilenameWidth(), style().fontCascade(), StringTruncator::EnableRoundingHacks);
</del><ins>+        return StringTruncator::rightTruncate(inputElement().displayString(), maxFilenameWidth(), style().fontCascade());
</ins><span class="cx"> #endif
</span><span class="cx">     return theme().fileListNameForWidth(inputElement().files(), style().fontCascade(), maxFilenameWidth(), inputElement().multiple());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -129,7 +129,6 @@
</span><span class="cx">                 applyTextTransform(style(), text, ' ');
</span><span class="cx">                 // FIXME: Why is this always LTR? Can't text direction affect the width?
</span><span class="cx">                 TextRun textRun = constructTextRun(this, itemFont, text, style(), AllowTrailingExpansion);
</span><del>-                textRun.disableRoundingHacks();
</del><span class="cx">                 float textWidth = itemFont.width(textRun);
</span><span class="cx">                 width = std::max(width, textWidth);
</span><span class="cx">             }
</span><span class="lines">@@ -398,7 +397,7 @@
</span><span class="cx"> 
</span><span class="cx">     paintInfo.context().setFillColor(textColor);
</span><span class="cx"> 
</span><del>-    TextRun textRun(itemText, 0, 0, AllowTrailingExpansion, itemStyle.direction(), isOverride(itemStyle.unicodeBidi()), true, TextRun::NoRounding);
</del><ins>+    TextRun textRun(itemText, 0, 0, AllowTrailingExpansion, itemStyle.direction(), isOverride(itemStyle.unicodeBidi()), true);
</ins><span class="cx">     FontCascade itemFont = style().fontCascade();
</span><span class="cx">     LayoutRect r = itemBoundingBoxRect(paintOffset, listIndex);
</span><span class="cx">     r.move(itemOffsetForAlignment(textRun, &amp;itemStyle, itemFont, r));
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControl.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderTextControl.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -181,7 +181,6 @@
</span><span class="cx">     const String str = String(&amp;ch, 1);
</span><span class="cx">     const FontCascade&amp; font = style().fontCascade();
</span><span class="cx">     TextRun textRun = constructTextRun(this, font, str, style(), AllowTrailingExpansion);
</span><del>-    textRun.disableRoundingHacks();
</del><span class="cx">     return font.width(textRun);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTheme.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1328,9 +1328,9 @@
</span><span class="cx">     else if (fileList-&gt;length() == 1)
</span><span class="cx">         string = fileList-&gt;item(0)-&gt;name();
</span><span class="cx">     else
</span><del>-        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font);
</ins><span class="cx"> 
</span><del>-    return StringTruncator::centerTruncate(string, width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+    return StringTruncator::centerTruncate(string, width, font);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeGtk.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderThemeGtk.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1574,7 +1574,7 @@
</span><span class="cx">         return String();
</span><span class="cx"> 
</span><span class="cx">     if (fileList-&gt;length() &gt; 1)
</span><del>-        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font);
</ins><span class="cx"> 
</span><span class="cx">     String string;
</span><span class="cx">     if (fileList-&gt;length())
</span><span class="lines">@@ -1584,7 +1584,7 @@
</span><span class="cx">     else
</span><span class="cx">         string = fileButtonNoFileSelectedLabel();
</span><span class="cx"> 
</span><del>-    return StringTruncator::centerTruncate(string, width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+    return StringTruncator::centerTruncate(string, width, font);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -2014,9 +2014,9 @@
</span><span class="cx">     else if (fileList-&gt;length() == 1)
</span><span class="cx">         strToTruncate = [[NSFileManager defaultManager] displayNameAtPath:(fileList-&gt;item(0)-&gt;path())];
</span><span class="cx">     else
</span><del>-        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+        return StringTruncator::rightTruncate(multipleFileUploadText(fileList-&gt;length()), width, font);
</ins><span class="cx"> 
</span><del>-    return StringTruncator::centerTruncate(strToTruncate, width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+    return StringTruncator::centerTruncate(strToTruncate, width, font);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -420,8 +420,6 @@
</span><span class="cx">     if (style-&gt;fontCascade().primaryFont().isSVGFont())
</span><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(renderer()));
</span><span class="cx"> 
</span><del>-    run.disableRoundingHacks();
-
</del><span class="cx">     // We handle letter &amp; word spacing ourselves.
</span><span class="cx">     run.disableSpacing();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -73,8 +73,6 @@
</span><span class="cx">     if (style.fontCascade().primaryFont().isSVGFont())
</span><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(text));
</span><span class="cx"> 
</span><del>-    run.disableRoundingHacks();
-
</del><span class="cx">     // We handle letter &amp; word spacing ourselves.
</span><span class="cx">     run.disableSpacing();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -369,7 +369,6 @@
</span><span class="cx">         mainFrameView-&gt;setFixedLayoutSize(IntSize());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    TextRun::setAllowsRoundingHacks(false);
</del><span class="cx">     WebCore::overrideUserPreferredLanguages(Vector&lt;String&gt;());
</span><span class="cx">     WebCore::Settings::setUsesOverlayScrollbars(false);
</span><span class="cx">     page-&gt;inspectorController().setProfilerEnabled(false);
</span><span class="lines">@@ -2038,11 +2037,6 @@
</span><span class="cx">     document-&gt;cachedResourceLoader().garbageCollectDocumentResources();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::allowRoundingHacks() const
-{
-    TextRun::setAllowsRoundingHacks(true);
-}
-
</del><span class="cx"> void Internals::insertAuthorCSS(const String&amp; css, ExceptionCode&amp; ec) const
</span><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/testing/Internals.h        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -264,8 +264,6 @@
</span><span class="cx"> 
</span><span class="cx">     void garbageCollectDocumentResources(ExceptionCode&amp;) const;
</span><span class="cx"> 
</span><del>-    void allowRoundingHacks() const;
-
</del><span class="cx">     void insertAuthorCSS(const String&amp;, ExceptionCode&amp;) const;
</span><span class="cx">     void insertUserCSS(const String&amp;, ExceptionCode&amp;) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebCore/testing/Internals.idl        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -233,8 +233,6 @@
</span><span class="cx"> 
</span><span class="cx">     [RaisesException] void garbageCollectDocumentResources();
</span><span class="cx"> 
</span><del>-    void allowRoundingHacks();
-
</del><span class="cx">     [RaisesException] void insertAuthorCSS(DOMString css);
</span><span class="cx">     [RaisesException] void insertUserCSS(DOMString css);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/ios/ChangeLog        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-01-16  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Remove TextRun::allowsRoundingHacks()
+        https://bugs.webkit.org/show_bug.cgi?id=153185
+
+        Reviewed by Simon Fraser.
+
+        * Misc/WebUIKitSupport.mm:
+        (WebKitInitialize): Deleted.
+
</ins><span class="cx"> 2016-01-13  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r194900.
</span></span></pre></div>
<a id="trunkSourceWebKitiosMiscWebUIKitSupportmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -70,7 +70,6 @@
</span><span class="cx">     // We'd rather eat this cost at startup than slow down situations that need to be responsive.
</span><span class="cx">     // See &lt;rdar://problem/6776301&gt;.
</span><span class="cx">     LoadWebLocalizedStrings();
</span><del>-    [WebView _setAllowsRoundingHacks:!linkedOnOrAfterIOS5()];
</del><span class="cx">     [WebView registerForMemoryNotifications];
</span><span class="cx">     
</span><span class="cx">     // This needs to be called before any requests are made in the process, &lt;rdar://problem/9691871&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-01-16  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Remove TextRun::allowsRoundingHacks()
+        https://bugs.webkit.org/show_bug.cgi?id=153185
+
+        Reviewed by Simon Fraser.
+
+        * Misc/WebKitNSStringExtras.mm:
+        (-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Deleted.
+        (-[NSString _web_widthWithFont:]): Deleted.
+        * WebView/WebView.mm:
+        (+[WebView _setAllowsRoundingHacks:]): Deleted.
+        (+[WebView _allowsRoundingHacks]): Deleted.
+        * WebView/WebViewPrivate.h:
+
</ins><span class="cx"> 2016-01-15  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Data detector yellow highlight location is vertically mirrored in WebKit1
</span></span></pre></div>
<a id="trunkSourceWebKitmacMiscWebKitNSStringExtrasmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Misc/WebKitNSStringExtras.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Misc/WebKitNSStringExtras.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/mac/Misc/WebKitNSStringExtras.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -93,7 +93,6 @@
</span><span class="cx"> 
</span><span class="cx">         FontCascade webCoreFont(FontPlatformData(reinterpret_cast&lt;CTFontRef&gt;(font), [font pointSize]), fontSmoothingIsAllowed ? AutoSmoothing : Antialiased);
</span><span class="cx">         TextRun run(StringView(buffer.data(), length));
</span><del>-        run.disableRoundingHacks();
</del><span class="cx"> 
</span><span class="cx">         CGFloat red;
</span><span class="cx">         CGFloat green;
</span><span class="lines">@@ -139,7 +138,6 @@
</span><span class="cx">     if (canUseFastRenderer(buffer.data(), length)) {
</span><span class="cx">         FontCascade webCoreFont(FontPlatformData(reinterpret_cast&lt;CTFontRef&gt;(font), [font pointSize]));
</span><span class="cx">         TextRun run(StringView(buffer.data(), length));
</span><del>-        run.disableRoundingHacks();
</del><span class="cx">         return webCoreFont.width(run);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1494,16 +1494,6 @@
</span><span class="cx">     FontCascade::setCodePath(f ? FontCascade::Complex : FontCascade::Auto);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-+ (void)_setAllowsRoundingHacks:(BOOL)allowsRoundingHacks
-{
-    TextRun::setAllowsRoundingHacks(allowsRoundingHacks);
-}
-
-+ (BOOL)_allowsRoundingHacks
-{
-    return TextRun::allowsRoundingHacks();
-}
-
</del><span class="cx"> + (BOOL)canCloseAllWebViews
</span><span class="cx"> {
</span><span class="cx">     return DOMWindow::dispatchAllPendingBeforeUnloadEvents();
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebViewPrivate.h (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebViewPrivate.h        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/mac/WebView/WebViewPrivate.h        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -517,9 +517,6 @@
</span><span class="cx"> 
</span><span class="cx"> + (void)_setAlwaysUsesComplexTextCodePath:(BOOL)f;
</span><span class="cx"> 
</span><del>-+ (void)_setAllowsRoundingHacks:(BOOL)allowsRoundingHacks;
-+ (BOOL)_allowsRoundingHacks;
-
</del><span class="cx"> #if !TARGET_OS_IPHONE
</span><span class="cx"> - (NSCachedURLResponse *)_cachedResponseForURL:(NSURL *)URL;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebKitGraphicscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebKitGraphics.cpp (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebKitGraphics.cpp        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Source/WebKit/win/WebKitGraphics.cpp        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(buffer);
</span><span class="cx"> 
</span><del>-    String result = StringTruncator::centerTruncate(String(text, length), width, makeFont(description), StringTruncator::EnableRoundingHacks);
</del><ins>+    String result = StringTruncator::centerTruncate(String(text, length), width, makeFont(description));
</ins><span class="cx">     StringView(result).getCharactersWithUpconvert(buffer);
</span><span class="cx">     buffer[result.length()] = '\0';
</span><span class="cx">     return result.length();
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(buffer);
</span><span class="cx"> 
</span><del>-    String result = StringTruncator::rightTruncate(String(text, length), width, makeFont(description), StringTruncator::EnableRoundingHacks);
</del><ins>+    String result = StringTruncator::rightTruncate(String(text, length), width, makeFont(description));
</ins><span class="cx">     StringView(result).getCharactersWithUpconvert(buffer);
</span><span class="cx">     buffer[result.length()] = '\0';
</span><span class="cx">     return result.length();
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Tools/ChangeLog        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-01-16  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Remove TextRun::allowsRoundingHacks()
+        https://bugs.webkit.org/show_bug.cgi?id=153185
+
+        Reviewed by Simon Fraser.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (resetWebViewToConsistentStateBeforeTesting): Deleted.
+
</ins><span class="cx"> 2016-01-15  Konstantin Tokarev  &lt;annulen@yandex.ru&gt;
</span><span class="cx"> 
</span><span class="cx">         [webkitdirs] Avoid list form of open because it broke WinCairo
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (195179 => 195180)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2016-01-17 00:21:44 UTC (rev 195179)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2016-01-17 04:54:32 UTC (rev 195180)
</span><span class="lines">@@ -1866,7 +1866,6 @@
</span><span class="cx">     [WebView _setUsesTestModeFocusRingColor:YES];
</span><span class="cx"> #endif
</span><span class="cx">     [WebView _resetOriginAccessWhitelists];
</span><del>-    [WebView _setAllowsRoundingHacks:NO];
</del><span class="cx"> 
</span><span class="cx">     [[MockGeolocationProvider shared] stopTimer];
</span><span class="cx">     [[MockWebNotificationProvider shared] reset];
</span></span></pre>
</div>
</div>

</body>
</html>