78 lines
1.7 KiB
HTML
78 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>WebGL Context Release Test</title>
|
|
<script src="../../../resources/js-test.js"></script>
|
|
<script src="resources/webgl-test.js"></script>
|
|
</head>
|
|
<body>
|
|
<iframe id="host" style="width: 256px; height: 256px; border: 0;"></iframe>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("This test ensures that WebGL contexts are released properly upon page reload");
|
|
|
|
window.jsTestIsAsync = true;
|
|
|
|
var host = document.getElementById("host");
|
|
var testIterations = 8;
|
|
var currentIteration = 0;
|
|
|
|
function refreshFrame() {
|
|
if(currentIteration < testIterations) {
|
|
currentIteration++;
|
|
host.src = "resources/context-release-upon-reload-child.html";
|
|
} else {
|
|
testPassed("All drawing buffers were allocated at the correct size");
|
|
finishTest();
|
|
}
|
|
}
|
|
|
|
function testContext() {
|
|
var bail = false;
|
|
var gl = host.contentWindow.glContext;
|
|
if (gl == null) {
|
|
bail = true;
|
|
testFailed("context was not created properly");
|
|
}
|
|
|
|
if (gl) {
|
|
var err = gl.getError();
|
|
if (err != gl.NO_ERROR) {
|
|
bail = true;
|
|
testFailed("Should be no GL error; got " + getGLErrorAsString(gl, err));
|
|
}
|
|
}
|
|
|
|
if (bail) {
|
|
finishTest();
|
|
return;
|
|
}
|
|
|
|
if (gl.canvas.width != gl.drawingBufferWidth ||
|
|
gl.canvas.height != gl.drawingBufferHeight) {
|
|
testFailed("At iteration " + currentIteration + " of " + testIterations +
|
|
": Buffer was the wrong size: " +
|
|
gl.drawingBufferWidth + "x" + gl.drawingBufferHeight);
|
|
finishTest();
|
|
return;
|
|
} else {
|
|
refreshFrame();
|
|
}
|
|
|
|
gl = null;
|
|
}
|
|
|
|
window.addEventListener("message", function(event) {
|
|
if(event.data == "Ready") {
|
|
testContext();
|
|
}
|
|
});
|
|
|
|
refreshFrame();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|