Chrome 76 では、以下をサポートしました。
prefers-color-scheme
メディアクエリ: ウェブサイトにダークモードを導入します。- オムニボックスのインストール ボタン: デスクトップでプログレッシブ ウェブアプリを簡単にインストールできるようにします。
- モバイルのプログレッシブ ウェブアプリでミニ情報バーが表示されないようにする。
- WebAPK の更新頻度を高めることができます。
- その他
Pete LePage と申します。Chrome 76 のデベロッパー向けの新機能について、詳しく説明します。
PWA アドレスバーのインストール ボタン
Chrome 76 では、アドレスバー(オムニボックス)にインストール ボタンを追加することで、ユーザーがプログレッシブ ウェブアプリをデスクトップに簡単にインストールできるようになりました。
サイトがプログレッシブ ウェブアプリのインストール要件を満たしている場合、Chrome のオムニボックスにインストール ボタンが表示され、PWA をインストールできることがユーザーに示されます。ユーザーがインストール ボタンをクリックすると、基本的には beforeinstallprompt
イベントで prompt()
を呼び出す場合と同じです。インストール ダイアログが表示され、ユーザーは簡単に PWA をインストールできます。
詳しくは、パソコンでのプログレッシブ ウェブアプリのアドレスバーでのインストールをご覧ください。
PWA ミニ情報バーの制御機能の強化

モバイルでは、サイトがプログレッシブ ウェブアプリのインストール要件を満たしている場合、ユーザーがサイトに初めてアクセスしたときに、Chrome にミニ情報バーが表示されます。ミニ情報バーの表示を防ぎ、代わりに独自のインストール プロモーションを表示したいとのご要望をいただきました。
Chrome 76 以降では、beforeinstallprompt
イベントで preventDefault()
を呼び出すと、ミニ情報バーが表示されなくなります。
window.addEventListener('beforeinstallprompt', (e) => {
// Don't show mini-infobar
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Update UI to promote PWA installation
pwaInstallAvailable(true);
});
UI を更新して、PWA をインストールできることをユーザーに知らせてください。プログレッシブ ウェブアプリのインストールを促進するためのおすすめのベスト プラクティスについては、PWA のインストールを促進するためのパターンをご覧ください。
WebAPK の更新を高速化
Android にプログレッシブ ウェブアプリがインストールされると、Chrome は Web APK を自動的にリクエストしてインストールします。インストール後、Chrome はウェブアプリ マニフェストが変更されていないか(アイコン、色、アプリ名が更新されていないか)を定期的に確認し、新しい WebAPK が必要かどうかを判断します。
Chrome 76 以降では、Chrome はマニフェストを 3 日に 1 回ではなく、毎日チェックするようになります。重要なプロパティのいずれかが変更された場合、Chrome は新しい WebAPK をリクエストしてインストールし、タイトル、アイコンなどのプロパティが最新の状態になるようにします。
詳しくは、WebAPK の更新頻度の増加をご覧ください。
ダークモード
多くのオペレーティング システムで、ダークモードまたはダークテーマがサポートされるようになりました。
prefers-color-scheme
メディアクエリを使用すると、ユーザーが選択したモードに合わせてサイトの外観を調整できます。
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: white;
}
}
Tom が web.dev に投稿した記事「Hello darkness, my old friend」では、知っておくべきことすべてと、ライトモードとダークモードの両方をサポートするようにスタイルシートを設計するためのヒントが紹介されています。
その他
これらは、デベロッパー向けの Chrome 76 の変更のほんの一部です。もちろん、他にも多くの変更があります。
Promise.allSettled()
個人的には、Promise.allSettled()
に非常に期待しています。Promise.all()
と似ていますが、すべての Promise が解決するまで待ってから返します。
const promises = [
fetch('/api-call-1'),
fetch('/api-call-2'),
fetch('/api-call-3'),
];
// Imagine some of these requests fail, and some succeed.
await Promise.allSettled(promises);
// All API calls have finished (either failed or succeeded).
より簡単に blob を読み取る
Blob
は、text()
、arrayBuffer()
、stream()
の 3 つの新しいメソッドで簡単に読み取れるようになります。つまり、ファイル リーダーのラッパーを作成する必要がなくなります。
// New easier way
const text = await blob.text();
const aBuff = await blob.arrayBuffer();
const stream = await blob.stream();
// Old, wrapped reader
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('loadend', (e) => {
const text = e.srcElement.result;
resolve(text);
});
reader.readAsText(file);
});
非同期クリップボード API での画像のサポート
また、非同期クリップボード API に画像のサポートを追加し、画像をプログラムで簡単にコピーして貼り付けられるようにしました。
関連情報
以下に示すのは主な変更点の一部です。Chrome 76 のその他の変更については、以下のリンクをご覧ください。
- Chrome DevTools(76)の新機能
- Chrome 76 の非推奨と削除
- Chrome 76 に関する ChromeStatus.com の更新
- Chrome 76 の JavaScript の新機能
- Chromium ソース リポジトリの変更リスト
登録
最新の動画情報を受け取るには、Chrome デベロッパーの YouTube チャンネルにチャンネル登録してください。新しい動画が公開されるとメール通知が届きます。
担当の Pete LePage です。Chrome 77 がリリースされ次第、Chrome の新機能についてお知らせします。