Mozilla Flux

Mozilla関係の情報に特化したブログです。

NoScriptの全面譲歩で決着

予想外にあっけない幕切れだった。NoScript 1.9.2.6がリリースされ、1.9.2.4で問題になっていたホワイトリストは自動的に削除されるようになった。そして、二度と追加されることはない。NoScriptの作者Giorgio Maone氏は、公式サイトのほか、自己のブログにも謝罪文を掲載した(『Dear Adblock Plus and NoScript Users, Dear Mozilla Community』)。

大きな反響をいただき、台湾からのトラックバックさえあった『Adblock Plus vs. NoScript』の続報である。筆者は対立が長引くと見ていたのだが、わずか数日でNoScriptが全面的に譲歩する結果となった。Maone氏の謝罪文には経緯も説明されているので、まずはそれを見てみよう。

NoScript作者から見た争いの経緯

やはり今回の争いの発端はEasyListにあった。フィルターセットと呼ばれる、Adblock Plusがカットする広告のリスト。その中でも最も有名なのが、このEasyListだ*1。そこにNoScript関連のドメインが追加されたのだが、当初、Maone氏がWebサイト側の設定でそれをかわそうとすると、リストのアップデートが行われるという応酬が一週間ほど続いたようだ。最終的にリストの設定は非常に強力なものとなり、広告をカットするだけでなく、NoScript等をインストールするためのリンクも正常に動作しなくなったという。

広告収入を減らされ、しかもサイトの動作を阻害されたと感じて怒り心頭に発したMaone氏は、NoScript関連のドメインで上記フィルターセットを機能させなくするスクリプトを書いて、NoScriptに追加した。Maone氏は自家製ホワイトリストと表現しているが、Adblock Plusの作者Wladimir Palant氏は、Adblock Plusの一部機能を無効にされたと受け取った。この点に関連して、コードを難読化したかどうかが問題になっているのだが、Maone氏は否定している。読みやすいコードではないにせよ、わざと読めなくしたことは一切ないと。ただ、一部の「データ」を読みにくくしたことは認めている。EasyListの管理人による対抗措置を困難にするためだったらしい。

Maone氏の説明では、そのバージョンをリリースした後になって、別の拡張機能(この場合はNoScript)からAdblock Plusのホワイトリストにドメインを追加できることに気づいたのだという。また、Palant氏は触れていなかったが、この時点で同氏からMaone氏へメールがあり、NoScriptの措置に問題があるとの指摘がなされた。そこでMaone氏は、独自のスクリプトを使わず、上記ホワイトリストに自己のドメインを追加することに決めた。しかし、ユーザーへの説明は自己のサイトやMozilla Add-ons(AMO)で行えば十分と判断した。Maone氏によれば、その旨を含むメールをPalant氏に送ったが、返事がなかったので、異議がないと考えたのだそうだ。

そして、懸案のNoScript 1.9.2.4がリリースされる。これもMaone氏の説明だが、リリース後すぐに、措置が不十分だと悟ったという。起動時に意図を説明し、明示的にユーザーの承諾を得るようにすべきだったと。実際、リリースから半日と経たないうちにAMOからメールがあり、次のバージョンではオプトイン用のダイアログを追加すべきと提案された。

だが、事態の進行速度は、Maone氏の予想をはるかに超えていた。AMOのレビューは批判の嵐となり、NoScriptのフォーラムにも非難の声が相次いだ。本家スラッシュドットで大きく騒がれ、Maone氏に届いたメールもかなりの量だったらしい。どうやら、Palant氏のブログ記事の影響は大きかったようだ。

話はそれだけでは終わらない。Maone氏がユーザーの承諾を求めるよう変更したNoScript 1.9.2.5をAMOに提出してレビューを申請したときには、AMOのスタンスも厳しくなっていたのである。オプトイン用のダイアログを追加するだけでは不十分であり、そもそもAdblock Plusのホワイトリストへの追加はNoScriptの機能と関連しないから、そのような措置は認められないと通告された。つまり、NoScriptがホワイトリストに手を出すこと自体がアウトになったわけだ。

Maone氏は書いていないが、この通告は非常に重い。NoScript 1.9.2.5をAMOで公開することができず、かといって何もしなければ、同等以上の問題を抱える当時のNoScriptについて、掲載の継続そのものが危ぶまれるからだ。Maone氏も白旗を揚げざるを得なかった。こうして、NoScript 1.9.2.6が急遽リリースされる運びとなった。

なお、Maone氏がフォーラムで説明しているところでは、問題のホワイトリストを削除しても次回起動時に再度書き込みが行われるのは、意図的ではなく、純粋なバグだったそうだ。

再発防止に向けた動き

Maone氏の「弁解」を鵜呑みにするのは難しい。とくに、次の三点は真偽を疑われても仕方がなかろう。燎原の火のごとく広まる批判の声に慌て、泥縄式に火消しに走ったというあたりが真相かもしれない。

  1. Adblock Plusのホワイトリストにドメインを追加できると後から気づいた
  2. v1.9.2.4のリリース直後にユーザーから明示的な承諾を得るべきだったと悟った
  3. ホワイトリストを削除しても次回起動時に再度書き込みが行われるのは純粋なバグだった

それはともかく、こうしたもめごとはNoScriptだけでなくアドオン全体の信頼性にもかかわることなので、どうやって再発を防止するかが重要だ。Maone氏は二度とこのようなことはしないと誓ったうえで、NoScriptを含めた自作拡張機能のリポジトリを誰でもアクセス可能なものにすると発表している。要するに、コードを誰でも覗けるようになれば、変なことをしてもすぐに発覚するので、抑止力として機能するというのである。

また、AMOも、今回の件を踏まえ、Mozilla Add-ons Blogの『No Surprises』という記事で新たなポリシーを提案している。内容はこうだ。

デフォルトホームページや検索設定の変更は、他にインストールされたアドオンの設定と同様に、そのアドオンの中核機能と関連するものでなければならない。この関連性が確立された場合も、それらの設定を変更する際は、以下の要求を厳守しなければならない。

  • アドオンの説明は、アドオンが加える変更を明確に述べていなければならない
  • すべての変更は「オプトイン」、すなわちユーザーが変更を有効にする措置を非デフォルトとしなければならない
  • アドオンをアンインストールしたときは、変更された設定をユーザーのオリジナルに復元する

以上は最低限の要求であって、アドオンが承認されることを保証するものではない。

新ポリシーは、Firefox本体や他のアドオンの設定を変更する場合、「当該アドオンの中核機能との関連性」と「ユーザーに対する説明および明示的な同意」という二つのハードルを課している。提案と言っているが、既にNoScriptに適用されたのだから決定事項も同じだ。NoScriptは一つ目のハードルを超えられなかったため、二つ目のハードルにたどり着けずに承認申請を却下された。

新しいルールが設けられるということは、それだけアドオンの自由が減ることを意味する。Adblock Plus vs. NoScriptの争いは決着がついたが、その置き土産はことのほか大きかったのかもしれない。

*1:有志が管理しており、Adblock Plusの作者が作成に携わっているわけではない