Firefox 44 for developers
Firefox の最新の開発者向け機能を試すには、 Firefox Developer Edition をインストールしてください。Firefox 44 は、米国時間 2016 年 1 月 26 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者、アドオン開発者にとっても有用な主な変更点を挙げています。
ウェブ開発者向けの変更点一覧
開発者ツール
HTML
<link rel="prefetch">が、crossorigin属性に従うようになりました (Firefox バグ 1214819)。
CSS
position: fixed;が、常に新たな重ね合わせコンテキストを生成するようになりました (Firefox バグ 1179288)。unicode-range(en-US) の対応を、既定で有効にしました (Firefox バグ 1119062)。- CSS 書字方向の実験的な実装を更新して、最新の仕様を反映しました。
text-orientationプロパティの値sidewaysを実装して、sideways-rightをこの値の別名にしました (Firefox バグ 1193488)。sideways-rlおよびsideways-lrの値をwriting-modeプロパティに実装しました (Firefox バグ 1193488 および Firefox バグ 1193519)。
- 非標準のプロパティ
-moz-math-displayおよび-moz-window-shadowは、ウェブコンテンツで使用できなくなりました (Firefox バグ 1207002、Firefox バグ 1211040、Firefox バグ 1212607)。 font-styleで、obliqueとitalicの両方を使用できる場合は、両者を区別するようになりました (Firefox バグ 543715)。- 未対応であるにもかかわらず
@page/marks、orphans、page(en-US)、size、widowsの各プロパティがパースされ、@supportsで誤って対応済みであると報告していました。この問題を修正してパースしないように、また対応済みとしないようになりました (Firefox バグ 1215702)。 - 内部で使用する値
-moz-mac-unified-toolbarを、appearanceプロパティで使用できる値から外しました (Firefox バグ 1206468)。 - いくつかの
-webkit接頭辞付きプロパティおよび値を、ウェブ互換性のために対応しました。設定項目layout.css.prefixes.webkitで制御しており、既定値はfalseです (Firefox バグ 837211)。-webkit-animation-webkit-animation-delay-webkit-animation-direction-webkit-animation-duration-webkit-animation-fill-mode-webkit-animation-iteration-count-webkit-animation-name-webkit-animation-play-state-webkit-animation-timing-function-webkit-text-size-adjust-webkit-transform-webkit-transform-origin-webkit-transform-style-webkit-transition-webkit-transition-delay-webkit-transition-duration-webkit-transition-property-webkit-transition-timing-function-webkit-border-radius-webkit-border-top-left-radius-webkit-border-top-right-radius-webkit-border-bottom-left-radius-webkit-border-bottom-right-radius-webkit-appearance-webkit-background-clip-webkit-background-origin-webkit-background-size-webkit-border-image-webkit-box-shadow-webkit-box-sizing-webkit-user-select-webkit-linear-gradient()Firefox バグ 1210575-webkit-radial-gradient"()Firefox バグ 1210575-webkit-repeating-linear-gradient()Firefox バグ 1210575-webkit-repeating-radial-gradient()Firefox バグ 1210575
JavaScript
新規 API
Symbol.toPrimitive、Symbol.prototype[@@toPrimitive]、Date.prototype[@@toPrimitive]を実装しました (Firefox バグ 1054756)。
変更点
- グローバルレベルにおける
letおよびconstのバインディングを、ES2015 に準拠させました。Firefox バグ 589199 およびブログ記事 "Breaking changes in let and const in Firefox Nightly 44" をご覧ください。また、letが既定でウェブ JavaScript (厳格モードおよび非厳格モード)で使用できるようになり、バージョンのオプトインが不要になりました (Firefox バグ 932517)。 - 型付き配列 (
Int8ArrayやArrayBufferなど) のコンストラクターをnew演算子をつけずに関数として呼び出した場合に、ES6 仕様に従ってTypeErrorが発生するようになりました (Firefox バグ 980945、Firefox バグ 1214936)。 RegExpのスティッキーフラグが、ES2015 標準の anchored sticky regular expressions に従うようになりました (Firefox バグ 773687)。- JavaScript シェル (SpiderMonkey の REPL) の既定 JS バージョンが、ウェブ互換の JS バージョンになりました (JS1.7 以降ではありません) (Firefox バグ 1192329)。
廃止
- 非標準の
letブロックを廃止しました (Firefox バグ 1167029)。 - 非標準かつ非推奨である
Object.prototype.__noSuchMethod__プロパティを削除しました (Firefox バグ 683218)。
インターフェイス/API/DOM
DOM & HTML DOM
- 既存のサイトとの互換性を確保するため、
Document.charsetをDocument.characterSetの別名として実装しました (Firefox バグ 647621)。 - ウェブページから Sherlock プラグインをインストールすることを可能にする
window.sidebar.addSearchEngine()メソッドの対応を廃止して、ウェブコンソールに警告を出力するようになりました (Firefox バグ 862148)。 - 望まないポップアップに対抗するため、対話がないページでは
beforeunloadイベントで要求されたプロンプトを表示しないようになりました (Firefox バグ 636905)。 - 非推奨メソッド
MessageEvent.initMessageEvent()を、後方互換性のために再実装しました (Firefox バグ 949376)。 - 廃止した
DocumentType.internalSubsetプロパティを削除しました (Firefox バグ 801545)。 - 既存のサイトとの互換性を確保するため
Window.orientation(en-US) プロパティ、Window.onorientationchangeプロパティおよびorientationchangeイベントを実装しました (Firefox バグ 920734)。 - 明示的に全画面表示を要求した
<iframe>は、暗黙的に全画面表示が解除されないようになりました (Firefox バグ 1187801)。 - イベント
mouseover,mouseout,mouseenter,mouseleave,pointermove,pointerover,pointerout,pointerenter,pointerleaveが、無効化したフォーム要素で発生するようになりました (Firefox バグ 218093)。 - 相互運用性を高めるため、
Element.webkitMatchesSelector()メソッドを追加しました (Firefox バグ 1216193)。 - 仕様書に合致させるため、
Document.createAttribute()は入力内容を小文字に変換するようになりました (Firefox バグ 1176313)。 Window.open()の非標準機能であるdialogはウェブコンテンツで使用できなくなりました。拡張機能や chrome 特権を持つコードでは引き続き使用可能です (Firefox バグ 1095236)。
Canvas
OffscreenCanvasAPI の実験的な実装を追加し、レンダリングコンテキスト (WebGL など) がウェブワーカー内で実行することができるようになりました。この実験的な API を使用するには、about:config でgfx.offscreencanvas.enabledをtrueに設定してください (Firefox バグ 709490)。この API に含まれるものは以下のとおりです。OffscreenCanvasインターフェイスHTMLCanvasElement.transferControlToOffscreen()WebGLRenderingContext.commit()- この API を有効にすると、いくつかの WebGL インターフェイスもワーカーで使用可能になりました。
WebGL
- Uniform Buffer Objects を実装しました (Firefox バグ 1048747)。
IndexedDB
IDBIndex.getAll()(en-US) およびIDBIndex.getAllKeys()(en-US)、それに反対側のIDBObjectStoreを既定で有効にしました (Firefox バグ 1196841)。
サービスワーカー
ServiceWorkerMessageEventおよびExtendableMessageEventインターフェイスを実装しました (Firefox バグ 1143717 および Firefox バグ 1207068)。Headersオブジェクトが組イテレーターに対応しました。すなわち、Headers.entries(),Headers.keys(),Headers.values()の各メソッドが利用できるようになりました。Symbol.iteratorも既定のイテレーターを返すようになりました (Firefox バグ 1108181)。XMLHttpRequestAPI がサービスワーカーで無効化されました (Firefox バグ 931243)。FetchEventインターフェイスがExtendableEventを継承するようになり、ExtendableEvent.waitUntil()メソッドにアクセスできるようになりました (Firefox バグ 1214772)。- 仕様書の最新の変更に従い、
FetchEvent.clientが削除されました (Firefox バグ 1218135)。 - 最新の仕様書に一致するように、
ServiceWorkerContainer.onreloadpageが削除されました。 (Firefox バグ 1218139). onbeforeevictedおよびonevictedイベントハンドラーは、仕様書に準拠していなかったので削除されました。将来的に再導入される予定ですが、削除することで期待通りの機能検出が可能になります (Firefox バグ 1218142)。FetchEvent()コンストラクターで、isReloadが options 辞書に存在しなかった場合の既定値がfalseになりました (Firefox バグ 1216401)。Client.frameTypeプロパティが正しいインターフェイスに実装されました。以前はWindowClientにありました (Firefox バグ 1218146)。- AppCache がページをオフラインに対応させるために使用された場合、コンソールに警告メッセージを表示し、開発者にサービスワーカーを使用するよう助言するようになりました (Firefox バグ 1204581)。
- Gecko で、サービスワーカーが既定で有効化されました。
WebRTC
- WebRTC インターフェイスの接頭辞が外されました (Firefox バグ 1155923)。具体的には、
mozRTCPeerConnectionがRTCPeerConnectionになりました。mozRTCIceCandidateがRTCIceCandidate(en-US) になりました。mozRTCSessionDescriptionがRTCSessionDescriptionになりました。
RTCDataChannel.bufferedAmountLowThreshold(en-US) プロパティおよびbufferedamountlow(en-US) イベントを実装しました (Firefox バグ 1178091)。RTCPeerConnection.canTrickleIceCandidates属性を追加して、非標準メソッドRTCPeerConnection.updateIce()を削除しました (Firefox バグ 1209744)。MediaStreamインターフェイスでMediaStream.addTrack()およびMediaStream.removeTrack()(en-US) メソッドに対応しました (Firefox バグ 1103188)。MediaStream()コンストラクタを実装しました (Firefox バグ 1070216)。RTCOfferOptions(en-US) の、非標準である制約的なオプションリストの対応を廃止しました。
新規 API
- Workers での Canvas API を実験的に実装しました。
OfflineCanvasおよびHTMLCanvasElement.transferControlToOffscreen()が使用できます。設定項目gfx.offscreencanvas.enabledで制御しており、現在は既定で無効化しています (Firefox バグ 709490)。 - Web Speech API の一部である Text2Speech API で、OS X のバックエンドに対応しました。ただし、既定で無効化しています (Firefox バグ 1003452)。
その他
URLSearchParamsオブジェクトで組イテレーターに対応しました。URLSearchParams.entries()、URLSearchParams.keys()、URLSearchParams.values()の各メソッドを使用できます。またSymbol.iteratorは、既定のイテレーターを返すようになりました (Firefox バグ 1085284)。FormDataオブジェクトで組イテレーターに対応しました。FormData.entries()、FormData.keys、FormData.values()の各メソッドを使用できます。またSymbol.iteratorは、既定のイテレーターを返すようになりました (Firefox バグ 1127703)。XMLHttpRequest.send()を HTML 文書で使用したとき、application/xmlに代わりtext/htmlを使用するようになりました (Firefox バグ 918771)。- 音声合成 (text-to-speech) を Mac および Linux 向けのデスクトップ版 Firefox に実装しました。ただし、
about:configのmedia.webspeech.synth.enabledフラグで無効化しています (Firefox バグ 1003452、Firefox バグ 1003464)。詳しくは Web Speech API をご覧ください。 <frame>または<object>の内部にある要素は、全画面表示できないようになりました (Firefox バグ 1212299)。- WOFF フォントのサニタイズ処理を、少々強化しました。誤りがあるフォントをより多く拒否するようになりましたが、 Firefox 46 でやや緩和しました (Firefox バグ 1193050 および Firefox バグ 1244693)。
MathML
変更なし。
SVG
変更なし。
Audio/Video
変更なし。
HTTP
- Brotli アルゴリズムに対応しました。また、
Accept-EncodingおよびContent-Encodingヘッダーで値brに対応しました (Firefox バグ 366559 および Firefox バグ 1211916)。 - 改行 (
'/n') を含む HTTP/2 ヘッダーについて、HTTP/1 とは異なり仕様書で許可されていないため、誤って対応していた箇所を削除しました (Firefox バグ 1197847)。
ネットワーク
変更なし。
セキュリティ
- Beta および Release 版のブラウザーでも、RC4 が既定で無効になりました (Firefox バグ 1201025)。また、ホワイトリストが既定で空になりました (Firefox バグ 1215796)。
アドオン開発者と Mozilla 開発者向けの変更点
インターフェイス
変更なし。
XUL
変更なし。
JavaScript コードモジュール
- Sqlite.jsm で
LIKEに対応しました (Firefox バグ 1188760)。 - Snackbars.jsm モジュールを Android 版 Firefox に追加しました (Firefox バグ 1215026)。
XPCOM
nsIDOMWindowインターフェイスが空になりました。存在していたアイテムは使用されない、他のインターフェイスに移転、あるいは C++ に限り使用するものになりました。C++ コードから利用できるアイテムは、nsPIDOMWindow インターフェイスに存在しています (Firefox バグ 1216401)。
その他
- Firefox 44 での大幅な変更 (bug 1202902) により、cfx でパックしたアドオンが動作しなくなります。再びアドオンが互換性を持つようにするために、jpm を使用してください。 cfx から jpm に移行する手順はこちらに記載しています。
過去のバージョン
- 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
- Firefox 20 for developers
- Firefox 19 for developers
- Firefox 18 for developers
- Firefox 17 for developers
- Firefox 16 for developers
- Firefox 15 for developers
- Firefox 14 for developers
- Firefox 13 for developers