Manifest V3 や webRequest による、Vivaldi の広告ブロッカーへの影響

Vivaldi には、標準で広告・トラッカーブロッカー、大量のカスタマイズオプション、メールクライアントやカレンダーなどが標準で搭載されています。これらは、さまざまな制限が増えた、Google の新たな拡張機能の仕様 「Manifest V3」の影響を受けるのか? この記事では、Vivaldi 開発者の Julien Picalausa が、この問題について深く掘り下げていきます。

2019 年、私たちは「Ad blockers or not – your choice matters. (広告ブロックの有無 – あなたの選択が重要です ※記事は英語版のみ)」と題する記事で、Google の webRequest API の段階的廃止について当時の私たちの意見を述べました。結論は「Google がどのような制限を加えても、最終的には私たちがそれを取り除くことができるのが良い点です。私たちの使命は、常にお客様に選択肢を保証することです」。

2020 年に、Vivaldi の広告ブロッカーは、Manifest V3 で発表された新たな機能制限に対応して開発され、既存の広告ブロック拡張が機能しなくなったとしても機能し続けるように意図して構築されています。目指すのは、拡張機能のシステムに何らかの変更があったとしても、同じ機能を提供し続けることです。

Vivaldi の広告ブロッカーは Manifest V3 の影響を受けるの?

私は、早い段階で Manifest V3 の変更に関係なく機能を維持する必要があると判断し、開発の段階でいくつか手を打ちました。もちろん、基礎となるChromium アーキテクチャが今後変更される可能性は十分にあり、それらに対応するために追加作業を行う必要が出てくる可能性はあります。 これらがうまくいけば、アーキテクチャのより詳細な説明と、Manifest V3 の変更関連のいくつかのポイントは、私たちの実装が当面安全であると証明するのに役立つことでしょう。

Vivaldi の広告ブロッカーはどのように構築されているの?

デスクトップと Android、および車載デバイスで使用可能な Vivaldi の広告ブロッカーは、Manifest V2 バージョンの WebRequest と declarativeNetRequest の両方で使用されている、同じ Chrome API に基づいて構築されています。

また、Chromium / コンテンツ埋め込みが Chromium ネットワークサービスで一般的に実行されるリクエストと相互作用するように設計されています。基本的な考え方としては、ネットワークサービスからのリクエストは、現在 webRequest が行っているように、さまざまな段階を通じてリクエストを検査または変更できる、埋め込みコンテンツを埋め込む側によって提供されるコードの一部がプロキシされるということです。

Manifest V3 に変更された後、何が起こるの?

ここでの懸念は、webRequest がなくなることによって、この特定の API が役に立たなくなり、それとともに消えてしまうということでしょう。

そうはならないであろう、いくつかの理由を紹介します:

  • webRequest は完全になくなるわけではなく、webRequest からのリクエストをブロックする機能のみが消えます。したがって、少なくともネットワークサービスからのリクエストを拡張機能を通じてプロキシするメカニズムは、存在し続けるはずです。
  • declarativeNetRequest は現在、webRequest 上に構築されており、より深いレベルでブロッキングを処理するため、今後再構築が入ることが考えられます。その際は、我々の広告ブロッカーも使用できるであろう新しいフックのセットを使用してのブロッキング処理となるはずです。しかし、このケースが現実となる可能性は今のところ低いようです。
  • webRequest のブロック機能は、エンタープライズユーザー(少なくとも当面は)に対して維持されています。したがって、ブロッキング機能を含む webRequest の基礎となるすべてのコードはそのままの状態であるべきなのです。

以上の点から、私は、Vivaldi の広告ブロッカーが Manifest V3 の変更によって影響を受ける可能性は低いと考えています。そして、もし仮に影響を受けることがあったとしても、対応手段はあるはずと考えています。

Vivaldi で広告ブロック拡張機能を使い続けることは可能?

「要するに、Vivaldi はエンタープライズ環境のチェックをバイパスするだけで webRequest をそのまま維持できる可能性があるってこと?Vivaldi で広告ブロック拡張機能を使い続けても問題ないの?」と思う人もいることでしょう。 その懸念はよくわかります。でも、コード自体で何が起きているのかを見ずには私からはなんとも言えません。WebRequest をより長く機能させる手段がある場合は、その手段を検討したいと考えています。

しかしながら、各種広告ブロッカーの拡張機能は、Manifest V3 で削除されることとなる他の API に依存している場合があります (そして、これを対処するのははるかに難しいと思われます)。したがって、拡張機能開発者からの作業なしに、webRequest の存続させるだけで十分だという保証はありません。

今後の展望

Manifest V3 への移行により、Chrome でのブロッカーやプライバシー関連の拡張機能の使用がより困難なものになります。一部のユーザーは違いに気付かないかもしれませんが、複数の拡張機能を使用中だったり、カスタムフィルターリストを追加したりしているユーザーは、Google の作る新たな制限にぶつかってしまうは可能性があります。そうなった場合、いっそのこと、Chrome から離れてしまうのが賢明でしょう。

Vivaldi は Chromium コードをベースに構築されているため、API 変更への取り組みは、Google が制限をどのように実装するかに依存しています。でも安心してください。Google が追加する制限がたとえ何であったとしても、我々はそれらに対処する方法を追い求め続けます。

私たちの使命は常にみなさんに選択肢を保証することなのです。


原文 – Manifest V3, webRequest, and ad blockers

訳 – Hojo
Team Vivaldi
Twitter | Facebook | Instagram | note

豊富な機能とカスタマイゼーションで、もっと自由にブラウジングを楽しもう!

Vivaldi をダウンロード