From b30a312632f18669be4f3cbdf8c9fc81aeec3324 Mon Sep 17 00:00:00 2001 From: mattn Date: Thu, 29 May 2008 03:06:50 +0000 Subject: * パスワードプロンプトを出すように修正 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@12683 d0d07461-0603-4401-acd4-de1884942a52 --- gmail_biff.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'gmail_biff.js') 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; } -- cgit v1.2.3