5
<title>HTML5test - How well does your browser support HTML5?</title>
8
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
10
<meta name="viewport" content="width=device-width, initial-scale=1.0">
12
<style type="text/css">
15
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", "Helvetica", "Arial", "Lucida Grande", sans-serif;
31
text-decoration: none;
39
<script src='/scripts/base.js' type='text/javascript'></script>
40
<script src='/scripts/8/engine.js' type='text/javascript'></script>
41
<script src='/scripts/8/data.js' type='text/javascript'></script>
44
(function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
45
e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
46
e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
47
f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
48
p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
49
s.src='//api.whichbrowser.net/rel/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();
60
function waitForWhichBrowser(cb) {
64
if (typeof WhichBrowser == 'undefined')
65
window.setTimeout(wait, 100)
73
waitForWhichBrowser(function() {
75
Browsers = new WhichBrowser({
77
detectCamouflage: true
86
if (location.search) {
87
var parts = location.search.substring(1).split('&');
89
for (var i = 0; i < parts.length; i++) {
90
var nv = parts[i].split('=');
92
params[nv[0]] = nv[1] || true;
96
var identifier = typeof params.identifier != 'undefined' ? params.identifier : null;
97
var source = typeof params.source != 'undefined' ? params.source : null;
98
var task = typeof params.task != 'undefined' ? params.task : null;
101
new Test(function(r) {
102
var c = new Calculate(r, tests);
104
document.getElementById('qr').innerHTML +=
105
"<p>You can see the results here:</p>" +
106
"<p><a href='http://html5te.st/" + r.uniqueid + "'>html5te.st/" + r.uniqueid + "</a></p>" +
107
"<p>Or scan this QR-code:</p>" +
109
"<img src='https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=" + encodeURIComponent("http://html5te.st/" + r.uniqueid) + "&choe=UTF-8' width='200' height='200'>" +
111
"<p>The unique id for this test is:<br><code>" + r.uniqueid + "</code></p>";
115
'"release": "' + r.release + '",' +
116
'"source": "' + source + '",' +
117
'"identifier": "' + identifier + '",' +
118
'"task": "' + task + '",' +
119
'"uniqueid": "' + r.uniqueid + '",' +
120
'"score": ' + c.score + ',' +
121
'"maximum": ' + c.maximum + ',' +
122
'"camouflage": "' + (Browsers.camouflage ? '1' : '0') + '",' +
123
'"features": "' + (Browsers.features.join(',')) + '",' +
124
'"browserName": "' + (Browsers.browser.name ? Browsers.browser.name : '') + '",' +
125
'"browserChannel": "' + (Browsers.browser.channel ? Browsers.browser.channel : '') + '",' +
126
'"browserVersion": "' + (Browsers.browser.version ? Browsers.browser.version.toString() : '') + '",' +
127
'"browserVersionType": "' + (Browsers.browser.version ? Browsers.browser.version.type : '') + '",' +
128
'"browserVersionMajor": "' + (Browsers.browser.version ? Browsers.browser.version.major : '') + '",' +
129
'"browserVersionMinor": "' + (Browsers.browser.version ? Browsers.browser.version.minor : '') + '",' +
130
'"browserVersionOriginal": "' + (Browsers.browser.version ? Browsers.browser.version.original : '') + '",' +
131
'"browserMode": "' + (Browsers.browser.mode ? Browsers.browser.mode : '') + '",' +
132
'"engineName": "' + (Browsers.engine.name ? Browsers.engine.name : '') + '",' +
133
'"engineVersion": "' + (Browsers.engine.version ? Browsers.engine.version.toString() : '') + '",' +
134
'"osName": "' + (Browsers.os.name ? Browsers.os.name : '') + '",' +
135
'"osFamily": "' + (Browsers.os.family ? Browsers.os.family : '') + '",' +
136
'"osVersion": "' + (Browsers.os.version ? Browsers.os.version.toString() : '') + '",' +
137
'"deviceManufacturer": "' + (Browsers.device.manufacturer ? Browsers.device.manufacturer : '') + '",' +
138
'"deviceModel": "' + (Browsers.device.model ? Browsers.device.model : '') + '",' +
139
'"deviceSeries": "' + (Browsers.device.series ? Browsers.device.series : '') + '",' +
140
'"deviceType": "' + (Browsers.device.type ? Browsers.device.type : '') + '",' +
141
'"deviceIdentified": "' + (Browsers.device.identified ? '1' : '0' ) + '",' +
142
'"deviceWidth": "' + (screen.width) + '",' +
143
'"deviceHeight": "' + (screen.height) + '",' +
144
'"useragent": "' + navigator.userAgent + '",' +
145
'"humanReadable": "' + Browsers.toString() + '",' +
146
'"points": "' + c.points + '",' +
147
'"results": "' + r.results + '"' +
150
submit('submit', payload);
152
function submit(method, payload) {
154
if (window.XMLHttpRequest) {
155
httpRequest = new XMLHttpRequest();
156
} else if (window.ActiveXObject) {
157
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
160
httpRequest.open('POST','/api/' + method, true);
161
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
162
httpRequest.send('payload=' + encodeURIComponent(payload));
167
if (typeof console != 'undefined') console.log(e);
168
alert('Test has failed: ' + e.message);