Firefox 68 for developers
=========================

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

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

### 開発者ツール

#### ブラウザー/ウェブコンソール

* ルールで使用した DOM 要素のノードリストなど、CSS 警告に関するより多くの情報 をウェブコンソールで表示するようになりました (Firefox バグ 1093953)。
* 正規表現を使用してウェブコンソールの内容をフィルタリングできるようになりました (Firefox バグ 1441079)。
* ブラウザーコンソールの "*コンテンツメッセージを表示*" のチェックボックスで、コンテンツプロセスのメッセージを表示/非表示できるようになりました (Firefox バグ 1260877)。

#### JavaScript デバッガー

* `Shift`
 +
 `Ctrl`
 +
 `F`
 (Windows や Linux) または
 `Shift`
 +
 `Cmd`
 +
 `F`
 (macOS) を押下すると、デバッガーで現在のプロジェクトのすべてのファイルから 検索 できるようになりました (Firefox バグ 1320325)。

#### ネットワークモニター

* ネットワークモニターの 要求リスト で、特定の URL をブロックできるようになりました (Firefox バグ 1151368)。
* コンテキストメニューの 再送信 コマンドを使用して、メソッド、URL、パラメーター、ヘッダーを編集せずにネットワーク要求を再送信できます (Firefox バグ 1422014)。
* ネットワークモニターの ヘッダー タブのコンテキストメニューで、すべてあるいは一部のヘッダー情報を JSON 形式でクリップボードにコピーできるようになりました (Firefox バグ 1442249)。

#### インスペクター

* インスペクターの ルールパネル に、print メディアクエリーの表示を切り替えるボタンを追加しました (Firefox バグ 1534984)。
* フォントパネル に、`letter-spacing` を変更するスライダーを追加しました (Firefox バグ 1536237)。
* あるスタイルがなぜ適用されないかをわかりやすくするため、値が無効であるルールや未サポートの CSS プロパティの隣に警告アイコンを表示するようになりました (Firefox バグ 1306054)。

#### ストレージインスペクター

* ストレージインスペクターで項目を選択して Back Space キーを押下すると、ローカルストレージやセッションストレージを削除 できるようになりました (Firefox バグ 1522893)。

#### その他

* アクセシビリティインスペクター に*問題のチェック*機能を追加しました。ウェブページでアクセシビリティの問題を明らかにする検査ツールが含まれています。まず使用できるツールは*コントラスト*で、色のコントラストの問題を明らかにします。
* 内部拡張機能 (システムアドオンや非表示の拡張機能) を about:debugging で表示するかを制御する設定項目を、`devtools.aboutdebugging.showSystemAddons` から `devtools.aboutdebugging.showHiddenAddons` に変更しました (Firefox バグ 1544372)。
* レスポンシブデザインモード を再設計しました。*端末設定*ダイアログ (デバイス選択メニュー > *リストを編集...*) がより直感的でシンプルになりました (Firefox バグ 1487857)。

#### 廃止

* about:debugging ページから "アドオンのデバッグを有効化" のチェックボックスを削除しました (Firefox バグ 1544813)。
### HTML

* テキストトラックがメディア要素に含まれている場合に、`TextTrack` 自体に加えて `<track>` 要素 (`HTMLTrackElement` で表される) が `cuechange` イベントを受け取るようになりました (Firefox バグ 1548731)。
* 動作が異なりますが、`<link>` 要素で `disabled` 属性を再びサポートしました。`rel="stylesheet"` を持つ `<link>` 要素で `disabled` を設定すると、ページを読み込むときに参照先のスタイルシートが読み込まれなくなります。`disabled` 属性を `false` に設定するか削除すると、必要に応じて読み込まれます (Firefox バグ 1281135)。

#### 廃止

* `<meta http-equiv="set-cookie">` のサポートを廃止しました (Firefox バグ 1457503)。
### CSS

