aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormattn2008-05-29 03:06:50 +0000
committermattn2008-05-29 03:06:50 +0000
commitb30a312632f18669be4f3cbdf8c9fc81aeec3324 (patch)
tree7152b94baea01d7a0ea521697426e496859445a8
parentbb3a7e6ace3a4168e231319f0fb35760a7910979 (diff)
downloadvimperator-plugins-b30a312632f18669be4f3cbdf8c9fc81aeec3324.tar.bz2
* パスワードプロンプトを出すように修正
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@12683 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r--gmail_biff.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/gmail_biff.js b/gmail_biff.js
index 20b4a60..5086eab 100644
--- a/gmail_biff.js
+++ b/gmail_biff.js
@@ -60,12 +60,29 @@
setTimeout(function() {
try {
+ var form = ['https://www.google.com', 'https://www.google.com', null];
var passwordManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
- var logins = passwordManager.findLogins({}, 'https://www.google.com', 'https://www.google.com', null);
+ var logins = passwordManager.findLogins({}, form[0], form[1], form[2]);
if(logins.length)
var [gmailUser, gmailPassword] = [logins[0].username, logins[0].password];
else {
liberator.echoerr("Gmail Biff: account not found");
+ var promptSvc = Cc["@mozilla.org/embedcomp/prompt-service;1"]
+ .getService(Ci.nsIPromptService);
+ var user = { value : null };
+ var pass = { value : null };
+ var ret = promptSvc.promptUsernameAndPassword(
+ window, form[0], "GMail Biff Login", user, pass, null, {});
+ if(ret){
+ var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
+ Ci.nsILoginInfo,
+ "init");
+ [gmailUser, gmailPassword] = [user.value, pass.value];
+ var formLoginInfo = new nsLoginInfo(
+ form[0], form[1], form[2],
+ gmailUser, gmailPassword, '', '');
+ passwordManager.addLogin(formLoginInfo);
+ }
return;
}