New issue
Advanced search Search tips

Issue 852773 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

When printing, text surrounding multi-page table seems to be rendered in bold

Reported by qu...@swydo.com, Jun 14 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3451.0 Safari/537.36

Steps to reproduce the problem:
Please also see the attached HTML file.

1. Create a table with a table header spanning multiple pages when printing
2. Add content (e.g. a div with some text) before and after the table element
3. Open print preview, observe text before and after the table is rendered in bold

What is the expected behavior?
Text is rendered as seen on page

What went wrong?
Text seems bold

Did this work before? N/A 

Chrome version: 69.0.3451.0  Channel: dev
OS Version: OS X 10.13.3
Flash Version: 

When wrapping the text with a div with "position: relative" the text is rendered as expected.

This is also seen on 68.0.3440.17
 
bold_when_multipage.html
2.7 KB View Download
as seen on page.png
11.4 KB View Download
as seen on print preview.png
65.0 KB View Download
Components: Internals>Printing
Owner: thestig@chromium.org
Status: Untriaged (was: Unconfirmed)
Mac triage: marking for printing triage.
Cc: wangxianzhu@chromium.org
Components: Blink>Layout
Labels: OS-Linux
Owner: ----
Reproduces on Linux. Doesn't seem quite all the way to "bold", especially if you zoom in a bit, but it is a little bolder and definitely different from the second line of text.

This bisects to the same thing as  https://crbug.com/852762 , i.e.  https://chromium.googlesource.com/chromium/src/+log/e52fcc1d97398a63cc876bd7f3e79b409b1042a7..62ca13ce4a8fda4f316692596f9bf61c74a58e34

Bisect includes https://chromium.googlesource.com/chromium/src/+/4ed270af2dfc4dc15c8306978c6774031a0ad1db, which was merged to 3440. Unassigning, tagging with Blink>Layout and cc-ing wangxianzhu@.

Comment 4 by e...@chromium.org, Jun 15 2018

Cc: mstensho@chromium.org
Labels: -Pri-2 Pri-3
Status: Unconfirmed (was: Untriaged)
Unable to reproduce, any idea what might be going on here Morten?
Labels: Needs-Triage-M69
I can reproduce this in Chrome 69 (but not in stable) on Linux. It looks like the text that incorrectly appears to be in bold is painted multiple times (it's not actually bold). The number of times may be based on the number of times the table header is repeating, perhaps.
Cc: -wangxianzhu@chromium.org
Labels: -Pri-3 Pri-2
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Unconfirmed)
Confirming that it's introduced by https://chromium.googlesource.com/chromium/src/+/4ed270af2dfc4dc15c8306978c6774031a0ad1db

Unfortunately I wasn't able to come up with a testcase that uses multicol instead of printing (which would have made it a bit more pleasant to debug).
Components: -Blink>Layout Blink>Paint
Labels: -Needs-Triage-M69 M-69
Some painters fail to skip painting when the layer is painting a fragment in which the painted object doesn't exist. Will fix this after Pre-SPv175 code removal.
Cc: thestig@chromium.org phanindra.mandapaka@chromium.org rbpotter@chromium.org wangxianzhu@chromium.org pbomm...@chromium.org
 Issue 854164  has been merged into this issue.
Cc: dgro...@chromium.org
 Issue 852762  has been merged into this issue.
 Issue 855611  has been merged into this issue.
Labels: -Type-Bug -Pri-2 M-68 ReleaseBlock-Stable OS-Chrome OS-Windows Pri-1 Type-Bug-Regression
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb

commit cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Sat Jun 23 22:41:52 2018

[PE] Don't fragment painting layer of repeating table header/footer in paged media

Previously, to let the painting layer of a repeating table header/footer
in paged media initiate multi-fragment painting, we created fragments
in the painting layer. This caused several problems:

- The fragments didn't have proper fragment clips, causing non-fragmented
  contents to be painted multiple times. It's also not feasible to create
  fragment clips for the forced fragments on the painting layer because
  we couldn't insert them into the clip tree.

- The previous "if (paint_info.FragmentToPaint(layout_table_section_))
  return;" in TableSectionPainter caused nested repeating header/footer
  not repeated.

Now don't fragment painting layer of repeating table header/footer in
paged media. Instead, let the repeating table header/footer repeat by
itself when needed.

Bug:  852773 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1172a334b5021eb7e987404bb72d9b841a4d39d4
Reviewed-on: https://chromium-review.googlesource.com/1112578
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569901}
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/printing/thead-repeat-in-nested-table-expected.txt
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/printing/thead-tfoot-containing-svg-repeat-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/printing/thead-tfoot-containing-svg-repeat-extra-pages-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/avoid-setting-header-offset-on-header-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/thead-tfoot-containing-svg-repeat-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/thead-tfoot-containing-svg-repeat-extra-pages-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac-mac10.12/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac-mac10.12/printing/thead-repeat-in-nested-table-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/layout_ng_experimental/printing/avoid-setting-header-offset-on-header-expected.png
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/mac/printing/thead-repeat-in-nested-table-expected.txt
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/win/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/win/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/platform/win/printing/thead-repeat-in-nested-table-expected.txt
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/composited-thead-tfoot-repeat-expected.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/composited-thead-tfoot-repeat.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/thead-repeat-in-nested-table.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/thead-repeats-with-translucent-text-and-borders-expected.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/thead-repeats-with-translucent-text-and-borders.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/thead-tfoot-repeat-in-relative-table-expected.html
[add] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/WebKit/LayoutTests/printing/thead-tfoot-repeat-in-relative-table.html
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/blink/renderer/core/paint/paint_info.h
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
[modify] https://crrev.com/cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb/third_party/blink/renderer/core/paint/table_section_painter.cc

Labels: Merge-Request-68
Verified on the latest canary 69.0.3472.0 that the patch fixed the bug with the test cases in this bug,   bug 854164 ,  bug 852762  and  bug 855611 .

The patch is not trivial, but it just focuses on repeating table header/footers in printing and won't affect normal rendering and other printings. It is well verified with multiple test cases without breaking any existing test cases. So it is safe to merge.
Project Member

Comment 15 by sheriffbot@chromium.org, Jun 25 2018

Labels: -Merge-Request-68 Hotlist-Merge-Review Merge-Review-68
This bug requires manual review: M68 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Any chance issue 850487 is the same root cause?
Re #c16: No. This bug is M68 and M69 only. Bug 850487 is an old bug that Chrome might never correctly render.
Are we fully confident this will not introduce any new regressions in M68?
wangxianzhu is right, the tests in this CL are awesome. But we've historically been quite short of tests in this area, such that we might not have all the coverage to know if there are regressions. wangxianzhu, if there IS a regression in 68 due to this patch, what would the plan be?

I'm not yet advocating either way for merging or not. I see the value in merging to 68 because this CL fixes significant regressions for the affected users. But we're also in a really tight spot if regressions are introduced by the fix and only caught in beta. What do you recommend we do if that turns out to be the situation?
I think we should merge it. It fixes obvious regressions, verified with increased test coverage. For now I don't see possibility of other regressions. The worst case is that it might cause regressions in much rare cases that we could live with them.
I vote merge too. If there are regressions, I agree that they will probably be in more minor cases than the ones fixed by this CL and we'll fix them in 69.
Labels: -Merge-Review-68 Merge-Approved-68
Thanks for more feedback. Approving merge for M68. branch:3440
Project Member

Comment 23 by bugdroid1@chromium.org, Jun 28 2018

Labels: -merge-approved-68 merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69d3b27666ec355f02f03bc24dd2be9d029ac391

commit 69d3b27666ec355f02f03bc24dd2be9d029ac391
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Thu Jun 28 19:28:30 2018

[PE] Don't fragment painting layer of repeating table header/footer in paged media

Previously, to let the painting layer of a repeating table header/footer
in paged media initiate multi-fragment painting, we created fragments
in the painting layer. This caused several problems:

- The fragments didn't have proper fragment clips, causing non-fragmented
  contents to be painted multiple times. It's also not feasible to create
  fragment clips for the forced fragments on the painting layer because
  we couldn't insert them into the clip tree.

- The previous "if (paint_info.FragmentToPaint(layout_table_section_))
  return;" in TableSectionPainter caused nested repeating header/footer
  not repeated.

Now don't fragment painting layer of repeating table header/footer in
paged media. Instead, let the repeating table header/footer repeat by
itself when needed.

TBR=wangxianzhu@chromium.org

(cherry picked from commit cf69822f0cdf24a24cce2f92fdfe029ba2cf7dfb)

Bug:  852773 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1172a334b5021eb7e987404bb72d9b841a4d39d4
Reviewed-on: https://chromium-review.googlesource.com/1112578
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#569901}
Reviewed-on: https://chromium-review.googlesource.com/1119083
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#563}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/printing/thead-repeat-in-nested-table-expected.txt
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/printing/thead-tfoot-containing-svg-repeat-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/printing/thead-tfoot-containing-svg-repeat-extra-pages-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/avoid-setting-header-offset-on-header-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/thead-tfoot-containing-svg-repeat-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/linux/virtual/layout_ng_experimental/printing/thead-tfoot-containing-svg-repeat-extra-pages-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac-mac10.12/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac-mac10.12/printing/thead-repeat-in-nested-table-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac-mac10.12/virtual/layout_ng_experimental/printing/avoid-setting-header-offset-on-header-expected.png
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/mac/printing/thead-repeat-in-nested-table-expected.txt
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/win/printing/avoid-setting-header-offset-on-header-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/win/printing/thead-repeat-in-nested-table-expected.png
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/platform/win/printing/thead-repeat-in-nested-table-expected.txt
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/composited-thead-tfoot-repeat-expected.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/composited-thead-tfoot-repeat.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/thead-repeat-in-nested-table.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/thead-repeats-with-translucent-text-and-borders-expected.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/thead-repeats-with-translucent-text-and-borders.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/thead-tfoot-repeat-in-relative-table-expected.html
[add] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/WebKit/LayoutTests/printing/thead-tfoot-repeat-in-relative-table.html
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/blink/renderer/core/paint/paint_info.h
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
[modify] https://crrev.com/69d3b27666ec355f02f03bc24dd2be9d029ac391/third_party/blink/renderer/core/paint/table_section_painter.cc

Status: Fixed (was: Assigned)

Sign in to add a comment