Chrome 120 がベータ版でリリースされました。Chrome 拡張機能のデベロッパー向けの多くのエキサイティングなアップデートが含まれています。
Chrome 拡張機能チームにとって、今年は多忙な年でした。昨日の Chrome 120 ベータ版のリリースにより、拡張機能プラットフォームはまた一歩大きく前進しました。今年の出来事の概要については、7 月と 10 月の四半期ごとの最新情報をご覧ください。拡張機能向けの Chrome 120 の新機能について説明します。
プラットフォームのギャップを解消する
Chrome 120 のリリースに伴い、Manifest V3 の既知の問題のページに記載されている残りのプラットフォームのギャップを解消します。新しい userScript API と ChromeOS でのファイル処理のサポートは、リストに残っていた 2 つの項目でしたが、これらも完了しました。前回の四半期ごとの更新で説明した変更と合わせて、Chrome 拡張機能プラットフォームの現在の状態と、過去 1 年間の成果を非常に喜ばしく思っています。
新しい userScripts API
ユーザー スクリプトのサポートが開始されました。ユーザー スクリプトは、拡張機能がウェブページに挿入して、ページの見た目や動作を変更できる(通常は比較的小さな)コード スニペットです。ユーザーが直接作成することも、ウェブ上のさまざまなユーザー スクリプト リポジトリで見つけることもできます。Chrome 120 以降では、Manifest V3 拡張機能でユーザー スクリプトのコレクションを管理し、ウェブページに挿入するタイミングと方法を決定できるようになりました。
Manifest V2 と Manifest V3 のユーザー スクリプトのサポートには、1 つの大きな違いがあります。ユーザー スクリプトは強力であり、ユーザー スクリプトの作成者に対する高い信頼が必要となるため、Chrome チームは、ユーザーがユーザー スクリプトを実行する前にデベロッパー モードを有効にする必要があると判断しました。
新しい userScript サンプルでは、デベロッパー モードが有効になっているかどうかを検出し、シンプルなオンボーディング フローを提供する簡単なアプローチを示しています。
まず、ドキュメントをご覧になるか、公式サンプルをご覧ください。
静的 DNR ルールセットの上限の引き上げ
有効な静的ルールセットの上限が 10 から 50 に大幅に引き上げられました。また、許可される静的ルールセットの合計数も 50 から 100 に増やしました。これは、Web Extensions Community Group でいただいたフィードバックに対応したものです。
新しい ReadingList API
Chrome では 2021 年にリーディング リストが導入されました。昨年、Chrome チームはサイドパネルからリーディング リストに簡単にアクセスできるようにしました。Chrome 120 では、Chrome 拡張機能で読書リストのエントリを作成、読み取り、更新、削除できるようになります。詳しくは、API ドキュメントと新しいサンプルをご覧ください。
ChromeOS でのファイル処理
ファイル処理を使用すると、拡張機能はウェブ プラットフォームのファイル処理と同様の方法で、指定された MIME タイプとファイル拡張子を持つファイルを開くことができます。使用方法について詳しくは、ChromeOS でのファイル処理をご覧ください。
30 秒後にアラームを鳴らす
これは小さなアップデートですが、Service Worker のライフサイクルの重要なギャップに対処しています。サービス ワーカーはイベント ドリブンであるため、将来イベントを発生させるには chrome.alarms を使用することをおすすめします。Alarms API を使用すると、サービス ワーカーがシャットダウンされた場合でも、イベントが確実に発生します。
ただし、注意点があります。Chrome 120 より前では、アラームをトリガーする最短時間は 1 分でした。ただし、サービス ワーカーは 30 秒間操作がないとシャットダウンします。setTimeout() を使用して 45 秒後にイベントを設定すると、イベントが発生する前にサービス ワーカーがシャットダウンされる可能性があるため、45 秒後にアラームを発生させる簡単な方法はありませんでした。
Chrome 120 以降では、次のいずれかでイベントを発生させることができます。
setTimeout()を使用して 30 秒未満。chrome.alarmsを使用して 30 秒以上の動画を検索します。
await chrome.alarms.create('demo-default-alarm', {
periodInMinutes: 0.45
});
概要
拡張機能プラットフォームがこの 1 年間で達成した進歩に、私たちは非常に興奮しています。Chrome 120 では、DNR の上限の引き上げとユーザー スクリプトのサポートにより、大きな進歩を遂げています。