Firefox 9 の後方互換性に関わる修正

現在 Firefox 9 は 12/13 または 12/20 のリリースに向けて開発が進められています。可能な限り互換性を維持するよう開発されていますが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる修正も含まれます。そのような修正点をまとめましたので、動作検証時などにご参照ください。

11/29 追記: Firefox 9 のリリース日は原則通り 6 週間毎の 12/20 とするが、自動更新は年明けまで有効化しないことになりました。

ここでは後方互換性に影響し得る修正のみ解説します。その他の新機能や変更点については次のページをご覧ください:

<li> 要素の value 属性に負値も使えるようになります

これまで <li> 要素の番号を指定する value 属性には負の数を指定すると 0 として扱われてきましたが、Firefox 9 からは他のブラウザと同様に負の値も指定できるようになります。JavaScript から value プロパティに代入した場合でも同様です。

なお <li> 要素の value 属性は HTML4 では deprecated として扱われていましたが、HTML5 で復活しています。

URL 中のセミコロンをパスの終端文字として扱わなくなります

Firefox 8 までは RFC 1808 による URL 定義に従いパス中にセミコロン “;” がある場合、そこまでをパス部分として扱ってきましたが、Firefox 9 以降では RFC 2396 以降の URL 定義に従いセミコロン以降もパスの一部として扱われます

例えば “http://example.org/path;param?query#frag” のような URL にアクセスした時 document.location.pathname の値は Firefox 8 以前では “/path” に、Firefox 9 以降では “/path;param” となります。

セミコロンを含む URL で document.location.pathname を使用する可能性がある場合はご注意ください。

navigator.taintEnabled() が削除されます

Netscape 3 時代 (2001年) にデフォルトオフで試験導入されたが、Netscape 4 以降には引き継がれなかった機能として「データ汚染セキュリティモデル」というものがありました。その機能が有効になっているかどうかを確認するための navigator.taintEnabled() メソッドだけが残されいましたが、常に false を返すだけで何の意味もない非標準メソッドであるため削除されます

実用途のない非標準のメソッドやプロパティはいずれ削除されます。これらの存在に依存するようなコードは書かないようにしてください。

XSLT 取得時の Accept HTTP ヘッダが “*/*” だけになります

これまで XML ファイルから XSLT スタイルシートを参照している場合、Accept HTTP リクエストヘッダの値は “text/xml,application/xml,application/xhtml+xml,application/xslt+xml,*/*;q=0.1″ となっていました。

Firefox 9 からは IE9 と同様に “*/*” だけ指定するようになります。極めてまれだと思いますが、万一 XSLT の送信時に Accept ヘッダに応じて処理を変えている場合は注意してください。

以前のバージョンについて

以前のバージョンについても同様に、後方互換性に関わる修正点をまとめています: