Firefox 101 for developers
==========================

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

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

### HTML

変更なし。

### CSS

* ウェブコンテンツに高いコントラスト (`more`) または低いコントラスト(`less`) の設定をユーザーが指定しているかを検知するために使用できる、`prefers-contrast` メディア特性をデフォルトで有効にしました。また、この特性の新しい値 `custom` で、コントラストのために使用する色のセットをユーザーが指定できます (Firefox バグ 1656363)。
* 3 種類の新たなビューポートの寸法である小 (`s`)、大 (`l`)、動的 (`d`) を導入しました。これらの新しい寸法で、既存の単位である `vh`、`vw`、`vmax`、`vmin` に加えて新しい ビューポートのパーセント値による寸法 が追加されました。新しいビューポートのパーセント値による寸法の単位は `svh`、`lvh`、`dvh`、`svw`、`lvw`、`dvw`、`svmax`、`lvmax`、`dvmax`、`svmin`、`lvmin`、`dvmin` です (Firefox バグ 1610815)。また、単位 `vb` および `vi` をデフォルトで有効にしました (Firefox バグ 1610815)。
### JavaScript

変更なし。

### API

#### DOM

* `moz` 接頭辞がない `HTMLMediaElement.preservesPitch` をサポートしました。
 `mozPreservesPitch` は `preservesPitch` の別名になりましたが非推奨であり、将来のリリースで削除する予定です (Firefox バグ 1652950)。
* `HTMLInputElement.showPicker()` をサポートしました。button など他の要素のユーザーインターフェイスで、input 要素向けのピッカーを表示できます (Firefox バグ 1745005)。
* `DOMException` が シリアライズ可能なオブジェクト になりました。`structuredClone()` でクローンを作ることや、`postMessage()` を使用して workers との間でコピーすることができます (Firefox バグ 1561357)。
* `RTCRtpEncodingParameters.maxFramerate` (en-US) で、(`RTCPeerConnection.addTransceiver()` (en-US) および `RTCRtpSender.setParameters()` (en-US) で送信時のエンコードで使用する最大フレームレートを設定できるようになりました。
 0 は有効なフレームレートの値ですが、Firefox は "フレームレート制限なし" と解釈しますので注意してください。
 詳しくは Firefox バグ 1611957 をご覧ください。
* *Constructable stylesheets* をサポートしました。Shadow DOM とともに使用する、再使用可能なスタイルシートをとても簡単に作成できます。
 この更新には新しいスタイルシートを作成する `CSSStyleSheet()` コンストラクター や、スタイルシートに CSS 規則を追加するために使用できる `CSSStyleSheet.replace()` および `CSSStyleSheet.replaceSync()` メソッドが含まれます。
 詳しくは Firefox バグ 1520690 をご覧ください。

#### Media、WebRTC、Web Audio

* AV1 コーデックのパラメーター (en-US) が、メディアサポートクエリーで適切に解析されるようになりました。
 これは `MediaCapabilities.decodingInfo()` (en-US)、`HTMLMediaElement.canPlayType()`、`MediaSource.isTypeSupported()` が、与えられたコーデックパラメーターに基づいた AV1 ソースの再生を正確に報告することを意味します。
 `MediaCapabilities.decodingInfo()` (en-US) も、AV1 動画の "効率的なデコード" を正確に報告するためにこの情報を使用します。
 詳しくは Firefox バグ 1757861 をご覧ください。
### WebDriver conformance (WebDriver BiDi, Marionette)

このリリースの Firefox から、WebDriver BiDi プロトコルがデフォルトで有効になりました。WebDriver BiDi セッションは WebDriver クラシック (geckodriver、Marionette) を使用して、新しい WebDriver セッションを生成するときに `webSocketURL` capability (en-US) を `true` に設定することで要求できます。同じ機能に、BiDi クライアントが接続するための WebSocket エンドポイントも含まれています。

以下のコマンドやイベントを使用できます:

* イベントをグローバルにサブスクライブするコマンド (`session.subscribe`) およびサブスクライブを解除するコマンド (`session.unsubscribe`) の部分的な実装と、WebDriver クラシックを使用しないときに WebDriver BiDi セッションを直接作成する機能 (`session.new`) を含む、`session` モジュール を追加しました。
* 新しいタブやウィンドウを開くコマンド (`browsingContext.create`) や閉じるコマンド (`browsingContext.close`)、開いているブラウジングコンテキストを取得するコマンド (`browsingContext.getTree`)、ブラウジングコンテキスト内でナビゲーションするコマンド (`browsingContext.navigate`) を含む `browsingContext` モジュール を追加しました。これらは、ブラウジングコンテキストが作成されたときのイベント (`browsingContext.contextCreated`) もサポートします。
* ログのイベント (`log.entryAdded`) をサポートする `log` モジュール を追加しました。

詳しくは、すべてのバグの一覧 をご覧ください。

アドオン開発者向けの変更点一覧
---------------

* `scripting` (en-US) API を追加しました。スクリプトの実行、CSS の挿入と削除、コンテンツスクリプトの登録管理の機能を提供します (Firefox バグ 1687764)。この API は Manifest V3 拡張機能で使用可能であり、スクリプトの実行や CSS の挿入・削除の機能を `tabs` API から引き継いでいます。
* `action` (en-US) API を追加しました。Manifest V3 拡張機能で `browserAction` API の機能を引き継いでいます。`"action"` (en-US) マニフェストキーの追加も対応しています。`browserAction` API および `"action"` マニフェストキーは Manifest V2 拡張機能だけで使用可能であることに注意してください。
* `"background"` マニフェストキーの `"persistent"` を、設定項目による制御で `false` に設定できます。Manifest V2 の設定項目は `extensions.eventPages.enabled`、Manifest V3 の設定項目は `extensions.manifestV3.enabled` です。
* `"host_permissions"` (en-US) マニフェストキーを追加しました。これは Manifest V3 拡張機能で使用できます。
* Manifest V3 拡張機能向けのコンテンツスクリプト実行環境を変更しました:
    + コンテンツスクリプトのオリジン間リクエストが、ホストの許可に依存できなくなりました。コンテンツスクリプトのオリジン間リクエストは、CORS で実行可能です。
    + `content` オブジェクト (`content.fetch`、`content.XMLHttpRequest`、`content.WebSocket` で提供される) が、コンテンツスクリプトの実行環境から削除されました。
過去のバージョン
--------

* Firefox 100 for developers
* Firefox 99 for developers
* Firefox 98 for developers
* Firefox 97 for developers
* Firefox 96 for developers
* Firefox 95 for developers
* Firefox 94 for developers
* Firefox 93 for developers
* Firefox 92 for developers
* Firefox 91 for developers
* Firefox 90 for developers
* 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