Chrome 91 の新機能

必知事項は次のとおりです。

Pete LePage と申します。自宅で撮影しながら、Chrome 91 のデベロッパー向け新機能についてお話しします。

File System Access API の推奨名

今年の Fugu プロジェクトからリリースされた API の中で、私が気に入っているのは File System Access API です。ユーザーが権限を付与すると、アプリは他のインストール済みアプリと同じように、ユーザーのローカル デバイス上のファイルとやり取りできるようになります。これにより、より自然なユーザー エクスペリエンスを実現できます。

Chrome 91 以降では、操作するファイルまたはディレクトリの名前と場所を提案できるようになりました。これを行うには、showSaveFilePicker オプションの一部として suggestedName プロパティを渡します。

const fileHandle = await self.showSaveFilePicker({
  suggestedName: 'Untitled Text.txt',
  types: [{
    description: 'Text documents',
    accept: {
      'text/plain': ['.txt'],
    },
  }],
});

デフォルトの開始ディレクトリについても同様です。たとえば、テキスト エディタであれば、documents フォルダでファイルの保存やファイルを開くダイアログを開始する必要があるでしょう。一方、画像エディタは pictures フォルダから開始することをおすすめします。startIn プロパティを渡すことで、デフォルトの開始ディレクトリを提案できます。

const fileHandle = await self.showOpenFilePicker({
  startIn: 'documents'
});

詳細については、Tom のファイル システム アクセスに関する投稿をご覧ください。

クリップボードからファイルを読み取る

Chrome 91 には、ファイルを操作するための新しい API がもう 1 つ追加されています。パソコンで、ウェブアプリがクリップボードからファイルを読み取れるようになります。(Safari では 2018 年からクリップボードからファイルを読み取ることができます)。

もちろん、クリップボードに無制限にアクセスできるわけではありません。そのため、paste イベント リスナーを設定する必要があります。その後、イベント ハンドラで、クリップボード上の各ファイルの内容にアクセスできます。

window.addEventListener('paste', onPaste);

async function onPaste(e) {
  const file = e.clipboardData.files[0];
  const contents = await file.text();
  ...
}

アフィリエイト サイトで認証情報を共有する

サイトに複数のドメインがあり、それらが同じアカウント管理バックエンドを共有している場合は、サイトを相互に関連付けることができます。これにより、ユーザーは認証情報を 1 回保存するだけで、Chrome パスワード マネージャーが関連する任意のサイトに認証情報を提案できるようになります。

これは、サイトが google.comgoogle.ca などの異なるトップレベル ドメインから配信される場合に最適です。または、複数のドメイン名がある場合もあります。

ウェブサイトを関連付けるには、ドメイン間の関係を定義する assetlinks.json ファイルを作成する必要があります。次の例では、.com ドメインと .co.uk ドメインの両方が関連しており、認証情報を共有できることをブラウザに伝えています。

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://www.example.com"
  }
 },
{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://www.example.co.uk"
  }
 }]

次に、各ドメインの .well-known フォルダに assetlinks.json ファイルをホストします。

この機能は Chrome 91 で段階的にリリースされます。リリース当初は利用できない場合がありますので、最新情報については Chrome で関連サイト間でログイン認証情報を共有するをご覧ください。

その他

もちろん、他にもたくさんあります。

I/O 2021 の動画はすべてオンラインで公開されています。ぜひご覧ください。

ウェブ トランスポート - 以前は Quic トランスポートと呼ばれていましたが、多くの変更が加えられて、新しいオリジン トライアルが開始されています。

Web Assembly SIMD のオリジン トライアルが終了し、すべてのユーザーが利用できます。

更新されたフォーム要素がついに Android に移行し、ユーザー エクスペリエンスが向上しました。

link rel="icon" では、<link> 要素の media 属性が適用されます。つまり、メディアクエリに基づいて異なるアイコンを定義できます。たとえば、ダークモードとライトモードでアイコンが異なるなどです。

<link
  rel="icon"
  media="(prefers-color-scheme: dark)"
  href="/icons/dark.png">
<link
  rel="icon"
  media="(prefers-color-scheme: light)"
  href="/icons/light.png">

関連情報

以下に、主なハイライトをいくつかご紹介します。Chrome 91 のその他の変更点については、以下のリンクを確認してください。

登録

最新情報を入手するには、Chrome Developers の YouTube チャンネルチャンネル登録してください。新しい動画が公開されると、メール通知が届きます。

Pete LePage と申します。Chrome 92 がリリースされ次第、Chrome の新機能についてお知らせします。