<html>
<head>
<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>

<script>

function runTest() {
    if (window.layoutTestController) {
        window.layoutTestController.setWindowIsKey(false);
        window.layoutTestController.setMainFrameIsFirstResponder(false);
    }
    var s = window.getSelection();
    var e = document.getElementById("selectme");
    
    s.setBaseAndExtent(e, 0, e, 1);
}

</script>

<title>Selection tint when WebView is not focused</title> 
</head>
<body>
<p>This tests that the selection tint is grey when the WebView is not focused (using the pixel output from DumpRenderTree).</p>

<div id="selectme">This text should be selected.</div>

<script>runTest();</script>
</body>
</html>