New issue
Advanced search Search tips

Issue 841423 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug

Blocking:
issue 836912



Sign in to add a comment

[BlinkGenPropertyTrees] :Check failed: false. New paint chunk id has duplicated id with previous chuck

Project Member Reported by bokan@chromium.org, May 9 2018

Issue description

This causes a failure in scrollbars/scrollbar-added-during-drag.html

crash log for renderer (pid <unknown>):
STDOUT: <empty>
STDERR: [1:1:0509/132040.085034:ERROR:paint_controller_debug_data.cc(155)] current display item list: []
STDERR: 
STDERR: [1:1:0509/132040.085279:ERROR:paint_controller_debug_data.cc(164)] new display item list: [
STDERR:   {
STDERR:     "chunk": "LayoutView #document 0x85e56f49218:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56fa9cf0 c:0x85e56f9c250 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 0,
STDERR:         "clientDebugName": "LayoutView #document",
STDERR:         "id": "0x85e56f49218:ForeignLayerWrapper:0",
STDERR:         "visualRect": "0,0 800x600",
STDERR:         "layer": 292
STDERR:       }
STDERR:     ]
STDERR:   },
STDERR:   {
STDERR:     "chunk": "LayoutIFrame IFRAME id='f' 0x85e56f49b18:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56fa9b90 c:0x85e56f9dc30 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 1,
STDERR:         "clientDebugName": "LayoutIFrame IFRAME id='f'",
STDERR:         "id": "0x85e56f49b18:ForeignLayerWrapper:0",
STDERR:         "visualRect": "0,0 800x600",
STDERR:         "layer": 303
STDERR:       }
STDERR:     ]
STDERR:   },
STDERR:   {
STDERR:     "chunk": "Scrolling Contents Layer 0x85e56f4f098:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56facd10 c:0x85e56f9d690 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 2,
STDERR:         "clientDebugName": "Scrolling Contents Layer",
STDERR:         "id": "0x85e56f4f098:ForeignLayerWrapper:0",
STDERR:         "visualRect": "0,0 2008x2016",
STDERR:         "layer": 296
STDERR:       }
STDERR:     ]
STDERR:   },
STDERR:   {
STDERR:     "chunk": "Horizontal Scrollbar Layer 0x85e56f4ba98:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56facbb0 c:0x85e56f9dc30 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 3,
STDERR:         "clientDebugName": "Horizontal Scrollbar Layer",
STDERR:         "id": "0x85e56f4ba98:ForeignLayerContentsWrapper:0",
STDERR:         "visualRect": "0,585 785x15",
STDERR:         "layer": 298
STDERR:       }
STDERR:     ]
STDERR:   },
STDERR:   {
STDERR:     "chunk": "Vertical Scrollbar Layer 0x85e56f4c5d8:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56facbb0 c:0x85e56f9dc30 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 4,
STDERR:         "clientDebugName": "Vertical Scrollbar Layer",
STDERR:         "id": "0x85e56f4c5d8:ForeignLayerContentsWrapper:0",
STDERR:         "visualRect": "785,0 15x585",
STDERR:         "layer": 300
STDERR:       }
STDERR:     ]
STDERR:   },
STDERR:   {
STDERR:     "chunk": "Scroll Corner Layer 0x85e56f4ced8:ForeignLayerWrapper:0",
STDERR:     "state": "t:0x85e56facbb0 c:0x85e56f9dc30 e:0x85e56f541f0",
STDERR:     "displayItems": [
STDERR:       {
STDERR:         "index": 5,
STDERR:         "clientDebugName": "Scroll Corner Layer",
STDERR:         "id": "0x85e56f4ced8:ForeignLayerWrapper:0",
STDERR:         "visualRect": "785,585 15x15",
STDERR:         "layer": 301
STDERR:       }
STDERR:     ]
STDERR:   }
STDERR: ]
STDERR: 
STDERR: [1:1:0509/132040.086069:FATAL:paint_controller.cc(1188)] Check failed: false. New paint chunk id 0x85e56f4ba98:ForeignLayerWrapper:0 has duplicated id with previous chuck PaintChunk(begin=3, end=4, id=0x85e56f4ba98:ForeignLayerWrapper:0 cacheable=1 props=(t:0x85e56facbb0 c:0x85e56f9dc30 e:0x85e56f541f0) bounds=0,0 0x0 known_to_be_opaque=0)
STDERR: #0 0x7f4267f229bd base::debug::StackTrace::StackTrace()
STDERR: #1 0x7f4267c4c4bc base::debug::StackTrace::StackTrace()
STDERR: #2 0x7f4267cbdfaa logging::LogMessage::~LogMessage()
STDERR: #3 0x7f4255a901a9 blink::PaintController::CheckDuplicatePaintChunkId()
STDERR: #4 0x7f425831505f blink::PaintController::UpdateCurrentPaintChunkProperties()
STDERR: #5 0x7f4258314e49 blink::ScopedPaintChunkProperties::ScopedPaintChunkProperties()
STDERR: #6 0x7f42582ff77f blink::CollectDrawableLayersForLayerListRecursively()
STDERR: #7 0x7f42582fe57a blink::LocalFrameView::PaintTree()
STDERR: #8 0x7f42582fbe22 blink::LocalFrameView::UpdateLifecyclePhasesInternal()
STDERR: #9 0x7f42582fb1a2 blink::LocalFrameView::UpdateAllLifecyclePhases()
STDERR: #10 0x7f4258b9a11b blink::PageAnimator::UpdateAllLifecyclePhases()
STDERR: #11 0x7f4258b9f9bc blink::PageWidgetDelegate::UpdateLifecycle()
STDERR: #12 0x7f42581e33a8 blink::WebViewImpl::UpdateLifecycle()
STDERR: #13 0x7f42581b7f9b blink::WebWidget::UpdateAllLifecyclePhases()
STDERR: #14 0x7f4252d22b1b test_runner::EventSender::MouseMoveTo()
STDERR: #15 0x7f4252d1f20d test_runner::EventSenderBindings::MouseMoveTo()
STDERR: #16 0x7f4252d44b00 _ZN4base8internal13FunctorTraitsIMN11test_runner19EventSenderBindingsEFvPN3gin9ArgumentsEEvE6InvokeIS8_PS3_JS6_EEEvT_OT0_DpOT1_
STDERR: #17 0x7f4252d44a5f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN11test_runner19EventSenderBindingsEFvPN3gin9ArgumentsEEJPS5_S8_EEEvOT_DpOT0_
STDERR: #18 0x7f4252d449f1 _ZN4base8internal7InvokerINS0_9BindStateIMN11test_runner19EventSenderBindingsEFvPN3gin9ArgumentsEEJEEEFvPS4_S7_EE7RunImplIRKS9_RKNSt3__15tupleIJEEEJEEEvOT_OT0_NSH_16integer_sequenceImJXspT1_EEEEOSB_OS7_
STDERR: #19 0x7f4252d449a4 _ZN4base8internal7InvokerINS0_9BindStateIMN11test_runner19EventSenderBindingsEFvPN3gin9ArgumentsEEJEEEFvPS4_S7_EE3RunEPNS0_13BindStateBaseESB_S7_
STDERR: #20 0x7f4252d44946 _ZNKR4base17RepeatingCallbackIFvPN11test_runner19EventSenderBindingsEPN3gin9ArgumentsEEE3RunES3_S6_
STDERR: #21 0x7f4252d44872 _ZN3gin8internal7InvokerINSt3__116integer_sequenceImJLm0ELm1EEEEJPN11test_runner19EventSenderBindingsEPNS_9ArgumentsEEE18DispatchToCallbackEN4base17RepeatingCallbackIFvS7_S9_EEE
STDERR: #22 0x7f4252d4471e gin::internal::Dispatcher<>::DispatchToCallback()
STDERR: #23 0x7f425a2936f3 v8::internal::FunctionCallbackArguments::Call()
STDERR: #24 0x7f425a291a43 v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
STDERR: #25 0x7f425a28fdf9 v8::internal::Builtin_Impl_HandleApiCall()
STDERR: #26 0x7f425a28f83d v8::internal::Builtin_HandleApiCall()
STDERR: #27 0x3a6b401abd24 <unknown>
STDERR: 
 

Comment 1 by bokan@chromium.org, May 9 2018

Blocking: 836912

Comment 2 by pdr@chromium.org, May 9 2018

Owner: pdr@chromium.org
Status: Started (was: Available)
I'm looking into this right now.
Project Member

Comment 3 by bugdroid1@chromium.org, May 10 2018

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

commit b6d006bf5eb32c19eccac5fd0272a098572b55fb
Author: David Bokan <bokan@chromium.org>
Date: Thu May 10 15:52:54 2018

[BlinkGenPropertyTrees] Add more scrolling tests expectations

Most "scrolling" tests in Blink are in the fast/scrolling and
fast/events directories, the latter due to testing touch, wheel,
keyboard, etc. events. Many of these will use eventSender and so avoid
the composited path entirely so they provide just some mildly useful
main-thread scrolling coverage. Some do use gpuBenchmarking and are thus
more useful.

Bug:  836913 , 840017 , 841342 , 841423 
Change-Id: Idc4c2fae7ee7a48f074df8b3df5a027a75c82f71
Reviewed-on: https://chromium-review.googlesource.com/1052823
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557533}
[modify] https://crrev.com/b6d006bf5eb32c19eccac5fd0272a098572b55fb/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/b6d006bf5eb32c19eccac5fd0272a098572b55fb/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b6d006bf5eb32c19eccac5fd0272a098572b55fb/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/b6d006bf5eb32c19eccac5fd0272a098572b55fb/third_party/WebKit/LayoutTests/virtual/threaded/fast/scrolling/README.txt

Project Member

Comment 4 by bugdroid1@chromium.org, May 14 2018

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

commit 33ff2ba21be34f7c8c24d181f28dcf034c3147c8
Author: Philip Rogers <pdr@chromium.org>
Date: Mon May 14 23:01:09 2018

[RLS] Do not orphan main graphics layer in tests

CompositedLayerMapping::UpdateInternalHierarchy will orphan the main
graphics layer if there are no special ancestor layers (for clips or
squashing). PaintLayerCompositor::UpdateIfNeeded was responsible for
re-parenting the main graphics layer using ParentForContentLayers, but
this had a bug and would not re-parent in test configurations, leaving
the graphics layer orphaned.

Bug:  841423 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Id5c9fe5b87e9a5c2d47cff4a105c13a885d82d48
Reviewed-on: https://chromium-review.googlesource.com/1056056
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558508}
[modify] https://crrev.com/33ff2ba21be34f7c8c24d181f28dcf034c3147c8/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
[modify] https://crrev.com/33ff2ba21be34f7c8c24d181f28dcf034c3147c8/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor_test.cc

Project Member

Comment 5 by bugdroid1@chromium.org, May 19 2018

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

commit 028845b7d0d8981909144c8a6aa33262ed469b80
Author: Philip Rogers <pdr@chromium.org>
Date: Sat May 19 21:43:53 2018

Do not paint when sending events from EventSender

EventSender only needs to update the lifecycle to PrePaint and
does not need to paint. Two tests have been updated that
relied on EventSender's paints for invalidation tracking.

TBR=pfeldman@chromium.org

Bug:  841423 
Change-Id: I8a1ef02870241d9b4adecf3a3f905272f845ef0f
Reviewed-on: https://chromium-review.googlesource.com/1062907
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560168}
[modify] https://crrev.com/028845b7d0d8981909144c8a6aa33262ed469b80/content/shell/test_runner/event_sender.cc
[modify] https://crrev.com/028845b7d0d8981909144c8a6aa33262ed469b80/third_party/WebKit/LayoutTests/paint/invalidation/table/cached-69296.html
[modify] https://crrev.com/028845b7d0d8981909144c8a6aa33262ed469b80/third_party/WebKit/LayoutTests/paint/invalidation/table/caret-contenteditable-content-after.html

Project Member

Comment 6 by bugdroid1@chromium.org, May 21 2018

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

commit 07e3d0d95a05500406988512a2af3a5a5e68ce4d
Author: Philip Rogers <pdr@chromium.org>
Date: Mon May 21 16:50:00 2018

[BlinkGenPropertyTrees] Collect all drawable layers

The viewport scrollbars can be hoisted above the layout view's
graphics layer so they are not affected by page scale or overflow
elasticity. To ensure all layers are collected, we start from the paint
root which is an ancestor layer of both the content and the scrollbars.

This fixes a bug where non-hoisted scrollbars were collected twice: once
through the main recursive walk, and a second time for just the
scrollbars.

With this change, overlay scrollbar layers are now collected which
requires a property tree state. VisualViewport::InitializeScrollbars
has been temporarily updated to initialize the property tree state.

Making all painting (not just BlinkGenPropertyTrees) go through this
codepath is difficult because WebViewImpl manages special layers (e.g.,
devtools page overlay, popup layers) which are painted and updated
separately. With BlinkGenPropertyTrees, all painting will start at the
root.

Bug:  841423 
Cq-Include-Trybots: luci.chromium.try:linux-blink-gen-property-trees;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I97bcb40a0242b3f07ce2ca93d432c81dcf3220b6
Reviewed-on: https://chromium-review.googlesource.com/1054777
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560286}
[modify] https://crrev.com/07e3d0d95a05500406988512a2af3a5a5e68ce4d/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/07e3d0d95a05500406988512a2af3a5a5e68ce4d/third_party/blink/renderer/core/frame/local_frame_view.cc
[modify] https://crrev.com/07e3d0d95a05500406988512a2af3a5a5e68ce4d/third_party/blink/renderer/core/frame/visual_viewport.cc
[modify] https://crrev.com/07e3d0d95a05500406988512a2af3a5a5e68ce4d/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc

Comment 7 by pdr@chromium.org, May 21 2018

Status: Fixed (was: Started)

Sign in to add a comment