アップル、Safari Web Extensionsを発表:Safariコンテンツブロッカー利用への影響
【短文あらすじ】Safariは、最も一般的で広く使用されているブラウザー拡張機能APIを採用する予定であり、それを行う前にコンテンツブロックに関連する機能をの一部を削除する必要があります。現在の形式では、どっちかと言うと広告ブロッカー開発者には役立たず変更であり、状況が改善するかどうかを判断するには待つしかありません。
Appleは現在、macOS Big Surに登場するSafariの新バージョンを積極的に開発しています。ほとんどの変更はSafari 14の公式ベータ版ですでに確認およびテストできます。広告ブロッカーのユーザーにとって特に興味深いのはWebExtensionsのサポートです。
しかし、「WebExtensions」とは?
これは、ブラウザーの動作と外観を変更できるブラウザー拡張機能を開発するためのAPI(アプリケーションプログラミングインターフェイス)です。
Chrome、Mozilla、Edgeなどの一般的なブラウザの多くはWebExtensions APIをサポートしていますが、今までのSafariはそれを避けていて、開発者は別のAPIセットを使用する必要がありました。そのため、たとえばChromeからSafariに拡張機能を移行するには多くの労力が必要であり、多くの開発者にとっては、リソースと時間消費の視点からあまりにも困難な作業でした。
その結果、他のブラウザで利用できる多数の拡張機能が、Safariだけは利用できない状況がそこそこありました。
今年6月に行われたWorldwide Developers Conference(WWDC2020)で、Safari 14がWebExtensionsをサポートするとAppleが発表した。多くの開発者にとって、これは嬉しい驚きでした。私たちもこの決断を支援しています。
ただし、Safariでの広告ブロックに関してはそれほど大きな変更はありません。その理由は次のとおりです。
2015年に、Safariはいわゆる「Safari Content Blocking API」を導入しました。名前通り、開発者がSafari用のコンテンツブロックアプリケーションを構築するのに役立つAPIです。
AdGuardもこれを使用しており、AdGuard for iOS、AdGuard Pro for iOS、AdGuard for Safariで使用されています。
WebExtensionsと比較すると、このAPIにはいくつかの大きな欠点があります。機能に制限があり、時間が経つにつれても改善はほとんどありません。とはいえ、このAPIは、許容レベルのコンテンツブロックを提供するには十分です。
今後は、すべてが変わるのか?Chrome/Firefox拡張機能をSafariに確実に移行できるようになるのか?
残念ながらそういったことはありません。深刻な障害がいくつかあります。問題は、Safari開発者がWebExtensions APIをコピーしただけではなかったことです。WebExtensionsに含まれる機能の一部はSafari 14では使用できません。
たとえば、Webリクエストをブロックするオプションが見つかりません。 公式ドキュメントを開いて「webRequest」を検索してみてください。見つかるのはこちら:
webRequest
BlockingResponse not supported.
Blocking requests not supported.
専門知識がなくても、「サポートされていません」という言葉の意味は簡単に推測できます。
では、これから何が起こるのでしょうか?状況が好転する可能性はあるのか?Safariのコンテンツブロッカーが将来待ち受けるものは?
率直に言って、何かを予想できる手掛かりは全くありません。
一方では、停滞している旧Safari Content Blocking APIがあります。私たちは無数のバグを報告し、多数の機能リクエストをアップルに送信しています。が、それらは何年もの間無視され続けています。
Apple開発者との会話から、Safari Content Blocking APIの実装を検討すること自体に反対しているわけではないことを私たちは理解しています。しかしもちろん、改善提案を受け入れることについても何の約束もしていません。保証された結果を得るためには多量の作業が必要であることを私たちも分かっているため、問題を急ぐつもりはありません。
同時に、WebExtensions APIのさらなる開発を真剣に受け止め、最終的にはその助けを借りてWebリクエストをブロックするオプションを追加する可能性もあります。ですが正直なところ、この方向に状況が進む確率はかなり低いようです。
ただ、そもそもWWDCでのWebExtensionsサポートの発表なども誰も期待していなかったため、チャンスかと言えばあります。ここはもう、待って状況の進展を見るしかありません。
今のところは、広告ブロックを行うには2つの方法があります:
- AdGuard for Safari をインストール。Safari Content Blocking APIから可能な限り最高のフィルタリング品質を絞り出しています。
- AdGuard for Mac をインストール。こちらはプレミアム製品であり、試用期間が終了するとライセンスキーが必要になりますが、人工的なブラウザ制限にまったく影響されない広告ブロッカーです。広告と追跡ブロックに関しては、システム全体で機能するため、どのブラウザ拡張機能よりも断然優れています。