<!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 <mmaxfield@apple.com>
+
+ 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 <gskachkov@gmail.com>
</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>-<script>
- if (window.internals)
- internals.allowRoundingHacks();
-</script>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
-<div style="text-rendering: optimizelegibility; border: solid cyan; font: 16px 'lucida grande'; text-align: justify; width: 300px;">Given an opportunity to make a mistake</div>
</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>-<script>
- if (window.internals)
- internals.allowRoundingHacks();
-</script>
-<div style="font-family: 'lucida grande'; font-size: 22px;">
- 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
-</div>
-<div style="font-family: 'lucida grande'; font-size: 18px;">
- 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.
-</div>
</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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
- 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: "Given an opportunity to make a"
- text run at (3,21) width 61: "mistake"
</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: "Lorem ipsum dolor sit amet, "
- text run at (313,0) width 387: "consectetur adipiscing elit. Praesent"
- text run at (0,26) width 468: "ullamcorper accumsan hendrerit. Phasellus "
- text run at (468,26) width 199: "bibendum fringilla"
- text run at (0,52) width 604: "sollicitudin. Donec blandit rutrum neque eget euismod. "
- text run at (604,52) width 128: "Nullam nec "
- text run at (732,52) width 45: "felis"
- text run at (0,78) width 606: "turpis, vitae tempor enim. Aenean venenatis blandit dui "
- text run at (606,78) width 124: "vel ultrices."
- text run at (0,104) width 283: "Donec porta nunc ut nibh "
- text run at (283,104) width 227: "adipiscing id suscipit"
- RenderBlock {DIV} at (0,130) size 784x147
- RenderText {#text} at (0,0) size 766x147
- text run at (0,0) width 434: "dolor facilisis. Vestibulum vitae enim vitae dolor "
- text run at (434,0) width 102: "sollicitudin "
- text run at (536,0) width 189: "imperdiet sit amet ac"
- text run at (0,21) width 394: "tortor. Quisque egestas adipiscing volutpat. "
- text run at (394,21) width 360: "Proin eu nibh eros, quis luctus urna. Sed"
- text run at (0,42) width 146: "tincidunt iaculis "
- text run at (146,42) width 76: "tempor. "
- text run at (222,42) width 373: "Vestibulum dapibus lorem sit amet libero "
- text run at (595,42) width 169: "pharetra at sodales"
- text run at (0,63) width 318: "nisi pulvinar. Morbi eu risus lectus, "
- text run at (318,63) width 127: "id scelerisque "
- text run at (445,63) width 297: "neque. Aenean eget mauris nulla."
- text run at (0,84) width 355: "Nunc egestas elit nec lorem fermentum "
- text run at (355,84) width 411: "mattis. Sed adipiscing metus nec diam congue"
- text run at (0,105) width 235: "at ornare sapien faucibus. "
- text run at (235,105) width 433: "Vestibulum varius tempor quam sed malesuada. "
- text run at (668,105) width 80: "Sed vitae"
- text run at (0,126) width 105: "quam nulla."
</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>-<!DOCTYPE html>
-<html>
-<head>
-<style>
-.blackbox {
- display: inline-block;
- width: 14px;
- height: 21px;
- background: black;
-}
-.whitebox {
- display: inline-block;
- width: 14px;
- height: 21px;
- background: white;
-}
-</style>
-</head>
-<body>
-<div style="display: none;">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.</div>
-<div><div class="blackbox"></div><div class="whitebox"></div><div class="blackbox"></div></div>
-</body>
-</html>
</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>-<!DOCTYPE html>
-<html>
-<head>
-<style>
-@font-face {
- font-family: 'Litherum';
- src: url("resources/Litherum.svg") format(svg)
-}
-</style>
-<script>
-if (window.internals)
- window.internals.allowRoundingHacks();
-</script>
-</head>
-<body>
-<div style="display: none;">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.</div>
-<div style="font: 14px Litherum;">a a</div>
-</body>
-</html>
</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 <mmaxfield@apple.com>
+
+ 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 <akling@apple.com>
</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->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<FontCascadeFonts> retrieveOrAddCachedFonts(const FontCascadeDescription&, RefPtr<FontSelector>&&);
</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& 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 & ~0xFF) && 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& renderer, const UChar* characters, unsigned length, bool disableRoundingHacks)
</del><ins>+static float stringWidth(const FontCascade& 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& string, float maxWidth, const FontCascade& font, TruncationFunction truncateToBuffer, bool disableRoundingHacks, float* resultWidth = nullptr, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0, bool alwaysTruncate = false)
</del><ins>+static String truncateString(const String& string, float maxWidth, const FontCascade& 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 >= 0);
</span><span class="cx">
</span><del>- float currentEllipsisWidth = shouldInsertEllipsis ? stringWidth(font, &horizontalEllipsis, 1, disableRoundingHacks) : customTruncationElementWidth;
</del><ins>+ float currentEllipsisWidth = shouldInsertEllipsis ? stringWidth(font, &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 && alwaysTruncate)
</span><span class="cx"> width += customTruncationElementWidth;
</span><span class="cx"> if ((width - maxWidth) < 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 <= 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& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+String StringTruncator::centerTruncate(const String& string, float maxWidth, const FontCascade& 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& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+String StringTruncator::rightTruncate(const String& string, float maxWidth, const FontCascade& 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& string, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks)
</del><ins>+float StringTruncator::width(const String& string, const FontCascade& 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& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::centerTruncate(const String& string, float maxWidth, const FontCascade& font, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>- return truncateString(string, maxWidth, font, centerTruncateToBuffer, !enableRoundingHacks, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+ return truncateString(string, maxWidth, font, centerTruncateToBuffer, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String StringTruncator::rightTruncate(const String& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::rightTruncate(const String& string, float maxWidth, const FontCascade& font, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>- return truncateString(string, maxWidth, font, rightTruncateToBuffer, !enableRoundingHacks, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+ return truncateString(string, maxWidth, font, rightTruncateToBuffer, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String StringTruncator::leftTruncate(const String& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::leftTruncate(const String& string, float maxWidth, const FontCascade& font, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>- return truncateString(string, maxWidth, font, leftTruncateToBuffer, !enableRoundingHacks, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+ return truncateString(string, maxWidth, font, leftTruncateToBuffer, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String StringTruncator::rightClipToCharacter(const String& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</del><ins>+String StringTruncator::rightClipToCharacter(const String& string, float maxWidth, const FontCascade& font, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth)
</ins><span class="cx"> {
</span><del>- return truncateString(string, maxWidth, font, rightClipToCharacterBuffer, !enableRoundingHacks, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</del><ins>+ return truncateString(string, maxWidth, font, rightClipToCharacterBuffer, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String StringTruncator::rightClipToWord(const String& string, float maxWidth, const FontCascade& font, EnableRoundingHacksOrNot enableRoundingHacks, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth, bool alwaysTruncate)
</del><ins>+String StringTruncator::rightClipToWord(const String& string, float maxWidth, const FontCascade& font, float& resultWidth, bool shouldInsertEllipsis, float customTruncationElementWidth, bool alwaysTruncate)
</ins><span class="cx"> {
</span><del>- return truncateString(string, maxWidth, font, rightClipToWordBuffer, !enableRoundingHacks, &resultWidth, shouldInsertEllipsis, customTruncationElementWidth, alwaysTruncate);
</del><ins>+ return truncateString(string, maxWidth, font, rightClipToWordBuffer, &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&, float maxWidth, const FontCascade&);
+ WEBCORE_EXPORT static String rightTruncate(const String&, float maxWidth, const FontCascade&);
</ins><span class="cx">
</span><del>- WEBCORE_EXPORT static String centerTruncate(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot = DisableRoundingHacks);
- WEBCORE_EXPORT static String rightTruncate(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot = DisableRoundingHacks);
</del><ins>+ WEBCORE_EXPORT static String centerTruncate(const String&, float maxWidth, const FontCascade&, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+ WEBCORE_EXPORT static String rightTruncate(const String&, float maxWidth, const FontCascade&, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+ WEBCORE_EXPORT static String leftTruncate(const String&, float maxWidth, const FontCascade&, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+ WEBCORE_EXPORT static String rightClipToCharacter(const String&, float maxWidth, const FontCascade&, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
+ WEBCORE_EXPORT static String rightClipToWord(const String&, float maxWidth, const FontCascade&, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0, bool alwaysTruncate = false);
</ins><span class="cx">
</span><del>- WEBCORE_EXPORT static String centerTruncate(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
- WEBCORE_EXPORT static String rightTruncate(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
- WEBCORE_EXPORT static String leftTruncate(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
- WEBCORE_EXPORT static String rightClipToCharacter(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0);
- WEBCORE_EXPORT static String rightClipToWord(const String&, float maxWidth, const FontCascade&, EnableRoundingHacksOrNot, float& resultWidth, bool shouldInsertEllipsis = true, float customTruncationElementWidth = 0, bool alwaysTruncate = false);
-
- WEBCORE_EXPORT static float width(const String&, const FontCascade&, EnableRoundingHacksOrNot = DisableRoundingHacks);
</del><ins>+ WEBCORE_EXPORT static float width(const String&, const FontCascade&);
</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 << 0,
- WordRounding = 1 << 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 & RunRounding) && s_allowsRoundingHacks)
- , m_applyWordRounding((roundingHacks & WordRounding) && 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<RenderingContext> 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<RenderingContext> 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() && width == font->spaceWidth() && (font->pitch() == FixedPitch || glyph == font->spaceGlyph()))
- width = font->adjustedSpaceWidth();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (font != lastFontData && 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->isEmpty()) {
</span><span class="cx"> if (m_forTextEmphasis)
</span><span class="cx"> glyphBuffer->add(font->zeroWidthSpaceGlyph(), font, m_expansionPerOpportunity, currentCharacter);
</span><span class="cx"> else
</span><del>- glyphBuffer->add(font->spaceGlyph(), font, expansionAtThisOpportunity, currentCharacter);
</del><ins>+ glyphBuffer->add(font->spaceGlyph(), font, m_expansionPerOpportunity, currentCharacter);
</ins><span class="cx"> } else
</span><del>- glyphBuffer->expandLastAdvance(expansionAtThisOpportunity);
</del><ins>+ glyphBuffer->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() && 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 "rounding hack character", if so, adjust
- // width so that the total run width will be on an integer boundary.
- if ((m_run.applyWordRounding() && static_cast<unsigned>(textIterator.currentCharacter()) < m_run.length() && FontCascade::isRoundingHackCharacter(*(textIterator.characters())))
- || (m_run.applyRunRounding() && static_cast<unsigned>(textIterator.currentCharacter()) >= 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->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<CFIndex>::min() : std::numeric_limits<CFIndex>::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() && roundedAdvanceWidth == roundedSpaceWidth && (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 "word" 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() && 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 "rounding hack character", if so, adjust the
- // width so that the total run width will be on an integer boundary.
- bool needsRoundingForCharacter = m_run.applyWordRounding() && !lastGlyph && FontCascade::isRoundingHackCharacter(nextCh);
- if (needsRoundingForCharacter || (m_run.applyRunRounding() && 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 && (!FontCascade::canReceiveTextEmphasis(ch) || (U_GET_GC_MASK(ch) & 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->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->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& text, const FontCascade& 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& displayedFilename = fileTextValue();
</span><span class="cx"> const FontCascade& 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()->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, &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(&ch, 1);
</span><span class="cx"> const FontCascade& 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->length() == 1)
</span><span class="cx"> string = fileList->item(0)->name();
</span><span class="cx"> else
</span><del>- return StringTruncator::rightTruncate(multipleFileUploadText(fileList->length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+ return StringTruncator::rightTruncate(multipleFileUploadText(fileList->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->length() > 1)
</span><del>- return StringTruncator::rightTruncate(multipleFileUploadText(fileList->length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+ return StringTruncator::rightTruncate(multipleFileUploadText(fileList->length()), width, font);
</ins><span class="cx">
</span><span class="cx"> String string;
</span><span class="cx"> if (fileList->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->length() == 1)
</span><span class="cx"> strToTruncate = [[NSFileManager defaultManager] displayNameAtPath:(fileList->item(0)->path())];
</span><span class="cx"> else
</span><del>- return StringTruncator::rightTruncate(multipleFileUploadText(fileList->length()), width, font, StringTruncator::EnableRoundingHacks);
</del><ins>+ return StringTruncator::rightTruncate(multipleFileUploadText(fileList->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->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 & 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 & 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->setFixedLayoutSize(IntSize());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- TextRun::setAllowsRoundingHacks(false);
</del><span class="cx"> WebCore::overrideUserPreferredLanguages(Vector<String>());
</span><span class="cx"> WebCore::Settings::setUsesOverlayScrollbars(false);
</span><span class="cx"> page->inspectorController().setProfilerEnabled(false);
</span><span class="lines">@@ -2038,11 +2037,6 @@
</span><span class="cx"> document->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& css, ExceptionCode& 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&) const;
</span><span class="cx">
</span><del>- void allowRoundingHacks() const;
-
</del><span class="cx"> void insertAuthorCSS(const String&, ExceptionCode&) const;
</span><span class="cx"> void insertUserCSS(const String&, ExceptionCode&) 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 <mmaxfield@apple.com>
+
+ 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 <cdumez@apple.com>
</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 <rdar://problem/6776301>.
</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, <rdar://problem/9691871>
</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 <mmaxfield@apple.com>
+
+ 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 <timothy_horton@apple.com>
</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<CTFontRef>(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<CTFontRef>(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 <mmaxfield@apple.com>
+
+ 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 <annulen@yandex.ru>
</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>