<!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 < 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 < 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 <antti@apple.com>
+
+ REGRESSION (r159560): Text clips on tile border if line-height < 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 <k.wolanski@samsung.com>
</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>+<script>
+ if (window.internals)
+ internals.settings.setSimpleLineLayoutEnabled(false);
+</script>
+<style>
+ div { line-height:10px; font-size:20px }
+</style>
+<div>
+ 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.
+</div>
</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>+<style>
+ div { line-height:10px; font-size:20px }
+</style>
+<div>
+ 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.
+</div>
</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 <antti@apple.com>
+
+ REGRESSION (r159560): Text clips on tile border if line-height < 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 < 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 <stavila@adobe.com>
</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<Iterator> rangeForRect(const LayoutRect&) 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& 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<float>(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<float>(y, 0);
</ins><span class="cx"> return std::min<unsigned>(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<Iterator>(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>