Chrome 67 の新機能

  • プログレッシブ ウェブアプリがデスクトップに対応
  • 汎用センサー API により、加速度計やジャイロスコープなどのデバイス センサーへのアクセスが容易になります。
  • また、BigInt を使用すると、大きな整数の処理がはるかに簡単になります。

他にもいろいろあります。

ピート ルページです。では、Chrome 67 のデベロッパー向けの新機能を詳しく見ていきましょう。

変更内容の完全なリストを確認するには、Chromium ソース リポジトリの変更リストを確認します。

デスクトップ PWA

Spotify のデスクトップ プログレッシブ ウェブアプリ

デスクトップのプログレッシブ ウェブアプリが ChromeOS 67 でサポートされるようになりました。Google ではすでに、Mac と Windows のサポートに取り組んでいます。インストールすると、他のアプリと同じ方法で起動され、アドレスバーやタブのないアプリ ウィンドウで実行されます。Service Worker は高速で、アプリ ウィンドウのエクスペリエンスにより統合感が実現します。魅力的なエクスペリエンスをユーザーに提供します

始めるのは、現在すでに行っていることと同じです。 既存のプログレッシブ ウェブアプリで行った作業はすべてそのまま適用されます。そのため、追加のブレークポイントを検討する必要があります。

アプリが標準の PWA の条件を満たしている場合、Chrome は beforeinstallprompt イベントを呼び出しますが、ユーザーにプロンプトを自動的に表示することはありません。代わりにイベントを保存し、UI(アプリのインストール ボタンなど)をアプリに追加して、アプリをインストールできることをユーザーに伝えます。ユーザーがこのボタンをクリックすると、保存されたイベントでプロンプトが呼び出されます。これにより、Chrome はユーザーにプロンプトを表示します。ユーザーが [追加] をクリックすると、シェルフとランチャーに PWA が追加されます。

Google I/O の講演をご覧ください。デスクトップ プログレッシブ ウェブアプリを作成する際に考慮すべき、技術的な考慮事項や特別な設計上の考慮事項について詳しく説明しています。

Mac または Windows でこの機能を試してみたい場合は、フラグを使ってサポートを有効にする方法について、パソコン版プログレッシブ ウェブアプリに関する投稿をご覧ください。

Generic Sensor API

センサーデータは、没入型ゲーム、フィットネス トラッキング、拡張現実 / バーチャル リアリティなどのエクスペリエンスを実現するために、多くのアプリで使用されています。このデータは、Generic Sensor API を使用するウェブアプリで利用できるようになりました。

この API は、その上に構築された一連の具体的なセンサークラスを持つ基本センサー インターフェースで構成されています。基本インターフェースがあると、具体的なセンサークラスの実装と指定のプロセスが簡単になります。たとえば、ジャイロスコープのクラスは非常に小さいものです。

const sensor = new Gyroscope({frequency: 500});
sensor.start();

sensor.onreading = () => {
    console.log("X-axis " + sensor.x);
    console.log("Y-axis " + sensor.y);
    console.log("Z-axis " + sensor.z);
};

コア機能はベース インターフェースによって指定されます。ジャイロスコープは角速度を表す 3 つの属性で機能を拡張するだけです。Chrome 67 は、加速度計、ジャイロスコープ、方向センサー、モーション センサーをサポートしています。

Intel は、汎用センサー API のデモサンプルコードをまとめました。また、9 月の投稿の Sensors for web! を更新し、知っておくべき情報をすべて更新しています。

BigInt

BigInt は、任意の精度で整数を表すことができる JavaScript の新しい数値プリミティブです。大きな整数 ID や高精度のタイムスタンプは、JavaScript で Numbers として安全に表現できないため、現実世界でのバグにつながることがよくあります(そのため、多くの場合、そのような数値を文字列として表現することになります)。

let max = Number.MAX_SAFE_INTEGER;
// → 9_007_199_254_740_991
max = max + 1;
// → 9_007_199_254_740_992 - Yay!
max = max + 1;
// → 9_007_199_254_740_992 - Uh, no?

BigInt を使用すると、オーバーフローなしで整数演算を安全に保存して実行できます。現在、大きな整数を扱う場合、BigInt のような機能をエミュレートするライブラリに頼るのが一般的です。

let max = BigInt(Number.MAX_SAFE_INTEGER);
// → 9_007_199_254_740_991n
max = max + 9n;
// → 9_007_199_254_741_000n - Yay!

BigInt が広く利用できるようになったら、ネイティブの BigInts を優先して、これらのランタイム依存関係を破棄できるようになります。ネイティブ実装が高速になるだけでなく、追加のライブラリを読み込む必要がないため、読み込み時間、解析時間、コンパイル時間の短縮にも役立ちます。

など多数

もちろん、これらはデベロッパーにとっての Chrome 67 の変更のごく一部であり、他にも多くの機能があります。

Credential Management API は、Chrome 51 以降でサポートされており、認証情報を作成、取得、保存するためのフレームワークを提供します。これは、PasswordCredentialFederatedCredential の 2 つの認証情報タイプを使用して行いました。Web Authentication API により、3 つ目の認証情報タイプ PublicKeyCredential が追加されています。これにより、ブラウザは、セキュリティ キー、指紋認証リーダー、ユーザーを認証できるその他のデバイスなど、認証システムによって生成された秘密鍵と公開鍵のペアを使用して、ユーザーを認証できます。Chrome 67 では、パソコンで USB トランスポート経由で U2F/CTAP 1 認証システムを使用する API が有効になります。

詳細については、Eiji の WebAuthn で強力な認証を有効にするの投稿をご覧ください。

Google I/O は終了しました

I/O に参加できなかった方や、参加したがウェブでの講演をご覧になれなかった方は、Chrome とウェブの再生リストで Google I/O の最新情報をご確認ください。

DevTools の新機能

Chrome 67 の DevTools の新機能については、Chrome DevTools の新機能をご確認ください。

チャンネル登録

次に、YouTube の YouTube チャンネルの [チャンネル登録] ボタンをクリックすると、新しい動画が公開されるたびにメール通知が届きます。

Chrome 68 のリリース時に Chrome の新機能をお知らせします