Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 1b41cc5725
Fetching contributors…

Cannot retrieve contributors at this time

55 lines (48 sloc) 2.256 kB
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
#telugu {
font-size: 2cm;
line-height: 1.5em;
font-family: "Lohit Telugu";
}
</style>
<script>
var ITERATIONS = 10000;
if (window.testRunner)
testRunner.waitUntilDone();
function mouseSelection() {
var body = document.body;
body.focus();
xStart = 0;
yStart = 0;
if (window.eventSender) {
eventSender.mouseMoveTo(xStart, yStart);
eventSender.mouseDown();
for(i=0;i<ITERATIONS;i++) {
randomCoord = randomCoordinate();
eventSender.mouseMoveTo(randomCoord.x, randomCoord.y);
}
}
if (window.testRunnder)
testRunner.notifyDone();
}
function randomCoordinate(axis) {
return { x: Math.floor(Math.random()*window.innerWidth),
y: Math.floor(Math.random()* window.innerHeight) }
}
</script>
</head>
<body onload="mouseSelection()"><p>
This test fuzzes HarfBuzzShaper::offsetForPosition to trigger an assertion in the downstream function characterIndexForXPosition().
See https://bugs.webkit.org/show_bug.cgi?id=92376 - reason of the assertion being hit is a minuscule floating point inaccuracy
between an if condition that gates the call to characterIndexForXPosition and the actual argument that's then given to the function.
This test works on WebKit EFL, with the Ubuntu Telugu Lohit font installed to the EFL jhbuild font directory, like:</p>
<pre>$ cp /usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf WebKitBuild/Dependencies/Source/webkitgtk-test-fonts-0.0.3</pre>
<p>Run with:</p>
<pre>$ WebKitBuild/Debug/bin/DumpRenderTree ManualTests/harfbuzz-mouse-selection-crash.html</pre>
<p>Before the change, this would crash 10/10 times. Test passes if it does not crash.</p>
<p id="telugu">చేనేత కార్మికుల సమస్యలను ప్రభుత్వం దృష్టికి తీసుకువెళ్లేందుకు సిరిసిల్లలో వైఎస్ఆర్ సిపి గౌరవాధ్యక్షురాలు విజయమ్మ చేపట్టినదీక్ష విజయవంతమైంది.</p>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.