Firefox 59 for developers
=========================

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

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

### 開発者ツール

* ネットワークモニター の応答タブで、応答が HTML である場合に 描画された HTML のプレビュー を表示するようになりました (Firefox バグ 1353319)。
* ストレージインスペクターで表示する Cookie の情報 (Cookie をご覧ください) で、それぞれの Cookie が same-site 状態であるかを示す *sameSite* 列を追加しました (Firefox バグ 1298370)。
* 定規 ツールで、ビューポートの現在の寸法を示す情報を表示するようになりました (Firefox バグ 1402633)。
* レスポンシブデザインモード で、カーソルキーを使用して画面の寸法を設定できるようになりました (Firefox バグ 1421663)。詳しくは 画面のサイズを設定する をご覧ください。
* ネットワークモニター の *ヘッダー* タブに表示する*生ヘッダー*で、応答のステータスコードを表示するようになりました (Firefox バグ 1419401)。
### HTML

* `<textarea>` 要素の `autocomplete` 属性を実装しました。要素でフォームのオートフィル機能を有効化または無効化できます。
### CSS

* `overscroll-behavior` プロパティと、このプロパティに関係するロングハンドプロパティである `overscroll-behavior-x` および `overscroll-behavior-y` を実装しました (Firefox バグ 951793)。また、すべてのリリースで、デフォルトで有効化しました (Firefox バグ 1428879)。
* "unusual elements" (置換要素のように、CSS のボックスの概念に従って描画されない要素) で `display` の値に `contents` を指定したときの動作を、仕様書に従って更新しました (Firefox バグ 1427292)。仕様で定められた正確な動作については、Appendix B: Effects of display: contents on Unusual Elements をご覧ください。
* `position` の `sticky` を、適切な HTML テーブル の部品 (例えば `<th>` 要素) でサポートしました (Firefox バグ 975644)。
* `<color>` 値 (`rgb()`, `rgba()`, `hsl()`, `hsla()`) で `calc()` をサポートしました (Firefox バグ 984021)。
* メディアクエリー の値で `calc()` をサポートしました (Firefox バグ 1396057)。
* `@document` @-規則の使用を、ユーザースタイルシートと UA スタイルシートに限定しました (Firefox バグ 1035091)。
* `font-optical-sizing` プロパティを実装しました (Firefox バグ 1435692)。
### SVG

*変更なし。*

### JavaScript

*変更なし。*

### API

#### 新規 API

* `PointerEvents` を、デスクトップ版 Firefox で有効化しました (Firefox バグ 1411467)。

#### DOM

* `EventTarget()` コンストラクターを実装しました (Firefox バグ 1379688)。
* `Response()` コンストラクターが、仕様書に従って `body` 引数で `null` 値を受け入れるようになりました (Firefox バグ 1303025)。

#### DOM イベント

* `Event.composedPath()` メソッドを実装しました (Firefox バグ 1412775)。

#### Service workers

* 別のブラウザープロセスで、Service worker Clients API を発見および通信できるようになりました (Firefox バグ 1293277)。
* 入れ子の about:blank や about:srcdoc のインラインフレームが、親で制御している service worker を継承するようになりました。これは Firefox バグ 1293277 および Firefox バグ 1426979 で修正しました。
* service worker が `Response` を `FetchEvent.respondWith()` に提供するときに `Response.url` の値が、インターセプトされたネットワークに最終的に解決された URL として伝播しないようになりました。以前は、代わりに `FetchEvent.request.url` を使用していました。これは、例えば service worker がスタイルシートや worker スクリプトをインターセプトする場合に提供される `Response.url` が、関連する `@import` や `importScripts()` のサブリソースの解決に使用されるということです (Firefox バグ 1222008)。
* `FetchEvent.request.mode` が `"same-origin"` であり、`Response.type` に `"cors"` を与えた場合に、`FetchEvent.respondWith()` がネットワークエラーを発生させるようになりました (Firefox バグ 1222008)。

#### メディアと WebRTC

* `MediaStreamTrack` の `MediaStreamTrack.muted` プロパティ、および `mute` イベントと `unmute` イベント、さらにこれに対応するイベントハンドラーである `onmute` と `onunmute` を実装しました。トラックの `muted` 状態は、トラックが今のところメディアデータを提供できないことを示します。

**メモ:** トラックの `muted` 状態は、一般的に考えられているトラックのミュートやミュート解除として役に立つものではありません。代わりに `enabled` プロパティを使用します。`enabled` を `false` に設定すると、トラックは空のフレームだけを出力します。
* Android 版 Firefox 59 で Apple の HTTPS Live Streaming (HLS) を、音声および映像の両方でサポートしました。この非標準プロトコルは、モバイル環境においてモバイルストリーミングのためにこのプロトコルを必要とするサイトの互換性を向上するためにサポートしました。現在、デスクトップ版 Firefox にこのプロトコルを実装する予定はありません。
* それぞれの RTP ストリームのソースの情報を提供するため、`RTCRtpReceiver` (en-US) の `getContributingSources()` (en-US) および `getSynchronizationSources()` (en-US) メソッドを実装しました。ただし、公開前に仕様書が変更されましたので、デフォルトで設定項目 `media.peerconnection.rtpsourcesapi.enable` によってこれらを無効化しました (Firefox バグ 1363667, Firefox バグ 1430213, Firefox バグ 1433236)。
* Firefox の WebRTC 実装でトランシーバーをサポートしましたので、`RTCRtpTransceiver` (en-US) インターフェイスを実装しました。また、`RTCPeerConnection` やほかのインターフェイスを、最新の仕様書に従ってこれらを使用使用するように更新しました。
* `RTCPeerConnection.addTransceiver()` (en-US) メソッドを追加しました。さらに、要求に従ってトランシーバーを作成するように、`addTrack()` (en-US) の動作を更新しました。
* Firefox 58 で WebVTT のリージョンを実装しましたが、デフォルトで無効化していました。これをデフォルトで有効化しました (Firefox バグ 1415805)。
* WebVTT ファイルで同じ行にすべての設定を並べる形式ではなく、1 行ごとにひとつの設定を並べる形式の `REGION` 定義ブロックを Firefox でサポートしました (Firefox バグ 1415821)。

#### Canvas と WebGL

*変更なし。*

### CSSOM

* `CSSNamespaceRule` インターフェイスと、`namespaceURL` および `prefix` プロパティを実装しました (Firefox バグ 1326514)。
### HTTP

*変更なし。*

### セキュリティ

* `data:` URI へのトップナビゲーションはブロックされます(Firefox バグ 1401895)。詳しくは Blocking Top-Level Navigations to data URLs for Firefox 59 をご覧ください。
* `X-Frame-Options` ヘッダーの `SAMEORIGIN` ディレクティブが、トップレベルのインラインフレームが同一オリジンであるかだけでなく、すべての祖先も同様であるかを確認するようになりました (Firefox バグ 725490)。
* 異なるオリジンから現在のドキュメントに読み込まれる画像リソースが、HTTP 認証ダイアログを表示させることができなくなりました。 (Firefox バグ 1423146)。
* ほかのブラウザーに合わせるため、および Firefox バグ 1419658 で説明されている潜在的な問題を避けるため、HTTP 認証でユーザー名やパスワードに (`ISO-8859-1` ではなく) `utf-8` エンコーディングを使用するようになりました。
* HSTS プリロードリストは Google によって毎日更新されています。いつもの更新であれば注意する必要はないのですが、このリリースから新しい TLD が追加されました。このうち具体的に注目したいのが `.app` と `.dev` です。これらの新しい TLD を知らず、ローカルの開発環境に使用した場合、予期しない挙動となるかもしれません。なお、ローカルでの開発には予約済み TLD を使うべきとされています。
### プラグイン

*変更なし。*

### その他

*変更なし。*

ウェブプラットフォームから廃止
---------------

### HTML

* `<script>` 要素の `type` 属性の非標準パラメーターである `version` (例えば `type="application/javascript;version=1.8"`) を削除しました (Firefox バグ 1428745)。
### CSS

* 独自仕様の `mozmm` `<length>` 単位を削除しました (Firefox バグ 1416564)。
* 独自仕様の `-moz-border-top-colors`、`-moz-border-right-colors`、`-moz-border-bottom-colors`、`-moz-border-left-colors` (en-US) プロパティを、chrome コードのみ使用するように制限しました (Firefox バグ 1417200)。
### JavaScript

* 非標準の 条件付き catch 節 を削除しました (Firefox バグ 1228841)。
### API

* 非標準の `Event.getPreventDefault()` メソッドを削除しました。`Event` で `preventDefault()` が呼び出されたかを判断するには、代わりに `Event.defaultPrevented` プロパティを使用します。
* 標準の 通知 API が好ましいため、独自仕様の `Navigator.mozNotification` プロパティと `DesktopNotification` インターフェイスを削除しました (Firefox バグ 952453)。
* 独自仕様の `window.external.addSearchEngine()` メソッドを削除しました (Firefox バグ 862147)。詳しくは `Window.sidebar` もご覧ください。
* Firefox 限定の非標準プロパティである `HTMLMediaElement` の `mozAutoplayEnabled` プロパティを削除しました。
### SVG

SMIL の `accessKey` 機能のサポートを廃止しました (Firefox バグ 1423098)。

### その他

非標準の `pcast:` および `feed:` プロトコルのサポートを廃止しました (Firefox バグ 1420622)。

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

### WebExtensions

* Theme (en-US) の更新:
    + 新しいプロパティ: `colors.background_tab_text`, `colors.toolbar_field_border`
    + すべての色関連プロパティで、Chrome 形式の配列と CSS の色の値の両方をサポートしました。
* 新しい ブラウザー設定:
    + `contextMenuShowEvent` (en-US)
    + `openBookmarksInNewTabs` (en-US)
    + `openSearchResultsInNewTabs` (en-US)
    + `proxyConfig` (en-US)
* 新しい `tabs` の API:
    + `tabs.captureTab()` (en-US)
    + `tabs.hide()` (en-US)
    + `tabs.show()` (en-US)
* `contextMenus` API で "bookmark" コンテキスト (en-US) をサポートしました。
* 新しい `contentScripts` API で、ランタイムがコンテンツスクリプトを登録できます。
* 新しい `pageAction` (en-US), `browserAction`, `SidebarAction` の API:
    + `browserAction/pageAction/sidebarAction.set*` 関数で、変更を元に戻すための `null` をサポートしました。
    + `browserAction.isEnabled()` (en-US), `pageAction.isShown()` (en-US) , `sidebarAction.isOpen()` (en-US) 関数。
* デフォルトでページアクションを表示するための、`page_action` の新しいオプション。
* `protocol_handers` の新しい値:
    + Secure Scuttlebutt 通信のための "ssb"
    + DATproject のための "dat"
    + IPFS のための "ipfs", "ipns", "dweb"
* `privacy.websites` (en-US) の新しい設定 "cookieConfig"。
* `cookies` API で ファーストパーティ分離 をサポート。
* `webRequest` の新しいオプションである `upgradeToSecure`。
過去のバージョン
--------

* 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
* Firefox 36 for developers
* Firefox 35 for developers
* Firefox 34 for developers
* Firefox 33 for developers
* Firefox 32 for developers
* Firefox 31 for developers
* Firefox 30 for developers
* Firefox 29 for developers
* Firefox 28 for developers