OLD | NEW |
1 <!-- This is a test for crbug.com/412440, tests meaningful information in | 1 <!-- This is a test for crbug.com/412440, tests meaningful information in |
2 WebGL context creation error message. --> | 2 WebGL context creation error message. --> |
3 <script src="../../../resources/js-test.js"></script> | 3 <script src="../../../resources/js-test.js"></script> |
4 <canvas id="webgl-canvas" width="200" height="200" class="nomargin"></canvas> | 4 <canvas id="webgl-canvas" width="200" height="200" class="nomargin"></canvas> |
5 <script> | 5 <script> |
6 function main() | 6 function main() |
7 { | 7 { |
8 if (!window.testRunner) { | 8 if (!window.testRunner) { |
9 testFailed("Requires window.testRunner"); | 9 testFailed("Requires window.testRunner"); |
10 } else { | 10 } else { |
11 initTest(); | 11 initTest(); |
12 } | 12 } |
13 } | 13 } |
14 | 14 |
15 function initTest() { | 15 function initTest() { |
16 var canvas = document.getElementById("webgl-canvas"); | 16 var canvas = document.getElementById("webgl-canvas"); |
17 testRunner.forceNextWebGLContextCreationToFail(); | 17 testRunner.forceNextWebGLContextCreationToFail(); |
18 canvas.addEventListener("webglcontextcreationerror", onContextCreationError, f
alse); | 18 canvas.addEventListener("webglcontextcreationerror", onContextCreationError, f
alse); |
19 var gl = canvas.getContext("webgl"); | 19 var gl = canvas.getContext("webgl"); |
20 testRunner.dumpAsText(); | 20 testRunner.dumpAsText(); |
21 } | 21 } |
22 | 22 |
23 function onContextCreationError(e) { | 23 function onContextCreationError(e) { |
24 var vendorInfoStr = "VendorInfo = "; | 24 var splitStatus = e.statusMessage.split(","); |
25 var renderInfoStr = "RendererInfo = "; | 25 var stringLocator = 1; |
26 var driverInfoStr = "DriverInfo = "; | 26 var status = true; |
27 var stringIndex = e.statusMessage.search(vendorInfoStr) + vendorInfoStr.length
; | 27 // Start iterating from 1 as , the initial message has no data. |
28 var vendorInfo = e.statusMessage.substring(stringIndex, e.statusMessage.search
(renderInfoStr) - 2); | 28 for (var i = 1; i < splitStatus.length; i++) { |
29 stringIndex = e.statusMessage.search(renderInfoStr) + renderInfoStr.length; | 29 var gpuInfoStr = splitStatus[i].split(" = "); |
30 var rendererInfo = e.statusMessage.substring(stringIndex, e.statusMessage.sear
ch(driverInfoStr) - 2 ); | 30 if (gpuInfoStr[stringLocator] == "") |
31 stringIndex = e.statusMessage.search(driverInfoStr) + driverInfoStr.length; | 31 status = false; |
32 var driverInfo = e.statusMessage.substring(stringIndex, e.statusMessage.length
- 1); | 32 } |
33 if((e.statusMessage.search("GPUInfoCollectionFailure") != -1) || | 33 if(status) |
34 vendorInfo.length > 0 || | |
35 rendererInfo.length > 0 || | |
36 driverInfo.length > 0) | |
37 testPassed("Status message displayed for webglcontextcreationerror"); | 34 testPassed("Status message displayed for webglcontextcreationerror"); |
38 else | 35 else |
39 testFailed("Context creation error test failed"); | 36 testFailed("Context creation error test failed"); |
40 } | 37 } |
41 main(); | 38 main(); |
42 </script> | 39 </script> |
OLD | NEW |