REGRESSION(r159345): Lines are clipped between pages when printing web content from...
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Jul 2014 13:55:55 +0000 (13:55 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Jul 2014 13:55:55 +0000 (13:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=134633

Source/WebCore:
<rdar://problem/17088936>

Reviewed by Zalan Bujtas.

Test: printing/simple-lines-break.html

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):

    Disable simple lines if global pagination is enabled.
    Printing does not currently use flow threads which we already test for.

LayoutTests:

Reviewed by Zalan Bujtas.

* printing/simple-lines-break-expected.html: Added.
* printing/simple-lines-break.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/printing/simple-lines-break-expected.html [new file with mode: 0644]
LayoutTests/printing/simple-lines-break.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/SimpleLineLayout.cpp

index 349492e..8b4e199 100644 (file)
@@ -1,3 +1,13 @@
+2014-07-04  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION(r159345): Lines are clipped between pages when printing web content from Safari
+        https://bugs.webkit.org/show_bug.cgi?id=134633
+
+        Reviewed by Zalan Bujtas.
+
+        * printing/simple-lines-break-expected.html: Added.
+        * printing/simple-lines-break.html: Added.
+
 2014-07-02  Brent Fulgham  <bfulgham@apple.com>
 
         [Mac] WebKit1 WebView iframe not responding to scroll gestures
diff --git a/LayoutTests/printing/simple-lines-break-expected.html b/LayoutTests/printing/simple-lines-break-expected.html
new file mode 100644 (file)
index 0000000..f7c1349
--- /dev/null
@@ -0,0 +1,136 @@
+<script>
+if (window.testRunner) {
+    testRunner.setPrinting();
+    internals.settings.setSimpleLineLayoutEnabled(false);
+}
+</script>
+
+ARGUMENTUM
+
+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.
diff --git a/LayoutTests/printing/simple-lines-break.html b/LayoutTests/printing/simple-lines-break.html
new file mode 100644 (file)
index 0000000..4519c90
--- /dev/null
@@ -0,0 +1,134 @@
+<script>
+if (window.testRunner)
+    testRunner.setPrinting();
+</script>
+
+ARGUMENTUM
+
+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.
index 9927d6c..5769627 100644 (file)
@@ -1,3 +1,19 @@
+2014-07-04  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION(r159345): Lines are clipped between pages when printing web content from Safari
+        https://bugs.webkit.org/show_bug.cgi?id=134633
+        <rdar://problem/17088936>
+
+        Reviewed by Zalan Bujtas.
+
+        Test: printing/simple-lines-break.html
+
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::canUseFor):
+        
+            Disable simple lines if global pagination is enabled.
+            Printing does not currently use flow threads which we already test for.
+
 2014-07-04  Zan Dobersek  <zdobersek@igalia.com>
 
         Unreviewed. Fixing the build after r170795.
index 55cca4d..ca97b1e 100644 (file)
@@ -103,6 +103,9 @@ bool canUseFor(const RenderBlockFlow& flow)
         return false;
     if (flow.flowThreadState() != RenderObject::NotInsideFlowThread)
         return false;
+    // Printing does pagination without a flow thread.
+    if (flow.document().paginated())
+        return false;
     if (flow.hasOutline())
         return false;
     if (flow.isRubyText() || flow.isRubyBase())