Hatena::Groupvimperator

laiso

 | 

2010-01-12

"http://twitter.com" がパスワードマネージャに保存されない

| 01:13

Fx3.5.6 か Vimperator2.2-stable にしたあたりか(正確におぼえてない)

twitter.jsが Account見付からないエラーを吐いていたのでみてみたら。パスワードマネージャにID/PASSがない。

ログイン何回やっても何回やっても保存されないよ。うちの環境だけなんだろうか。例外サイトにしているわけでもないのに。

しかし、https://twitter.com/login からならパスワードマネージャに保存された。なぞ。

もうちょっと追ってみて、セーフモードで立ちあげて http://twitter.com からログインしてみたら保存された。きりわけむずいなー。現プロファイルになんかカスがのこっているかなんかか。その後2.3a1-pre(r4188)にした。

どうにもわからんので https://twitter.com をひろわせた。

--- twitter.js.orig     2010-01-13 00:16:38.000000000 +0900
+++ twitter.js  2010-01-13 00:33:13.000000000 +0900
@@ -208,8 +208,11 @@
     function getAccount(){
         try {
             var logins = passwordManager.findLogins({}, "http://twitter.com", "https://twitter.com", null);
+            var logins_alt = passwordManager.findLogins({}, "https://twitter.com", "https://twitter.com", null);
             if (logins.length)
                 return [logins[0].username, logins[0].password];
+            else if (logins_alt.length)
+                return [logins_alt[0].username, logins_alt[0].password];
             else
                 throw "Twitter: account not found";
         }

こんなパッチあてなくても、 Using nsILoginManager - MDC を参考にコマンド打ち込んで手動で保存しちゃったほうがはやそう(できる?)。

blue_ringblue_ring2010/01/13 20:26そのページにあるように、
myLoginManager.addLogin(loginInfo);
で保存できます。保存されないのは、間違ったパスワード情報が保存されるなどしたのが原因で、
パスワードが既存であると判定されている可能性があります。findLoginsで保存済みのパスワード
情報を確認してみると何か分かるかもしれません。

laisolaiso2010/01/14 20:45リブート後に以下をためしてみたら保存されていました。
>>> echo (Components.classes["@mozilla.org/login-manager;1"].getService(Components.interfaces.nsILoginManager)).findLogins({}, "http://twitter.com", "", null)[0];
>>> echo (Components.classes["@mozilla.org/login-manager;1"].getService(Components.interfaces.nsILoginManager)).findLogins({}, "https://twitter.com", "", null)[0];
結局原因がわからないな…

 |