2 <!-- much of this is stolen from omahaproxy.appspot.com/viewer -->
5 <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
6 <title>NaCl SDK Manifest Viewer</title>
8 <style type="text/css" media="screen">
10 font-family: monospace;
15 border-collapse: collapse;
16 border-color: rgb(100, 100, 100);
18 border-width: 1px 0px 1px 0px;
23 border-color: rgb(100, 100, 100);
25 border-width: 0px 1px 0px 1px;
29 background-color: lightblue;
32 border-color: rgb(100, 100, 100);
33 border-width: 0px 0px 2px 0px;
37 tbody tr:nth-child(odd) {
38 background-color: rgb(230, 230, 230);
42 background-color: orange;
50 <h1>NaCl SDK Manifest Viewer</h1>
57 <h2>Most recent upload log:</h2>
60 <script type="application/javascript">
61 function loadText(url, callback) {
62 var xhr = new XMLHttpRequest();
63 xhr.open('GET', url, true);
64 xhr.onreadystatechange = function (e) {
65 if (xhr.readyState == 4) {
66 if (xhr.status == 200) {
67 callback(xhr.responseText);
69 alert("Failed to load: error " + xhr.status);
76 function loadJson(url, callback) {
77 loadText(url, function (text) {
78 callback(JSON.parse(text));
82 function removeAllChildren(elm) {
83 while (elm.childNodes.length) {
84 elm.removeChild(elm.firstChild);
88 function display(data) {
91 var columnsElm = document.getElementById('columns');
92 var rowsElm = document.getElementById('rows');
93 removeAllChildren(columnsElm);
94 removeAllChildren(rowsElm);
96 // Create the column headers.
97 var tr = document.createElement('tr');
99 'name', 'version', 'revision', 'win', 'mac', 'linux', 'all'
101 for (var i = 0; i < columns.length; ++i) {
102 var td = document.createElement('td');
103 var text = document.createTextNode(columns[i]);
104 td.appendChild(text);
107 columnsElm.appendChild(tr);
109 var platforms = ['win', 'mac', 'linux', 'all'];
111 for (var i = 0; i < data.length; ++i) {
112 var tr = document.createElement('tr');
113 for (var j = 0; j < columns.length; ++j) {
114 var td = document.createElement('td');
116 if (platforms.indexOf(columns[j]) != -1) {
117 var archives = data[i].archives;
118 for (var k = 0; k < archives.length; ++k) {
119 if (columns[j] == archives[k].host_os) {
120 var url = archives[k].url;
121 var lastSlash = url.lastIndexOf('/');
122 var nextDot = url.indexOf('.', lastSlash);
123 name = url.substr(lastSlash + 1, nextDot - lastSlash - 1);
124 node = document.createElement('a');
125 node.setAttribute('href', url);
126 node.appendChild(document.createTextNode(name));
127 td.appendChild(node);
131 node = document.createTextNode(data[i][columns[j]]);
132 td.appendChild(node);
136 rowsElm.appendChild(tr);
140 function displayLog(text) {
141 document.getElementById('log').textContent = text;
144 loadJson('naclsdk_manifest2.json', display);
145 loadText('naclsdk_manifest2.json.log', displayLog);