Google Manifest V3 対応:広告ブロック・エクステンション AdGuard が実験を開始

AdGuard’s new ad blocker struggles with Google’s Manifest v3 rules

2022/08/31 BleepingComputer — Google の Manifest V3 に対応する、初めての Chrome 広告ブロック・エクステンションが利用可能になった。このエクステンション用の Manifest とは、Chrome ブラウザ・エクステンションに、開発者が取り込む権限や能力の概要を示すものだ。Manifest V3 で Google は、webRequest API を変更し、ユーザーに表示される前のデータを、エクステンションが変更することをブロックした。それにより、広告ブロックが無意味になってしまった。

マニフェスト V3 の要件に準拠した、新しい広告ブロック・エクステンションは、広告ブロックソフトの開発元である AdGuard によるものであり、今後のエクステンションに関する実験的な段階にある。


今回の AdGuard のリリースは、改善の余地や制限の解決策を見出すために公開されたものだ。しかし、そうだとしても、Manifest V3 の制限的な性質が浮き彫りになっている。

このリリースに関する発表では、最新の要件に準拠するために AdGuard 実装しなければならなかった回避策や、依然として存在する問題、そして、最終版を可能な限り機能的にするためのアイデアについて、分析が行われている。

Manifest V3の影響

Manifest V3 は、2020年に初めて発表され、2021年1月に登場した Chrome 88 のリリースから利用可能となった。

Chrome Web Store は、Manifest V2 をベースに構築されたエクステンションはの受け付けを、2022年1月に停止した。旧バージョンである Manifest V2 を使用する全てのエクステンションは、2023年1月以降に動作しなくなる。

以下のように、ユーザーのプライバシーとセキュリティを強化するため、Manifest V3 は登場する。

  • エクステンション・アクセスをユーザーのネットワーク・リクエストに限定する。
  • すべての機能をエクステンション内に取り込むことを強制し、コードのリモート・ホスティングの慣習をなくす。
  • ネットワーク・リクエストの変更をエクステンションからブラウザへ移行する。
  • バックグラウンド・ページを専用のサービス・ワーカーに置き換え、ブラウザのパフォーマンスを向上させる。

必然的に、広告ブロックのような特殊な用途のエクステンションに対して、上記の要件は厳しい制限をもたらす。

広告ブロックの動作に制限

新しい AdGuard エクステンションは、以前のバージョンと比較して、技術面で後退している。同社によると、新しいプロトコルに準拠することが、この後退における唯一の理由となる。

1つ目の問題として、新しいエクステンションは、30,000 のフィルタリング・ルールと、ユーザー自身が設定する 5,000 のダイナミック・ルールという、制限に従う点が挙げられる。

全体で 33万件のフィルタリング・ルールという制限が適用されるため、ブラウザに複数の広告ブロック・エクステンションがインストールされている場合には、AdGuard の余裕はさらに小さくなるかもしれない。

Warning on reaching upper dynamic rules limit
Warning on reaching upper dynamic rules limit (AdGuard)

2つ目の問題は、エクステンションは・サーバから、フィルタリング・エンジンにルールを読み込めなくなる点だ。AdGuard は、一連の宣言型ルールを定義し、ネットワーク・リクエストのフィルタリング・プロセスを、Chrome に任せることが必須となる。

ルールの新しい構文は極めて限定的であるため、特定のトラッカーをブロックする Cookie ルールなどの、すべての既存ルールを変換できるわけではない。

AdGuard は、「フィルターで頻繁に使われるものとして、”negative lookahead” がある。ざっと検索したところ、現在の AdGuard フィルターで、この表現を用いるルールが 43個あることが分かった。一見すると少ないが、これらのルールの大半が、数多くの異なるドメインで動作することが想定されるため、この制限だけで 1000以上の Web サイトの広告ブロックが不自由になると考えてほしい」と述べている。

サーバから、ダイレクトにルールを更新できないため、ルール更新/Web サイトの変更に伴う、新しいブロック要件への対応にも遅れが生じることになる。AdGuard は、これらのルールの更新は、数日の間隔になると見積もっている。

Manifest V3 で広告ブロッカーが直面する3つ目の問題は、ブラウザが広告をブロックするようになったことで、ユーザーがフィルタリング。ログ (Manifest V2 に存在) を確認できなくなることだ。

唯一の回避策は、開発者モードでエクステンション解凍して、インストールすることだ。それにより、ブラウザから統計データを受け取るために必要な、デバッグ・オプションにソフトウェアからアクセスできるようになる。

最後に、バックグラウンド・ページをサービス・ワーカーに置き換えると、ブラウザのアクティビティがないときにサービスワーカーが休止状態になるため、パフォーマンスの問題が発生する。

新しいページがロードされると、ワーカーが起動するまでに、最大で2秒が必要となる。宣言型のルールは、広告をブロックするためには有効だが、広告を消すためのコスメティック・フィルターの適用に遅れが生じる。

AdGuard は、「実験的なエクステンションは、その前任者よりも効果的ではないが、大半のユーザーは、その違いを感じないだろう。コスメティック・ルールの適用にタイムラグがあるため、広告のチラツキが気になる程度かもしれない」と述べている。

AdGuard の実験版を試すには、Chrome Web Store からのインストールか、GitHub からのソースコード入手が可能である。開発者は、ユーザーからのフィードバックを期待している。

Google Manifest V3 というものは、Chrome 開発者に対して提供され、エクステンションを制約するものなのですね。2020年9月9日に発行され、最新のアップデートは2022年9月2日となっていました。周知のとおり、このところ、エクステンションに関する問題が多発しています。それは、Chrome に限定した話ではありませんが、どうしても Chrome が目立ってしまいます。広告ブロックのエクステンションは、とても重要ですが、Chrome 環境全体のセキュリティ向上のためには、Manifest V3 により制約の強化が必要なのでしょう。よろしければ、エクステンションで検索も、ご利用ください。

%d bloggers like this: