Commit ec80ce41 authored by Sahel Sharify's avatar Sahel Sharify Committed by Commit Bot

rewrote wheel-and-touch-scroll-use-count.html to deflake it

Bug: 766357
Change-Id: Ibff868e5eabd019e02a3b7b225b26d78f1b9578a
Reviewed-on: https://chromium-review.googlesource.com/c/1299695Reviewed-by: default avatarDavid Bokan <bokan@chromium.org>
Commit-Queue: Sahel Sharify <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603138}
parent 8cad7321
......@@ -4397,8 +4397,6 @@ crbug.com/664858 virtual/threaded/fast/scroll-behavior/smooth-scroll/main-thread
crbug.com/664858 virtual/threaded/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-anchors.html [ Skip ]
crbug.com/664858 virtual/threaded/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-vertical-rl-anchors.html [ Skip ]
crbug.com/766357 virtual/threaded/fast/scroll-behavior/wheel-and-touch-scroll-use-count.html [ Pass Failure ]
# ====== Random order flaky tests end here ======
# ====== Tests from enabling .any.js/.worker.js tests begin here ======
......
<!DOCTYPE HTML>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src='../../resources/gesture-util.js'></script>
<style>
::-webkit-scrollbar {
......@@ -35,63 +36,36 @@ var rect = scrollable.getBoundingClientRect();
var start_x = (rect.left + rect.right) / 2;
var start_y = (rect.top + rect.bottom) / 2;
function scrollDown(pixels_to_scroll, start_x, start_y,
gesture_source_type, speed_in_pixels_s) {
return new Promise((resolve, reject) => {
chrome.gpuBenchmarking.smoothScrollBy(pixels_to_scroll,
resolve,
start_x,
start_y,
gesture_source_type,
'down',
speed_in_pixels_s);
});
}
async function scrollDown(pixels_to_scroll, gesture_source_type) {
const precise_deltas = true;
const previous_scroll_offset = scrollable.scrollTop;
await waitForCompositorCommit();
const MAX_RAF = 1000;
function waitForScrollEnd() {
var last_scroll_offset = scrollable.scrollTop;
var last_changed_count = 0;
return new Promise((resolve, reject) => {
function tick(raf_count) {
// We requestAnimationFrame either for 1000 frames or until 20 frames with
// no change have been observed.
if (raf_count >= MAX_RAF || raf_count - last_changed_count > 20) {
resolve();
} else {
if (scrollable.scrollTop != last_scroll_offset) {
last_changed_count = raf_count;
last_scroll_offset = scrollable.scrollTop;
}
requestAnimationFrame(tick.bind(this, raf_count + 1));
}
}
tick(0);
});
await smoothScroll(pixels_to_scroll, start_x, start_y, gesture_source_type,
'down', SPEED_INSTANT, precise_deltas);
await waitFor(() => {
return scrollable.scrollTop - previous_scroll_offset >= pixels_to_scroll;
}, "Didn't scroll by expected amount: " + pixels_to_scroll);
await waitForCompositorCommit();
}
const TOUCH_SOURCE_TYPE = 1; // TOUCH_INPUT from synthetic_gesture_params.h
const WHEEL_SOURCE_TYPE = 2; // MOUSE_INPUT from synthetic_gesture_params.h
var SCROLL_BY_TOUCH_COUNTER = 1847; // from enum Feature in UseCounter.h
var SCROLL_BY_WHEEL_COUNTER = 1848; // from enum Feature in UseCounter.h
promise_test(t => {
return scrollDown(50, start_x, start_y , WHEEL_SOURCE_TYPE, 4000)
.then(waitForScrollEnd)
.then(() => {
assert_true(internals.isUseCounted(document, SCROLL_BY_WHEEL_COUNTER));
});
promise_test(async () => {
await scrollDown(50, GestureSourceType.MOUSE_INPUT);
await waitFor(() => {
return internals.isUseCounted(document, SCROLL_BY_WHEEL_COUNTER);
}, "Didn't record wheel use count");
}, "Scrolling by wheel on main/compositor should update usecounters.");
const IS_MAC = navigator.platform.indexOf('Mac') == 0;
if (!IS_MAC) {
promise_test(t => {
return scrollDown(50, start_x, start_y , TOUCH_SOURCE_TYPE, 4000)
.then(waitForScrollEnd)
.then(() => {
assert_true(internals.isUseCounted(document, SCROLL_BY_TOUCH_COUNTER));
});
promise_test(async () => {
await scrollDown(50, GestureSourceType.TOUCH_INPUT);
await waitFor(() => {
return internals.isUseCounted(document, SCROLL_BY_TOUCH_COUNTER);
}, "Didn't record touch use count");
}, "Scrolling by touch on main/compositor should update usecounters.");
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment