comparison 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
comparison
equal deleted inserted replaced
14:4c4313f33850 15:7ffb8a48367e
1 var observerSvc = Cc["@mozilla.org/observer-service;1"]
2 .getService(Ci.nsIObserverService);
3
4 if (!globals.refererMatrix)
5 globals.refererMatrix = {};
6
7 if (globals.myHttpObserver) {
8 observerSvc.removeObserver(globals.myHttpObserver, "http-on-modify-request");
9 globals.myHttpObserver = null;
10 }
11
12 globals.myHttpObserver = {
13 observe: function(subject, topic, data) {
14 subject = subject.QueryInterface(Ci.nsIHttpChannel);
15 if (subject.referrer) {
16 var refHost = subject.referrer.host;
17 var host = subject.URI.host;
18 refHost = refHost.split('.').slice(-2).join('.');
19 host = host.split('.').slice(-2).join('.');
20 if (refHost != host) {
21 try {
22 subject.getRequestHeader("Cookie");
23 if (!globals.refererMatrix[host])
24 globals.refererMatrix[host] = {};
25 if (!globals.refererMatrix[host][refHost])
26 globals.refererMatrix[host][refHost] = 0;
27 globals.refererMatrix[host][refHost]++;
28 } catch (e if e.result == Components.results.NS_ERROR_NOT_AVAILABLE) {
29 }
30 }
31 }
32 }
33 };
34
35 observerSvc.addObserver(globals.myHttpObserver,
36 "http-on-modify-request",
37 false);
38
39 CmdUtils.CreateCommand({
40 name: "my-corporate-stalkers",
41 author: {name: "Atul Varma", email: "avarma@mozilla.com",
42 homepage: "http://www.toolness.com"},
43 license: "MIT",
44 description: ("Shows you what other websites know about you " +
45 "based on the sites you visit."),
46 preview: function(pblock) {
47 var output = "";
48 for (host in globals.refererMatrix) {
49 output += host + " may know that you visit:\n";
50 for (refHost in globals.refererMatrix[host])
51 output += " " + refHost + "\n";
52 output += "\n";
53 }
54 jQuery(pblock).empty();
55 jQuery(pblock).append(
56 jQuery("<pre></pre>", pblock.ownerDocument).text(output)
57 );
58 }
59 });