Firefox 70 for developers
=========================

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

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

### 開発者ツール

#### デバッガーの更新

* デバッガー で DOM Mutation にブレークポイントを設定できるようになりました。ノードやその属性が変化したときや、ノードが DOM から削除されたときに一時停止できます (Firefox バグ 1576219)。
* デバッガーで一時停止したときに、ステップ実行や復帰ができるボタンを持つオーバーレイをページ上に表示するようになりました (Firefox バグ 1574646)。
* デバッガーで、すでにエンジンによって破棄されているソース (たいてい、ページを読み込むときに 1 回実行するスクリプト) を表示するようになりました。よって次に実行するとき、デバッグするためのブレークポイントを正しく設定できます (Firefox バグ 1572280)。
* デバッガーの スコープパネル (en-US) のグループ化を簡単にして、以前表示した追加スコープをトップレベル関数の上に統合しました (例: `let`、`with`、`if`/`else` で作成されたブロック) (Firefox バグ 1448166)。
* デバッガーが、ステップ実行中に スコープパネル (en-US) で現在選択および展開している変数を維持するようになりました (Firefox バグ 1405402)。
* デバッガーが、非同期関数のステップオーバーを正しく扱うようになりました。非同期関数 のデバッグが容易になります (Firefox バグ 1570178)。
* コンテナーセッション (異なるログイン状態でテストする際に便利です) でデバッグするとき、デバッガーでソースを正しく表示するようになりました (Firefox バグ 1375036)。
* デバッガーで `debugger` 文にブレークポイントを設定して "ここでは停止しない" に切り替えると、`debugger` 文を無効にできます (Firefox バグ 925269)。
* WebExtensions の開発者は、ストレージタブの拡張機能ストレージで `browser.storage.local` を調査できます (Firefox バグ 1585499)。

#### その他の更新

* An icon will be displayed next to inactive CSS properties in the インスペクター の ルールビュー で、使用されていない CSS プロパティの隣にアイコンを表示するようになりました。アイコンにマウスポインターを載せると、なぜ使用されていないかの情報を表示します (Firefox バグ 1306054)。
* CSS ルールビュー で前景色の カラーピッカー に、背景色とのコントラストがアクセシビリティの基準に準拠しているかを表示するようになりました (Firefox バグ 1478156)。
* アクセシビリティインスペクター の チェック項目 ドロップダウンメニューに、キーボードのアクセシビリティチェックを追加しました (Firefox バグ 1564968)。
### HTML

* 以下の状況で、安全に生成されたパスワードを Firefox がユーザーに提案できるようになりました:
    + `autocomplete="new-password"` 属性を設定した `<input>` 要素。
    + 新しいパスワードを意図したかにかかわらず、パスワード入力要素でユーザーがコンテキストメニューを開いた。
### CSS

* `opacity` や `stop-opacity (en-US)` の、不透明度の値をパーセンテージで指定できるようになりました (Firefox バグ 1562086)。
* `grid-auto-columns` および `grid-auto-rows` が、複数のトラックサイズの値を受け入れるようになりました (Firefox バグ 1339672)。
* いくつかのテキスト関連の CSS プロパティを、デフォルトで有効にしました (Firefox バグ 1573631):
    + `text-decoration-thickness`。
    + `text-underline-offset`。
    + `text-decoration-skip-ink`。既定値は `auto` であり、下線や上線が グリフ を横切る場所で途切れるようになりました。
* `display` プロパティが、内部表示種別と外部表示種別を表す 2 つのキーワードを受け入れるようになりました (Firefox バグ 1038294、Firefox バグ 1105868、Firefox バグ 1557825)。
* `font-size` プロパティが新しいキーワード `xxx-large` を受け入れるようになりました (Firefox バグ 1553545)。
* ロジックとパフォーマンスの都合で、`:visited` 疑似クラスが `<link>` 要素にマッチしないようになりました (Firefox バグ 1572246、理由について詳しくは Intent to ship: Make <link> elements always unvisited および [selectors] :link and <link> をご覧ください)。
* `quotes` プロパティで値 `auto` をサポートしました (Firefox バグ 1421938)。
* パフォーマンスを向上させるため、`<style>` 要素内のスタイルシートを再使用のためキャッシュするようになりました (Firefox バグ 1480146)。現在、`@import` 規則を持つスタイルシートは含まれませんので注意してください。
* `<ratio>` 型の値として `<number>/<number>` や 1 つの `<number>` を受け入れるようになりました (Firefox バグ 1565562)。

#### 廃止

* 3 値の <position> のサポートを廃止しました(背景の位置を除く) (Firefox バグ 1559276)。互換性情報をご覧ください。
* `counter()` および `counters()` で値 `none` が無効になりました。Level 3 仕様を CSS 2.1 に合わせるための変更です Firefox バグ 1576821)。
### SVG

* 切り取り、コピー、貼り付けのイベントを、SVG グラフィック要素へディスパッチするようになりました (Firefox バグ 1569474)。
### MathML

* `<math>` 要素の非推奨属性である `mode` を削除しました (Firefox バグ 1573438)。
* 0 ではない単位なしの長さの値、例えば `500%` を表す `5` をサポートしなくなりました。
* ドットで終わる長さの値、例えば `2.` や `34.px` もサポートしなくなりました。
### JavaScript

* Numeric separators をサポートしました (Firefox バグ 1435818)。
* `Intl.RelativeTimeFormat.formatToParts()` (en-US) メソッドを実装しました (Firefox バグ 1473229)。
* ECMAScript 402 Intl API に対応して、`BigInt.prototype.toLocaleString()` メソッドが `locales` および `options` 引数とともに動作するように更新しました。また、`Intl.NumberFormat.format()` および `Intl.NumberFormat.formatToParts()` が `BigInt` 値を受け入れるようになりました (Firefox バグ 1543677)。
* 最新の ECMAScript 仕様に対応して、先頭のゼロを BigInt リテラル で拒否するようになりました。`08n` や `09n` は、`07n` のような古い 8 進数値を使用した場合のエラーと同様に無効です。8 進 `BigInt` 数値では常に、先頭のゼロと文字 "o" (小文字または大文字) を使用してください (すなわち `0755n` ではなく `0o755n`)。Firefox バグ 1568619 をご覧ください。
* `Intl.RelativeTimeFormat` (en-US) コンストラクターで Unicode 拡張キーの "nu" をサポートしました。また、`Intl.RelativeTimeFormat.resolvedOptions()` (en-US) メソッドが `numberingSystem` も返すようになりました (Firefox バグ 1521819)。
### API

#### DOM

* `back()`、`forward()`、`go()` メソッドが非同期になりました。ナビゲーションが完了した通知を得るには、``popstate` (en-US)` イベントにリスナーを追加します(Firefox バグ 1563587)。
* web workers で `DOMMatrix`、`DOMPoint` などをサポートしました (Firefox バグ 1420580)。
* `Document.all`、`Document.clear`、`Document.captureEvents`、`Document.clearEvents` を `HTMLDocument` から `Document` に移動しました (Firefox バグ 1558570、Firefox バグ 1558571)。
* クロスオリジン `<iframe>` の内部から 通知 の許可を要求できないようになりました (Firefox バグ 1560741)。

#### Workers/Service workers

* worker や shared worker のスクリプト、すなわち `Worker()` や `SharedWorker()` コンストラクターの対象で、厳格な MIME タイプの確認を強制するようになりました (Firefox バグ 1523706)。

#### メディア、Web Audio、WebRTC

* `RTCPeerConnection.restartIce()` (en-US) メソッドを追加しました。これは新しい "perfect negotiation" の仕組みを実装するために必要な、4 つの変更点のひとつです。残りは将来の Firefox の更新で実現する予定です (Firefox バグ 1551316)。
* `RTCPeerConnection.setRemoteDescription()` (en-US) メソッドを引数なしで呼び出せるようになりました。これはもうひとつの "perfect negotiation" に関する更新です (Firefox バグ 1568292)。
* `MediaTrackSupportedConstraints.groupId` をサポートしました。また、`MediaTrackConstraints.groupId` (en-US) プロパティをサポートしましたので `true` を返すようになりました (Firefox バグ 1561254)。
* 新たな Web Audio API 機能をいくつか実装および更新しました:
    + `AudioContext.getOutputTimestamp()` を実装しました (Firefox バグ 1324545)。
    + `AudioContext.baseLatency` および `AudioContext.outputLatency` を実装しました (Firefox バグ 1324552)。
    + `MediaElementAudioSourceNode.mediaElement` および `MediaStreamAudioSourceNode.mediaStream` を実装しました (Firefox バグ 1350973)。
    + `ChannelMergerNode()` (en-US) コンストラクターで、`channelCount` や `channelCountMode` に無効な値を設定しようとした場合にエラーが発生するようになりました (Firefox バグ 1456263)。

