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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/quota_internals/quota-internals.js
diff --git a/chrome/browser/resources/quota_internals/quota-internals.js b/chrome/browser/resources/quota_internals/quota-internals.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab5461e1238b050a5f1597fcd2ddc33ec471b2c9
--- /dev/null
+++ b/chrome/browser/resources/quota_internals/quota-internals.js
@@ -0,0 +1,279 @@
+
Evan Stade 2011/05/26 16:13:13 license header
tzik 2011/05/27 14:53:59 Done.
+document.addEventListener("DOMContentLoaded",function(){
Evan Stade 2011/05/26 16:13:13 please don't inline this function. Follow the cr.d
+
+function LOG() {
Evan Stade 2011/05/26 16:13:13 every function in this file needs a comment
+ if(window.console && console.log)
+ console.log.apply(console, arguments);
+}
+
+function forEach(xs, f) {
+ for(var i=0; i < xs.length; ++i)
+ f(xs[i]);
+}
+
+function lift(f) {
+ return function(xs) {
+ if(xs)
+ forEach(xs, f);
+ };
+}
+
+function clear_child(element) {
+ while (element.hasChildNodes())
+ element.removeChild(element.firstChild);
+ return element;
+}
+
+function make_elem(tag, text) {
+ var elem = document.createElement(tag);
+ if (text)
+ elem.appendChild(document.createTextNode(text));
+ return elem;
+}
+
+function print_text(text) {
+ if (text === undefined)
+ return "N/A";
+ return text;
+}
+
+function print_byte_number(num_text) {
+ if (num_text === undefined)
+ return "N/A";
+ var prefix = ["", "K", "M", "G", "T"];
+ var len = Math.floor((num_text.length-1)/3);
+ return num_text.substring(0, num_text.length - 3 * len) + prefix[len] + "B";
+}
+
+function print_date(date_text) {
+ if (date_text === undefined)
+ return "N/A";
+ var d = new Date(date_text);
+ return d.toString();
+}
+
+function print_bool(b) {
+ if (b === undefined) return "N/A";
+ return b ? "true" : "false";
+}
+
+function print_int(i) {
+ return i === undefined ? "N/A" : i.toString();
+}
+
+if(!window.chrome || !chrome.send) {
+ document.title += " (test mode)";
+ LOG("Entering Test Mode...");
+
+ var AvailableSpace = "100000000";
+ var GlobalData = {type: "temporary", usage: "10", quota: "10000"};
+ var HostData = [
+ {host: "example.com", type: "temporary", usage: "0", quota: "0"}];
+ var OriginData = [
+ {origin: "http://example.com/", type: "temporary", host: "example.com",
+ in_use: true, used_count: 1, last_access: Date.now()}];
+
+ if(!window.chrome)
+ window.chrome = {};
+ window.chrome.send = function(msg, param) {
+ switch(msg) {
+ case "requestData":
+ OnRecvAvailableSpace(AvailableSpace);
+ OnRecvGlobalData(GlobalData);
+ OnRecvHostData(HostData);
+ OnRecvOriginData(OriginData);
+ break;
+ default:
+ LOG("unknown message: " + msg);
+ break;
+ }
+ };
+}
+
+// Chrome Callback
+OnRecvAvailableSpace = function(avail_space) {
+ var local = arguments.callee;
+ if (avail_space !== undefined)
+ local.avail_space = avail_space;
+
+ var o = document.getElementById("diskspace-entry");
+ clear_child(o);
+ o.appendChild(document.createTextNode(
+ print_byte_number(avail_space)));
+};
+
+OnRecvGlobalData = function(data){
+ var local = arguments.callee;
+ if (!local.map) local.map = {};
+
+ var entry = local.map[data.type];
+ if (entry) {
+ if (data.type !== undefined)
+ entry.type = data.type;
+ if (data.usage !== undefined)
+ entry.usage = data.usage;
+ if (data.quota !== undefined)
+ entry.quota = data.quota;
+ clear_child(entry.element);
+ } else{
+ entry = {
+ type: data.type,
+ usage: data.usage,
+ quota: data.quota,
+ element: document.createElement("tr")
+ };
+ local.map[data.type] = entry;
+ document.getElementById("globaldata-entries")
+ .appendChild(entry.element);
+ }
+
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.type)));
+ entry.element.appendChild(
+ make_elem("td", print_byte_number(entry.usage)));
+ entry.element.appendChild(
+ make_elem("td", print_byte_number(entry.quota)));
+};
+
+OnRecvHostData = lift(function(data) {
+ var local = arguments.callee;
+ if (!local.map) local.map = {};
+
+ var entry = local.map[data.host + "/" + data.type];
+ if (entry) {
+ if (data.host !== undefined)
+ entry.host = data.host;
+ if (data.type !== undefined)
+ entry.type = data.type;
+ if (data.usage !== undefined)
+ entry.usage = data.usage;
+ if (data.quota !== undefined)
+ entry.quota = data.quota;
+ clear_child(entry.element);
+ } else {
+ entry = {
+ host: data.host,
+ type: data.type,
+ quota: data.quota,
+ usage: data.usage,
+ element: document.createElement("tr")
+ };
+ local.map[data.host + "/" + data.type] = entry;
+ document.getElementById("host-entries")
+ .appendChild(entry.element);
+ }
+
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.host)));
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.type)));
+ entry.element.appendChild(
+ make_elem("td", print_byte_number(entry.usage)));
+ entry.element.appendChild(
+ make_elem("td", print_byte_number(entry.quota)));
+});
+
+OnRecvOriginData = lift(function(data) {
+ var local = arguments.callee;
+ if (!local.map) local.map = {};
+
+ var entry = local.map[data.origin + data.type];
+ if (entry) {
+ if (data.origin !== undefined)
+ entry.origin = data.origin;
+ if (data.type !== undefined)
+ entry.type = data.type;
+ if (data.host !== undefined)
+ entry.host = data.host;
+ if (data.in_use !== undefined)
+ entry.in_use = data.in_use;
+ if (data.last_access !== undefined)
+ entry.last_access = data.last_access;
+ clear_child(entry.element);
+ } else {
+ entry = {
+ origin: data.origin,
+ type: data.type,
+ host: data.host,
+ in_use: data.in_use,
+ used_count: data.used_count,
+ last_access: data.last_access,
+ element: document.createElement("tr")
+ };
+ local.map[data.origin + data.type] = entry;
+ document.getElementById("origin-entries")
+ .appendChild(entry.element);
+ }
+
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.origin)));
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.type)));
+ entry.element.appendChild(
+ make_elem("td", print_text(entry.host)));
+ entry.element.appendChild(
+ make_elem("td", print_bool(entry.in_use)));
+ entry.element.appendChild(
+ make_elem("td", print_int(entry.used_count)));
+ entry.element.appendChild(
+ make_elem("td", print_date(entry.last_access)));
+});
+
+/*
Evan Stade 2011/05/26 16:13:13 commented out code?
tzik 2011/05/27 14:53:59 Done.
+function parse_query(query) {
+ var entries = hash.substring(1).split("&");
+ var params = {};
+ for(var i = 0; i < entries.length; ++i) {
+ var pair = entries[i].match(/(\w+)=(.*)/);
+ if(pair && pair.length == 3)
+ params[pair[1]] = decodeURL(pair[2]);
+ }
+ return params;
+}
+
+function make_query(params) {
+ var query = [];
+ for(var i in params)
+ query.push(i+"="+encodeURL(params[i]));
+ return "#" + query.join("&");
+}
+
+var switches = document.getElementsByClassName("sort-switches");
+for (var i=0; i < switches.length;++i) {
+ switches[i].addEventListener("click",function() {
+ var params = parse_query(location.hash);
+ params["sort"] = i;
+ location.hash = make_query(params);
+ },false);
+}
+
+document.addEventListener("hashchange",function() {
+ var query = parse_query(location.hash);
+},false);
+
+function sort_entries(i) {
+ var origins = [];
+ for (var j in origin_map)
+ origins.push(j);
+ origins.sort(function(x,y){
+ var xs = origin_map[x][i];
+ var ys = origin_map[y][i];
+ return xs<ys?-1:xs>ys?1:0;
+ });
+}
+*/
+
+chrome.send("requestData");
+
+},false);
+
+// Chrome Event Handler
+
+function NOTREADY() {
+ console.log("Recieved some data but page is not in ready");
+}
+
+var OnRecvAvailableSpace = NOTREADY;
+var OnRecvGlobalData = NOTREADY;
+var OnRecvHostData = NOTREADY;
+var OnRecvOriginData = NOTREADY;

Powered by Google App Engine
This is Rietveld 408576698