7 月に、拡張機能の開発に関する最新情報をお届けする新しいブログシリーズを立ち上げました。皆様の貴重なフィードバックと、WebExtensions コミュニティ グループの他のブラウザ ベンダーとの継続的なコラボレーションに感謝して、Google は拡張機能 API を強化し、ブラウザ間の一貫性の向上を目指しています。
10 月号へようこそ!この投稿では、Chrome 拡張機能チームが過去数か月間に行った変更と、今年後半にリリースされる新機能についてご紹介します。では始めましょう。
新しい拡張機能の API と機能
このセクションでは、重要な API のリリース、その他の API の改善点を簡単に紹介し、今後のリリースについて説明します。現在、すべてのリリースに最新のベータ版リリースが適用されています。詳しくは、Chrome のリリース スケジュールをご覧ください。
特長
解決済みの既知の問題
拡張機能チームは、Manifest V3 の安定性に関する問題の解決に積極的に取り組んでいます。Chrome 116 でリリースされた多くの改善により、Manifest V2 と V3 の機能ギャップの解消に向けて大きな前進を遂げることができました。Chrome 120 では、優先度の高いプラットフォーム ギャップをすべて解消し、既知の問題のページに記載されている重大なバグをすべてクローズします。現在 Chrome 120 Canary では、ChromeOS Lacros での fileHandler のサポートと、今月中にリリース予定の userScripts API を除き、すべての機能をご利用いただけます。詳しくは、更新された既知の問題のページをご覧ください。
Service Worker の安定性の改善
Service Worker に関連する安定性の問題が解決されました。Chrome 116 では、ユーザー プロンプトを表示する拡張機能 API に強力なキープアライブを追加し、WebSocket のサポートを改善しました(拡張機能での WebSocket の使用のチュートリアルをご覧ください)。Chrome 118 以降では、アクティブな Debugger API セッションの間、Service Worker は存続します。
詳しくは、最新の Service Worker のガイダンスをご覧ください。Chrome バージョン 119 以降でも、Service Worker 関連の安定性に関する問題が発生する場合は、お知らせください。
セキュリティの強化
以前は、tabs.update()
、tabs.create
、windows.create()
を使用して一部の chrome://
URL に移動すると、エラーが発生したり、Chrome がクラッシュしたりしていました。また、tabs.update()
は JavaScript URL を開けませんでした。Chrome 117 では、サポートされる chrome://
URL の数が拡張され、JavaScript URL のブロックがすべての拡張機能 API メソッドに適用されるようになりました。
Chrome 117 では、インストールした拡張機能が Chrome ウェブストアで入手できなくなった場合、Chrome 拡張機能のページにプロアクティブな通知が表示されます。こうした状況は、デベロッパーが拡張機能の公開を停止した場合、ポリシー違反により削除された場合、またはマルウェアとして特定された場合に発生することがあります。詳しくは、chrome://extensions ページに安全チェックを表示するをご覧ください。
Chrome 118 では、拡張機能の詳細ページで [ファイルの URL へのアクセスを許可する] オプションが有効になっている場合を除き、chrome.tabs
API と chrome.windows
API を使用して file://
の URL に移動できなくなります。WECG のディスカッションをご覧ください。
その他の API リリース
- ランタイム API: Chrome 116 以降では、
runtime.getContexts()
を使用してアクティブなコンテキストに関する情報を取得できます。たとえば、アクティブな画面外ドキュメントがあるかどうかを確認できます。 - Side Panel API Chrome 116 では、
sidepanel.open()
を使用して、コンテキスト メニューのクリックなどのユーザー操作に応答して、拡張機能のサイドパネルをプログラムで開くことができます。 - TabCapture API: Chrome 116 で、拡張機能 Service Worker から
getMediaStreamId()
を呼び出し、ストリーム ID からMediaStream
オブジェクトを取得する機能が追加されました。例については、音声録音とスクリーン キャプチャをご覧ください。 - DeclarativeNetRequest API: Chrome 118 で、
isUrlFilterCaseSensitive
プロパティのデフォルト値がfalse
に変更されました。
近日提供予定...
既知の問題のページに記載されている残りの項目については、Chrome 120 のリリースですべて対処する予定です。また、次の機能も追加する予定です。
- UserScripts API を使用すると、ユーザー スクリプト管理者は、ユーザー スクリプトのコレクションをウェブページに挿入する方法とタイミングを調整できます。詳しくは、WECG の提案をご覧ください。
- ReadingList API を使用すると、サイドパネルの [リーディング リスト] パネルでメタデータを作成、読み取り、更新、削除できます。詳しくは、Chrome 拡張機能の新機能をご覧ください。
- Web Extensions コミュニティ グループのフィードバックを受け、有効な静的ルールセットの上限を 10 から 50 に大幅に引き上げます。また、使用できる静的ルールセットの合計数を 50 から 100 に増やします。これは現在、Canary で利用できます。
- File Handling API: は ChromeOS 120 以降の ChromeOS 拡張機能で使用できるようになります。この API を使用すると、ウェブ プラットフォームのファイル処理と同様の方法で、指定した MIME タイプとファイル拡張子を持つファイルを開くことができます。
- 拡張機能では、
userVisibleOnly
をfalse
に設定することで、ユーザーに表示される通知を表示することなく、self.registration.pushManager.subscribe()
からウェブ Push API を使用できるようになります。これにより、プッシュ通知が、非同期のクライアント / サーバー通信のための Service Worker(MV3)の WebSocket に代わるよりシームレスな代替となります。詳しくは、Chromium のバグと WECG のディスカッションをご覧ください。
Chrome Beta で新機能が利用可能になり次第、拡張機能の新機能のページでお知らせしています。
ドキュメントのアップグレード
また、ドキュメントの改善と追加も行われています。chromium-group について引き続き質問し、ドキュメントの問題を報告してください。
特長
- ランディング ページのサンプルを刷新しました。API、権限、タイプでフィルタできるようになりました。これにより、特定のサンプルを簡単に見つけることができます。この改善は、「Summer of Code」のインターンである Xuezhou Dai との共同の取り組みによるものです。彼の経歴については、こちらのブログ投稿をご覧ください。
- Chrome ウェブストアで Google アナリティクス アカウントを使用するでは、Chrome ウェブストアの掲載情報用に Google アナリティクス 4 を表示する方法を解説し、デベロッパー ダッシュボードで提供されるデータを補完しています。このガイドでは、Google アナリティクスを有効にする手順、広告のパフォーマンスをモニタリングする手順、コンバージョンをトラッキングする手順、他のアカウントに Google アナリティクスのデータへのアクセス権を付与する手順を説明します。
- Chrome 拡張機能での Cookie とウェブ ストレージ API の仕組みに関する新しいガイドを公開しました。このキットには、拡張機能のデベロッパーとしてプライバシー サンドボックスについて知っておくべきことがすべて含まれています。
- 拡張機能プロジェクトにテストを統合する方法に関する新しい記事をリリースしました。Chrome 拡張機能の単体テストと拡張機能のエンドツーエンド テストでは、多数の一般的なフレームワークにわたる一般的なガイダンスとベスト プラクティスについて説明しています。実践的なチュートリアルについては、Puppeteer による Chrome 拡張機能のテストをご覧ください。
その他の更新
- Declarative Net Request API のガイダンスを改訂し、宣言型ルールセットの実装方法を明確にしました。
- リモートでホストされるコードを Manifest V3 に移行するためのガイダンスを追加しました。また、リリース中に問題が発生するリスクを最小限に抑えるために、Manifest V3 拡張機能を段階的に公開するための戦略を提供しています。
- 拡張機能の Service Worker の WebSocket に接続する方法を確認する。
- ヘルプガイドが拡充され、バグの報告、既存の問題の追跡、新機能のリクエストなどについて、より詳細な手順が追加されました。
近日提供予定...
- User Scripts API のリファレンスとチュートリアル。
- Firebase のチュートリアルとサンプル。
- ReadingList API リファレンス。
Chrome ウェブストアのデザインを刷新 🎉?
今月初め、Google I/O でもお知らせしたとおり、新しくなった Chrome ウェブストアの早期プレビュー版を発表しました。https://chromewebstore.google.com/ からお試しください。注目すべき変更点は次のとおりです。
- カテゴリのリストを 11 のリストから 3 つのカテゴリ グループの 17 に増やしました。
- 検索の予測入力が改善されました。
- スクリーンショットの表示品質が大幅に向上しました。1280×800 のスクリーンショットをまだアップロードしていない場合は、アップロードしてください。
- [サポート] タブの質問への返信に改行が表示されるようになりました。
- ユーザー レビューやサポートに関する質問に返信する際、返信の名前の横に「デベロッパー」バッジが表示されるようになります。
- レビューページへの直接リンクをユーザーに提供するには、ストア アイテムの URL の末尾に「/reviews」を追加します(例:
https://chromewebstore.google.com/detail/_EXTENSION_ID_/reviews
)。
chromium-google グループにご協力いただきありがとうございます。自由にディスカッションに参加するか、[フィードバックを送信] メニュー項目を使用して CWS チームに直接フィードバックを送信してください。
また、自己推薦フォームを送信して、「編集部のおすすめ」コレクションに掲載することもできます。デベロッパー ダッシュボードにも今後改善が加えられる予定ですので、どうぞご期待ください。
💡? ご存じですか?
- Chrome 拡張機能のデバッグに関する新しい動画があります。すでに馴染みのあるトピックを多数取り上げていますが、拡張機能で DevTools を使用する際に役立つヒントもいくつか紹介します。
- 各拡張機能のプライバシー ポリシーを提供する必要があります。これまでは、デベロッパー アカウントごとにプライバシー ポリシーは 1 つしか追加できませんでしたが、1 つのデベロッパー アカウントに複数の拡張機能がある場合には困っていました。この新しいインターフェースは、デベロッパー ダッシュボードのアイテムの [プライバシー] タブから利用できます。そのため、アカウント単位のプライバシー ポリシーはサポートされなくなります。
ご連絡しています 🙌?
Google は、1 対 1 のミーティング、新しいプログラムの立ち上げ、サミットへの参加を通じて、拡張機能のデベロッパー コミュニティと継続的に連絡を取り合っています。主な機能をいくつかご紹介します。
- 拡張機能の Google Developer Experts プログラムは 8 月にリリースされました。Chrome 拡張機能に特化した 10 を超える新しい GDE が世界中から新たに導入され、優れたフィードバックを得ています。このプログラムにとって、とてもエキサイティングな時期になりました。
- Google は、Web Extensions Community Group の TPAC(W3C の年次カンファレンス)に参加し、Firefox と Safari の代表者、コミュニティの複数のメンバーと会いました。Google は、より一貫性のある拡張 API への移行、仕様の開発、Web Platform Tests を基盤とする新しいテストスイートの作成など、いくつかのトピックで大きな進歩を遂げました。WECG リポジトリで議事録全体を読む。
- 拡張機能チームは先週、アムステルダムで開催された Ad-Filtering Dev Summit に参加しました。サミットウィークの前と金曜日のオープン オフィスアワーの前に開催されたコーヒー チャットで何人かにお会いしました。
上記のイベントに参加できなかった場合でも、chromium-extensions Google グループに質問したり、WECG でブラウザ パートナーのディスカッションをフォローしたり、ドキュメントに関する問題を報告したりすることで、引き続き参加できます。
今後とも拡張機能のデベロッパー コミュニティをよろしくお願いいたします。