* CSS Scroll Snapping を、最新バージョンの仕様書に更新しました (Firefox バグ 1312163) および (Firefox バグ 1544136)。変更点は以下のとおりです:
    + `scroll-padding` 関係のプロパティ (Firefox バグ 1373832)
    + `scroll-margin` 関係のプロパティ (Firefox バグ 1373833)
    + `scroll-snap-align` (Firefox バグ 1373835)
* ほかのブラウザーとの互換性のため、`-webkit-line-clamp` プロパティを実装しました (Firefox バグ 866102)。
* `::marker` 疑似要素 (Firefox バグ 205202) と、::marker のアニメーション (Firefox バグ 1538618) をサポートしました。
* `<currentColor>` を計算値に変更しました (`color` プロパティを除く) (Firefox バグ 760345)。
* 長さの単位 'ch' を、仕様書に合うよう修正しました ('0' のグリフがない場合は高さにフォールバックする) (Firefox バグ 282126)。
* `counter-set` プロパティを実装しました (Firefox バグ 1518201)。
* 内蔵の 'list-item' カウンターを使用したリストの番号付けを実装して、番号付けの不具合を修正しました (Firefox バグ 288704)。
* `::part()` にセレクターのマッチングとパースを実装しました (Firefox バグ 1545430) および (Firefox バグ 1545425)。
* `<mask>`、`<marker>` (en-US)、`<pattern>`、`<clipPath>` など、間接的に描画されるもので CSS Transforms をサポートしました (Firefox バグ 1323962)。
* 互換性の理由でさまざまなグラデーションプロパティ (`linear-gradient()`、`radial-gradient()`、`repeating-radial-gradient()`) の接頭辞がついたものを使用可能に維持していますが、接頭辞がないものにより似た形で扱うように処理を変更しました。これは、既存のスタイルの一部が正しく動作しなくなることを意味します。
 特に、角度と位置の両方を持つ複雑な構文は動作しません。また `<side-or-corner>` の `to` キーワードは、接頭辞があるグラデーションプロパティで必須ではありません。広くサポートされているため、接頭辞がない標準のグラデーションプロパティを使用することが推奨されます (Firefox バグ 1547939)。

#### 廃止

* `scroll-snap-coordinate`、`scroll-snap-destination`、`scroll-snap-type-x`、`scroll-snap-type-y` を削除しました。
* `scroll-snap-type` プロパティがロングハンドプロパティになりました。`scroll-snap-type:mandatory` のような、以前のショートハンド構文は動作しません。
### SVG

*変更なし。*

### JavaScript

* `BigInt` プリミティブをデフォルトで有効にしました (Firefox バグ 1527902)。
* String のジェネリックメソッドを削除しました (Firefox バグ 1222552)。詳しくは 非推奨に関する警告 をご覧ください。
### API

#### CSS Object Model (CSSOM)

* 時代遅れの `rules` プロパティ、`addRule()` メソッド、`removeRule()` メソッドを `CSSStyleSheet` インターフェイスに追加しました。これらは Internet Explorer 9 で導入されて完全には根絶されておらず、いまだに使用しているわずかなサイトの互換性を向上するために追加しました (Firefox バグ 1545823)。

#### DOM

