« 前のひとこと | トップページ | 次のひとこと »

cocolog:88550595

Firefox のブラウザ拡張(アドオン)である PP Interrupter を作って公開した。詐欺的な自動ダイレクトを識別するために、逆に普段から健全な自動リダイレクトをブロックする習慣をつけるという逆転の発想のアドオン。 (JRF 4142)

JRF 2017年12月 8日 (金)

アドオンのページ:

《PP Interrupter – Firefox 向けアドオン》
https://addons.mozilla.org/firefox/addon/pp-interrupter/

説明用ホームページ:

《PP Interrupter》
http://jrf.cocolog-nifty.com/archive/pp-interrupter/README_ja.html

JRF2017/12/80445

サポート用のブログ内ページ:

《PP Interrupter: 健全なサイトをブロック!?》
http://jrf.cocolog-nifty.com/software/2017/12/post.html

JRF2017/12/81062

……。

PP Authorizer というアドオンを作っているとき([cocolog:88492515])に、発想が浮かんだ。PP Authorizer は Web サイトが認証の前にいったんストップすることを要求するが、現状ではそれに従うサイトはない。そこで、むりやりストップさせてはどうかと考えた。

JRF2017/12/81940

本当にやりたいのは詐欺的な自動ダイレクトをブロックすることである。しかし、それは難しい。AdBlock とかは、情報を広範に共有してそれを行っているようだが、認証に関しては自動リダイレクトはある程度必要なものでブロックを本来必要とせず、情報共有に意味を見出せない。

JRF2017/12/81240

しかし、ここで逆転の発想をする。詐欺的な自動ダイレクトを識別するために、逆に普段から健全な自動リダイレクトをブロックする習慣をつけるのだ。それを行うのが PP Interrupter ということになる。

JRF2017/12/84500

ただ、PP Interrupter はリダイレクトをブロックしてクリックして続行を促す…だけの単機能のシンプルな汎用アドオンなので、上記以外の使い方もできるかもしれないことは注意を促しておく。

JRF2017/12/82856

……。

当初は、自動リダイレクトのみを対象とした webReqest の blocking は面倒だろうと MDN のマニュアルを読んでいたが、確かにリダイレクトを対象としたブロックは難しいが、タブでのページの遷移のみを対象とすることはそれほど難しくないとわかってきた。

そこで、エイヤッとテストしてるつもりで作り上げてしまったのが本アドオンになる。webRequest の blocking で Promise (非同期プログラミング)が使えると聴いて、そのテストもかねて実装したら、実装できてしまった。

JRF2017/12/81997

最初は、アドオンに含まれたファイルをページとしてバッと表示して、そのときの URL にパラメータを付けてそのパラメータによって、真のリダイレクト先を示そう…とかなんとか考えていたのだが、GET 以外に POST を扱わねばならなそうなのが難しく、上で書いたように Promise を使うと、ページを表示してしまったときに Promise の効果が切れてしまうようなので諦めた。

かわりに notifications だけして、pageAction として実装した。

JRF2017/12/83271

PP Authorizer とあわせて一つのアドオンとすることもできたが、ちょっと考えて、PP Interrupter のほうがずっと汎用的だから分けたほうがよかろうと思って、二つの「姉妹品」のアドオンとした。将来的に一つのアドオンに統合することはあるのかな…、まぁ、今の段階では難しくないけど、どうなんだろう?

JRF2017/12/87401

……。

PP Authorizer のときと同じく、とにかくできちゃったので、まず登録。審査(おそらく機械によるもののみ)もあっさり通って公開となった。PP Authorizer のバージョンアップを何度かしていたので手続きには慣れたもの。

あとはヒイコラ言ってドキュメントを突貫で書き上げ、今、やっとひとことを書いているところ。

JRF2017/12/81567

もちろん、多くの人に使ってもらいたいけど、PP Authorizer に比べて汎用とはいえニッチであることには変わらないから、それは難しいのかな…。orz

JRF2017/12/83659

……。

追記。更新。

バージョン 0.4。

内部的なとても小さな変更。まず、外部アプリからのブロックしない許可に関する修正。バージョン 0.3 から引き続き細かいバグを取った。

JRF2017/12/157953

あと、Allowing Extensions から PP Authorizer を削除しても、Add from PP Authorizer ボタンで、リカバーできるようにした。これは実装すべきか迷ったんだけどね。ここについてはデフォルト値を回復できるようにしたほうがよかろう…と判断した。

JRF2017/12/156469

……。

追記。更新。

バージョン 0.5。

小さな変更。だが、ややクリティカルというか本質的なバグ。ブロック中に他への移動やタブの削除を行った場合のキャンセル処理をミスしていた。コピペによるミス。やや恥ずかしいミス。キャンセルできてなくても目立たないので、うまく動いていないことにこれまで気付かなかった。

JRF2017/12/168350

最近更新が続いていて申し訳ないので、本当は 1 週間ほど更新しない予定だったが、しかたなくバージョンアップした。

JRF2017/12/167626

« 前のひとこと | トップページ | 次のひとこと »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/66136146

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)はまだありません。

このころのニュース