- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / gpu / webgl_conformance.html
1 <html>
2 <head>
3 <script type="text/javascript"
4         src="../../../../third_party/webgl_conformance/resources/webgl-test-harness.js">
5 </script>
6 <script>
7 // We parse the test list offline and run the harness multiple times with each
8 // test. Therefore, the version and options do not matter for the browsertests.
9 // However, we still need to pass in a valid options for the harness to run.
10 var CONFORMANCE_TEST_VERSION = "1.0.1 (beta)";
11 var OPTIONS = {
12   version: CONFORMANCE_TEST_VERSION
13 };
14
15 var BASE_URL = "../../../../third_party/webgl_conformance/";
16 var gl = null;
17 var messages = [];
18 var numFailures = 0;
19
20 function start(start_url) {
21   // Report function called by each conformance test.
22   function report(type, msg, success) {
23     var reportType = WebGLTestHarnessModule.TestHarness.reportType;
24     switch (type) {
25       case reportType.START_PAGE:
26         // Accept every page loaded.
27         messages = [];
28         numFailures = 0;
29         return true;
30       case reportType.TEST_RESULT:
31         if (!success) {
32           ++numFailures;
33           messages.push("FAILURE: " + msg);
34         }
35         break;
36       case reportType.FINISH_PAGE:
37         if (success === undefined) {
38           ++numFailures;
39           messages.push("TIMEOUT: " +
40               window.webglTestHarness.timeoutDelay + " ms");
41         }
42       case reportType.FINISHED_ALL_TESTS:
43         if (numFailures > 0) {
44           var ext = gl.getExtension("WEBGL_debug_renderer_info");
45           if (ext) {
46             messages.push("GL_VENDOR: " +
47                 gl.getParameter(ext.UNMASKED_VENDOR_WEBGL));
48             messages.push("GL_RENDERER: " +
49                 gl.getParameter(ext.UNMASKED_RENDERER_WEBGL));
50           }
51         } else {
52           messages.push("SUCCESS");
53         }
54         domAutomationController.setAutomationId(1);
55         domAutomationController.send(messages.join("\n"));
56         break;
57     }
58   }
59
60   function create3DContext() {
61     var canvas = document.createElement("canvas");
62     var context = null;
63     try {
64       context = canvas.getContext("webgl");
65     } catch(e) {
66     }
67     if (!context) {
68       try {
69         context = canvas.getContext("experimental-webgl");
70       } catch(e) {
71       }
72     }
73     return context;
74   }
75
76   // Assert the WebGL context exists.
77   gl = create3DContext();
78   if (!gl) {
79     domAutomationController.setAutomationId(1);
80     domAutomationController.send("FAILURE: unable to fetch WebGL context");
81     return;
82   }
83
84   var iframe = document.getElementById("testframe");
85   var testHarness = new WebGLTestHarnessModule.TestHarness(
86       iframe,
87       BASE_URL + start_url,
88       report,
89       OPTIONS);
90
91   window.webglTestHarness = testHarness;
92   window.webglTestHarness.runTests();
93 }
94 </script>
95 </head>
96 <body>
97 <iframe id="testframe" scrolling="yes" width="100%" height="100%"></iframe>
98 </body>
99 </html>