* Visual Viewport API (en-US) が Android 版でデフォルトで有効になりました (Firefox バグ 1512813)。デスクトップ版 Firefox にこの API を追加する作業は Firefox バグ 1551302 で追跡しています。
* `Window` の `noreferrer` 機能をサポートしました。これを指定するとホスト名、IP アドレス、URL、その他のホスト端末を識別する情報を共有せずに、新しいウィンドウのコンテンツを読み込みます (Firefox バグ 1527287)。
* `HTMLImageElement` の `decode()` メソッドを実装しました。これは画像を、DOM に追加する前に読み込みおよびデコードするために使用できます (Firefox バグ 1501794)。
* `XMLHttpRequest` を、`responseType` で非標準の値 `moz-chunked-arraybuffer` を受け入れないように更新しました。この値を使用しているコードは、Fetch API をストリームとして使用する ように更新してください (Firefox バグ 1120171)。
* `XMLHttpRequest` で `unload`、`beforeunload`、`pagehide` イベントを処理しているときに同期リクエストを行うと、コンソールに警告を出力するようになりました (Firefox バグ 980902)。
* `cookie` プロパティを `HTMLDocument` インターフェイスから `Document` インターフェイスへ移動しました。HTML 以外の文書でも Cookie を使用できます (Firefox バグ 144795)。
* `HTMLElement.focus()` および `SVGElement.focus()` メソッドで、新たにフォーカスを得た要素が表示されるようにブラウザーがスクロールすることをブロックするかを指定する論理値の `preventScroll` オプションをもつ、省略可能なオブジェクトを受け入れるようになりました (Firefox バグ 1374045)。

#### DOM イベント

* Android 版 Firefox が、最初のフレームが描画された後まで `resize` イベントを誤って送信する不具合を修正しました。このイベントが発生しないと想定するサイトとのウェブ互換性が向上します (Firefox バグ 1528052)。
* マウスの第 1 ボタン以外のボタンのイベントが、より仕様書に近い形で発生するようになりました。第 1 ボタン以外のボタンをクリックしても `click` イベントが発生しなくなり、代わりに `auxclick` を使用します。また、`dblclick` は第 1 ボタンだけで発生します (Firefox バグ 1379466)。
* 独自仕様の `MouseEvent.mozPressure` プロパティが非推奨になり、コンソールへ警告を表示するようになりました (Firefox バグ 1165211)。

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

* Google Play ストアの規約変更により Android 版 Firefox 68 から、WebRTC 接続で AVC/H.264 動画を扱っていた OpenH264 コーデックをダウンロードおよびインストールすことができなくなりました。このため Android デバイスに新規インストールした Firefox は、WebRTC 接続で AVC をサポートしません。すでにコーデックをダウンロードしている旧バージョンの Firefox を更新した場合は、引き続き動作します。これは、ほかのプラットフォームには*影響がありません*。詳しくは SUMO の記事 または Firefox バグ 1548679 をご覧ください。
* `icecandidate` (en-US) イベントハンドラーに `null` 候補が渡されたことを認識するように、WebRTC を更新しました。後続の候補がないことを示しており、これが発生すると ICE の収集 (`iceGatheringState` (en-US)) が `complete` 状態になります (Firefox バグ 1318167)。
* `RTCRtpReceiver` (en-US) の `getContributingSources()` (en-US) および `getSynchronizationSources()` (en-US) メソッドで動画トラックをサポートしました。以前は音声のみ動作していました (Firefox バグ 1534466)。
* Web Audio API の `MediaStreamTrackAudioSourceNode` インターフェイスと `AudioContext.createMediaStreamTrackSource()` メソッドをサポートしました (Firefox バグ 1324548)。
* `RTCDataChannel.negotiated` (en-US) を実装しました (Firefox バグ 1529695)。
* ストリームの "最初の音声トラック" の ID が辞書順で最初に来るトラックであると定義する現行の仕様書に準拠するよう、`MediaStreamAudioSourceNode()` コンストラクターを更新しました (Firefox バグ 1324548)。
* `getUserMedia()` は安全でないコンテキストから使用できなくなりました。使用を試みると `NotAllowedError` 例外が発生します。安全なコンテキストは HTTPS を使用して読み込むもの、`file:///` スキームを使用して示すもの、`localhost` から読み込むものです。今のところ、必要であれば設定項目 `media.getusermedia.insecure.enabled` を `true` に設定すると、`getUserMedia()` を安全でないコンテキストから呼び出すことを再有効化できます (Firefox バグ 1335740)。

**メモ:** 将来、Firefox は `navigator.mediaDevices` プロパティも安全でないコンテキストで廃止して、`MediaDevices` API へのアクセスを完全に遮断する予定です。**これは Nightly ビルドですでに実施しています。**

#### 廃止

* 非標準の `XMLDocument.load()` (en-US) メソッドを削除しました (Firefox バグ 332175)。
* 非標準の `XMLDocument.async` プロパティを削除しました (Firefox バグ 1328138)。
* `RTCIceCredentialType` (en-US) の値 `token` を削除しました (Firefox バグ 1529595)。
### HTTP

* HTTP の `Clear-Site-Data` ヘッダーで `executionContexts` ディレクティブのサポートを廃止しました。これは、ナビゲーションプロセスのさまざまな時点でさまざまな種類のデータの間の相互接続における相互作用の問題や、仕様書の設計の問題のために削除しました。この理由でディレクティブを仕様書から削除することが 提案されています (Firefox バグ 1548034)。

#### 廃止

* 標準化の状況に懸念があるため、`Content-Security-Policy` の `require-sri-for` ディレクティブのサポートを廃止しました。以前は設定変更により使用できており、既定値は無効でした (Firefox バグ 1386214)。
### セキュリティ

* CVE-2019-11730: Same-origin policy treats all files in a directory as having the same-origin のため、同じディレクトリーにあるファイルを別々のオリジンとして扱うように Firefox を変更しました。これは、file:// URL で読み込んだドキュメントの動作でいくつかの副作用が発生します (調査について Firefox バグ 1558299 をご覧ください)。例えば、workers を読み込むことができません。
### WebDriver conformance (Marionette)

#### バグ修正

* `WebDriver:SwitchToWindow` が別のウィンドウを選択すると、元のウィンドウに戻るまで `focus` および `activate` イベントを待機するようになりました (Firefox バグ 1335085)。
* `TypeError: this.tabModal is null` の不具合を修正しました。これはモーダルダイアログやユーザープロンプトと対話しているときに発生することがありました (Firefox バグ 1538782)。

#### その他

* トップレベルのブラウザーコンテキストが突然消えてしまうことを防ぐため、メモリーが少ない状況でバックグラウンドのタブを強制的にアンロードする機能を無効化しました (Firefox バグ 1553748)。
* 新しいタブを開いた後にウェブサイトへ移動するときに HTTP 認証ダイアログが表示されない、特権付きコンテンツプロセスを無効化しました (Firefox バグ 1558763)。
### プラグイン

*変更なし。*

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

### API の変更点

* `proxy.register()` (en-US) および `proxy.unregister()` (en-US) 関数が非推奨になり、Firefox 71 で削除される予定です (Firefox バグ 1545811)。
* `boolean` 型の `incognito` フラグを proxy.RequestDetails (en-US) オブジェクトに追加しました。`true` を設定すると、プライベートブラウジングの要求であったことを示します (Firefox バグ 1545163)。
* webRequest.RequestFilter (en-US) が incognito パラメーターを持てるようになりました。これを与えると、incognito の状態 (`true` または `false`) に合致しない要求を除去できます (Firefox バグ 1548177)。
* 現在のコンテキストにおける Cookie のストア ID を表す、`string` 型の `cookieStoreId` を proxy.RequestDetails (en-US) オブジェクトに追加しました (Firefox バグ 1545420)。
* アドオンがブックマークフォルダーをルートフォルダーへ追加しようとしたときのエラーメッセージが、より直感的になりました (Firefox バグ 1512171)。
* `browser.tabs.duplicate()` が返す promise がタブが完全に読み込まれる前に、直ちに解決するようになりました (Firefox バグ 1394376)。
* chrome.storage.managed をサポートして、拡張機能の設定をエンタープライズポリシーで設定できるようになりました (Firefox バグ 1230802)。
### マニフェストの変更点

*変更なし。*

関連情報
----

* Firefox 68.0 リリースノート
過去のバージョン
--------

* 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
* Firefox 38 for developers
* Firefox 37 for developers