REGRESSION (r95249): Right side can be truncated when printing
authorharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Dec 2011 00:25:17 +0000 (00:25 +0000)
committerharaken@chromium.org <haraken@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Dec 2011 00:25:17 +0000 (00:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=73868

Reviewed by Darin Adler.

Source/WebCore:

When we print a page with an overflowed width, the right side of the page
can be truncated. This is due to a wrong rendering calculation.
Since 'maximumShrinkFactor' is a ratio based on 'pageSize',
'maximumShrinkFactor' should multiply (not 'originalPageSize') but 'pageSize'.
This bug happens if all the following conditions are met:
    - pageLogicalWidth < docLogicalWidth
    - originalPageSize.width * maximumShrinkFactor < docLogicalWidth
    - docLogicalWidth < pageLogicalWidth * maximumShrinkFactor

Test: printing/width-overflow.html

* page/FrameView.cpp:
(WebCore::FrameView::forceLayoutForPagination):

LayoutTests:

width-overflow.html checks if the page is printed without its right side
being truncated.

* printing/width-overflow.html: Added.
* platform/chromium-linux/printing/width-overflow-expected.png: Added.
* platform/chromium-linux/printing/width-overflow-expected.txt: Added.
* platform/mac-snowleopard/printing/width-overflow-expected.png: Added.
* platform/mac-snowleopard/printing/width-overflow-expected.txt: Added.
* platform/efl/Skipped: Skips width-overflow.html, since layoutTestController.setPrinting() is not implemented.
* platform/gtk/Skipped: Ditto.
* platform/qt/Skipped: Ditto.
* platform/win/Skipped: Ditto.
* platform/wincairo/Skipped: Ditto.
* platform/wk2/Skipped: Ditto.

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

14 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/chromium-linux/printing/width-overflow-expected.png [new file with mode: 0644]
LayoutTests/platform/chromium-linux/printing/width-overflow-expected.txt [new file with mode: 0644]
LayoutTests/platform/efl/Skipped
LayoutTests/platform/gtk/Skipped
LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.png [new file with mode: 0644]
LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.txt [new file with mode: 0644]
LayoutTests/platform/qt/Skipped
LayoutTests/platform/win/Skipped
LayoutTests/platform/wincairo/Skipped
LayoutTests/platform/wk2/Skipped
LayoutTests/printing/width-overflow.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp

index f384621..86cc558 100755 (executable)
@@ -1,3 +1,25 @@
+2011-12-07  Kentaro Hara  <haraken@chromium.org>
+
+        REGRESSION (r95249): Right side can be truncated when printing
+        https://bugs.webkit.org/show_bug.cgi?id=73868
+
+        Reviewed by Darin Adler.
+
+        width-overflow.html checks if the page is printed without its right side
+        being truncated.
+
+        * printing/width-overflow.html: Added.
+        * platform/chromium-linux/printing/width-overflow-expected.png: Added.
+        * platform/chromium-linux/printing/width-overflow-expected.txt: Added.
+        * platform/mac-snowleopard/printing/width-overflow-expected.png: Added.
+        * platform/mac-snowleopard/printing/width-overflow-expected.txt: Added.
+        * platform/efl/Skipped: Skips width-overflow.html, since layoutTestController.setPrinting() is not implemented.
+        * platform/gtk/Skipped: Ditto.
+        * platform/qt/Skipped: Ditto.
+        * platform/win/Skipped: Ditto.
+        * platform/wincairo/Skipped: Ditto.
+        * platform/wk2/Skipped: Ditto.
+
 2011-12-07  James Simonsen  <simonjam@chromium.org>
 
         [Chromium] Unreviewed, skip a test that may be causing Win DRT to hang.
diff --git a/LayoutTests/platform/chromium-linux/printing/width-overflow-expected.png b/LayoutTests/platform/chromium-linux/printing/width-overflow-expected.png
new file mode 100644 (file)
index 0000000..d3f0a5f
Binary files /dev/null and b/LayoutTests/platform/chromium-linux/printing/width-overflow-expected.png differ
diff --git a/LayoutTests/platform/chromium-linux/printing/width-overflow-expected.txt b/LayoutTests/platform/chromium-linux/printing/width-overflow-expected.txt
new file mode 100644 (file)
index 0000000..7e8384e
--- /dev/null
@@ -0,0 +1,158 @@
+layer at (0,0) size 1300x2408
+  RenderView at (0,0) size 1300x2408
+layer at (0,0) size 981x2408
+  RenderBlock {HTML} at (0,0) size 981x2408
+    RenderBody {BODY} at (0,16) size 981x2376
+      RenderBlock {P} at (0,0) size 981x20
+        RenderText {#text} at (0,0) size 707x19
+          text run at (0,0) width 707: "To run this test manually, print this page. If the right side of any lines is printed without being truncated, the test passes."
+      RenderBlock {DIV} at (0,36) size 1300x2340
+        RenderBlock {P} at (0,0) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,20) width 1286: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,40) width 1286: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,60) width 626: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+        RenderBlock {P} at (0,96) size 1300x80
+          RenderText {#text} at (0,0) size 1298x79
+            text run at (0,0) width 1298: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,20) width 1298: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,40) width 1298: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,60) width 290: "B B B B B B B B B B B B B B B B B B B B B"
+        RenderBlock {P} at (0,192) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,20) width 1286: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,40) width 1286: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,60) width 626: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+        RenderBlock {P} at (0,288) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,20) width 1286: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,40) width 1286: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,60) width 626: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+        RenderBlock {P} at (0,384) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+            text run at (0,20) width 1296: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+            text run at (0,40) width 1296: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+        RenderBlock {P} at (0,460) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+            text run at (0,20) width 1296: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+            text run at (0,40) width 1296: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+        RenderBlock {P} at (0,536) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,20) width 1286: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,40) width 1286: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,60) width 626: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+        RenderBlock {P} at (0,632) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,20) width 1286: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,40) width 1286: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,60) width 626: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+        RenderBlock {P} at (0,728) size 1300x60
+          RenderText {#text} at (0,0) size 1292x59
+            text run at (0,0) width 1292: "I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I"
+            text run at (0,20) width 1292: "I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I"
+            text run at (0,40) width 104: "I I I I I I I I I I I I"
+        RenderBlock {P} at (0,804) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+            text run at (0,20) width 1296: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+            text run at (0,40) width 396: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+        RenderBlock {P} at (0,880) size 1300x80
+          RenderText {#text} at (0,0) size 1292x79
+            text run at (0,0) width 1292: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,20) width 1292: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,40) width 1292: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,60) width 908: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+        RenderBlock {P} at (0,976) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+            text run at (0,20) width 1296: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+            text run at (0,40) width 1296: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+        RenderBlock {P} at (0,1052) size 1300x100
+          RenderText {#text} at (0,0) size 1292x99
+            text run at (0,0) width 1292: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,20) width 1292: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,40) width 1292: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,60) width 1292: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,80) width 212: "M M M M M M M M M M M M"
+        RenderBlock {P} at (0,1168) size 1300x80
+          RenderText {#text} at (0,0) size 1292x79
+            text run at (0,0) width 1292: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,20) width 1292: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,40) width 1292: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,60) width 908: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+        RenderBlock {P} at (0,1264) size 1300x80
+          RenderText {#text} at (0,0) size 1292x79
+            text run at (0,0) width 1292: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,20) width 1292: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,40) width 1292: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,60) width 908: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+        RenderBlock {P} at (0,1360) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+            text run at (0,20) width 1296: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+            text run at (0,40) width 1296: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+        RenderBlock {P} at (0,1436) size 1300x80
+          RenderText {#text} at (0,0) size 1292x79
+            text run at (0,0) width 1292: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,20) width 1292: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,40) width 1292: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,60) width 908: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+        RenderBlock {P} at (0,1532) size 1300x80
+          RenderText {#text} at (0,0) size 1298x79
+            text run at (0,0) width 1298: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,20) width 1298: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,40) width 1298: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,60) width 290: "R R R R R R R R R R R R R R R R R R R R R"
+        RenderBlock {P} at (0,1628) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+            text run at (0,20) width 1296: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+            text run at (0,40) width 1296: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+        RenderBlock {P} at (0,1704) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+            text run at (0,20) width 1296: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+            text run at (0,40) width 1296: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+        RenderBlock {P} at (0,1780) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,20) width 1286: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,40) width 1286: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,60) width 626: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+        RenderBlock {P} at (0,1876) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,20) width 1286: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,40) width 1286: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,60) width 626: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+        RenderBlock {P} at (0,1972) size 1300x100
+          RenderText {#text} at (0,0) size 1288x99
+            text run at (0,0) width 1288: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,20) width 1288: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,40) width 1288: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,60) width 1288: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,80) width 528: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+        RenderBlock {P} at (0,2088) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,20) width 1286: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,40) width 1286: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,60) width 626: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+        RenderBlock {P} at (0,2184) size 1300x80
+          RenderText {#text} at (0,0) size 1286x79
+            text run at (0,0) width 1286: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,20) width 1286: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,40) width 1286: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,60) width 626: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+        RenderBlock {P} at (0,2280) size 1300x60
+          RenderText {#text} at (0,0) size 1296x59
+            text run at (0,0) width 1296: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
+            text run at (0,20) width 1296: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
+            text run at (0,40) width 1296: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
index a7457b7..4fb6b26 100644 (file)
@@ -956,6 +956,7 @@ http/tests/loading/preload-append-scan.php
 # https://bugs.webkit.org/show_bug.cgi?id=20011
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
+printing/width-overflow.html
 
 # BUG: Support for LayoutTestController::setWillSendRequestReturnsNull not implemented
 media/media-blocked-by-willsendrequest.html
index b33848e..3627b9b 100644 (file)
@@ -1018,6 +1018,7 @@ fast/forms/file/input-file-directory-upload.html
 # Need setPrinting. See https://bugs.webkit.org/show_bug.cgi?id=20011
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
+printing/width-overflow.html
 
 # Advanced credential handling
 http/tests/security/401-logout/401-logout.php
diff --git a/LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.png b/LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.png
new file mode 100644 (file)
index 0000000..d138e07
Binary files /dev/null and b/LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.png differ
diff --git a/LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.txt b/LayoutTests/platform/mac-snowleopard/printing/width-overflow-expected.txt
new file mode 100644 (file)
index 0000000..15b76a4
--- /dev/null
@@ -0,0 +1,162 @@
+layer at (0,0) size 1300x2284
+  RenderView at (0,0) size 1300x2284
+layer at (0,0) size 981x2284
+  RenderBlock {HTML} at (0,0) size 981x2284
+    RenderBody {BODY} at (0,16) size 981x2252
+      RenderBlock {P} at (0,0) size 981x18
+        RenderText {#text} at (0,0) size 767x18
+          text run at (0,0) width 767: "To run this test manually, print this page. If the right side of any lines is printed without being truncated, the test passes."
+      RenderBlock {DIV} at (0,34) size 1300x2218
+        RenderBlock {P} at (0,0) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,18) width 1288: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,36) width 1288: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+            text run at (0,54) width 790: "A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A"
+        RenderBlock {P} at (0,88) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,18) width 1288: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,36) width 1288: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+            text run at (0,54) width 525: "B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B"
+        RenderBlock {P} at (0,176) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,18) width 1288: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,36) width 1288: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+            text run at (0,54) width 525: "C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C"
+        RenderBlock {P} at (0,264) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,18) width 1288: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,36) width 1288: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+            text run at (0,54) width 790: "D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D"
+        RenderBlock {P} at (0,352) size 1300x72
+          RenderText {#text} at (0,0) size 1291x72
+            text run at (0,0) width 1291: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+            text run at (0,18) width 1291: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+            text run at (0,36) width 1291: "E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E"
+            text run at (0,54) width 244: "E E E E E E E E E E E E E E E E E E"
+        RenderBlock {P} at (0,440) size 1300x54
+          RenderText {#text} at (0,0) size 1299x54
+            text run at (0,0) width 1299: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+            text run at (0,18) width 1299: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+            text run at (0,36) width 1261: "F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F"
+        RenderBlock {P} at (0,510) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,18) width 1288: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,36) width 1288: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+            text run at (0,54) width 790: "G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G"
+        RenderBlock {P} at (0,598) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,18) width 1288: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,36) width 1288: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+            text run at (0,54) width 790: "H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H"
+        RenderBlock {P} at (0,686) size 1300x54
+          RenderText {#text} at (0,0) size 1293x54
+            text run at (0,0) width 1293: "I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I"
+            text run at (0,18) width 1293: "I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I"
+            text run at (0,36) width 202: "I I I I I I I I I I I I I I I I I I I I I I"
+        RenderBlock {P} at (0,756) size 1300x54
+          RenderText {#text} at (0,0) size 1295x54
+            text run at (0,0) width 1295: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+            text run at (0,18) width 1295: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+            text run at (0,36) width 467: "J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J"
+        RenderBlock {P} at (0,826) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,18) width 1288: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,36) width 1288: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+            text run at (0,54) width 790: "K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K"
+        RenderBlock {P} at (0,914) size 1300x72
+          RenderText {#text} at (0,0) size 1291x72
+            text run at (0,0) width 1291: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+            text run at (0,18) width 1291: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+            text run at (0,36) width 1291: "L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L"
+            text run at (0,54) width 244: "L L L L L L L L L L L L L L L L L L"
+        RenderBlock {P} at (0,1002) size 1300x90
+          RenderText {#text} at (0,0) size 1291x90
+            text run at (0,0) width 1291: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,18) width 1291: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,36) width 1291: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,54) width 1291: "M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M"
+            text run at (0,72) width 288: "M M M M M M M M M M M M M M M M"
+        RenderBlock {P} at (0,1108) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,18) width 1288: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,36) width 1288: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+            text run at (0,54) width 790: "N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N"
+        RenderBlock {P} at (0,1196) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,18) width 1288: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,36) width 1288: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+            text run at (0,54) width 790: "O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O"
+        RenderBlock {P} at (0,1284) size 1300x54
+          RenderText {#text} at (0,0) size 1299x54
+            text run at (0,0) width 1299: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+            text run at (0,18) width 1299: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+            text run at (0,36) width 1261: "P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P"
+        RenderBlock {P} at (0,1354) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,18) width 1288: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,36) width 1288: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+            text run at (0,54) width 790: "Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q"
+        RenderBlock {P} at (0,1442) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,18) width 1288: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,36) width 1288: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+            text run at (0,54) width 525: "R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R"
+        RenderBlock {P} at (0,1530) size 1300x54
+          RenderText {#text} at (0,0) size 1299x54
+            text run at (0,0) width 1299: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+            text run at (0,18) width 1299: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+            text run at (0,36) width 1261: "S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S"
+        RenderBlock {P} at (0,1600) size 1300x72
+          RenderText {#text} at (0,0) size 1291x72
+            text run at (0,0) width 1291: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+            text run at (0,18) width 1291: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+            text run at (0,36) width 1291: "T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T"
+            text run at (0,54) width 244: "T T T T T T T T T T T T T T T T T T"
+        RenderBlock {P} at (0,1688) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,18) width 1288: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,36) width 1288: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+            text run at (0,54) width 790: "U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U"
+        RenderBlock {P} at (0,1776) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,18) width 1288: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,36) width 1288: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+            text run at (0,54) width 790: "V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V"
+        RenderBlock {P} at (0,1864) size 1300x90
+          RenderText {#text} at (0,0) size 1295x90
+            text run at (0,0) width 1295: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,18) width 1295: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,36) width 1295: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,54) width 1295: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+            text run at (0,72) width 531: "W W W W W W W W W W W W W W W W W W W W W W W W W W W W"
+        RenderBlock {P} at (0,1970) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,18) width 1288: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,36) width 1288: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+            text run at (0,54) width 790: "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X"
+        RenderBlock {P} at (0,2058) size 1300x72
+          RenderText {#text} at (0,0) size 1288x72
+            text run at (0,0) width 1288: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,18) width 1288: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,36) width 1288: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+            text run at (0,54) width 790: "Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y"
+        RenderBlock {P} at (0,2146) size 1300x72
+          RenderText {#text} at (0,0) size 1291x72
+            text run at (0,0) width 1291: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
+            text run at (0,18) width 1291: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
+            text run at (0,36) width 1291: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
+            text run at (0,54) width 244: "Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z"
index 03e5f39..8344391 100644 (file)
@@ -1687,6 +1687,7 @@ fast/dom/beforeload/remove-video-in-beforeload-listener.html
 # Need setPrinting. See https://bugs.webkit.org/show_bug.cgi?id=20011
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
+printing/width-overflow.html
 
 # Web Timing related bugs
 # https://bugs.webkit.org/show_bug.cgi?id=51245
index 59708cd..6f9484a 100644 (file)
@@ -1149,6 +1149,7 @@ fast/forms/file/input-file-directory-upload.html
 # Need setPrinting. See https://bugs.webkit.org/show_bug.cgi?id=20011
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
+printing/width-overflow.html
 
 # Need to call Settings::setInteractiveFormValidationEnabled(true).
 fast/forms/interactive-validation-prevented.html
index 0ae7669..daff057 100644 (file)
@@ -1665,6 +1665,7 @@ fast/forms/file/input-file-directory-upload.html
 # Need setPrinting. See https://bugs.webkit.org/show_bug.cgi?id=20011
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
+printing/width-overflow.html
 
 # Need to call Settings::setInteractiveFormValidationEnabled(true).
 fast/forms/interactive-validation-prevented.html
index 8d84127..53c4bbd 100644 (file)
@@ -709,6 +709,7 @@ printing/page-rule-in-media-query.html
 printing/setPrinting.html
 printing/single-line-must-not-be-split-into-two-pages.html
 printing/simultaneous-position-float-change.html
+printing/width-overflow.html
 
 # WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
 # <https://bugs.webkit.org/show_bug.cgi?id=42696>
diff --git a/LayoutTests/printing/width-overflow.html b/LayoutTests/printing/width-overflow.html
new file mode 100644 (file)
index 0000000..449238c
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+body {
+    margin : 0;
+}
+
+div {
+    margin : auto;
+    width : 1300px;
+}
+</style>
+</head>
+
+<body>
+<p>
+To run this test manually, print this page.
+If the right side of any lines is printed without being truncated, the test passes.
+</p>
+<div id="result">
+</div>
+<script>
+if (window.layoutTestController)
+    layoutTestController.setPrinting();
+
+var testCases = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+var result = "";
+for (var i = 0; i < testCases.length; i++) {
+    result += "<p>";
+    for (var j = 0; j < 300; j++) {
+        result += testCases[i] + " ";
+    }
+    result += "</p>\n";
+}
+document.getElementById("result").innerHTML = result;
+</script>
+</body>
+</html>
index 26a3a50..f2bb272 100755 (executable)
@@ -1,3 +1,24 @@
+2011-12-07  Kentaro Hara  <haraken@chromium.org>
+
+        REGRESSION (r95249): Right side can be truncated when printing
+        https://bugs.webkit.org/show_bug.cgi?id=73868
+
+        Reviewed by Darin Adler.
+
+        When we print a page with an overflowed width, the right side of the page
+        can be truncated. This is due to a wrong rendering calculation.
+        Since 'maximumShrinkFactor' is a ratio based on 'pageSize',
+        'maximumShrinkFactor' should multiply (not 'originalPageSize') but 'pageSize'.
+        This bug happens if all the following conditions are met:
+            - pageLogicalWidth < docLogicalWidth
+            - originalPageSize.width * maximumShrinkFactor < docLogicalWidth
+            - docLogicalWidth < pageLogicalWidth * maximumShrinkFactor
+
+        Test: printing/width-overflow.html
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::forceLayoutForPagination):
+
 2011-12-07  Yong Li  <yoli@rim.com>
 
         Defer ScriptExecutionContext::Task's in Document when page loading is deferred.
