Firefox 18 サイト互換性情報

Firefox 18 が にリリースされました。可能な限り互換性を維持しつつ開発されましたが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる変更も含まれます。そのような変更点をまとめましたので、サイトやアプリケーションの動作検証時にご活用ください。

ここでは Web サイトの後方互換性に影響し得る変更のみ解説します。その他の新機能や変更点については以下のドキュメントをご覧ください。

CSS

min-widthmin-height の初期値が auto に変わりました

min-widthmin-height 両プロパティが 初期値 として auto キーワードを取るようになりました。Firefox 18 で実装され初期設定では無効となっている フレキシブルボックス (flexbox) では、この auto キーワードは flexbox 内の最小アイテム (min-content) を示します。それ以外の要素では、従来通り 0 と計算されるため影響はありません。

DOM

MozTouch イベントが廃止され、標準のタッチイベントに置き換えられました

Firefox の試験実装で廃止予定となっていた MozTouch* API (MozTouchDownMozTouchMoveMozTouchUp イベント) が削除されました。今後は W3C 標準のタッチイベント を使用してください。

サイト互換性を確保するため、Windows ではタッチ入力の可否を自動判別し、非対応端末ではタッチイベントを無効化するようになりました。上記バグのコメントによれば、対応端末は現時点でわずか数パーセントとのことです。Android では初期設定で有効となっています。Mac 版と Linux 版の Firefox ではまだタッチイベントが実装されていません。

多くのサイトで タッチイベントに関する互換性問題 が確認されています。既にサイトやアプリケーション側でモバイル向けの対応を行っている場合は、Firefox をはじめとするデスクトップブラウザでも期待通りに動作するかどうか必ずテストしましょう。

Page Visibility API の接頭辞が外れました

接頭辞付きの mozvisibilitychange イベントと、Page Visibility APImozHiddenmozVisibilityState プロパティが廃止予定となりました。今後は接頭辞なしの visibilitychange イベントと、hiddenvisibilityState プロパティを使用してください。

mozallowfullscreen 属性の接頭辞が外れました

インラインフレーム (iframe) 内コンテンツの 全画面表示 を許容する mozallowfullscreen 属性の接頭辞が外れました。HTML5 の allowfullscreen 属性は実際に YouTube の埋め込みプレーヤーで使用されています。

BlobBuilder が廃止されました

廃止予定となっていた BlobBuilder (MozBlobBuilder) インタフェースが削除されました。今後 Blob オブジェクトを作成するには Blob コンストラクタを使用してください。

localStorage の保存上限サイズが 5 MB に変更されました

従来、オフラインストレージが有効になっているページでは最大で 200 MB のデータを保存することが可能でしたが、同期 IO を必要とする localStorage はパフォーマンスの問題を引き起こすことなどから、保存上限サイズ (クォータ) が 5 MB へ変更されました。また、ユーザが Cookie を削除する際、localStorage に保存されているデータも併せて削除されるようになりました。今後はできる限り IndexedDB の非同期 API を使用することが推奨されています。

XHR.getResponseHeader() の値が冗長な UTF-8 バイト列に変わりました

XMLHttpRequest の最新仕様に従い、getResponseHeader メソッドが冗長なエンコーディングで表現される値を返すようになりました。例えば「」は「\xE2\x80\xA6」となります。

XMLHttpRequestFileReaderWebSocketEventSource オブジェクトの on* プロパティの値にイベントリスナーオブジェクトを設定できなくなります ( 追記)

この変更により、xhr.onreadystatechange = { handleEvent: function() { ... } } のように handleEvent プロパティを持つオブジェクトの形式を取るハンドラが動作しなくなります。対象となるのは XMLHttpRequestWebSocketFileReaderEventSource オブジェクトで、従来から動作していない、要素、ドキュメント、window オブジェクトと同様になります。Firefox (Gecko) では今後、そうしたコードは xhr.onreadystatechange = null と同じに扱われ、実行されずエラーも生じません。これは標準準拠と相互運用性向上ための措置で、Internet Explorer や Opera と同じ挙動になります。Google Chrome などの WebKit ブラウザはまだこのような形式に対応しています。

なお、xhr.onreadystatechange = function() { ... } は引き続き動作しますが、一般的には addEventListener を代わりに使うことが推奨されます。

JavaScript

Proxy API が最新の仕様に合わせて更新されました

ECMAScript 6 (Harmony) の Direct Proxy が実装されました。古い API を使用している場合はコードを書き換える必要があります。

Function.length がデフォルト引数を数えなくなりました ( 追記)

関数が期待する引数の数を示す Function.length プロパティは、従来 デフォルト値付き引数 を含んでいました。そうした引数を含まないように修正が行われました。そのため (function (a, b, c = false) {}).length3 ではなく 2 となります。

引数として undefined が渡された場合、デフォルト値が指定されていればそれが使われるようになりました ( 追記)

デフォルト引数 は Firefox 15 で実装された ECMAScript 6 の機能ですが、従来は、引数として undefined が渡されたとき、その値が undefined となっていました。引数が渡されなかった場合と同様にデフォルト値になるよう、実装が変更されました。

Mootools 1.2.x は Firefox 18 以上と互換性がありません

Firefox 18 では ECMAScript 6 の関数である String.prototype.contains が追加されました。残念ながら Mootools の旧バージョンはそのような関数が存在しないことを前提としており、それが存在した場合うまく動作しません。この問題は Mootools 1.3 以上で修正されています。

WebGL

MOZ_EXT_texture_filter_anisotropic の接頭辞が外れました

廃止予定となっていた MOZ_EXT_texture_filter_anisotropic が削除されました。今後は接頭辞なしの EXT_texture_filter_anisotropic 拡張を使用してください。

ネットワーク

リクエストヘッダの品質係数が小数点以下 2 桁まで反映されるようになりました

Firefox はこれまで品質係数を小数点以下 1 桁で固定していました。品質係数とは、Accept-Language などの HTTP リクエストヘッダに含まれる、q= に続く数値です。この実装では複数の項目が同じ値となってしまう場合があることから、より明確にするため小数点以下 2 桁まで反映するよう変更されました。

Proxy-Connection ヘッダが廃止されました

HTTP プロキシ設定時に送信されていた Proxy-Connection リクエストヘッダが廃止されました。このヘッダは非標準で、実際にはうまく機能していませんでした。

セキュリティ

参考: SSL ページでの非 SSL コンテンツの読み込みを禁止する設定が追加されました

SSL (https) 使用ページ内で非 SSL (http) サイトからコンテンツが読み込まれるのをブロックする設定が追加されました。スクリプト、スタイルシート、プラグインコンテンツ、インラインフレーム、Web フォントWebSocketssecurity.mixed_content.block_active_content で、それ以外の画像、音声動画 といった静的コンテンツは security.mixed_content.block_display_content で、それぞれブロックすることが可能です。

初期設定は今のところいずれも無効 (false) となっていますが、ユーザがこの設定を有効にした場合、該当するコンテンツは読み込まれなくなります。また、設定項目のうち security.mixed_content.block_active_content は、Firefox の将来のバージョンで 初期設定で有効となる 予定です。サイト運営者は SSL ページに非 SSL コンテンツを混在させないよう注意しましょう。

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

Contributors to this page: kohei.yoshino, omasanori, ethertank
最終更新者: kohei.yoshino,