Mercurial > my-ubiquity-commands
view my-corporate-stalkers/my-corporate-stalkers.js @ 15:7ffb8a48367e
Added initial version of 'my-corporate-stalkers' command.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Wed, 01 Apr 2009 09:21:54 -0700 |
parents | |
children |
line wrap: on
line source
var observerSvc = Cc["@mozilla.org/observer-service;1"] .getService(Ci.nsIObserverService); if (!globals.refererMatrix) globals.refererMatrix = {}; if (globals.myHttpObserver) { observerSvc.removeObserver(globals.myHttpObserver, "http-on-modify-request"); globals.myHttpObserver = null; } globals.myHttpObserver = { observe: function(subject, topic, data) { subject = subject.QueryInterface(Ci.nsIHttpChannel); if (subject.referrer) { var refHost = subject.referrer.host; var host = subject.URI.host; refHost = refHost.split('.').slice(-2).join('.'); host = host.split('.').slice(-2).join('.'); if (refHost != host) { try { subject.getRequestHeader("Cookie"); if (!globals.refererMatrix[host]) globals.refererMatrix[host] = {}; if (!globals.refererMatrix[host][refHost]) globals.refererMatrix[host][refHost] = 0; globals.refererMatrix[host][refHost]++; } catch (e if e.result == Components.results.NS_ERROR_NOT_AVAILABLE) { } } } } }; observerSvc.addObserver(globals.myHttpObserver, "http-on-modify-request", false); CmdUtils.CreateCommand({ name: "my-corporate-stalkers", author: {name: "Atul Varma", email: "avarma@mozilla.com", homepage: "http://www.toolness.com"}, license: "MIT", description: ("Shows you what other websites know about you " + "based on the sites you visit."), preview: function(pblock) { var output = ""; for (host in globals.refererMatrix) { output += host + " may know that you visit:\n"; for (refHost in globals.refererMatrix[host]) output += " " + refHost + "\n"; output += "\n"; } jQuery(pblock).empty(); jQuery(pblock).append( jQuery("<pre></pre>", pblock.ownerDocument).text(output) ); } });