Firefox 87 for developers
=========================

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

**メモ:** Mozilla Hacks の In March, we see Firefox 87 もご覧ください。

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

### 開発者ツール

* 開発者がページインスペクターを使用して、オペレーティングシステムをライトモードやダークモードに切り替えることなく、 `prefers-color-scheme` メディアクエリーのシミュレーションができるようになりました (Firefox バグ 1679408 および Firefox バグ 1692272)。
* ページインスペクターを使用して、現在選択されている要素の `:target` 擬似クラスを (すでに対応している `:hover`、`:active`、`:focus`、`:focus-within`、`:focus-visible`、`:visited` 擬似クラスに加えて) 切り替えられるようになりました (Firefox バグ 1689899)。
* Firefox 87 で、非活性の CSS ルールにするページインスペクターの数々の改良とバグ修正を行いました。
    + テーブル以外の要素について、`table-layout` プロパティを非活性としてマークするようになりました (Firefox バグ 1551571)。
    + スクロールできない要素について、`scroll-padding` プロパティを (ショートハンドプロパティ・ロングハンドプロパティともに) 非活性としてマークするようになりました (Firefox バグ 1551577)。
    + 以前は`overflow` の一部の値で、`text-overflow` プロパティが誤って非活性としてマークされていました (Firefox バグ 1671457)。
### HTML

*変更なし。*

### CSS

* 例えばオランダ語の `IJ` など、一緒に大文字で書く二重音字を持つ言語があります。`::first-letter` 擬似要素がこれらの二重音字に配慮して、1 つの文字として扱うようになりました (Firefox バグ 92176)。
* `<link>` 要素が `:link`、`:visited`、`:any-link` に一致しないようになりました。これは Firefox の動作を、Chrome の既存の動作や最近の仕様書の変更に合わせたものです (Firefox バグ 1687538)。

#### 廃止

* 以下の Firefox 固有のテーマに関連するメディア特性を、ウェブページで使用できないようにしました (Firefox バグ 787521)。
    + `-moz-mac-graphite-theme`
    + `-moz-mac-lion-theme`
    + `-moz-maemo-classic`
    + `-moz-windows-classic`
    + `-moz-windows-compositor`
    + `-moz-windows-default-theme`
    + `-moz-windows-theme`
    + `-moz-scrollbar-end-backward`
    + `-moz-scrollbar-end-forward`
    + `-moz-scrollbar-start-backward`
    + `-moz-scrollbar-start-forward`
    + `-moz-scrollbar-thumb-proportional`
    + `-moz-menubar-drag`
* `caption-side` の非標準の値 (`left`、`right`、`top-outside`、`bottom-outside`) を削除して、`layout.css.caption-side-non-standard.enabled` フラグで制御するようにしました (Firefox バグ 1688695)。
### JavaScript

*変更なし。*

### HTTP

* 一部の企業向け認証サービスは、TLS クライアント証明書を CORS のプリフライトリクエストで送信する ことを要求します。これらのサービスのユーザーは設定項目 `network.cors_preflight.allow_client_cert` で、この（仕様書に準拠しない）動作を有効化できます (Firefox バグ 1511151)。
* クロスオリジンリクエストでリファラー情報が漏洩するリスクを低減するため、デフォルトの `Referrer-Policy` を (`no-referrer-when-downgrade` から) `strict-origin-when-cross-origin` に変更しました (Firefox バグ 1589074)。
* `Content-Length` を、CORS セーフリストレスポンスヘッダー のリストに追加しました (Firefox バグ 1460299)。
### セキュリティ

*変更なし。*

### API

#### DOM

* `beforeinput` イベントおよび `getTargetRanges()` メソッドをデフォルトで有効化しました。これらはテキスト編集の動作を、ブラウザーが DOM ツリーを変更する前にウェブアプリがオーバーライドして、パフォーマンスを向上するために入力イベントをより細かく制御できます。グローバルの `beforeinput` イベントは `<input>` 要素 (または `contenteditable` 属性を `true` に設定した任意の要素) へ、要素の値が変わる直前に送信されます。`InputEvent` インターフェイスの `getTargetRanges()` メソッドは、入力居便がキャンセルされなかった場合に、DOM 変更の影響を受ける静的な範囲の配列を返します。
### WebDriver conformance (Marionette)

* Fission (サイト分離) をサポートするために Marionette を書き直す作業が完了して、古い Marionette の実装を削除しました。また、古い実装と新しい実装を切り替える設定項目 `marionette.actors.enabled` も削除しました (Firefox バグ 1669172)。
* フレームのコンテンツの読み込みが完了していない場合に、`WebDriver:SwitchToFrame` の呼び出しに続く WebDriver コマンドが "no such window" エラーで失敗しないようになりました (Firefox バグ 1691348)。
* クロスグループページナビゲーション の後、過去に取得した要素にアクセスすると常に "stale element" エラーが発生するようになりました。この操作により "no such element" エラーが発生する可能性はなくなりました (Firefox バグ 1690308)。
* `Addon:Uninstall` でアンインストールするアドオンの ID が不明である場合に、`unknown error` が発生するようになりました (Firefox バグ 1693022)。
アドオン開発者向けの変更点
-------------

* nativeMessaging が optional permission になりました (Firefox バグ 1630415)。
* `browserSettings.colorManagement` (en-US) (Firefox バグ 1719688) および (Firefox バグ 1714428) によるカラーマネジメント関連の機能の問い合わせと設定のサポートを追加しました。
過去のバージョン
--------

* 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
* Firefox 58 for developers
* Firefox 57 for developers
* Firefox 56 for developers