diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2018-06-29 15:45:58 +0200 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2018-07-05 12:14:43 +0000 |
commit | 30a333f2b8649ccd9babb78a7b1e8057d03312a3 (patch) | |
tree | 2818bb867f5f0518b33082bd73f826007cd28376 | |
parent | 4ee7f364b5ccdcd98e6ff34e7a82ef937c07c91d (diff) | |
download | qtwebengine-chromium-30a333f2b8649ccd9babb78a7b1e8057d03312a3.tar.gz |
[Backport] [PE] Another method to avoid DCHECK when printing repeating fixed-position objects
The previous CL for the bug was reverted because it caused crashes.
We may still go through the normal paint path which requires layer
states during printing, so for safety don't skip layer state update,
but just suppress the DCHECK when printing.
Bug: 848730
Reviewed-on: https://chromium-review.googlesource.com/1097558
Cr-Commit-Position: refs/heads/master@{#567060}
Change-Id: I5cc27df54e7fdd66609eacc52a3cda990e37e733
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | chromium/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.cc b/chromium/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.cc index a227e44049e..7f340dc9a11 100644 --- a/chromium/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.cc +++ b/chromium/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.cc @@ -26,7 +26,10 @@ void CompositingLayerPropertyUpdater::Update(const LayoutObject& object) { const FragmentData& fragment_data = object.FirstFragment(); DCHECK(fragment_data.HasLocalBorderBoxProperties()); // SPv1 compositing forces single fragment for composited elements. - DCHECK(!fragment_data.NextFragment()); + DCHECK(!fragment_data.NextFragment() || + // We create multiple fragments for composited repeating fixed-position + // during printing. + object.GetDocument().Printing()); LayoutPoint layout_snapped_paint_offset = fragment_data.PaintOffset() - mapping->SubpixelAccumulation(); |