#### Canvas と WebGL

* `CanvasRenderingContext2D.getTransform()` (en-US) と、引数として行列の個々の要素を表す複数のパラメータに代わり matrix オブジェクトを受け入れる `CanvasRenderingContext2D.setTransform()` (en-US) の新しい派生形をサポートしました (Firefox バグ 928150)。
### HTTP

* 強化型トラッキング防止機能 (en-US) が有効であるときの、サードパーティーのトラッキングリソースに対する既定のリファラーのポリシーが `strict-origin-when-cross-origin` になりました (Firefox バグ 1569996)。
* `Referer` 要求ヘッダーのサイズが 4 KB (4,096 バイト) に制限されました。過大なリファラーが制限を超えた場合は、オリジンの部分のみ送信します (Firefox バグ 1557346)。
* HTTP キャッシュ が、トップレベルドキュメントのオリジンごとに分割されました (Firefox バグ 1536058)。

#### 廃止

* `X-Frame-Options` の `allow-from uri` ディレクティブを削除しました。代わりに、`frame-ancestors` ディレクティブを付加した `Content-Security-Policy` ヘッダーを使用してください (Firefox バグ 1301529)。
### WebDriver conformance (Marionette)

* `WebDriver:TakeScreenshot` コマンドを、Fission 互換に更新しました。クロスオリジン iframe 由来のコンテンツが、ページのスクリーンショットに含まれるようになります。あるいは chrome スコープから呼び出したとき、ブラウザーウィンドウの内部に、アクティブなタブの内容が見えるようになります (Firefox バグ 1559592)。
* `WebDriver:TakeScreenshot` が、ハイライトに使用する DOM 要素のリストを受け入れないようになりました (Firefox バグ 1575511)。
* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` が、`window.onunload` をウェブに公開される方法で設定しないようになりました (Firefox バグ 1568991)。
アドオン開発者向けの変更点
-------------

### API の変更点

* `topSites.get()` (en-US) メソッドに、ユーザーが新しいタブを開いたときに表示するページの一覧を返すようにするための新しい引数を追加しました (Firefox バグ 1568617)。
* `privacy.network` (en-US) プロパティの `WebRTCIPHandlingPolicy` サブプロパティで許可される値を、Chrome で見られる動作に合うよう修正しました (Firefox バグ 1452713):
    + 以前はプロキシが設定されていない場合に、`disable_non_proxied_udp` が WebRTC の使用を妨げていました。現在は、プロキシが設定されている場合は常にプロキシを使います。設定されていない場合は、プロキシを経由しない接続を許可するようになりました。
    + `proxy_only` を、古い動作を提供するために使用できるようになりました。これは、プロキシを使用した TURN on TCP による ICE ネゴシエーションのみ許可する効果があります。これ以外の接続は許可されません。
### マニフェストの変更点

#### 廃止

* chromium ベースのブラウザーで使用するテーマキーの別名として提供された、以下の theme (en-US) キープロパティを削除しました:
    + `images` プロパティの `headerURL`。今後は `theme_frame` を使用してください。
    + `colors` プロパティ:
        - `accentcolor`。今後は `frame` を使用してください。
        - `textcolor`。今後は `tab_background_text` を使用してください。
関連情報
----

* Hacks ブログのリリース記事: Firefox 70 — a bountiful release for all
過去のバージョン
--------

* 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
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers
* Firefox 51 for developers
* Firefox 50 for developers
* Firefox 49 for developers
* Firefox 48 for developers
* Firefox 47 for developers
* Firefox 46 for developers
* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers