Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(514)

Side by Side Diff: chrome/browser/resources/quota_internals/quota-internals.js

Issue 7053009: Add chrome://quota-internals/ resources (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: '' Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1
Evan Stade 2011/05/26 16:13:13 license header
tzik 2011/05/27 14:53:59 Done.
2 document.addEventListener("DOMContentLoaded",function(){
Evan Stade 2011/05/26 16:13:13 please don't inline this function. Follow the cr.d
3
4 function LOG() {
Evan Stade 2011/05/26 16:13:13 every function in this file needs a comment
5 if(window.console && console.log)
6 console.log.apply(console, arguments);
7 }
8
9 function forEach(xs, f) {
10 for(var i=0; i < xs.length; ++i)
11 f(xs[i]);
12 }
13
14 function lift(f) {
15 return function(xs) {
16 if(xs)
17 forEach(xs, f);
18 };
19 }
20
21 function clear_child(element) {
22 while (element.hasChildNodes())
23 element.removeChild(element.firstChild);
24 return element;
25 }
26
27 function make_elem(tag, text) {
28 var elem = document.createElement(tag);
29 if (text)
30 elem.appendChild(document.createTextNode(text));
31 return elem;
32 }
33
34 function print_text(text) {
35 if (text === undefined)
36 return "N/A";
37 return text;
38 }
39
40 function print_byte_number(num_text) {
41 if (num_text === undefined)
42 return "N/A";
43 var prefix = ["", "K", "M", "G", "T"];
44 var len = Math.floor((num_text.length-1)/3);
45 return num_text.substring(0, num_text.length - 3 * len) + prefix[len] + "B";
46 }
47
48 function print_date(date_text) {
49 if (date_text === undefined)
50 return "N/A";
51 var d = new Date(date_text);
52 return d.toString();
53 }
54
55 function print_bool(b) {
56 if (b === undefined) return "N/A";
57 return b ? "true" : "false";
58 }
59
60 function print_int(i) {
61 return i === undefined ? "N/A" : i.toString();
62 }
63
64 if(!window.chrome || !chrome.send) {
65 document.title += " (test mode)";
66 LOG("Entering Test Mode...");
67
68 var AvailableSpace = "100000000";
69 var GlobalData = {type: "temporary", usage: "10", quota: "10000"};
70 var HostData = [
71 {host: "example.com", type: "temporary", usage: "0", quota: "0"}];
72 var OriginData = [
73 {origin: "http://example.com/", type: "temporary", host: "example.com",
74 in_use: true, used_count: 1, last_access: Date.now()}];
75
76 if(!window.chrome)
77 window.chrome = {};
78 window.chrome.send = function(msg, param) {
79 switch(msg) {
80 case "requestData":
81 OnRecvAvailableSpace(AvailableSpace);
82 OnRecvGlobalData(GlobalData);
83 OnRecvHostData(HostData);
84 OnRecvOriginData(OriginData);
85 break;
86 default:
87 LOG("unknown message: " + msg);
88 break;
89 }
90 };
91 }
92
93 // Chrome Callback
94 OnRecvAvailableSpace = function(avail_space) {
95 var local = arguments.callee;
96 if (avail_space !== undefined)
97 local.avail_space = avail_space;
98
99 var o = document.getElementById("diskspace-entry");
100 clear_child(o);
101 o.appendChild(document.createTextNode(
102 print_byte_number(avail_space)));
103 };
104
105 OnRecvGlobalData = function(data){
106 var local = arguments.callee;
107 if (!local.map) local.map = {};
108
109 var entry = local.map[data.type];
110 if (entry) {
111 if (data.type !== undefined)
112 entry.type = data.type;
113 if (data.usage !== undefined)
114 entry.usage = data.usage;
115 if (data.quota !== undefined)
116 entry.quota = data.quota;
117 clear_child(entry.element);
118 } else{
119 entry = {
120 type: data.type,
121 usage: data.usage,
122 quota: data.quota,
123 element: document.createElement("tr")
124 };
125 local.map[data.type] = entry;
126 document.getElementById("globaldata-entries")
127 .appendChild(entry.element);
128 }
129
130 entry.element.appendChild(
131 make_elem("td", print_text(entry.type)));
132 entry.element.appendChild(
133 make_elem("td", print_byte_number(entry.usage)));
134 entry.element.appendChild(
135 make_elem("td", print_byte_number(entry.quota)));
136 };
137
138 OnRecvHostData = lift(function(data) {
139 var local = arguments.callee;
140 if (!local.map) local.map = {};
141
142 var entry = local.map[data.host + "/" + data.type];
143 if (entry) {
144 if (data.host !== undefined)
145 entry.host = data.host;
146 if (data.type !== undefined)
147 entry.type = data.type;
148 if (data.usage !== undefined)
149 entry.usage = data.usage;
150 if (data.quota !== undefined)
151 entry.quota = data.quota;
152 clear_child(entry.element);
153 } else {
154 entry = {
155 host: data.host,
156 type: data.type,
157 quota: data.quota,
158 usage: data.usage,
159 element: document.createElement("tr")
160 };
161 local.map[data.host + "/" + data.type] = entry;
162 document.getElementById("host-entries")
163 .appendChild(entry.element);
164 }
165
166 entry.element.appendChild(
167 make_elem("td", print_text(entry.host)));
168 entry.element.appendChild(
169 make_elem("td", print_text(entry.type)));
170 entry.element.appendChild(
171 make_elem("td", print_byte_number(entry.usage)));
172 entry.element.appendChild(
173 make_elem("td", print_byte_number(entry.quota)));
174 });
175
176 OnRecvOriginData = lift(function(data) {
177 var local = arguments.callee;
178 if (!local.map) local.map = {};
179
180 var entry = local.map[data.origin + data.type];
181 if (entry) {
182 if (data.origin !== undefined)
183 entry.origin = data.origin;
184 if (data.type !== undefined)
185 entry.type = data.type;
186 if (data.host !== undefined)
187 entry.host = data.host;
188 if (data.in_use !== undefined)
189 entry.in_use = data.in_use;
190 if (data.last_access !== undefined)
191 entry.last_access = data.last_access;
192 clear_child(entry.element);
193 } else {
194 entry = {
195 origin: data.origin,
196 type: data.type,
197 host: data.host,
198 in_use: data.in_use,
199 used_count: data.used_count,
200 last_access: data.last_access,
201 element: document.createElement("tr")
202 };
203 local.map[data.origin + data.type] = entry;
204 document.getElementById("origin-entries")
205 .appendChild(entry.element);
206 }
207
208 entry.element.appendChild(
209 make_elem("td", print_text(entry.origin)));
210 entry.element.appendChild(
211 make_elem("td", print_text(entry.type)));
212 entry.element.appendChild(
213 make_elem("td", print_text(entry.host)));
214 entry.element.appendChild(
215 make_elem("td", print_bool(entry.in_use)));
216 entry.element.appendChild(
217 make_elem("td", print_int(entry.used_count)));
218 entry.element.appendChild(
219 make_elem("td", print_date(entry.last_access)));
220 });
221
222 /*
Evan Stade 2011/05/26 16:13:13 commented out code?
tzik 2011/05/27 14:53:59 Done.
223 function parse_query(query) {
224 var entries = hash.substring(1).split("&");
225 var params = {};
226 for(var i = 0; i < entries.length; ++i) {
227 var pair = entries[i].match(/(\w+)=(.*)/);
228 if(pair && pair.length == 3)
229 params[pair[1]] = decodeURL(pair[2]);
230 }
231 return params;
232 }
233
234 function make_query(params) {
235 var query = [];
236 for(var i in params)
237 query.push(i+"="+encodeURL(params[i]));
238 return "#" + query.join("&");
239 }
240
241 var switches = document.getElementsByClassName("sort-switches");
242 for (var i=0; i < switches.length;++i) {
243 switches[i].addEventListener("click",function() {
244 var params = parse_query(location.hash);
245 params["sort"] = i;
246 location.hash = make_query(params);
247 },false);
248 }
249
250 document.addEventListener("hashchange",function() {
251 var query = parse_query(location.hash);
252 },false);
253
254 function sort_entries(i) {
255 var origins = [];
256 for (var j in origin_map)
257 origins.push(j);
258 origins.sort(function(x,y){
259 var xs = origin_map[x][i];
260 var ys = origin_map[y][i];
261 return xs<ys?-1:xs>ys?1:0;
262 });
263 }
264 */
265
266 chrome.send("requestData");
267
268 },false);
269
270 // Chrome Event Handler
271
272 function NOTREADY() {
273 console.log("Recieved some data but page is not in ready");
274 }
275
276 var OnRecvAvailableSpace = NOTREADY;
277 var OnRecvGlobalData = NOTREADY;
278 var OnRecvHostData = NOTREADY;
279 var OnRecvOriginData = NOTREADY;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698