fast/events/middleClickAutoscroll-* are failing on Mac |
||||||||||||
Issue descriptionHere is a list of failing tests: The ordering of the tests matters, to repo the failures try running the tests individually, running multiple of them together makes some of them pass. fast/events/middleClickAutoscroll-click-hyperlink.html fast/events/middleClickAutoscroll-click.html fast/events/middleClickAutoscroll-drag.html fast/events/middleClickAutoscroll-event-fired.html fast/events/middleClickAutoscroll-in-iframe.html fast/events/middleClickAutoscroll-latching.html fast/events/middleClickAutoscroll-nested-divs-forbidden.html fast/events/middleClickAutoscroll-nested-divs.html
,
Aug 16
,
Aug 21
What is the status of this bug? There are multiple failures on the mac_chromium_rel_ng trybot, which seems to be blocking Blink patches from landing. https://ci.chromium.org/p/chromium/builders/luci.chromium.try/mac_chromium_rel_ng/123050 https://ci.chromium.org/p/chromium/builders/luci.chromium.try/mac_chromium_rel_ng/123048 https://ci.chromium.org/p/chromium/builders/luci.chromium.try/mac_chromium_rel_ng/123046 https://ci.chromium.org/p/chromium/builders/luci.chromium.try/mac_chromium_rel_ng/123037 The failing tests are: fast/events/autoscroll-iframe-no-scrolling.html fast/events/middleClickAutoscroll-drag.html fast/events/middleClickAutoscroll-event-fired.html fast/events/middleClickAutoscroll-nested-divs-forbidden.html virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-drag.html virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-in-iframe.html virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-nested-divs-forbidden.html virtual/user-activation-v2/fast/events/middleClickAutoscroll-click.html virtual/user-activation-v2/fast/events/middleClickAutoscroll-drag.html virtual/user-activation-v2/fast/events/middleClickAutoscroll-nested-divs.html If this is really blocking the CQ then this should be P0.
,
Aug 21
,
Aug 21
I was OOO last week, so I haven't had the chance to debug why FlingScheduler::OnAnimationStep is not occurring in the webkit_layout_tests. Even though it is working correctly in other test suites. If other variants are also failing then we should update the test expectations to include Fail until we can land a proper fix
,
Aug 21
Actually looking at the new set of failures, these tests are now failing consistently as of 1878: https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Mac10.13%20%28retina%29/1878 +pdr@ who landed a separate scrolling related change in that range: https://chromium-review.googlesource.com/c/chromium/src/+/1173532
,
Aug 21
>What is the status of this bug? There are multiple failures on the mac_chromium_rel_ng trybot, which seems to be blocking Blink patches from landing. I will land a cl to skip middle click autoscroll tests (and all virtual versions) on mac to address this. The current status is that we decided not to revert the causing cl since it was important for fling on mac with viz enabled.
,
Aug 21
,
Aug 21
I don't think this is related to my patch (https://chromium-review.googlesource.com/c/chromium/src/+/1173532) because my patch should only affect scrolling cases in a very specific case (negative z-index children). Looking at the flakiness dashboard, I agree that my patch is the most likely culprit: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=webkit_layout_tests&tests=virtual%2Fmouseevent_fractional%2Ffast%2Fevents%2FmiddleClickAutoscroll-drag.html Would you like me to roll out my patch and see if it fixes the issue?
,
Aug 21
https://chromium-review.googlesource.com/c/chromium/src/+/1173532 has been reverted: https://crrev.com/584895. Lets see if the tests improve.
,
Aug 21
,
Aug 21
Issue 872635 has been merged into this issue.
,
Aug 21
This just failed [1] with the patch reverted [2] so there's some other root-cause here. [1] https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Mac10.13%20(retina)/1891 [2] https://crrev.com/584895
,
Aug 21
Here's the regression range: https://chromium.googlesource.com/chromium/src/+log/6d38c1ba836892901911fbcbc6e2d11a8be3ddb3%5E..d184f073fbb8fd0a74862a41943e32ef9b83cb87?pretty=fuller&n= This patch looks likely: Rewrite content rendering timeout using new fallback semantics https://crrev.com/584798 This patch has some words I don't understand but I know mach is mac-specific so this could be related: Use DISPATCH_QUEUE_SERIAL constant in dispatch_source_mach.cc. https://crrev.com/584801
,
Aug 21
,
Aug 21
,
Aug 21
It shouldn't be https://crrev.com/584801 - that changes a NULL to its semantic constant equivalent.
,
Aug 21
Issue 873547 has been merged into this issue.
,
Aug 22
This seems like a P-0 now. mac_chromium_rel_ng are heavily backed up, and it looks to me like not a single job is passing any of these tests: * fast/events/autoscroll-iframe-no-scrolling.html * fast/events/middleClickAutoscroll-drag.html * fast/events/middleClickAutoscroll-event-fired.html * fast/events/middleClickAutoscroll-nested-divs-forbidden.html * virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-drag.html * virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-in-iframe.html * virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-nested-divs-forbidden.html * virtual/user-activation-v2/fast/events/middleClickAutoscroll-click.html * virtual/user-activation-v2/fast/events/middleClickAutoscroll-drag.html * virtual/user-activation-v2/fast/events/middleClickAutoscroll-nested-divs.html
,
Aug 22
,
Aug 22
Disabled following tests: - fast/events/autoscroll-iframe-no-scrolling.html - fast/events/middleClickAutoscroll-drag.html - fast/events/middleClickAutoscroll-event-fired.html - fast/events/middleClickAutoscroll-nested-divs-forbidden.html - virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-drag.html - virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-in-iframe.html - virtual/mouseevent_fractional/fast/events/middleClickAutoscroll-nested-divs-forbidden.html - virtual/user-activation-v2/fast/events/middleClickAutoscroll-click.html - virtual/user-activation-v2/fast/events/middleClickAutoscroll-drag.html - virtual/user-activation-v2/fast/events/middleClickAutoscroll-nested-divs.html
,
Aug 22
I reverted this patch but it did not fix the issue locally: Rewrite content rendering timeout using new fallback semantics https://crrev.com/584798 The next most-likely culprit is: RemoteMacViews: Separate fullscreen state crrev.com/c6995dcb7a70cfd044621c4fead710ef809f5945 Can someone checkout this revision on mac and see if it reproduces the bug?
,
Aug 22
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2a1de800f9c3874dbc673c2f2133a8748037b3bb commit 2a1de800f9c3874dbc673c2f2133a8748037b3bb Author: Sahel Sharify <sahel@chromium.org> Date: Wed Aug 22 15:07:08 2018 Skip middle click autoscroll tests on Mac TBR=jonross@chromium.org No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 874162 Change-Id: Ic8dcdd70cdd5dc5c606d58195121251783a744d4 Reviewed-on: https://chromium-review.googlesource.com/1184219 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/heads/master@{#585019} [modify] https://crrev.com/2a1de800f9c3874dbc673c2f2133a8748037b3bb/third_party/WebKit/LayoutTests/TestExpectations
,
Aug 24
So the original method of doing the fling gets advanced in the webkit_layout_tests like this: content::FlingScheduler::ProgressFlingOnBeginFrameIfneeded(base::TimeTicks) content::RenderWidgetHostViewMac::BrowserCompositorMacOnBeginFrame(base::TimeTicks) viz::CompositorFrameSinkSupport::OnBeginFrame(viz::BeginFrameArgs const&) viz::DelayBasedBeginFrameSource::OnTimerTick() viz::DelayBasedTimeSource::OnTimerTick() With the ui::Compositor path when running chrome: content::FlingScheduler::OnAnimationStep(base::TimeTicks) ui::Compositor::BeginMainFrame(viz::BeginFrameArgs const&) cc::SingleThreadProxy::DoBeginMainFrame(viz::BeginFrameArgs const&) cc::SingleThreadProxy::BeginMainFrame(viz::BeginFrameArgs const&) Which is setup by: Scheduler::ProcessScheduledActions() However when running webkit_layout_tests, the scheduler stops running after the fling is started. This leaves us absent of the BeginMainFrame pump that the new fling uses. I will have to debug further why is stops in webkit_layout_tests, but if anyone has an idea I'd appreciate any pointers.
,
Aug 24
(Lowering priority, as this is no longer blocking CQ)
,
Aug 27
Some further examinations of the failure state. So as the test is brought two CompositorLocks are established: ui::CompositorLock::CompositorLock(ui::CompositorLockClient*, base::WeakPtr<ui::CompositorLockManager>) ui::CompositorLockManager::GetCompositorLock(ui::CompositorLockClient*, base::TimeDelta) ui::RecyclableCompositorMac::RecyclableCompositorMac(ui::ContextFactory*, ui::ContextFactoryPrivate*) ui::RecyclableCompositorMacFactory::CreateCompositor(ui::ContextFactory*, ui::ContextFactoryPrivate*, bool) content::BrowserCompositorMac::TransitionToState(content::BrowserCompositorMac::State) content::BrowserCompositorMac::BrowserCompositorMac(ui::AcceleratedWidgetMacNSView*, content::BrowserCompositorMacClient*, bool, display::Display const&, viz::FrameSinkId const&) content::RenderWidgetHostViewMac::RenderWidgetHostViewMac(content::RenderWidgetHost*, bool) content::WebContentsViewMac::CreateViewForWidget(content::RenderWidgetHost*, bool) content::WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(content::RenderViewHost*) content::WebContentsImpl::CreateRenderViewForRenderManager(content::RenderViewHost*, int, int, base::UnguessableToken const&, content::FrameReplicationState const&) content::RenderFrameHostManager::ReinitializeRenderFrame(content::RenderFrameHostImpl*) content::RenderFrameHostManager::GetFrameHostForNavigation(content::NavigationRequest const&) content::RenderFrameHostManager::DidCreateNavigationRequest(content::NavigationRequest*) content::FrameTreeNode::CreatedNavigationRequest(std::__1::unique_ptr<content::NavigationRequest, std::__1::default_delete<content::NavigationRequest> >) content::NavigatorImpl::Navigate(std::__1::unique_ptr<content::NavigationRequest, std::__1::default_delete<content::NavigationRequest> >, content::ReloadType, content::RestoreType) content::NavigationControllerImpl::NavigateWithoutEntry(content::NavigationController::LoadURLParams const&) content::NavigationControllerImpl::LoadURLWithParams(content::NavigationController::LoadURLParams const&) content::Shell::LoadURL(GURL const&) content::BlinkTestController::PrepareForLayoutTest .... and: ui::CompositorLock::CompositorLock(ui::CompositorLockClient*, base::WeakPtr<ui::CompositorLockManager>) ui::CompositorLockManager::GetCompositorLock(ui::CompositorLockClient*, base::TimeDelta) ui::RecyclableCompositorMac::Suspend() content::BrowserCompositorMac::UpdateNSViewAndDisplay(gfx::Size const&, display::Display const&) content::RenderWidgetHostViewMac::UpdateNSViewAndDisplayProperties() -[RenderWidgetHostViewCocoa sendViewBoundsInWindowToClient] -[RenderWidgetHostViewCocoa setFrame:] content::WebContentsViewMac::CreateViewForWidget(content::RenderWidgetHost*, bool) content::WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(content::RenderViewHost*) content::WebContentsImpl::CreateRenderViewForRenderManager(content::RenderViewHost*, int, int, base::UnguessableToken const&, content::FrameReplicationState const&) content::RenderFrameHostManager::ReinitializeRenderFrame(content::RenderFrameHostImpl*) content::RenderFrameHostManager::GetFrameHostForNavigation(content::NavigationRequest const&) content::RenderFrameHostManager::DidCreateNavigationRequest(content::NavigationRequest*) content::FrameTreeNode::CreatedNavigationRequest(std::__1::unique_ptr<content::NavigationRequest, std::__1::default_delete<content::NavigationRequest> >) content::NavigatorImpl::Navigate(std::__1::unique_ptr<content::NavigationRequest, std::__1::default_delete<content::NavigationRequest> >, content::ReloadType, content::RestoreType) content::NavigationControllerImpl::NavigateWithoutEntry(content::NavigationController::LoadURLParams const&) content::NavigationControllerImpl::LoadURLWithParams(content::NavigationController::LoadURLParams const&) content::Shell::LoadURL(GURL const&) content::BlinkTestController::PrepareForLayoutTest(GURL const&, base::FilePath const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) LayoutTestBrowserMain ....... However neither are being released by the test suite. In a normal run of Chrome I see a release: ui::CompositorLock::~CompositorLock() ui::RecyclableCompositorMac::Unsuspend() views::BridgedNativeWidgetHostImpl::OnVisibilityChanged(bool) views::BridgedNativeWidget::OnVisibilityChanged() -[NativeWidgetMacNSWindow orderWindow:relativeTo:] -[NSWindow makeKeyAndOrderFront:] views::BridgedNativeWidget::SetVisibilityState(views::BridgedNativeWidgetPublic::WindowVisibilityState) views::NativeWidgetMac::Show(ui::WindowShowState, gfx::Rect const&) views::Widget::Show() BrowserView::Show() StartupBrowserCreatorImpl::OpenTabsInBrowser(Browser*, bool, std::__1::vector<StartupTab, std::__1::allocator<StartupTab> > const&) StartupBrowserCreatorImpl::RestoreOrCreateBrowser(std::__1::vector<StartupTab, std::__1::allocator<StartupTab> > const&, StartupBrowserCreatorImpl::BrowserOpenBehavior, unsigned int, bool, bool) StartupBrowserCreatorImpl::DetermineURLsAndLaunch(bool, std::__1::vector<GURL, std::__1::allocator<GURL> > const&) StartupBrowserCreatorImpl::Launch(Profile*, std::__1::vector<GURL, std::__1::allocator<GURL> > const&, bool) StartupBrowserCreator::LaunchBrowser ............ So it seems that when running webkit_layout_tests there's no trigger to ui::RecyclableCompositorMac::Unsuspend(). This leaves the scheduler in a constant state of defered commits. Now to hunt down why the Unsuspend never is called
,
Aug 30
Hey Chris, From the investigation the issue with these tests seems to be tied to the webkit_layout_tests not unlocking its ui::Compositor. It's not tied to the OOP-D work, nor the change to Mac Fling. I don't have enough visibility into how this test suite is supposed to work with the Compositor. Do you know of someone from MacViews who might have more insight, or who could take a look? The updated failure state is in #27
,
Aug 30
,
Oct 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b0855622607e48486de9a8ce992d0246f6b343bc commit b0855622607e48486de9a8ce992d0246f6b343bc Author: Mason Freed <masonfreed@chromium.org> Date: Tue Oct 02 17:49:47 2018 [CI] Adding full lifecycle/raster during autoscroll/animation tests Previous to this CL, these autoscroll/animation tests passed only because there is a default surface deadline (typically 4 frames) in place. Surface activation does not happen automatically, because in layout test mode, rasterization is not performed until the very end of the test, for image capture. For the tests in question, that deadline was previously always being hit, causing the surface to be activated, triggering the monitored scroll events and passing the test. When the --enable-display-compositor-pixel-dump flag is enabled, however, the default surface activation deadline is changed to be infinite (no deadline). As a result, all such autoscroll/animation tests fail. With this CL, those tests that looked at animation behavior have been modified to call a new continuouslyRunAnimations() javascript method, which sets a flag that causes full rasterization to be included in the lifecycle update that was already taking place. This triggers surface activation, and runs the animations, allowing these tests to pass even with an infinite deadline. Bug: 883547 , 874162 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0d9e1ae7d10fab186207cdfbc8e2f85f60d99f35 Reviewed-on: https://chromium-review.googlesource.com/c/1229354 Commit-Queue: Mason Freed <masonfreed@chromium.org> Reviewed-by: Kent Tamura <tkent@chromium.org> Reviewed-by: Philip Rogers <pdr@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Timothy Dresser <tdresser@chromium.org> Cr-Commit-Position: refs/heads/master@{#595898} [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/renderer/gpu/layer_tree_view.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/renderer/gpu/layer_tree_view.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/renderer/layout_test/layout_test_render_frame_observer.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/test_runner/test_runner.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/test_runner/test_runner.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/test_runner/test_runner_for_specific_view.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/test_runner/test_runner_for_specific_view.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/content/shell/test_runner/web_widget_test_client.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/docs/testing/writing_layout_tests.md [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/animations/responsive/viewport-unit-transform-responsive.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/autoscroll-iframe-no-scrolling.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/autoscroll-over-scrollbar.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-click-hyperlink.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-click.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-drag.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-event-fired.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-in-iframe.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-latching.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-nested-divs-forbidden.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/middleClickAutoscroll-nested-divs.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/resources/middleClickAutoscroll.js [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-scrollbar-touchpad-fling.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/touch/gesture/gesture-scrollbar-touchscreen-fling.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/fast/events/touch/gesture/touch-gesture-scroll-input-field.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/images/size-failure.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/paint/background/background-and-shadow.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/paint/invalidation/background/background-resize-height.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/paint/invalidation/background/obscured-background-no-repaint.html [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/printing/webgl-oversized-printing.html [add] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/resources/compositor-controls.js [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/WebKit/LayoutTests/resources/gesture-util.js [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/public/platform/web_layer_tree_view.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/public/web/web_widget.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/exported/web_page_popup_impl.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/exported/web_page_popup_impl.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/exported/web_view_impl.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/exported/web_view_impl.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_frame_widget_base.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_frame_widget_base.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_frame_widget_impl.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_view_frame_widget.cc [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/third_party/blink/renderer/core/frame/web_view_frame_widget.h [modify] https://crrev.com/b0855622607e48486de9a8ce992d0246f6b343bc/ui/latency/latency_tracker.cc |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by sahel@chromium.org
, Aug 14