summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2018-06-29 15:45:58 +0200
committerSzabolcs David <davidsz@inf.u-szeged.hu>2018-07-05 12:14:43 +0000
commit30a333f2b8649ccd9babb78a7b1e8057d03312a3 (patch)
tree2818bb867f5f0518b33082bd73f826007cd28376
parent4ee7f364b5ccdcd98e6ff34e7a82ef937c07c91d (diff)
downloadqtwebengine-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.cc5
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();