Firefox 35 開発者向けリリースノート
Firefox 35 は、米国時間 2015 年 1 月 13 日にリリースされました。この記事では、ウェブ開発者だけでなく、Firefox および Gecko の開発者、アドオン開発者にも有益な主な変更点を掲載しています。
ウェブ開発者向けの変更点一覧
>開発者ツール
ハイライト:
CSS
mask-typeプロパティをデフォルトで有効にしました (バグ 1058519)。filterプロパティをデフォルトで有効にしました (バグ 1057180)。@font-faceアットルールで WOFF2 フォントに対応しました (バグ 1064737)。symbols()関数記法に対応しました (バグ 966168)。- CSS Font Loading API を実装しました (バグ 1028497)。
- コンボボックスで
-moz-appearanceに値noneを指定すると、ドロップダウンボタンを表示しないようになりました (バグ 649849)。 - 他ブラウザーに合致させるため、プロパティへのアクセス手段である
element.style["css-property-name"]を追加しました (バグ 958887)。
HTML
JavaScript
-
let宣言の「一時的なデッドゾーン」を実装しました。ES2015 のletのセマンティクスに合わせて、以下の状況ではエラーが発生します。ニュースグループでの発表や バグ 1001090 もご覧ください。- 関数本体の同一スコープ内で、
letを使用して既存の変数や引数を再度宣言すると構文エラーになります。 - 関数本体で
letを使用して宣言した変数を、その宣言に到達して評価される前に使用すると、実行時エラーが発生します。
- 関数本体の同一スコープ内で、
-
最近の仕様の変更に合致するよう、ES2015 の
Symbols(Nightly チャンネルのみ有効) を更新しました (バグ 1042602):String(Symbol("1"))でTypeErrorが発生しないようになりました。代わりに文字列 ("Symbol(1)") が返ります (バグ 1058396)。
-
TypedArray のさまざまなコンストラクターが
[[Prototype]]として、ES2015 で%TypedArray%と示されている単一の関数を持つようになりました (しかし、他には直接公開されません)。それぞれの型付き配列のプロトタイプは、%TypedArray%.prototypeから継承します。(%TypedArray%および%TypedArray%.prototypeは、それぞれFunction.prototypeおよびObject.prototypeから継承しますので、型付き配列のコンストラクターやインスタンスはこれらのオブジェクトに存在するプロパティを持ちます) 型付き配列関数のプロパティは%TypedArray%.prototype上に存在して、型付き配列で動作するようになります。詳しくは TypedArray や バグ 896116 をご覧ください。 -
ES2015 の、オブジェクトリテラルを使用して行うプロトタイプ変更を実装しました (バグ 1061853)。
- オブジェクトリテラル構文内では、
__proto__:valueとして指定するメンバーが 1 つだけであれば[[Prototype]]の変更を行うようになりました。 __proto__() {}のようなメソッドメンバーは、[[Prototype]]をオーバーライトしないようになりました。
- オブジェクトリテラル構文内では、
インターフェイス/API/DOM
navigator.languageとnavigator.languagesがワーカーでもWorkerNavigatorで利用可能になりました (バグ 925849)。Element.closest()メソッドは、現在の要素にもっとも近い祖先要素を返します (バグ 1055533)。CanvasRenderingContext2D.filterプロパティを実験的にサポートしました。設定項目canvas.filters.enabledで制御されます (バグ 927892)。Animation.targetプロパティの実装により、ウェブアニメーションの実験的な実装が進展しました。設定項目dom.animations-api.core.enabledで制御されており、デフォルトで無効化されています (バグ 1067701)。- 仕様書の定めにより、
hasAttributes()メソッドをNodeからElementへ移しました (バグ 1055773)。 HTMLImageElement、HTMLLinkElement、HTMLMediaElement、HTMLScriptElement、SVGScriptElementのcrossOrigin属性は有効な値のみを受け入れるようになりました。""は有効ではなく、代わりにnullを使用する必要があります (バグ 880997)。- リソースタイミング API をデフォルトで有効にしました (バグ 1002855)。
- 仕様に合致させるため、
Selection.containsNode()の第一引数をnullにすることはできなくなりました (バグ 1068058)。 ImageCaptureAPI を新たに実装しました。ImageCapture.takePhoto()を使用できます (バグ 916643)。- HTTP 以外の
XMLHttpRequestリクエストが成功した場合は (誤りである0に代わり)200を返すようになりました (バグ 716491)。 XMLHttpRequest.responseURLを最新の仕様に適合させて、URL のフラグメント ('#xyz') は存在しても含めないようになりました (バグ 1073882)。- 内部で使用している標準外の
File.mozFullPathプロパティはコンテンツから参照できなくなりました (バグ 1048293)。 Fileのコンストラクターを、仕様に準拠するよう拡張しました (バグ 1047483)。- 自身を生成したものとは別のエンティティによってアボートされることが可能な Promise である、
AbortablePromiseを実験的に実装しました。接頭辞Mozを付加しており、設定項目dom.abortablepromise.enabled(デフォルト値はfalse) で制御されます (バグ 1035060)。 - 標準外の
Navigator.mozIsLocallyAvailableプロパティを削除しました (バグ 1066826)。 - 設定項目
network.websocket.enabled(デフォルト値はtrue) を削除しました。今後は WebSocket API を無効化できません (バグ 1091016)。 Cryptoの標準外メソッドおよび標準外プロパティを削除しました (バグ 1030963)。標準の WebCrypto API で定義されているメソッドおよびプロパティのみが残ります。- WebGL 2.0 の実験的な実装を進めています!
WebGL2RenderingContext.copyBufferSubData()メソッドを実装しました (バグ 1048668)。
MathML
- 文字が重ねて置かれる場合 (例えば数学のハット記号がついた、ドットがない i) に、OpenType の
dtls機能 (デフォルト CSS スタイルシートのfont-feature-settingsによる) が MathML 要素へ自動的に適用されるようになりました。
SVG
変更なし。
Audio/Video
変更なし。
ネットワークおよびセキュリティ
- AEAD 暗号化方式を使用する場合に限り、HTTP/2 を実装および有効化しました (バグ 1027720 および バグ 1047594)。
- HTTP/2 の
alt-svcヘッダーをサポートしました (バグ 1003448)。 - HTTP の Public Key Pinning 拡張 (HPKP) を実装しました (バグ 787133)。
- CSP 1.1 の
base-uriディレクティブに対応しました (Firefox バグ 1045897). - ソースのパスが host-source 照合時に CSP で認識されるようになりました (Firefox bug 808292).
アドオン開発者と Mozilla 開発者向けの変更点
>XUL およびアドオン
<xul:tabbrowser>のプライベートなメソッドである_getTabForBrowser()が非推奨になりました。代わりに、パブリックなメソッドであるgetTabForBrowserを新たに追加しました。予想されているとおり、このメソッドは指定した<xul:browser>を包含する<xul:tab>要素を返します。Performance.now()と対等であるComponents.utils.now()を、ウィンドウ以外のクロームコード向けに実装しました (バグ 969490)。
アドオン SDK
ハイライト
- コンテキストメニューのアクセスキーを追加しました。
BrowserWindowからisPrivateBrowsingを削除しました。toJSONメソッドをURLインスタンスに追加しました。
詳細
Firefox 34 から Firefox 35 の間に行われた GitHub コミット。この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。
Firefox 34 から Firefox 35 の間に解決したバグ。この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。