2017 07 ≪  08月 12345678910111213141516171819202122232425262728293031  ≫ 2017 09


スポンサーサイト

- --------(--) - 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事のURL | スポンサー広告 | ▲ top

Secure LoginをFirefox 17でも使いたい!

- 2012-09-08(Sat) - 

先日Auroraを17.0a2に更新したのですが、わたしの環境ではSecure Login 0.9.9が正常に動かなくなってしまいました。

Secure Loginの設定「ログイン時にJavaScriptプロテクションを使用」を無効にするとログインできるようになりましたが、これだとログイン時にフォームへID/パスワードが記入されてしまいます。でもできるならこの機能は有効にして使い続けたい。

少し調べてみると、Secure Loginで使われているcheckLoadURIStr()がFirefox 17から削除されるようです。その代わりにcheckLoadURIStrWithPrincipal()を使うとよさそうなので、その部分を書き換えてみたところちゃんと動作するようになりました。数日使っていますが問題なさそうなので、該当部分をメモしておきます。試してみたい方は自己責任でお願いします。

なお、書き換え前のcheckLoadURIStr()と書き換え後のcheckLoadURIStrWithPrincipal()は何を行うメソッドなのか、なぜcheckLoadURIStr()が削除されるのかをあらかじめ調べてから書き換えることを推奨します。どうやらこれらのメソッドは危険なURLかどうかをチェックするようです。

Secure Login 0.9.9「secureLogin@blueimp.net.xpi」のchrome\content\secureLogin.js

1593行目

          this.urlSecurityCheck(url, doc.location.href);

          this.urlSecurityCheck(url, doc.nodePrincipal);

に変更し、2029行目

  urlSecurityCheck: function(url, sourceURL) {

  urlSecurityCheck: function(url, principal) {

に変更し、2031行目

      this.getSecManager().checkLoadURIStr(sourceURL, url, Components.interfaces.nsIScriptSecurityManager.STANDARD);

      this.getSecManager().checkLoadURIStrWithPrincipal(principal, url, Components.interfaces.nsIScriptSecurityManager.STANDARD);

に変更します。上書き保存とxpi更新はFirefoxを完全に終了した状態で実行してください。

それとGoogleなどのログインフォームでメールアドレスを記入してくれない問題は[Ext] Opera Wand for Firefox - SecureLogin • mozillaZine Forumsに解決方法が載っています。その書き換える部分は2か所あり、829行目

      if(elements[i].type == 'text') {

      if(/(^text|^email)/i.test(elements[i].type)) {

に変更し、1532行目

              case 'text':

              case 'text': case 'email':

に変更します。これでGoogleなどでもログインできるようになるはず。

また上記の件とは別ですが、エラーコンソールにbug 608628のエラーが表示されている方は、293行目から296行目の

        this.getBrowser().addProgressListener(
this.progressListener,
Components.interfaces.nsIWebProgress.NOTIFY_LOCATION | Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT
);

の4行を

        this.getBrowser().addProgressListener(this.progressListener);

の1行に変更するとSecure Login 0.9.9が原因のbug 608628エラーは表示されなくなるので、エラーが気になる方はついでに変更しておくといいでしょう。

関連記事
スポンサーサイト
この記事のURL | 拡張機能 | コメント(1) | トラックバック(0) | ▲ top
<< | メイン | >>
 
コメント
-  -
少し前からGoogleReaderでメールが入力されずに困っていました
正式版しか使っていませんが手順通り書き換え、無事直りました
ありがとうございます
2012/10/12 22:39  | URL | いかごはん #10gYSQY. [ 編集] |  ▲ top


コメントの投稿















管理者にだけ表示を許可する


▲ top
 
トラックバック
トラックバックURL
→http://fxwiki.blog63.fc2.com/tb.php/309-51dcdcc2
| メイン |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。