index 6913e8e..876ea10 100644 (file)
@@ -3040,8 +3040,8 @@ void FrameView::forceLayoutForPagination(const FloatSize& pageSize, const FloatS
         const LayoutRect& documentRect = root->documentRect();
         LayoutUnit docLogicalWidth = horizontalWritingMode ? documentRect.width() : documentRect.height();
         if (docLogicalWidth > pageLogicalWidth) {
-            int expectedPageWidth = std::min<float>(documentRect.width(), originalPageSize.width() * maximumShrinkFactor);
-            int expectedPageHeight = std::min<float>(documentRect.height(), originalPageSize.height() * maximumShrinkFactor);
+            int expectedPageWidth = std::min<float>(documentRect.width(), pageSize.width() * maximumShrinkFactor);
+            int expectedPageHeight = std::min<float>(documentRect.height(), pageSize.height() * maximumShrinkFactor);
             FloatSize maxPageSize = m_frame->resizePageRectsKeepingRatio(FloatSize(originalPageSize.width(), originalPageSize.height()), FloatSize(expectedPageWidth, expectedPageHeight));
             pageLogicalWidth = horizontalWritingMode ? maxPageSize.width() : maxPageSize.height();
             pageLogicalHeight = horizontalWritingMode ? maxPageSize.height() : maxPageSize.width();