Firefox 16 のサイト互換性に関わる修正のまとめ
Firefox 16 の正式版が今日 深夜にリリースされる予定です。可能な限り互換性を維持するよう開発されましたが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる修正も含まれます。そのような修正点をまとめましたので、動作検証時などにご参照ください。
ここでは後方互換性に影響し得る修正のみ解説します。その他の新機能や変更点については次のページをご覧ください。
- Firefox 16 ベータ版リリースノート
- Firefox 16 for developers (MDN)
- Aurora 16 is out — Unprefixing time ! (Mozilla Hacks)
この一覧に漏れや間違いがあるときはコメント欄でお知らせください。
CSS
多くの CSS プロパティから接頭辞が外れました
- Bug 762302 – [css3-animations] unprefix CSS Animation properties and @keyframes rule
- Bug 762303 – [css3-transitions] unprefix CSS Transition properties
- Bug 745523 – [css3-transforms] Unprefix transforms
- Bug 752187 – Drop prefix for gradients
- Bug 771678 – [css3-values] unprefix calc()
CSS アニメーション、トランジション、トランスフォーム の各プロパティから -moz- ベンダー接頭辞が外れました。また グラデーション の各関数と calc からも接頭辞が外れました。グラデーションについては、接頭辞の有無で構文が大幅に変わっていることに注意してください。
接頭辞付きのプロパティや関数を使用する場合は、前方互換性のため、接頭辞なしの形式も必ず併記するようにしましょう。今後、そうした配慮がなされていない CSS は適用されなくなる可能性があります。
トランジションとアニメーションの継続時間に指定した負の値は無視されるようになりました
transition-duration と animation-duration の各プロパティに負の値を指定した場合、従来は初期値の 0s と解釈されていましたが、今後は不正な値として見なされ、宣言自体が無視されます。
matrix() に指定した長さの値は無視されるようになりました
トランスフォーム関数 の matrix と matrix3d について、Firefox はこれまで誤って数値だけでなく長さの値 (例えば 10px のように単位の付いた値) を受け入れていました。この挙動が仕様に合わせて修正され、長さの値が指定された場合はパースエラーを返すようになりました。
ボーダーによってテーブルセルの高さが変わる問題が修正されました
これまで、テーブルセル (td 要素) の上下に border や padding が指定されると、その分セルの高さが縮まって表示されていました。Firefox 16 では、CSS 標準に従うよう、このレイアウト問題が修正されています。実際の例はバグに添付されたテストケースを参照してください。
メディアクエリの解像度が CSS ピクセル単位で扱われるようになりました
CSS3 メディアクエリの仕様が更新され、解像度の単位である dpi、dpcm、dppx が、物理単位ではなく CSS ピクセル単位のドットに相当するようになりました。Firefox の実装もこれに合わせて更新されました。
DOM
いくつかの API から接頭辞が外れました
IndexedDB から接頭辞が外れました。今後は mozIndexedDB ではなく標準の indexedDB オブジェクトを使用できます。また、バッテリー、バイブレーターの各 API についても接頭辞が外れています。
Microdata API が実装されました (10/15 追記)
HTML5 の Microdata DOM API が実装され、document に getItems プロパティが、element に itemId、itemProp、itemRef、itemScope、itemType、itemValue、properties プロパティが追加されました。
Six Apart 社から提供されている Movable Type がこの影響を受けたことが確認されています。各要素に itemId という独自プロパティを付加していたために一部機能が正常に動作しなくなり、急遽パッチが公開されています。
- Bugzilla-jp Bug 6834 – Movable Typeでの記事作成時にカテゴリを選択しても反映されない
- Firefox 16 でカテゴリおよびフォルダの選択が保存できない
- Rename itemId because cannot work on FireFox16 or later
各要素に独自データを付加したい場合は、独自プロパティの代わりに element.dataset を使う方法が安全でしょう。文字列型以外のデータも保存できる setUserData/getUserData も Firefox には実装されていますが、これらは 廃止予定 であり、WeakMap で代用可能とのことです。
java オブジェクトが廃止されました
window.java と window.packages の各グローバル DOM オブジェクトが廃止されました。これらのオブジェクトはほとんど文書化されておらず、実際に使われることは非常にまれかと思います。この変更は Firefox 15 で行われる予定でしたが、既存の拡張機能との互換性を保つためバックアウトされていました。
SVG と XPath の例外の種類が DOMException に統一されました
SVGException と XPathException は削除され、DOMException に置き換えられました。
SmsRequest は DOMRequest に置き換えられました
SmsRequest は、より一般的で同じ属性とイベントハンドラを提供する DOMRequest に置き換えられました。
select.size に負の値を指定した場合の挙動が変わります
select 要素の size プロパティに負の値を与えた場合、従来は例外が投げられていましたが、今後は 0 と見なされます。
CSSNameSpaceRule.type が正しい値を返すようになりました
CSSNameSpaceRule の type プロパティが、CSSRule.UNKNOWN_RULE (0) ではなく CSSRule.NAMESPACE_RULE (10) を返すよう修正されました。
mozApps.installPackage が無効化されました
Apps API の installPackage 関数は、機能の実装が完了するまで削除されることになりました。
その他
MD5 アルゴリズムで署名された証明書は受け入れられなくなります
MD5 ハッシュアルゴリズムは安全でないことから、Firefox 16 以降無効化する措置が取られました。MD5 アルゴリズムで署名された SSL 証明書を使用しているサイトを Firefox で開くとエラー画面が表示されます。便宜的に、ユーザがこのエラーを無視することも可能となっています。
なお Thunderbird でも同様に、メールサーバがそうした証明書を使用している場合はエラーとなり、メッセージの送受信を行えなくなります。ただし Thunderbird 16 では何もエラーメッセージは表示されません。
ユーザエージェント文字列にセキュリティパッチレベルのバージョンまで含まれなくなります
この変更により、例えば予定外の Firefox 16.0.1 がリリースされた場合も、ユーザエージェント (UA) 文字列内のバージョンは 16.0.1 ではなく 16.0 とだけ表記されます。
半角空白の後、全角空白の前で行が折り返されるようになりました
実際の日本語のページについて「Firefox のみレイアウトが崩れる」と指摘があった問題です。他のブラウザと同様に、全角空白の前で行が折り返されるよう修正が行われました。
WebSockets の接続切断処理が最新仕様に合わせて更新されました
コードから close 関数が呼び出された際の切断処理中に onerror や onclose イベントが発生しないようにするなど、最新の WebSockets 仕様に合わせて実装が更新されました。
execCommand() はコマンドが無効の場合 false を返すようになりました
リッチテキストエディタ で execCommand 関数が呼び出された際に、コマンドが有効でなければ正しく false を返すようになりました。これまでは常に true が返っていました。
メディアを巻き戻したときの played プロパティの値が修正されました
video/audio 要素を再生し、巻き戻した後に played プロパティの値を取得すると、巻き戻した位置が返っていました。再生が終わった位置を正しく返すよう実装が修正されました。
リグレッション
Firefox 16 で発生したことが判明しているリグレッションのうち、サイト互換性に影響すると思われるバグは以下の通りです。
- Bug 782729 – Pointer lock does not work on FPS “PlayCanvas” demo — Firefox 18 で修正
- Bug 779399 – Twitter Bootstrap buttons display unwanted horizontal line on hover. — Firefox 17 で修正
- Bug 789122 – Google Presentations are Clipped (zoom-related)
- Bug 779035 – SVG mask is clipped when text zoom is applied
- Bug 797231 – Clip path region is incorrect with direct2d
- Bug 773847 – Selecting to capture a picture for getUserMedia test page fails with an exception thrown on startMedia line 139 — Firefox 17 で修正
- Bug 789747 – Slow and jerky slideshow on iweb.com since Firefox 16
以前のバージョンについて
以前のバージョンについても同様に、後方互換性に関わる修正点をまとめています。
- Firefox 15 のサイト互換性に関わる修正のまとめ — まだ文書化されていません
- Firefox 14 のサイト互換性に関わる修正のまとめ — まだ文書化されていません
- Firefox 13 のサイト互換性に関わる修正のまとめ
- Firefox 12 のサイト互換性に関わる修正のまとめ
- Firefox 11 のサイト互換性に関わる修正のまとめ
- Firefox 10 のサイト互換性に関わる修正のまとめ
- Firefox 9 のサイト互換性に関わる修正のまとめ
- Firefox 8 のサイト互換性に関わる修正のまとめ
- Firefox 7 のサイト互換性に関わる修正のまとめ
- Firefox 6 のサイト互換性に関わる修正のまとめ
- Firefox 5 のサイト互換性に関わる修正のまとめ
Masahiro YAMADA
:
Kohei Yoshino
:
Kohei Yoshino
:
Masahiro YAMADA
: