Firefox 11 のサイト互換性に関わる修正
今朝 Firefox 11 がリリースされました。可能な限り互換性を維持するよう開発されましたが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる修正も含まれます。そのような修正点をまとめましたので、動作検証時などにご参照ください。
ここでは後方互換性に影響し得る修正のみ解説します。その他の新機能や変更点については次のページをご覧ください。
- ユーザ向けも含めた新機能: Firefox 11 の主な新機能を紹介します
- 開発者向けの新機能や変更点: Firefox 11 for developers
MozBeforePaint
イベントが廃止され、mozRequestAnimationFrame
にコールバック関数が必須となりました
Bug 704171 – Remove the no-argument form of requestAnimationFrame
これまで mozRequestAnimationFrame
を呼び出す際に発生していた MozBeforePaint
イベント は廃止されました。また、これまで mozRequestAnimationFrame
は引数を渡さなくても呼び出すことが可能でしたが、標準に合わせて引数 (コールバック関数) が必須となりました。
今後は、MozBeforePaint
イベントを捕捉する代わりに、mozRequestAnimationFrame
に渡すコールバック関数でタイムスタンプを取得してください。Firefox 11 以降、引数なしもしくは引数 null
が mozRequestAnimationFrame
に渡されると例外が投げられ、エラーコンソールにエラーメッセージが出力されます。
UA 文字列の Gecko バージョンからリビジョン番号が削除されました (03/15 追記)
Don’t expose the Gecko patch level (13.X.Y) in the UA string, only show the major version (13.X)
Firefox のユーザエージェント (UA) 文字列には rv:10.0.2
のような Gecko のバージョンが含まれていますが、このうち最後の数字=リビジョン番号は、Firefox 11 以降含まれなくなりました。つまり、Firefox 11.0.1 (もしリリースされた場合) では以下のように rv:11.0
となります。
Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0.1
Firefox のバージョンについても、今後リビジョン番号を外すことが検討されています。(Bug 728831)
Android 版 Firefox の UA 文字列が変更されました
Bug 671634 – Useragent should be different between phones and tablets
Android 版 Firefox のユーザエージェント (UA) 文字列 に変更が行われました。まず、タブレットの場合は Tablet
、スマートフォンなどそれ以外の場合は Mobile
という文字列で、端末の種類を示すトークンが追加されました。次に、コードネームを示す Fennec
というトークンが削除されました。また、Gecko/
の後に付く数字が、フリーズ日ではなく Gecko のバージョンとなりました。
Mozilla/5.0 (Android; Mobile; rv:11.0) Gecko/11.0 Firefox/11.0 Mozilla/5.0 (Android; Tablet; rv:11.0) Gecko/11.0 Firefox/11.0
Android 版 Firefox はネイティブ UI へ移行中のため、Firefox 11 の正式版はリリースされず、当面は Firefox 10 が延長サポート (セキュリティアップデート) されます。ただし、プレベータ版 (Aurora) やベータ版は既に公開されていますので、いずれにしても UA 判定コードの見直しが必要となります。
サイト内で navigator
のプロパティが保持される不可解な挙動が修正されました
Bug 690952 – Remove the crazy navigator
preservation behavior
Firefox ではこれまで、navigator
オブジェクトに拡張プロパティを設定すると、サイト (同一ドメイン) 内でページを遷移している間はブラウザ上でそのデータを保持することが可能でした。これは意図しない不可解な挙動であったため、データを保持しないよう修正が行われました。クライアント側でのデータの保存には、Cookie、DOM Storage、IndexedDB といった別の一般的な方法を使用してください。
HTTP Content-Type
ヘッダの文字コードをクオートで囲む指定が受け付けられなくなりました
Bug 700589 – HTTP content type charset parameter accepts single quotes
これまで Firefox は、Content-Type: text/plain; charset='UTF-8'
のようにシングルクオートで囲まれた文字エンコーディングを受け入れていましたが、RFC に違反するため、このような不正な指定は無視されるようになりました。HTTP Content-Type
ヘッダで文字エンコーディングを指定する場合、クオートで囲む必要はありません。
Geolocation API で取得できる countryCode
が削除されました
Bug 704056 – remove ‘countryCode
‘ from nsIDOMGeoPositionAddress.idl
Firefox では Geolocation API で取得可能な情報に国名コードが含まれていましたが、仕様書に定義されなかったため削除されました。以下のようなコードを書いている場合は、countryCode
の代わりに county
を使ってください。
navigator.geolocation.getCurrentPosition(function(position) { do_something(position.address.countryCode); });
WebSockets API の接頭辞が外れました
Bug 695635 – tracking bug: unprefix WebSockets
プロトコル、API ともに仕様書の最新ドラフトに併せて更新され、MozWebSocket
は WebSockets
に置き換えられました。WebSockets API を使用する場合は、接頭辞の有無にかかわらず動作するようにしてください。後方互換性のため接頭辞付き API にも対応する場合は、以下のような判別を行ってください。
var ws; if (WebSocket) { ws = new WebSocket(url); // 標準 } else if (MozWebSocket) { ws = new MozWebSocket(url); // Firefox–10 およびそれ以前 } else { // WebSockets 非対応 }
パーセンテージ値による SVG ルート要素のサイズ指定は認められなくなりました
これまで Firefox では、SVG のルート要素でも width="100%"
のようなパーセンテージ値による要素固有のサイズ (intrinsic dimensions) 指定が許容されていましたが、標準に合わせてそうした指定は受け付けられなくなりました。
ツールチップが表示されるまでの時間をユーザが設定できるようになりました
Bug 204786 – Add setting to change delay before tooltip shows
Web ページや Firefox の UI 要素上で補足情報として提供されるツールチップが表示されるまでの時間を、ブラウザの隠し設定 ui.tooltipDelay
で変更できるようになりました。初期設定は従来通り 500
(0.5 秒) となっていますが、0
にすればマウスオーバーと同時に表示されるようになります。
ページ側で、JavaScript を使って独自のツールチップを実装している場合、ユーザの設定によっては、ブラウザが表示するネイティブのツールチップ (title
属性の値) と重なってしまう可能性があるため注意が必要です。
以前のバージョンについて
以前のバージョンについても同様に、後方互換性に関わる修正点をまとめています: