blob: e0a2616a1ecfc9a88d797026c8a6093c517d40fe [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
input[type="search"]::-webkit-search-results-button, input[type="search"]::-webkit-search-cancel-button {
opacity: 0;
}
input[type="search"] {
font-size: 16px;
position: absolute;
top: 0;
left: 0;
-webkit-appearance: none;
}
div {
position: absolute;
background-color: white;
}
p {
margin-top: 100px;
}
</style>
</head>
<body>
<input type="search" results="5" value="foo" autofocus></input>
<div id="cover-results"></div>
<div id="cover-cancel"></div>
<p>This test verifies that the search and results buttons in a search field do not each draw their own focus rings. This test must be run under WebKitTestRunner or DumpRenderTree.</p>
<script>
if (window.internals) {
const search = document.querySelector("input[type=search]");
const coverCancel = document.querySelector("#cover-cancel");
const cancelButtonBounds = internals.shadowRoot(search).querySelector("div[pseudo='-webkit-search-cancel-button']").getBoundingClientRect();
coverCancel.style.left = `${Math.round(cancelButtonBounds.left) - 1}px`;
coverCancel.style.top = `${Math.round(cancelButtonBounds.top) - 1}px`;
coverCancel.style.width = `${Math.round(cancelButtonBounds.width) + 2}px`;
coverCancel.style.height = `${Math.round(cancelButtonBounds.height) + 2}px`;
const coverResults = document.querySelector("#cover-results");
const resultsButtonBounds = internals.shadowRoot(search).querySelector("div[pseudo='-webkit-search-results-button']").getBoundingClientRect();
coverResults.style.left = `${Math.round(resultsButtonBounds.left) - 1}px`;
coverResults.style.top = `${Math.round(resultsButtonBounds.top) - 1}px`;
coverResults.style.width = `${Math.round(resultsButtonBounds.width) + 2}px`;
coverResults.style.height = `${Math.round(resultsButtonBounds.height) + 2}px`;
}
</script>
</body>
</html>