Firefox 90 for developers
=========================

このページでは、開発者に影響する Firefox 90 の変更点をまとめています。Firefox 90 は、米国時間 2021 年 7 月 13 日にリリースされました。

**メモ:** Mozilla Hacks の Getting lively with Firefox 90 もご覧ください。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

* 応答ビューで Web フォントのプレビュー を表示するようになりました (Firefox バグ 872078)。
### HTML

* multipart/formdata 形式のフォームペイロードの、改行の正規化やエスケープに関する処理方法を修正しました。これは更新された仕様を満たしており、また他のブラウザーの実装に合致しています (Firefox バグ 1686765)。
* Firefox は画像の 内在サイズ や解像度を、EXIF 情報に基づいて設定するようになりました (EXIF 情報が提供されて、自己矛盾がない場合)。これは例えば、読み込みを高速化するためにサーバーが低品質のプレースホルダー画像を送信することを可能にします。また、ほかにもいくつかの利用方法 を実現できます (Firefox バグ 1680387)。
### CSS

* `-webkit-image-set()` を、標準化された `image/image-set()` 関数の別名として実装しました (Firefox バグ 1709415)。
### JavaScript

* プライベートスタティックフィールド、プライベートインスタンスフィールドおよびプライベートスタティックメソッド、プライベートインスタンスメソッド をデフォルトでサポートしました (Firefox バグ 1708235 および Firefox バグ 1708236)。
* `in` 演算子を、プライベートなメソッドやフィールドが定義されているかの確認 (en-US) に使用できるようになりました。これはコードを `try/catch` で包むこととは対照的に、未定義の可能性がある機能をよりコンパクトな方法で扱うことができます (Firefox バグ 1648090)。
* `Intl.DateTimeFormat()` コンストラクター のオプションとして指定する独自の日付や時刻のフォーマットに、`dayPeriod` を含めることが可能になりました。これは、1 日のうちのおおまかな時間帯 (例えば "朝" や "夜" など) を `narrow`、`short` または `long` の文字列として含めることを示します (Firefox バグ 1645115)。
* 相対的な位置を指定するメソッドである `at()` を `Array`、`String`、`TypedArray` グローバルオブジェクトに追加しました (Firefox バグ 1681371)。
### HTTP

* HTTP フェッチメタデータリクエストヘッダー (`Sec-Fetch-*`) をサポートしました。これらのヘッダーは、リクエストが同一オリジン、クロスオリジン、同一サイト、ユーザー起動であるかや、リクエストデータをどこでどのように使用するかといった、リクエストに関する追加のコンテキストをサーバーに提供します。これは、サーバーがいくつかの種類のクロスオリジン攻撃を軽減できます (Firefox バグ 1695911)。

#### 廃止

* FTP を Firefox から削除しました (Firefox バグ 1574475)。これは Firefox 88 で非推奨にした ことに続くものです。拡張機能は、引き続き自身を FTP プロトコルのハンドラー として登録できます。
### API

#### DOM

* 非推奨の `WheelEvent` プロパティである `WheelEvent.wheelDelta`、`WheelEvent.wheelDeltaX`、`WheelEvent.wheelDeltaY` をサポートしました。これにより最近行った `WheelEvent` の互換性向上により問題が発生したごく一部のページが、Firefox で動作するようになります (Firefox バグ 1708829)。
* `Canvas API` の `CanvasRenderingContext2D` インターフェイスで `createConicGradient()` (en-US) メソッドを提供するようになりました。これは既存の `linear` (en-US) および `radial` (en-US) グラデーションによく似ている `CanvasGradient` を返しますが、座標で定義した点の周りを回るグラデーションを生成できます。詳しくは Firefox バグ 1627014 をご覧ください。
* `matrix` プロトコルをサポートして、`Navigator.registerProtocolHandler()` メソッドへ有効なスキームとして渡すことが可能になりました。
### WebDriver conformance (Marionette)

* Marionette が、アクティブな WebDriver セッションを 1 つに制限するようになりました (Firefox バグ 1691047)。
* Firefox の新しいタイプのユーザープロンプトをサポートしました (Firefox バグ 1686741)。
* ウィンドウハンドルで一意の ID を使用するようになりました。また、cross-group navigations によって発生するプロセスの交換で ID を変更しないようになりました (Firefox バグ 1680479)。
* バックグラウンドのタブで新しいユーザープロンプトが開いたとき、現在の WebDriver のコマンドで不適切な中止が発生する問題を修正しました (Firefox バグ 1701686)。
* `WebDriver:GetWindowHandles` コマンドを、アンロードされたタブを適切に扱うように修正しました (Firefox バグ 1682062)。
* `WebDriver:NewSession` コマンドを、`proxy` 機能が空の場合でも常に返すように修正しました (Firefox バグ 1710935)。

#### 廃止

* Firefox Firefox 90 で FTP のサポートを廃止した ことに合わせて、`ftpProxy` 能力を評価しなくなりました。また、この能力を使用したときに `invalid argument` エラーが発生するようになりました (Firefox バグ 1703805)。
アドオン開発者向けの変更点
-------------

* `matrix` URI スキームをサポートして、拡張機能の `manifest.json` で `protocol_handlers` キーでプロトコルとして定義できるようになりました。
* 本バージョンから、Cache API を拡張機能のページやワーカーグローバルで使用できるようになりました。詳しくは (Firefox バグ 1575625) をご覧ください。
過去のバージョン
--------

* Firefox 89 for developers
* Firefox 88 for developers
* Firefox 87 for developers
* Firefox 86 for developers
* Firefox 85 for developers
* Firefox 84 for developers
* Firefox 83 for developers
* Firefox 82 for developers
* Firefox 81 for developers
* Firefox 80 for developers
* Firefox 79 for developers
* Firefox 78 for developers
* Firefox 77 for developers
* Firefox 76 for developers
* Firefox 75 for developers
* Firefox 74 for developers
* Firefox 73 for developers
* Firefox 72 for developers
* Firefox 71 for developers
* Firefox 70 for developers
* Firefox 69 for developers
* Firefox 68 for developers
* Firefox 67 for developers
* Firefox 66 for developers
* Firefox 65 for developers
* Firefox 64 for developers
* Firefox 63 for developers
* Firefox 62 for developers
* Firefox 61 for developers
* Firefox 60 for developers
* Firefox 59 for developers