Firefox 57 (別名 Firefox Quantum) は、米国時間 2017 年 11 月 14 日にリリースされました。このページでは、開発者に影響する Firefox 57 の変更点をまとめています。

Firefox 57 === Firefox Quantum

Firefox 57 は、Firefox を徹底的に再構築してパフォーマンス、安定性、外見を大きく向上させることを目指す Firefox Quantum エンジニアリングプロジェクトにちなんで Quantum というリリース名を与えられました。Firefox 57 はこれらの改善点の一部をリリースする最初のバージョンであり、祝福を求めていました。

注記: このリリースの Quantum の特徴について詳しくは、Dan Callahan による記事 Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling をご覧ください。

Firefox's new parallel CSS engine、別名 Quantum CSS または Stylo はデスクトップ版の Firefox 57 でデフォルトで有効であり、モバイル版の Firefox は追って有効化します。多くのパフォーマンス向上は別として、開発者が何らかの大きな違いに気づくことがあってはいけません。Stylo には多くの小規模な機能差がありますが、Gecko で取り除くべき非標準の動作を修正するために実装したものです。このような差異は、適宜リファレンスのページやリリースノートに掲載します (Quantum CSS に関する補足 を参照)。

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

開発者ツール

変更なし。

HTML

CSS

Quantum CSS に関する補足

Quantum で以下の不具合を修正しました:

  • 以前の Gecko のスタイルシステムでは radial-gradient(circle gold,red) のような放射状のグラデーションが、circlegold の間にカンマがないため動作すべきではないにもかかわらず、動作していました (バグ 1383323)。
  • オフスクリーンの要素をオンスクリーンにアニメーションするときに遅延を指定すると、Gecko は Windows など一部のプラットフォームで再描画を行いません (バグ 1383239)。
  • Gecko では、<details> 要素で animation をアクティブにすると open 属性を使用して既定で開かせることができません (バグ 1382124)。
  • Gecko では、色を指定した text-shadow から色を指定しない text-shadow へ遷移する場合に transitions が動作しません (バグ 726550)。
  • Gecko ではアニメーションのフィリングをキャンセルする (例えば animation-fill-mode: forwards を設定) と、1 回だけですが同じ要素に設定したトランジションを発生させられます (詳しくは バグ 1192592 および こちらのテストケース をご覧ください)。一般的に、宣言的なアニメーションがトランジションを発生させるべきではありません。
  • Gecko では em 単位を使用するアニメーションが、アニメーションする要素の親で font-size を変更しても影響を受けませんが、実際は影響を受けるべきです (バグ 1254424)。
  • Gecko と Quantum CSS では font-size の継承が異なっており、Gecko では一部の言語設定で継承したフォントのサイズが想定より小さくなります (バグ 1391341)。
  • Gecko では @-moz-document 規則の domain() あるいは url-prefix() URL マッチング関数で解析するときに、URL トークンの解析と同じ仕組みを再使用します。Quantum CSS は同じ仕組みを使用せず、括弧や引用符を含む場合にトークンを無効とみなしません (バグ 1362333)。
  • Gecko では canvas 2D コンテキストの font の値としてシステムフォント (例えば menu) を設定すると、期待するフォントが返りません (何も返りません)。Quantum でこの不具合を修正しました (バグ 1374885)。
  • Gecko では、切り離されたサブツリー (例えば createElement() を使用して作成した、DOM に未挿入の <div>) を作成すると、サブツリーのルート要素がブロックレベル要素として設定されます。Quantum CSS では仕様書に従って、インラインとして設定します (バグ 1374994)。
  • Gecko では radial-gradient() の半径の構成要素として calc 式を使用すると、式が拒否されて値が無効になります (バグ 1376019)。
  • Gecko では calc(1*2*3) が正しく解析されません。Quantum CSS でこの不具合を修正しました (バグ 1379467)。
  • Quantum CSS では、calc() を仕様書で説明されているとおり全面的にサポートしています (バグ 1350857)。Gecko はそうではありません。
  • Gecko は ::before および ::after 疑似要素で、content プロパティの値が normalnone であっても疑似要素を生成する不具合があります。仕様書によると、このようにするべきではありません (バグ 1387931)。
  • Gecko は background-position プロパティで、異なる数の <position> 値を持つ 2 つの値の間 (例えば background-position: 10px 10px;background-position: 20px 20px, 30px 30px;) でトランジションを行えない不具合があります (バグ 1390446)。

SVG

変更なし。

JavaScript

API

新規 API

DOM

DOM イベント

変更なし。

メディアと WebRTC

  • SCTP メッセージの end-of-record (EOR) フラグを使用することにより、RTCDataChannel で任意のサイズ (256kiB が相互運用性が高いのですが、最大 1GiB まで) のメッセージをサポートしました。詳しくは Understanding message size limits in Using WebRTC data channels をご覧ください (バグ 979417)。
    Firefox は、複数のソースの SCTP メッセージを多重化する機能を提供する SCTP ndata プロトコルが未サポートですので、大きなデータオブジェクトを送信すると他のすべての SCTP 通信で著しい遅延が発生する可能性があります。Firefox の ndata サポートの実装および展開の進捗を追跡するには、バグ 1381145 をご覧ください。
  • RTCDataChannel.send() メソッドで、送信しようとしたメッセージのサイズが受信側の ユーザーエージェント と互換性がない場合に TypeError 例外を発生できるようになりました (これは バグ 979417 の一部として実装しました)。
  • 録画中に発生した問題を報告するために送信される error イベントを一般的なイベントから MediaRecorderErrorEvent 型にするため、MediaStream Recording API を更新しました。
  • OfflineAudioContext のコンストラクターで引数のリストに加えてオブジェクトを指定可能になったため、関連文書を更新しました (バグ 1388591)。

セキュリティ

  • resource:// URL が情報を漏えいしないようになりました (バグ 863246)。
  • Data URI のオリジンが、ナビゲーションの責任がある設定オブジェクトのオリジンを継承するのではなく、一意の opaque origin として扱うようになりました (バグ 1324406)。

プラグイン

変更なし。

その他

  • Firefox の ヘッドレスモード に、コマンドラインからウェブサイトのスクリーンショットを直接取得することを可能にする -screenshot フラグを追加しました (バグ 1378010)。

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

HTML

  • さまざまなウェブ互換性の問題があるため、Firefox 57 で <link rel="preload"> (Preloading content with rel="preload" をご覧ください) を無効化しました (バグ 1405761)。キャッシュ不可のリソース向けに改良したバージョンを Firefox 58 に搭載する予定です。

API

SVG

変更なし。

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

Firefox 57 より、XPCOM ベースのアドオンのサポートを全面的に廃止します。すべての拡張機能は新しい ブラウザー拡張機能 (WebExtensions としても知られています) への移行が必要であり、そうしなければ動作しません。

WebExtensions

以下の API を追加または拡張しました:

関連情報

過去のバージョン

ドキュメントのタグと貢献者

 このページの貢献者: yyss
 最終更新者: yyss,