Mercurial > my-ubiquity-commands
annotate secure-data-storage/secure-data-storage.js @ 27:305345a0e472 default tip
Modifications to work w/ latest jetpack.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 18 May 2009 22:51:37 -0700 |
parents | f3e03596fcf9 |
children |
rev | line source |
---|---|
17
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
1 Components.utils.import("resource://ubiquity/modules/ubiquity_protocol.js"); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
2 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
3 var loginManager = Cc["@mozilla.org/login-manager;1"] |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
4 .getService(Ci.nsILoginManager); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
5 var path = 'secure-data-storage'; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
6 var hostname = 'ubiquity://' + path; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
7 var realm = 'Secure Data Storage'; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
8 var formSubmitURL = null; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
9 var username = ''; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
10 var usernameField = ""; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
11 var passwordField = ""; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
12 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
13 setPath(path, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
14 ("data:text/html," + |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
15 "<html><head><title>Your Secure Data</title></head>" + |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
16 "<body></body></html>")); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
17 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
18 function pageLoad_path(doc) { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
19 if (doc.location.href == hostname) { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
20 var pass = getPass(); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
21 if (!pass || pass == "\n") |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
22 pass = ("Click here to edit your secure data. " + |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
23 "It will automatically be saved when you close " + |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
24 "this page."); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
25 var stuff = jQuery("<pre></pre>", doc).text(pass); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
26 stuff.attr("contentEditable", "true"); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
27 doc.defaultView.addEventListener( |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
28 "unload", |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
29 function() { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
30 jQuery("br", stuff).replaceWith('\n'); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
31 setPass(stuff.text()); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
32 }, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
33 true |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
34 ); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
35 jQuery(doc.body).hide().append(stuff).fadeIn(); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
36 } |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
37 } |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
38 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
39 CmdUtils.CreateCommand( |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
40 {name: "my-secure-data", |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
41 previewUrl: "index.html", |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
42 preview: function(pblock) { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
43 jQuery(pblock).addClass("ubiquity-preview-content"); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
44 }, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
45 execute: function() { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
46 Utils.focusUrlInBrowser(hostname); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
47 }} |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
48 ); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
49 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
50 function getPass() { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
51 var result = loginManager.findLogins({}, hostname, formSubmitURL, realm); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
52 if (result.length) |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
53 return result[0].password; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
54 return ""; |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
55 } |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
56 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
57 function setPass(password) { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
58 var result = loginManager.findLogins({}, hostname, formSubmitURL, realm); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
59 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
60 var nsLoginInfo = new Components.Constructor( |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
61 "@mozilla.org/login-manager/loginInfo;1", |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
62 Ci.nsILoginInfo, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
63 "init" |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
64 ); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
65 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
66 var extLoginInfo = new nsLoginInfo(hostname, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
67 formSubmitURL, realm, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
68 username, password, usernameField, |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
69 passwordField); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
70 |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
71 if (result.length) { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
72 if (result[0].password != password) |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
73 loginManager.modifyLogin(result[0], extLoginInfo); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
74 } else { |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
75 loginManager.addLogin(extLoginInfo); |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
76 } |
f3e03596fcf9
Added secure data storage command feed.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
77 } |