Mercurial > my-ubiquity-commands
view 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 |
line wrap: on
line source
Components.utils.import("resource://ubiquity/modules/ubiquity_protocol.js"); var loginManager = Cc["@mozilla.org/login-manager;1"] .getService(Ci.nsILoginManager); var path = 'secure-data-storage'; var hostname = 'ubiquity://' + path; var realm = 'Secure Data Storage'; var formSubmitURL = null; var username = ''; var usernameField = ""; var passwordField = ""; setPath(path, ("data:text/html," + "<html><head><title>Your Secure Data</title></head>" + "<body></body></html>")); function pageLoad_path(doc) { if (doc.location.href == hostname) { var pass = getPass(); if (!pass || pass == "\n") pass = ("Click here to edit your secure data. " + "It will automatically be saved when you close " + "this page."); var stuff = jQuery("<pre></pre>", doc).text(pass); stuff.attr("contentEditable", "true"); doc.defaultView.addEventListener( "unload", function() { jQuery("br", stuff).replaceWith('\n'); setPass(stuff.text()); }, true ); jQuery(doc.body).hide().append(stuff).fadeIn(); } } CmdUtils.CreateCommand( {name: "my-secure-data", previewUrl: "index.html", preview: function(pblock) { jQuery(pblock).addClass("ubiquity-preview-content"); }, execute: function() { Utils.focusUrlInBrowser(hostname); }} ); function getPass() { var result = loginManager.findLogins({}, hostname, formSubmitURL, realm); if (result.length) return result[0].password; return ""; } function setPass(password) { var result = loginManager.findLogins({}, hostname, formSubmitURL, realm); var nsLoginInfo = new Components.Constructor( "@mozilla.org/login-manager/loginInfo;1", Ci.nsILoginInfo, "init" ); var extLoginInfo = new nsLoginInfo(hostname, formSubmitURL, realm, username, password, usernameField, passwordField); if (result.length) { if (result[0].password != password) loginManager.modifyLogin(result[0], extLoginInfo); } else { loginManager.addLogin(extLoginInfo); } }