Chrome 67 の新機能

  • プログレッシブ ウェブアプリがパソコンに登場
  • 汎用センサー API を使用すると、加速度計やジャイロスコープなどのデバイス センサーに簡単にアクセスできます。
  • BigInt を使用すると、大きな整数を簡単に扱うことができます。

他にもさまざまな機能があります。

Pete LePage と申します。Chrome 67 のデベロッパー向けの新機能について詳しく見てみましょう。

変更点の詳細なリストについては、Chromium ソース リポジトリの変更リストを確認してください。

デスクトップ PWA

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

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

今すぐ始めるのも、現在と変わりません。 既存のプログレッシブ ウェブアプリで行った作業はすべて引き続き適用されます追加のブレークポイントを検討するだけです。

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

Google I/O のトークで、デスクトップ プログレッシブ ウェブアプリを構築する際に考慮すべき技術的な考慮事項と特別な設計上の考慮事項について、ジェニーと私が詳しく説明しています。

これを Mac または Windows で使い始めたい場合は、フラグを使用してサポートを有効にする方法について、デスクトップ プログレッシブ ウェブアプリの投稿全体をご覧ください。

汎用センサー API

センサーのデータは、多くのアプリで使われ、臨場感のあるゲーム、フィットネス トラッキング、拡張現実や仮想現実などを実現しています。このデータを、Generic Sensor API を使用してウェブアプリで利用できるようになりました。

この API は、基本となる Sensor インターフェースと、それを利用する一連の具象センサークラスで構成されています。ベース インターフェースを使用すると、具体的なセンサークラスの実装と仕様プロセスが簡素化されます。たとえば、ジャイロスコープのクラスは非常に小さなものです。

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 the 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 が有効になります。

詳しくは、エイジの投稿「WebAuthn による強力な認証を有効にする」をご覧ください。

Google I/O が終了しました

I/O に参加できなかった方や、ウェブに関するすべてのセッションを視聴できなかった方は、Chrome とウェブの再生リストで Google I/O の最新情報をご確認ください。

DevTools の新機能

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

登録

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

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