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 ...@@ -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-anchors.html [ Skip ]
crbug.com/664858 virtual/threaded/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-vertical-rl-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 ====== # ====== Random order flaky tests end here ======
# ====== Tests from enabling .any.js/.worker.js tests begin here ====== # ====== Tests from enabling .any.js/.worker.js tests begin here ======
......
<!DOCTYPE HTML> <!DOCTYPE HTML>
<script src="../../resources/testharness.js"></script> <script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script> <script src="../../resources/testharnessreport.js"></script>
<script src='../../resources/gesture-util.js'></script>
<style> <style>
::-webkit-scrollbar { ::-webkit-scrollbar {
...@@ -35,63 +36,36 @@ var rect = scrollable.getBoundingClientRect(); ...@@ -35,63 +36,36 @@ var rect = scrollable.getBoundingClientRect();
var start_x = (rect.left + rect.right) / 2; var start_x = (rect.left + rect.right) / 2;
var start_y = (rect.top + rect.bottom) / 2; var start_y = (rect.top + rect.bottom) / 2;
function scrollDown(pixels_to_scroll, start_x, start_y, async function scrollDown(pixels_to_scroll, gesture_source_type) {
gesture_source_type, speed_in_pixels_s) { const precise_deltas = true;
return new Promise((resolve, reject) => { const previous_scroll_offset = scrollable.scrollTop;
chrome.gpuBenchmarking.smoothScrollBy(pixels_to_scroll, await waitForCompositorCommit();
resolve,
start_x, await smoothScroll(pixels_to_scroll, start_x, start_y, gesture_source_type,
start_y, 'down', SPEED_INSTANT, precise_deltas);
gesture_source_type, await waitFor(() => {
'down', return scrollable.scrollTop - previous_scroll_offset >= pixels_to_scroll;
speed_in_pixels_s); }, "Didn't scroll by expected amount: " + pixels_to_scroll);
}); 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);
});
}
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_TOUCH_COUNTER = 1847; // from enum Feature in UseCounter.h
var SCROLL_BY_WHEEL_COUNTER = 1848; // from enum Feature in UseCounter.h var SCROLL_BY_WHEEL_COUNTER = 1848; // from enum Feature in UseCounter.h
promise_test(t => { promise_test(async () => {
return scrollDown(50, start_x, start_y , WHEEL_SOURCE_TYPE, 4000) await scrollDown(50, GestureSourceType.MOUSE_INPUT);
.then(waitForScrollEnd) await waitFor(() => {
.then(() => { return internals.isUseCounted(document, SCROLL_BY_WHEEL_COUNTER);
assert_true(internals.isUseCounted(document, SCROLL_BY_WHEEL_COUNTER)); }, "Didn't record wheel use count");
});
}, "Scrolling by wheel on main/compositor should update usecounters."); }, "Scrolling by wheel on main/compositor should update usecounters.");
const IS_MAC = navigator.platform.indexOf('Mac') == 0; const IS_MAC = navigator.platform.indexOf('Mac') == 0;
if (!IS_MAC) { if (!IS_MAC) {
promise_test(t => { promise_test(async () => {
return scrollDown(50, start_x, start_y , TOUCH_SOURCE_TYPE, 4000) await scrollDown(50, GestureSourceType.TOUCH_INPUT);
.then(waitForScrollEnd) await waitFor(() => {
.then(() => { return internals.isUseCounted(document, SCROLL_BY_TOUCH_COUNTER);
assert_true(internals.isUseCounted(document, SCROLL_BY_TOUCH_COUNTER)); }, "Didn't record touch use count");
});
}, "Scrolling by touch on main/compositor should update usecounters."); }, "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