<!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>[168624] 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/168624">168624</a></dd>
<dt>Author</dt> <dd>antti@apple.com</dd>
<dt>Date</dt> <dd>2014-05-12 10:56:17 -0700 (Mon, 12 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>REGRESSION (<a href="http://trac.webkit.org/projects/webkit/changeset/159560">r159560</a>): Text clips on tile border if line-height &lt; font-size
https://bugs.webkit.org/show_bug.cgi?id=132822

Reviewed by Andreas Kling.

Source/WebCore: 
        
The first line of simple line layout run range was miscomputed.

Test: fast/text/simple-lines-range-low-line-height.html

* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
        
    Lines may overlap if line-height &lt; font-size. Apply different adjustment when searching for range begin
    so that overflowing earlier lines are taken into account.

(WebCore::SimpleLineLayout::RunResolver::rangeForRect):

LayoutTests: 

* fast/text/simple-lines-range-low-line-height-expected.html: Added.
* fast/text/simple-lines-range-low-line-height.html: Added.</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="#trunkSourceWebCorerenderingSimpleLineLayoutResolverh">trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasttextsimplelinesrangelowlineheightexpectedhtml">trunk/LayoutTests/fast/text/simple-lines-range-low-line-height-expected.html</a></li>
<li><a href="#trunkLayoutTestsfasttextsimplelinesrangelowlineheighthtml">trunk/LayoutTests/fast/text/simple-lines-range-low-line-height.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (168623 => 168624)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-05-12 16:04:56 UTC (rev 168623)
+++ trunk/LayoutTests/ChangeLog        2014-05-12 17:56:17 UTC (rev 168624)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-05-12  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        REGRESSION (r159560): Text clips on tile border if line-height &lt; font-size
+        https://bugs.webkit.org/show_bug.cgi?id=132822
+
+        Reviewed by Andreas Kling.
+
+        * fast/text/simple-lines-range-low-line-height-expected.html: Added.
+        * fast/text/simple-lines-range-low-line-height.html: Added.
+
</ins><span class="cx"> 2014-05-12  Krzysztof Wolanski  &lt;k.wolanski@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] Rebaseline after adding tests in r168350
</span></span></pre></div>
<a id="trunkLayoutTestsfasttextsimplelinesrangelowlineheightexpectedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/text/simple-lines-range-low-line-height-expected.html (0 => 168624)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/simple-lines-range-low-line-height-expected.html                                (rev 0)
+++ trunk/LayoutTests/fast/text/simple-lines-range-low-line-height-expected.html        2014-05-12 17:56:17 UTC (rev 168624)
</span><span class="lines">@@ -0,0 +1,132 @@
</span><ins>+&lt;script&gt;
+    if (window.internals)
+        internals.settings.setSimpleLineLayoutEnabled(false);
+&lt;/script&gt;
+&lt;style&gt;
+    div { line-height:10px; font-size:20px }
+&lt;/style&gt;
+&lt;div&gt;
+    L. Sergius Catilina, homo patricii generis, magna vi et animi et
+    corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
+    caedem consulum facere eaque facta rerum potiri constituerat, casu autem
+    rem perficere prohibitus erat, ascitis ad consilium rei publicae
+    opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
+    inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
+    petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
+    parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
+    C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
+    C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
+    Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
+    consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
+    particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
+    consilia contra salutem rei publicae a coniuratis inita apertius iam
+    agitarentur, senatus consultum factum est, darent operam consules, ne quid
+    res publica detrimenti caperet, effectumque est, ut Catilina spe
+    consulatus, quem in proximum annum petebat, excideret, designarenturque
+    D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
+    per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
+    concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
+    Etruriae munitam, manum armatorum coegerat, proficisci constituit et
+    bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
+    Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
+    aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
+    consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
+    intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
+    die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
+    templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
+    causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
+    vehementissime invehens habuit.
+    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
+    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
+    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
+    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
+    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
+    consilia non sentis, constrictam iam horum omnium scientia teneri
+    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
+    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
+    ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
+    videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
+    publici consilii particeps, notat et designat oculis ad caedem unum
+    quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
+    si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
+    consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
+    [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
+    maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
+    privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
+    cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
+    C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
+    Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
+    acrioribus suppliciis civem perniciosum quam acerbissimum hostem
+    coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
+    non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
+    dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
+    consul videret, ne quid res publica detrimenti caperet; nox nulla
+    intercessit; interfectus est propter quasdam seditionum suspiciones
+    C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
+    M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
+    consulibus est permissa res publica; num unum diem postea L. Saturninum
+    tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
+    remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
+    horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
+    inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
+    confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
+    deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
+    esse clementem, cupio in tantis rei publicae periculis me non dissolutum
+    videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
+    Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
+    dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
+    hostium intra moenia atque adeo in senatu videmus intestinam aliquam
+    cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
+    comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
+    potius hoc omnes boni serius a me quam quisquam crudelius factum esse
+    dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
+    causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
+    tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
+    iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
+    audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
+    praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
+    te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
+    speculabuntur atque custodient.
+    Etenim quid est, Catilina, quod iam amplius expectes, si neque nox
+    tenebris obscurare coeptus nefarios nec privata domus parietibus continere
+    voces coniurationis tuae potest, si illustrantur, si erumpunt omnia?  Muta
+    iam istam mentem, mihi crede, obliviscere caedis atque incendiorum.
+    Teneris undique; luce sunt clariora nobis tua consilia omnia; quae iam
+    mecum licet recognoscas.  Meministine me ante diem XII Kalendas Novembris
+    dicere in senatu fore in armis certo die, qui dies futurus esset ante diem
+    VI Kal.  Novembris, C. Manlium, audaciae satellitem atque administrum
+    tuae?  Num me fefellit, Catilina, non modo res tanta, tam atrox tamque
+    incredibilis, verum, id quod multo magis est admirandum, dies?  Dixi ego
+    idem in senatu caedem te optumatium contulisse in ante diem V Kalendas
+    Novembris, tum cum multi principes civitatis Roma non tam sui conservandi
+    quam tuorum consiliorum reprimendorum causa profugerunt.  Num infitiari
+    potes te illo ipso die meis praesidiis, mea diligentia circumclusum
+    commovere te contra rem publicam non potuisse, cum tu discessu ceterorum
+    nostra tamen, qui remansissemus, caede te contentum esse dicebas?  Quid?
+    cum te Praeneste Kalendis ipsis Novembribus occupaturum nocturno impetu
+    esse confideres, sensistin illam coloniam meo iussu meis praesidiis,
+    custodiis, vigiliis esse munitam?  Nihil agis, nihil moliris, nihil
+    cogitas, quod non ego non modo audiam, sed etiam videam planeque sentiam.
+    Recognosce tandem mecum noctem illam superiorem; iam intelleges multo me
+    vigilare acrius ad salutem quam te ad perniciem rei publicae.  Dico te
+    priore nocte venisse inter falcarios (non agam obscure) in M. Laecae
+    domum; convenisse eodem complures eiusdem amentiae scelerisque socios.
+    Num negare audes?  quid taces?  Convincam, si negas.  Video enim esse hic
+    in senatu quosdam, qui tecum una fuerunt.  O di inmortales! ubinam gentium
+    sumus?  in qua urbe vivimus?  quam rem publicam habemus?  Hic, hic sunt in
+    nostro numero, patres conscripti, in hoc orbis terrae sanctissimo
+    gravissimoque consilio, qui de nostro omnium interitu, qui de huius urbis
+    atque adeo de orbis terrarum exitio cogitent! Hos ego video consul et de
+    re publica sententiam rogo et, quos ferro trucidari oportebat, eos nondum
+    voce volnero! Fuisti igitur apud Laecam illa nocte, Catilina, distribuisti
+    partes Italiae, statuisti, quo quemque proficisci placeret, delegisti,
+    quos Romae relinqueres, quos tecum educeres, discripsisti urbis partes ad
+    incendia, confirmasti te ipsum iam esse exiturum, dixisti paulum tibi esse
+    etiam nunc morae, quod ego viverem.  Reperti sunt duo equites Romani, qui
+    te ista cura liberarent et sese illa ipsa nocte paulo ante lucem me in meo
+    lectulo interfecturos [esse] pollicerentur.  Haec ego omnia vixdum etiam
+    coetu vestro dimisso comperi; domum meam maioribus praesidiis munivi atque
+    firmavi, exclusi eos, quos tu ad me salutatum mane miseras, cum illi ipsi
+    venissent, quos ego iam multis ac summis viris ad me id temporis venturos
+    esse praedixeram.
+&lt;/div&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasttextsimplelinesrangelowlineheighthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/text/simple-lines-range-low-line-height.html (0 => 168624)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/simple-lines-range-low-line-height.html                                (rev 0)
+++ trunk/LayoutTests/fast/text/simple-lines-range-low-line-height.html        2014-05-12 17:56:17 UTC (rev 168624)
</span><span class="lines">@@ -0,0 +1,128 @@
</span><ins>+&lt;style&gt;
+    div { line-height:10px; font-size:20px }
+&lt;/style&gt;
+&lt;div&gt;
+    L. Sergius Catilina, homo patricii generis, magna vi et animi et
+    corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
+    caedem consulum facere eaque facta rerum potiri constituerat, casu autem
+    rem perficere prohibitus erat, ascitis ad consilium rei publicae
+    opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
+    inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
+    petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
+    parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
+    C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
+    C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
+    Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
+    consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
+    particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
+    consilia contra salutem rei publicae a coniuratis inita apertius iam
+    agitarentur, senatus consultum factum est, darent operam consules, ne quid
+    res publica detrimenti caperet, effectumque est, ut Catilina spe
+    consulatus, quem in proximum annum petebat, excideret, designarenturque
+    D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
+    per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
+    concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
+    Etruriae munitam, manum armatorum coegerat, proficisci constituit et
+    bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
+    Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
+    aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
+    consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
+    intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
+    die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
+    templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
+    causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
+    vehementissime invehens habuit.
+    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
+    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
+    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
+    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
+    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
+    consilia non sentis, constrictam iam horum omnium scientia teneri
+    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
+    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
+    ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
+    videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
+    publici consilii particeps, notat et designat oculis ad caedem unum
+    quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
+    si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
+    consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
+    [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
+    maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
+    privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
+    cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
+    C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
+    Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
+    acrioribus suppliciis civem perniciosum quam acerbissimum hostem
+    coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
+    non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
+    dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
+    consul videret, ne quid res publica detrimenti caperet; nox nulla
+    intercessit; interfectus est propter quasdam seditionum suspiciones
+    C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
+    M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
+    consulibus est permissa res publica; num unum diem postea L. Saturninum
+    tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
+    remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
+    horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
+    inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
+    confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
+    deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
+    esse clementem, cupio in tantis rei publicae periculis me non dissolutum
+    videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
+    Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
+    dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
+    hostium intra moenia atque adeo in senatu videmus intestinam aliquam
+    cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
+    comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
+    potius hoc omnes boni serius a me quam quisquam crudelius factum esse
+    dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
+    causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
+    tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
+    iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
+    audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
+    praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
+    te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
+    speculabuntur atque custodient.
+    Etenim quid est, Catilina, quod iam amplius expectes, si neque nox
+    tenebris obscurare coeptus nefarios nec privata domus parietibus continere
+    voces coniurationis tuae potest, si illustrantur, si erumpunt omnia?  Muta
+    iam istam mentem, mihi crede, obliviscere caedis atque incendiorum.
+    Teneris undique; luce sunt clariora nobis tua consilia omnia; quae iam
+    mecum licet recognoscas.  Meministine me ante diem XII Kalendas Novembris
+    dicere in senatu fore in armis certo die, qui dies futurus esset ante diem
+    VI Kal.  Novembris, C. Manlium, audaciae satellitem atque administrum
+    tuae?  Num me fefellit, Catilina, non modo res tanta, tam atrox tamque
+    incredibilis, verum, id quod multo magis est admirandum, dies?  Dixi ego
+    idem in senatu caedem te optumatium contulisse in ante diem V Kalendas
+    Novembris, tum cum multi principes civitatis Roma non tam sui conservandi
+    quam tuorum consiliorum reprimendorum causa profugerunt.  Num infitiari
+    potes te illo ipso die meis praesidiis, mea diligentia circumclusum
+    commovere te contra rem publicam non potuisse, cum tu discessu ceterorum
+    nostra tamen, qui remansissemus, caede te contentum esse dicebas?  Quid?
+    cum te Praeneste Kalendis ipsis Novembribus occupaturum nocturno impetu
+    esse confideres, sensistin illam coloniam meo iussu meis praesidiis,
+    custodiis, vigiliis esse munitam?  Nihil agis, nihil moliris, nihil
+    cogitas, quod non ego non modo audiam, sed etiam videam planeque sentiam.
+    Recognosce tandem mecum noctem illam superiorem; iam intelleges multo me
+    vigilare acrius ad salutem quam te ad perniciem rei publicae.  Dico te
+    priore nocte venisse inter falcarios (non agam obscure) in M. Laecae
+    domum; convenisse eodem complures eiusdem amentiae scelerisque socios.
+    Num negare audes?  quid taces?  Convincam, si negas.  Video enim esse hic
+    in senatu quosdam, qui tecum una fuerunt.  O di inmortales! ubinam gentium
+    sumus?  in qua urbe vivimus?  quam rem publicam habemus?  Hic, hic sunt in
+    nostro numero, patres conscripti, in hoc orbis terrae sanctissimo
+    gravissimoque consilio, qui de nostro omnium interitu, qui de huius urbis
+    atque adeo de orbis terrarum exitio cogitent! Hos ego video consul et de
+    re publica sententiam rogo et, quos ferro trucidari oportebat, eos nondum
+    voce volnero! Fuisti igitur apud Laecam illa nocte, Catilina, distribuisti
+    partes Italiae, statuisti, quo quemque proficisci placeret, delegisti,
+    quos Romae relinqueres, quos tecum educeres, discripsisti urbis partes ad
+    incendia, confirmasti te ipsum iam esse exiturum, dixisti paulum tibi esse
+    etiam nunc morae, quod ego viverem.  Reperti sunt duo equites Romani, qui
+    te ista cura liberarent et sese illa ipsa nocte paulo ante lucem me in meo
+    lectulo interfecturos [esse] pollicerentur.  Haec ego omnia vixdum etiam
+    coetu vestro dimisso comperi; domum meam maioribus praesidiis munivi atque
+    firmavi, exclusi eos, quos tu ad me salutatum mane miseras, cum illi ipsi
+    venissent, quos ego iam multis ac summis viris ad me id temporis venturos
+    esse praedixeram.
+&lt;/div&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (168623 => 168624)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-12 16:04:56 UTC (rev 168623)
+++ trunk/Source/WebCore/ChangeLog        2014-05-12 17:56:17 UTC (rev 168624)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2014-05-12  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        REGRESSION (r159560): Text clips on tile border if line-height &lt; font-size
+        https://bugs.webkit.org/show_bug.cgi?id=132822
+
+        Reviewed by Andreas Kling.
+        
+        The first line of simple line layout run range was miscomputed.
+
+        Test: fast/text/simple-lines-range-low-line-height.html
+
+        * rendering/SimpleLineLayoutResolver.h:
+        (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
+        
+            Lines may overlap if line-height &lt; font-size. Apply different adjustment when searching for range begin
+            so that overflowing earlier lines are taken into account.
+
+        (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
+
</ins><span class="cx"> 2014-05-12  Radu Stavila  &lt;stavila@adobe.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Invalid information remaining in lineToRegion map of RenderFlowThread.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutResolverh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h (168623 => 168624)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h        2014-05-12 16:04:56 UTC (rev 168623)
+++ trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h        2014-05-12 17:56:17 UTC (rev 168624)
</span><span class="lines">@@ -102,7 +102,8 @@
</span><span class="cx">     Range&lt;Iterator&gt; rangeForRect(const LayoutRect&amp;) const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    unsigned lineIndexForHeight(LayoutUnit) const;
</del><ins>+    enum class IndexType { First, Last };
+    unsigned lineIndexForHeight(LayoutUnit, IndexType) const;
</ins><span class="cx"> 
</span><span class="cx">     const Layout&amp; m_layout;
</span><span class="cx">     const String m_string;
</span><span class="lines">@@ -270,10 +271,16 @@
</span><span class="cx">     return Iterator(*this, m_layout.runCount(), m_layout.lineCount());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline unsigned RunResolver::lineIndexForHeight(LayoutUnit height) const
</del><ins>+inline unsigned RunResolver::lineIndexForHeight(LayoutUnit height, IndexType type) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_lineHeight);
</span><del>-    float y = std::max&lt;float&gt;(height - m_borderAndPaddingBefore - m_baseline + m_ascent, 0);
</del><ins>+    float y = height - m_borderAndPaddingBefore;
+    // Lines may overlap, adjust to get the first or last line at this height.
+    if (type == IndexType::First)
+        y += m_lineHeight - (m_baseline + m_descent);
+    else
+        y -= m_baseline - m_ascent;
+    y = std::max&lt;float&gt;(y, 0);
</ins><span class="cx">     return std::min&lt;unsigned&gt;(y / m_lineHeight, m_layout.lineCount() - 1);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -282,8 +289,8 @@
</span><span class="cx">     if (!m_lineHeight)
</span><span class="cx">         return Range&lt;Iterator&gt;(begin(), end());
</span><span class="cx"> 
</span><del>-    unsigned firstLine = lineIndexForHeight(rect.y());
-    unsigned lastLine = std::max(firstLine, lineIndexForHeight(rect.maxY()));
</del><ins>+    unsigned firstLine = lineIndexForHeight(rect.y(), IndexType::First);
+    unsigned lastLine = std::max(firstLine, lineIndexForHeight(rect.maxY(), IndexType::Last));
</ins><span class="cx"> 
</span><span class="cx">     auto rangeBegin = begin().advanceLines(firstLine);
</span><span class="cx">     if (rangeBegin == end())
</span></span></pre>
</div>
</div>

</body>
</html>