New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 883547 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 667551



Sign in to add a comment

Fix middleClickAutoscroll tests in OOPIF layout test mode

Project Member Reported by masonfreed@chromium.org, Sep 12

Issue description

Several tests related to middle-click auto-scroll fail when the --enable-display-compositor-pixel-dumps flag is enabled. Debug and fix.

See https://chromium-review.googlesource.com/c/chromium/src/+/1213864

Fix so we can enable OOPIF for layout tests.
 
Cc: fsam...@chromium.org vmp...@chromium.org
Steps to duplicate:

- Run the test normally - it passes:
python ${CHROMIUM_SRC}/third_party/blink/tools/run_web_tests.py -t Default fast/events/middleClickAutoscroll-click.html

- Run the test with the EDCPD flag present, and it times out:
python ${CHROMIUM_SRC}/third_party/blink/tools/run_web_tests.py -t Default --additional-driver-flag=--enable-display-compositor-pixel-dump fast/events/middleClickAutoscroll-click.html

To "fix" the issue, replace "switches::GetDeadlineToSynchronizeSurfaces()" with "40" in the line below. In this case, the frame deadline will be hit, triggering a surface activation, and the test passes. So the problem with these tests is that in the infinite deadline case, the surface is never activated.
https://cs.chromium.org/chromium/src/content/browser/browser_main_loop.cc?rcl=15e9c7e426b541dd76535ac9f4f9651ef7af985d&l=1344

I'm wondering if this is at all similar to the problem described in https://chromium-review.googlesource.com/c/chromium/src/+/1161338?
Yes that is quite possibly the issue. My CL broke a bunch of things but I can revisit if this is blocking layout tests.
Components: Blink>Paint
Project Member

Comment 4 by bugdroid1@chromium.org, 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

Status: Fixed (was: Assigned)
Fixed.

Sign in to add a comment