blob: 247219cbe39164f6dc88447ccb7779ff60abf580 [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Second batch JS</title>
</head>
<style>
#spinner {
width: 600px;
height: 10px;
border-right: black;
position: relative;
background: repeating-linear-gradient(
-45deg,
orange,
orange 21px,
yellow 21px,
yellow 42px
);
}
#spinner-container {
width: 300px;
height: 10px;
overflow: hidden;
border: solid thin darkorange;
border-radius: 4px;
margin-top: 50px;
}
.spinner-loaded #spinner {
background: repeating-linear-gradient(
-45deg,
steelblue,
steelblue 21px,
aqua 21px,
aqua 42px
);
}
#spinner-container.spinner-loaded {
border: solid thin steelblue;
}
input {
font-size: 150%;
width: 302px;
margin-top: 30px;
margin-bottom: 30px;
}
</style>
<center>
<div id="spinner-container">
<div id="spinner"></div>
</div>
<input id="load" type="button" value="Start loading" onclick="kickOffLoading()"></input>
<input id="run" style='display: none' type="button" value="Click me!" onclick="onRunClick()"></input>
<p id="results"></p>
<p>Note: running this test interactively may activate compositor
prioritization during loading, which may skew the results.</p>
</center>
<script>
// Flag that indicates the test is ready to begin.
window.__ready = false;
// Flag that indicates the test has finished executing.
window.__finished = false;
var results = document.getElementById('results');
function kickOffLoading() {
var loadButton = document.getElementById('load');
loadButton.disabled = true;
var variant =
location.search.length > 0 ? location.search.substr(1) : 'medium';
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', 'second_batch_js_' + variant + '.min.js')
script.addEventListener('load', onLoadComplete);
document.body.appendChild(script);
}
function onLoadComplete() {
var loadButton = document.getElementById('load');
var runButton = document.getElementById('run');
loadButton.style.display = 'none';
runButton.style.display = 'block';
spinnerContainer.classList.add('spinner-loaded');
window.__ready = true;
}
function onRunClick() {
results.innerText = 'Your lucky number is: ' + main(1);
window.requestAnimationFrame(finishTest);
}
function finishTest() {
window.__finished = true;
}
// Perform main thread animation during the benchmark to gauge main thread
// responsiveness.
var spinner = document.getElementById('spinner');
var spinnerContainer = document.getElementById('spinner-container');
function animateSpinner(timestamp) {
var width = parseInt(window.getComputedStyle(spinnerContainer).width);
var x = -(timestamp / 8) % width;
spinner.style.left = x + 'px';
window.requestAnimationFrame(animateSpinner);
}
window.requestAnimationFrame(animateSpinner);
</script>
</html>