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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }