Firefox 64 for developers
=========================

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

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

### 開発者ツール

* アクセシビリティインスペクターの情報バー が、ページ上のテキストや画像の色のコントラスト比に関する情報を表示するようになりました (Firefox バグ 1473037)。
* レスポンシブデザインモード で選択したデバイスが、セッションをまたいで保存されるようになりました (Firefox バグ 1248619)。
* ネットワークモニター で、トラッキング防止 (en-US) の影響を受ける可能性があるリソースに印をつけるようになりました (Firefox バグ 1333994)。
* ウェブコンソール で、コードの入力や評価の機能が向上しました:
    + コンソールの式の オートコンプリート が、大文字・小文字を区別しないようになりました (Firefox バグ 672733)。
    + bash のような reverse search によって コンソールの式の履歴 をたどれるようになりました (Firefox バグ 1024913)。
    + コンソールで 評価されたコード が、入力・出力ともに構文強調を行うようになりました (Firefox バグ 1463669)。
* JavaScript デバッガー のステップ実行の機能も向上しました:
    + ステップ実行中は 展開された変数 を維持するようになりました (Firefox バグ 1491471)。
    + 関数の ステップアウト で、戻り値をスキップするようになりました (Firefox バグ 923975)。

#### 廃止

* 開発ツールバー/ GCLI を削除しました (Firefox バグ 1429421)。
### HTML

*変更なし。*

### CSS

* CSS Scrollbars 仕様の機能をデフォルトで有効化しました (Firefox バグ 1492012)。
* `pointer:coarse` を含む、Interaction Media Features を実装しました (Firefox バグ 1035774)。`any-pointer` および `any-hover` の実装については、Firefox バグ 1483111 をご覧ください。
* `prefers-reduced-motion` メディア特性を Android 版 Firefox でサポートしました (Firefox バグ 1478505)。
* CSS の `<gradient>` 値で複数の color stop を持つ構文をサポートしました。例えば `yellow 25%, yellow 50%` を `yellow 25% 50%` と書くことができます (Firefox バグ 1352643)。
* `text-transform` プロパティで `full-size-kana` 値を受け入れるようになりました (Firefox バグ 1498148)。
* ウェブ互換性の問題を緩和するため、`-webkit-appearance` をサポートしました (Firefox バグ 1368555)。
* 上記の更新に関連して、Firefox 固有の `-moz-appearance` の大半の値を削除しました (Firefox バグ 1496720)。
* `<legend>` 要素で `display`: `list-item` をサポートしました (Firefox バグ 1486602)。
* `offset-path` で使用可能な SVG の `path()` がアニメーション可能になりました (Firefox バグ 1486094)。
* セレクターの羅列やグループに `-webkit-` 接頭辞を持つ疑似要素が含まれるとき、疑似要素がセレクターを無効化しないようになりました (詳しくは Firefox バグ 1424106、またこの機能の有効化について Firefox バグ 1486325 をご覧ください)。

#### 廃止

* `display` の非標準の値である `-moz-box` および `-moz-inline-box` が、ウェブコンテンツで使用できなくなりました (Firefox バグ 1496961)。
* 非標準の `::-moz-tree` 疑似要素 が、ウェブコンテンツで使用できなくなりました (Firefox バグ 1496961)。
* 設定項目 `layout.css.filters.enabled` を削除しました。CSS filters は無効化できません (Firefox バグ 1408841)。
* `overflow` の 2 値構文で block を 1 番目、inline を 2 番目に入れ替えた変更 (Firefox バグ 1481866) を元に戻しました (Firefox バグ 1492567)。理由は Bug 1481866 の comment 14 をご覧ください。
### SVG

*変更なし。*

### JavaScript

* `JSON.stringify` が正しくない Unicode 文字列を返すのを避けるため、TC39 Well-formed JSON.stringify 提案を実装しました (Firefox バグ 1469021)。
* Proxy 化した関数を `Function.prototype.toString``.call()` に渡すことが可能になりました (Firefox バグ 1440468)。
* `WebAssembly.Global` コンストラクターで、何も値を指定しない場合に型付きの値 0 を使用するようになりました。これは `DefaultValue` アルゴリズム で示されています (Firefox バグ 1490286)。
### API

#### DOM

* Fullscreen API に関して、いくつかの変更を施しました:
    + API の接頭辞を削除しました (Firefox バグ 1269276)。
    + `Element.requestFullscreen()` および `Document.exitFullscreen()` メソッドが、モード変更が完了したときに解決する `Promise` を返すようになりました (Firefox バグ 1188256、Firefox バグ 1491212)。
    + 以前は `fullscreenchange` および `fullscreenerror` イベントが始めに `Document` へ、次に `Element` へ発行されていました。これを逆にして、要素が始めにイベントを受けるようになりました。これは最新の仕様書や Google Chrome の動作に一致します (Firefox バグ 1375319)。
* WebVR API (1.1) を macOS で再び有効化しました (Firefox バグ 1476091)。
* `Window.screenLeft` (en-US) および `Window.screenTop` (en-US) を、それぞれ `Window.screenX` および `Window.screenY` の別名として実装しました (Firefox バグ 1498860)。
* `XMLHttpRequest.getAllResponseHeaders()` メソッドが、仕様書に従ってヘッダー名をすべて小文字で返すようになりました (Firefox バグ 1398718)。
* 古い `HTMLAllCollection` インターフェイスを、最近の 仕様書の更新 に従って更新しました (Firefox バグ 1398354)。
* プライバシー保護のため、`Navigator.buildID` で固定値のタイムスタンプが返るようになりました (Firefox バグ 583181)。
* 以下の `Document.execCommand()` UI 機能コマンドを、デフォルトで無効にしました (Firefox バグ 1490641):
    + `enableObjectResizing`
    + `enableInlineTableEditing`
    + `enableAbsolutePositionEditor`

#### Service workers

* `ServiceWorkerContainer.startMessages()` メソッドを実装しました (Firefox バグ 1263734)。

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

* `PannerNode.refDistance` (en-US)、`PannerNode.maxDistance` (en-US)、`PannerNode.rolloffFactor` (en-US)、`PannerNode.coneOuterGain` (en-US) プロパティが、受け入れ可能な範囲を超える値が設定されたときに、正しく例外を発生させるようになりました (Firefox バグ 1487963)。
* `RTCRtpSender.setParameters()` (en-US) で変更した `RTCRtpEncodingParameters` (en-US) の設定は、呼び出し中に更新されませんでした。これらが再ネゴシエーションなしで即座に更新するようになりました (Firefox バグ 1253499)。
* `RTCIceCandidateStats.relayProtocol` (en-US) を実装しました。これは `RTCIceCandidateStats.mozLocalTransport` (en-US) を標準化したものであり、こちらは非推奨になりました (Firefox バグ 1435789)。
* 自動利得制御 (AGC) をデフォルトで有効にしました。これは設定項目 `media.getusermedia.agc_enabled` で変更できます (Firefox バグ 1496714)。

#### 廃止

* ウェブ互換性の問題を緩和するために Firefox 63 で追加した `Window.event` プロパティで別の問題が発覚したため、設定 (`dom.window.event.enabled`) で制御するようにして、Release 版はデフォルトで無効化しました (Firefox バグ 1493869)。注記: これは実際には Firefox 63 のリリースサイクルの後期に実施しましたが、念のためここで言及します。
* `LocalMediaStream` インターフェイスと、その `stop()` メソッドを削除しました (Firefox バグ 1258143)。このメソッドは `LocalMediaStream` の非推奨化によって使用できなくなりました。全体のストリームを停止する方法については 映像ストリームの停止 セクションをご覧ください。
* `AudioStreamTrack` および `VideoStreamTrack` インターフェイスを削除しました。これらはしばらく前から非推奨でした (Firefox バグ 1377146)。この機能は `MediaStreamTrack` に統合されました。トラックは `kind` プロパティの値で、`audio` や `video` といった値で識別します。
### セキュリティ

* シマンテックの CA を失効させる計画を実装しました (Firefox バグ 1409257 を参照。詳しくは Mozilla's Plan for Symantec Roots の議論もご覧ください)。
* `Referrer-Policy` を、スタイルシートで読み込むリソースの制御で使用可能になりました (Firefox バグ 1330487)。詳しくは CSS との統合 をご覧ください。
### プラグイン

*変更なし。*

### WebDriver conformance (Marionette)

#### API の変更点

* `Marionette:`、`L10n:`、`Addon:` の接頭辞を持たない、非推奨のコマンドエンドポイント (`singeTap` を含む) を削除しました (Firefox バグ 1504478、Firefox バグ 1504940)。

#### バグ修正

* `WebDriver:PerformActions` で、`Shift` キーと合成したイベントが大文字にならない問題を修正しました (Firefox バグ 1405370)。
* コンテンツプロセス内のタブがナビゲーション中に複数回変化したとき、`WebDriver:Navigate` がハングアップする場合がある問題を修正しました (Firefox バグ 1504807)。
* パフォーマンスを向上させるため、および Firefox のメモリー使用量を削減するために、新しいタブやウィンドウがデフォルトで読み込むページを `about:newtab` から `about:blank` に変更しました (Firefox バグ 1506643)。
* さまざまなページで表示されて要素との対話を失敗させていた、コンテンツブロックを紹介するパネルをデフォルトで無効にしました (Firefox バグ 1488826)。
アドオン開発者向けの変更点
-------------

### API の変更点

#### メニュー

* 拡張機能で独自のコンテキストメニューを設定するために `contextmenu` DOM イベントから呼び出すことが可能な、`browser.menus.overrideContext()` API を新設しました。この API は、拡張機能が Firefox のすべてのデフォルトのメニュー項目を隠して、独自のコンテキストメニューの UI を提供することを可能にします。このコンテキストメニューは、拡張機能が提供する複数のトップレベルのメニュー項目で構成され、任意で別の拡張機能のタブやブックマークのコンテキストメニューを含むこともできます。詳しくは こちらのブログ記事 をご覧ください。
    + `browser.menus.overrideContext()` を実装しました (Firefox バグ 1280347)。
    + デフォルトのコンテキストメニューを隠すために使用できる `showDefaults: false` オプションを実装しました (Firefox バグ 1367160)。
    + `browser.menus.overrideContext()` が使用されていても、`moz-extension://` 文書 URL をマッチさせるために `documentURLPatterns` を使用できるようになりました。この方法は、独自のメニュー項目を特定の文書に限定させることを確実にできます (Firefox バグ 1498896)。
* `menus.create()` (en-US) および `menus.update()` (en-US) の新しい `viewTypes` プロパティを使用して、アドオンでコンテキストメニューを表示可能にするかを制限できるようになりました (Firefox バグ 1416839)。
* `menus.update()` (en-US) が、既存のメニュー項目のアイコンを更新できるようになりました (Firefox バグ 1414566)。
* メニュー項目がクリックされたとき、どのマウスボタンを使用したかを拡張機能で検出可能になりました。これは `menus.OnClickData` (en-US) の新しい `button` プロパティを使用して判断できます (Firefox バグ 1469148)。

#### ウィンドウ

* `windows.create()` (en-US) メソッドで新たに `cookieStoreId` オプションが使用可能になりました。これはウィンドウが開かれたときに作成されたすべてのタブで使用する `CookieStoreId` を指定します (Firefox バグ 1393570)。

#### プライバシー

* `privacy.websites` (en-US) の `cookieConfig` プロパティは、`behavior` プロパティを受け入れ可能なオブジェクトです。このプロパティが、新たな値 `reject_trackers` をとれるようになりました。これは、拡張機能にトラッキング Cookie を拒否するよう指示します (Firefox バグ 1493057).

#### devtools.panels API

* `devtools.panels.elements` (en-US) の `Sidebar.setPage()` メソッドをサポートしました (Firefox バグ 1398734)。
### マニフェストの変更点

* `page_action` マニフェストキーの新しいプロパティである `pinned` で、拡張機能をインストールする際にロケーションバーへページアクションをピン止めするかを制御できるようになりました (Firefox バグ 1494135)。
* Windows のネイティブマニフェストで、レジストリキーを始めに 32 ビットのレジストリビュー (Wow6432Node) で確認して、そのあとに "ネイティブ" のレジストリビューを確認します。アプリケーションで適切なビューを使用してください (Firefox バグ 1494709)。
* `chrome_settings_overrides` フィールドの `search_provider` オブジェクトが、新たに `suggest_url`、`suggest_url_post_params` (Firefox バグ 1486819)、 `search_url_post_params` プロパティを持てるようになりました。
関連情報
----

* Firefox 64.0, See All New Features, Updates and Fixes
過去のバージョン
--------

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