Mercurial > my-ubiquity-commands
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 }); |