Firefox 66 for developers
=========================

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

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

### 開発者ツール

* ウェブコンソール の自動補完のポップアップから、JavaScript のゲッターを実行できるようになりました (Firefox バグ 1499289)。
* Window の `alert()`、`prompt()`、`confirm()` メソッドがレスポンシブデザインモード で動作しなくなっていたのを、再び動作するようになりました (Firefox バグ 1273997)。
* コンソールの出力を右クリックして "**表示メッセージをクリップボードにエクスポートする**" を選択すると、コンソールの出力をクリップボードにコピーできます。
### HTML

* `file:` URL から読み込んだ UTF-8 エンコードされた HTML (およびプレーンテキスト) ファイルについて、`<meta charset="utf-8">` または UTF-8 BOM がないものもサポートしました。このようなファイルをサーバーにアップロードする前に、ローカル環境で作業しやすくするためです。サーバーでは、このようなファイルに `Content-Type` HTTP ヘッダーで `charset=utf-8` を送信しなければなりません。ローカルファイルで使用する検出方法は、ネットワーク環境の逐次読み込みで問題が発生します (Firefox バグ 1071816)。

#### 廃止

* `<input>` 要素から `x-moz-errormessage` 属性を削除しました (Firefox バグ 1513890)。独自の検証メッセージを実装するには、代わりに制約検証機能を使用してください。
### CSS

* スクロールアンカリングを、デスクトップ版 Firefox に実装しました (モバイル版は未実装です)。`overflow-anchor` プロパティを含みます (Firefox バグ 1305957)。
* 属性セレクター で、大文字・小文字の区別に関する修飾子 `s` をサポートしました (Firefox バグ 1512386)。
* いくつかの 論理的プロパティ ショートハンドと、フローに関係する border radius プロパティを実装しました:
    + `padding-block` および `padding-inline` (Firefox バグ 1519847)。
    + `margin-block` および `margin-inline` (Firefox バグ 1519944)。
    + `inset`、`inset-block`、`inset-inline` (Firefox バグ 1520229)。
    + `border-block-color`、`border-block-style`、`border-block-width`、`border-inline-color`、`border-inline-style`、`border-inline-width` (Firefox バグ 1520236)。
    + `border-block`、`border-inline` (Firefox バグ 1520396)。
    + `border-start-start-radius`、`border-start-end-radius`、`border-end-start-radius`、`border-end-end-radius` (Firefox バグ 1520684)。
* `overflow-inline` および `overflow-block` メディアクエリーを実装しました (Firefox バグ 1422235)。
* 仕様書で公表された規則に従って、`grid-template-columns` および `grid-template-rows` のアニメーションを実装しました (Firefox バグ 1348519)。
* テーブルのセルや列の幅で、パーセンテージを使用した `calc()` をサポートしました (Firefox バグ 957915)。
* `min-content` および `max-content` キーワードが、接頭辞なしで使用可能になりました (Firefox バグ 1322780)。これらは以下のプロパティに設定できます:
    + `width`
    + `height`
    + `flex-basis`
    + `min-width`
    + `max-width`
    + `min-height`
    + `max-height`
    + `min-block-size`
    + `min-inline-size`
    + `max-block-size`
    + `max-inline-size`
    + `block-size`
    + `inline-size`
### SVG

*変更なし。*

#### 廃止

* `xml:base` 属性のサポートを廃止しました (Firefox バグ 903372)。
### JavaScript

*変更なし。*

### API

#### API の追加と変更

* Release 版の Firefox 66 を公開した後すみやかに、音声の自動再生がデフォルトでブロックされます (Firefox バグ 1487844。ロールアウトについては Firefox バグ 1535667 をご覧ください)。この機能は、すべてのユーザーへ段階的に適用されます。

#### DOM

* `HTMLSlotElement.assignedElements()` メソッドを実装しました (Firefox バグ 1425685)。
* `TextEncoder.encodeInto()` メソッドを実装しました (Firefox バグ 1514664)。

#### DOM イベント

* `InputEvent.inputType` プロパティを実装しました (Firefox バグ 1447239)。
* `Window.event` および `Event.returnValue` プロパティ (元は IE の独自機能であり、互換性の理由でほかのブラザーもサポートしました) を、Firefox 66 で再導入しました。それぞれバージョン 63 や 64 で追加した後、互換性の問題で再び削除していました。
* バージョン 66 より、`keypress` イベントオブジェクトの `KeyboardEvent.keyCode` プロパティが 0 であるとき、値が `KeyboardEvent.charCode` と同じになります。逆に `charCode` が 0 であるときは、`keyCode` と同じ値になります。このミラーリング動作はほかのブラウザーと一致しており、これに関連する互換性の問題のほとんどが解決すると思われます。ただし 一部の JavaScript ライブラリーで、ブラウザー検出によって新たな問題が発生する可能性があります。仕様書の用語では、*split model* から *conflated model* に切り替えました (UI Event 仕様書の How to determine keyCode for keypress events をご覧ください)。

#### メディア、ウェブオーディオ、WebRTC

* 新しい AV1 動画コーデック を macOS および Windows (Intel プロセッサー用) で、デフォルトで有効にしました。Linux は Firefox 67 でサポートする予定です (Firefox バグ 1521181、Firefox バグ 1452146、Firefox バグ 1534814)。
* `MediaDevices` の `getDisplayMedia()` メソッド (`navigator.mediaDevices.getDisplayMedia()` として使用可能) を追加して、仕様書に一致させました。このメソッドは、スクリーンまたはスクリーンの一部を `MediaStream` として取得して、操作または共有できます (Firefox バグ 1321221)。
* スクリーンやウィンドウの内容を取得するための、Firefox 独自の `getUserMedia()` に基づくメソッドを最終的に非推奨にする取り組みの一部として、非標準の `mediaSource` 定数を値 `screen` および `window` と同等に扱うようになりました。どちらも、ユーザーが選択するスクリーンやウィンドウのリストを提供します (Firefox バグ 1474376)。
* ローカル出力の `RTCRTPStreamStats` (en-US) オブジェクトに `qpSum` (en-US) を追加しました。これは、ビデオトラックで送受信するすべてのフレームの量子化パラメーターの合計を表します。この値が高ければ、ストリームはより圧縮されていると考えられます (Firefox バグ 1347070)。
* 将来の Firefox で Feature Policy をサポートするための取り組みで、コンテンツに適切なオリジンが存在しない状況では `getUserMedia()` を使用できなくなりました。例えばサンドボックス化された `<iframe>`、ユーザーがアドレスバーに入力した `data` URL から呼び出した場合です。詳しくは MediaDevices.getUserMedia() ページの セキュリティ セクションをご覧ください (Firefox バグ 1371741)。

#### 廃止

* WebRTC の古い `PeerConnection.getStats()` メソッドと、これに関連付けられた型を削除しました (Firefox バグ 1328194)。
### ネットワーク

* `Accept` ヘッダーの既定値が `*/*` になりました (Firefox バグ 1417463)。
### セキュリティ

*変更なし。*

### プラグイン

*変更なし。*

### WebDriver conformance (Marionette)

#### API の変更点

* 新しい閲覧コンテキストを開く操作をサポートするため `WebDriver:NewWindow` を追加しました。ウィンドウまたはタブのいずれかを開くことができます (Firefox バグ 1504756)。
* 指定した要素が現在の閲覧コンテキストに含まれていない場合に、`WebDriver:SwitchToFrame` で `no such element` エラーが発生するようになりました (Firefox バグ 1517196)。
* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` が、仕様書に準拠しない `scriptTimeout` 引数をサポートしないようになりました。代わりに `WebDriver:SetTimeout` または `timeouts` 機能を使用してください (Firefox バグ 1510929)。
    + さらに、不定のスクリプトタイムアウトをサポートしました (Firefox バグ 1128997)。
* `WebDriver:SetWindowRect` が、応答でウィンドウの状態を返さないようになりました (Firefox バグ 1517587)。

#### バグ修正

* `WebDriver:TakeScreenshot` が、ビューポートの寸法に代わって `Document.documentElement` の `Element.clientWidth` および `Element.clientHeight` プロパティを使用するようになりました (Firefox バグ 1385706)。
* ウィンドウ操作コマンドがプラットフォームをまたいで確かに動作するようにするため、さまざまな修正を行いました (Firefox バグ 1522408, Firefox バグ 1478358, Firefox バグ 1489955)。
アドオン開発者向けの変更点
-------------

### API の変更点

#### メニュー

* `type` (en-US) が "bookmark" である拡張機能のメニュー項目が、ブックマークサイドバー (`Ctrl` + `B`) およびライブラリーウィンドウ (`Ctrl` + `Shift` + `B`) にも表示されるようになりました (Firefox バグ 1419195)。
### マニフェストの変更点

*変更なし。*

関連情報
----

* Firefox 66: The Sound of Silence
過去のバージョン
--------

* 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
* Firefox 36 for developers
* Firefox 35 for developers