Firefox 52 for developers
Firefox 52 は、米国時間 2017 年 3 月 7 日にリリースされました。このページでは、開発者に影響する Firefox 52 の変更点をまとめています。
ウェブ開発者向けの変更点一覧
>開発者ツール
HTML
rel="noopener"リンク種別 を実装しました (Firefox バグ 1222516)。
CSS
新機能
-
:focus-within擬似クラスを追加しました (Firefox バグ 1176997)。 -
<button>要素内でdisplay:flex/gridおよび段組みレイアウトをサポートしました (Firefox バグ 984869)。 -
数値で表した色と currentcolor との間の補完処理を実装しました (Firefox バグ 1299741)。
-
およびjustify-content: space-evenly向けに flexbox レイアウトを実装しました (Firefox バグ 1235922)。align-content: space-evenly -
CSS
mask/clip-pathでサブピクセルアンチエイリアシングをサポートしました (Firefox バグ 1305259)。 -
CSS Text 3 の、区分分断の変換規則を実装しました (Firefox バグ 1081858)。
-
SVG コンテンツで、(
clip-pathプロパティで適用する) 基本的な図形のクリッピングをサポートしました (Firefox バグ 1246741)。 -
align-selfおよびjustify-self向けのフレックスボックスレイアウトを実装しました (Firefox バグ 1221524)。 -
touch-actionプロパティを、すべてのプラットフォームにおいてデフォルトで有効にしました。(詳しくは intent to ship mail #1 および intent to ship mail #2 をご覧ください) -
Flexbox の
align-contentの処理および単一ラインのサイズ調整が、ラインの数ではなくflex-wrapに依存するようになりました (Firefox バグ 1090031)。 -
補間処理ができないプロパティのアニメーションに CSS アニメーションを使用できるようになりました (Firefox バグ 1064937)。
-
baseline|last-baselineを[ first | last ]? baselineに変更しました (Firefox バグ 1313254). -
block-axis について、
left/rightの使用値をstartにしました (Firefox バグ 1221565)。 -
包含ブロックの長さが不定である、flexible tracks を伸長する際に、最小サイズや最大サイズを重視するようになりました (Firefox バグ 1309407)。
-
mask-positionおよびmask-repeatの初期値を、それぞれ0% 0%およびrepeatに変更しました (Firefox バグ 1308963)。 -
CSS の
<color>値に対していくつか変更を施しました (Firefox バグ 1295456):rgba()およびhsla()を、rgb()およびhsl()の別名として再定義しました。どちらも同じ引数構文を受け入れます。rgb() およびhsl()が、アルファ値 (省略可能) を受け入れるようになりました。例:rgb(255, 0, 0, 0.5)- 色関数が、カンマ区切りではなく空白区切りの引数を受け入れるようになりました。例:
rgb(255 0 0 / 0.5) - アルファ値を、数値だけでなくパーセンテージでも指定できるようになりました。例:
rgb(255 0 0 / 50%) hsl()色の色相を、数値だけでなく角度でも指定できるようになりました。例:hsl(120deg, 60%, 70%)
-
Firefox の子インデックス付き擬似クラス (
:nth-child,:first-childなど) の実装が CSS selectors level 4 仕様に合わせて更新されました。これらの擬似クラスは親要素の子ではなく、適切な兄弟要素に一致するようになりました。これにより、親要素がない場合や、親要素がElementでない場合にも、これらの擬似クラスを使用することができるようになりました (Firefox バグ 1300374.
CSS グリッド
- CSS グリッド を実装しました。
変更および削除
- CSS3 マルチカラム関連プロパティの接頭辞を削除しました (また、
-moz接頭辞付きのプロパティを別名として再追加しました) (Firefox バグ 1300895)。 - 無名のフレックスアイテム内で、フレックスコンテナーの絶対配置の子を折り返さないようになりました (Firefox バグ 1269045)。
- グリッドコンテナーのベースラインを実装しました。 (Firefox バグ 1151204)。
- スタイルシステムから、
<flex>値を最小値として使用する箇所を削除しました (Firefox バグ 1305244)。 - 設定項目
layout.css.masking.enabledを削除しました (Firefox バグ 1308239)。 - 独自の
-moz-images-in-menusおよび-moz-images-in-buttonsメディア特性を削除しました (Firefox バグ 1302157)。 - 色のプロパティから
-moz-use-text-colorを削除しました。代わりにcurrentcolorを使用してください (Firefox バグ 1306214)。 - [css-grid] グリッドアイテムに 'max-width' を設定するとテキストがはみ出す問題を修正しました (Firefox バグ 1330380)。
JavaScript
新機能
- 非同期関数の対応を追加しました。
async function宣言、async function式、awaitキーワードを追加しました (Firefox バグ 1185106)。 - 関数に対して、ES2017 の trailing commas を実装しました (Firefox バグ 1303788)。
- rest parameter の構造分解 を実装しました (Firefox バグ 1243717)。
- べき乗演算子 (**) をデフォルトで有効にしました (Firefox バグ 1291212)。
DateTimeFormatやDate.toLocaleString()といった日付関連の API のtimeZoneオプションで、IANA タイムゾーン名称 が使用可能になりました (Firefox バグ 837961)。
変更および削除
- 配列の構造分解で、末尾のカンマを持つ残余引数を使用した場合に
SyntaxErrorが発生するようになりました (Firefox バグ 1041341)。 - オブジェクトの構造分解 で、
__proto__プロパティの重複が可能になりました (Firefox バグ 1204024)。 Array.prototype.toLocaleString()を、 Intl API の引数localesおよびoptionsに対応するように再実装しました (Firefox バグ 1130636)。TypedArrayコンストラクターで、新しい型付き配列を生成するため iterable を受け入れるようになりました (Firefox バグ 1232266)。TypedArray.from()、TypedArray.of()、TypedArray.prototype.filter()、TypedArray.prototype.map()、TypedArray.prototype.slice()、TypedArray.prototype.subarray()が、値thisが有効な型付き配列のコンストラクターであることを要求するようになりました (Firefox バグ 1122396)。- 非標準の
ArrayBuffer.slice()メソッド (ArrayBuffer.prototype.slice()ではありません) が非推奨になり、使用すると警告が発生します (Firefox バグ 1316913)。 - Unicode コードポイントエスケープ が、識別子として使用可能になりました (例:
let \u{61} = 123。Firefox バグ 1314037 をご覧ください)。 - ES2015 に従って、
\u2e2fおよびⸯを識別子として使用したときに例外が発生するようになりました。詳しくは Firefox バグ 917436 および Firefox バグ 1197230 をご覧ください。
WebAssembly
- Gecko で WebAssembly をサポートしました。
DOM
- 選択 API を全面的に提供しました。新たに
selectstartおよびselectionchangeイベントに対応しました (Firefox バグ 1309612)。 Event.composedプロパティをサポートしました。この論理値は、イベントがシャドウルートを経由して標準 DOM に伝達できるかを示します (Firefox バグ 1292063)。- HTML 要素、
<svg>要素、<math>要素に限り、Element.requestFullscreen()を呼び出してフルスクリーンモードに移行できるようになりました (Firefox バグ 1305928)。 - Touch event を、Windows デスクトップ環境で再び有効化しました (Firefox バグ 1244402)。これはいくつかの主要サイトで問題が発生したため、Firefox 24 で無効化していました (Firefox バグ 888304)。
focusinおよびfocusoutイベントを実装しました (Firefox バグ 687787)。WorkerGlobalScope.isSecureContextプロパティを実装しました (Firefox バグ 1269052)。- ウェブアプリマニフェスト の install イベントを
appinstalledに改名しました。サービスワーカーインストールイベント(oninstallをご覧ください)との混同を防ぐためです。詳しくは Firefox バグ 1309099 をご覧ください。 - ドラッグ & ドロップ API の
DataTransfer.typesプロパティが、DOMStringListではなく文字列の凍結された配列を返すようになりました (Firefox バグ 1298243)。 loadstartおよびloadendイベントが<img>要素で発生するようになりました(Firefox バグ 1264769)。- 通知 API の
Notification.requireInteractionを実装しました (Firefox バグ 862395)。 Window.open()メソッドで、noopenerウィンドウ機能特性 が使用可能になりました (Firefox バグ 1267339)。これは、rel="noopener"リンク種別の機能を反映します。- ウェブコンポーネント API の
CustomElementRegistry.get()メソッドを実装しました (Firefox バグ 1275838)。 - Pointer Event の
widthおよびheightプロパティのデフォルト値が 1 になりました (Firefox バグ 1304315)。 - 最新の仕様書 における変更点を含むように、File and Directory Entries API を更新しました (詳しくは Firefox バグ 1284987 をご覧ください)。
UIEventで定義されていたcancelBubbleプロパティが、Eventインターフェイスで定義するようになりました。詳しくは Firefox バグ 1298970 をご覧ください。
変更および削除
- 通話を制御する Firefox OS の API (Contacts、MobileConnection、Icc など) を削除しました (Firefox バグ 1311206)。
- Firefox OS の
Identityインターフェイスを削除しました (Firefox バグ 1309030)。 - Firefox OS の Voicemail API (
MozVoicemail、MozVoicemailEvent、MozVoicemailStatus、Navigator.mozVoicemail) を削除しました (Firefox バグ 1309723)。 - Firefox OS の Cell Broadcast API (
MozCellBroadcast、MozCellBroadcastEvent、MozCellBroadcastMessage、Navigator.mozCellBroadcast) を削除しました (Firefox バグ 1306772)。 - Firefox OS の TV broadcast 関連 API を削除しました (Firefox バグ 1306778)。
- Firefox OS の FM Radio API (
FMRadio、Navigator.mozFMRadio) を削除しました (Firefox バグ 1306779)。
サービスワーカーと Fetch
Headers.getAll()を削除しました。またHeaders.get()が、指定したヘッダーの (最初の値だけではなく) すべての値を取り出すようになりました (Firefox バグ 1278275)。これは、最新の Fetch API 仕様の更新内容に準拠しています。
Web Audio API
ConstantSourceNodeインターフェイスを追加しました。これは、すべて同じ値であるサンプルのストリームを常に出力するオーディオソースを表します。複雑なオーディオフローを単純化するためにこのインターフェイスをどのように使用するかを示す例を、Controlling multiple parameters with ConstantSourceNode でご覧ください。
WebRTC
- ICE 接続が一時的に不通になったとき、
RTCPeerConnection.iceConnectionStateプロパティが"disconnected"に設定されるようになりました。これは一時的な問題で間もなく解決する見込みであり、後に接続が"connected"状態に戻ることを示します (Firefox バグ 852665)。 MediaDevicesのdevicechangeイベントと、これに対応するハンドラーは、 Firefox 51 で Mac に限り実装してデフォルトで無効化していましたが、Windows および Linux でも実装して、すべてのプラットフォームでデフォルトで有効にしました。MediaStream.activeプロパティをサポートしました。これはストリームで少なくとも 1 つのトラックが現在再生中であるかを示す、読み取り専用の Boolean 型プロパティです。- Firefox 52 より前のバージョンでは
MediaStreamTrack.stop()メソッドで、ローカルトラック (すなわち、getUserMedia()で取得したトラック) しか停止できませんでした。Firefox 52 で、WebRTC 接続と関連付けられたMediaStream、ウェブオーディオ API ストリーム、CanvasCaptureMediaStreamなど、さまざまなトラックを停止できるようになりました。 - 以前は Firefox のイベントループによってひとつのパスで
TextTrackのmodeを繰り返し変更すると、複数のchangeイベントが親メディア要素のtextTracksで指定されたTextTrackListに発行されていました。Firefox 52 から、ひとつのイベントに統合するようになりました (Firefox バグ 882674)。
Audio/Video/Media
<audio>または<video>要素を扱っていてエラーが発生したときにHTMLMediaElement.errorで指定されるMediaErrorオブジェクトが、messageプロパティを持つようになりました。これは、発生したエラーの具体的な説明を提供します。この文字列はエラーの事象について詳細情報を提供して、なぜ誤っているかの見識を与えます (Firefox バグ 1299072)。このフィールドは Firefox 51 から nightly ビルドに含まれていましたが、release を含むすべてのビルドで有効化しました。
その他の API
- Firefox 50 で追加した (ただし常にエラーを返す)
FileSystemFileEntry.createWriter()メソッドを削除しました (Firefox バグ 1315185)。 - Firefox OS 独自の Apps installation/management API を、プラットフォームから削除しました (Firefox バグ 1261019)。
- Firefox OS 独自の Web Telephony API を、プラットフォームから削除しました (Firefox バグ 1309719)。
- Firefox OS 独自の Web Bluetooth API を、プラットフォームから削除しました (Firefox バグ 1310020)。
- Battery Status API が、chrome/特権付きコードに限り使用可能になりました (Firefox バグ 1313580)。
ImageBitmapRenderingContext.transferImageBitmap()をImageBitmapRenderingContext.transferFromImageBitmap()に改名しました (Firefox バグ 1304767)。mozDashおよびmozDashOffsetメンバーを、CanvasRenderingContext2Dから削除しました (Firefox バグ 931389)。
HTTP
Referrer-Policyヘッダーでsame-origin、strict-origin、strict-origin-when-cross-originディレクティブをサポートしました (Firefox バグ 1276836)。script-srcのように、'strict-dynamic'source expression をContent-Security-Policyのディレクティブでサポートしました (Firefox バグ 1299483)。- Strict Secure Cookies specification に従って、安全ではないサイト (
http:) が "secure" ディレクティブで Cookie を設定する ことができなくなりました (Firefox バグ 976073)。 - HTTP/2 ヘッダー圧縮方式 HPACK の最大テーブルサイズを 4 KB から 64 KB に拡張しました (Firefox バグ 1296280)。
Large-Allocationヘッダーを追加しました (Firefox バグ 1304140)。
SVG
- SVG ドキュメントは、SVGDocument に代わり
XMLDocumentインターフェイスを使用して表すようになりました。これは SVG 2 仕様で変更されました。
セキュリティ
- ログインページ (すなわち
<input type="password">フィールドを含むページ) でログイン情報が安全でない方法で送信されると思われる場合に、Firefox はユーザーに警告するため、ページ内のパスワードフィールドの下に警告メッセージを表示します (Firefox バグ 1319119)。また、安全でないログインフォームではオートフィルが無効になります (Firefox バグ 1217152)。詳しくは 安全でないパスワード をご覧ください。 - SHA-1 SSL 証明書のサポートを廃止しました。SHA-1 証明書を使用する安全なページに移動すると、
Untrusted Connectionエラーが発生します (Firefox バグ 1330043)。
プラグイン
Flash を除くすべての NPAPI プラグインのサポートを廃止しました。Flash の使用も将来、段階的に廃止します。
アドオン開発者と Mozilla 開発者向けの変更点
>WebExtensions
新規 API:
sessionsAPItopSitesAPIomniboxAPIruntime.onInstalledおよびruntime.onStartupイベント- webRequest の非同期イベントハンドラー
bookmarks.onMoved、bookmarks.onCreated、bookmarks.onChangedイベント- commands マニフェストキー の
_execute_browser_actionおよび_execute_page_action - content_scripts マニフェストキーの
match_about_blank
インターフェイス
- ドロップされた複数のアイテムを扱うための
nsIDroppedLinkHandler.dropLinksメソッドおよびnsIDroppedLinkItemインターフェイスを追加しました (Firefox バグ 92737)。
XUL
tabbrowser.loadTabs(uris, params)メソッドのオーバーロードを追加しました (Firefox バグ 92737)。browser.droppedLinkHandler関数のシグネチャを変更しました (Firefox バグ 92737)。
過去のバージョン
- 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
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers