Index: third_party/WebKit/LayoutTests/fast/events/touch/touch-action-range-input-crash.html |
diff --git a/third_party/WebKit/LayoutTests/fast/events/touch/touch-action-range-input-crash.html b/third_party/WebKit/LayoutTests/fast/events/touch/touch-action-range-input-crash.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d6f3fc5e445a184dfbf890fd1f8ef4437e6947c7 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/events/touch/touch-action-range-input-crash.html |
@@ -0,0 +1,52 @@ |
+<!DOCTYPE html> |
+<script src='../../../resources/testharness.js'></script> |
+<script src='../../../resources/testharnessreport.js'></script> |
+ |
+<style type='text/css'> |
+*:before{-webkit-appearance:slider-vertical;} |
+</style> |
+ |
+<select multiple='multiple'> |
+<optgroup> |
+<option>c</option> |
+</optgroup> |
+</select> |
+ |
+<input type='range' id='slider' step='any' min = '0' max = '100' oninput='destroyLayout()'></input> |
+ |
+<script> |
+var isMac = navigator.platform.indexOf('Mac') == 0; |
+function destroyLayout() { |
+ var slider = document.getElementById('slider'); |
+ slider.style = "display:none"; |
+} |
+ |
+function forceLayoutUpdate() { |
+ document.body.offsetTop; |
+} |
+ |
+forceLayoutUpdate(); |
+ |
+if (!isMac) { |
+ testSliderNoCrash(); |
+} else { |
+ testNothing(); |
+} |
+ |
+function testSliderNoCrash() { |
+ var testSliderNoCrash = async_test('Does not crash when <input type="range"> has no layoutObject and when a non-element node has "slider-vertical" appearance.'); |
+ testSliderNoCrash.step(function () { |
+ var slider = document.getElementById('slider'); |
+ const touchSourceType = 1; |
+ var w = slider.clientWidth; |
+ var h = slider.clientHeight; |
+ var x = slider.offsetLeft + w / 2; |
+ var y = slider.offsetTop + h / 2; |
+ chrome.gpuBenchmarking.smoothDrag(x, y, x + w, y, function() {testSliderNoCrash.done()}, touchSourceType); |
+ }); |
+} |
+ |
+function testNothing() { |
+ test(() => {}, 'Empty test for MacOS.'); |
+} |
+</script> |