Firefox 12 のサイト互換性に関わる修正

Firefox 12 のベータ版が明日 3/16 深夜にリリースされる予定です。可能な限り互換性を維持するよう開発されましたが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる修正も含まれます。そのような修正点をまとめましたので、動作検証時などにご参照ください。

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

input イベントが compositionupdate イベントの後に発生するようになりました

Bug 713502 – input event should be fired after compositionupdate

エディタ (フォーム) 上で IME を使った文字入力を行っている場合、従来は確定後に input イベントが発生していましたが、Firefox 12 では、IME で編集中の文字列が変更されたことを示す compositionupdate イベントの直後にも input イベントが発生するようになりました。これにより、input イベントハンドラを使って、日本語入力中にも未確定文字列を含めたフォームの入力内容を取得することが可能となりました。

エディタ上で擬似的に発生させた keypress イベントが無視されるようになりました

Bug 698949 – Refuse untrusted keypress events in editor

dispatchEvent を使えば keypress イベントを擬似的に発生させることが可能であり、Firefox はエディタ (フォーム) 上でもこれを受け入れていました。しかし、そうしたエディタ上での「信頼できない」イベントの扱いについては仕様書で定義されておらず、他のブラウザは無視しているため、Firefox も同様の振る舞いとしました。

border-image の実装が更新されました (3/19 訂正)

Bug 497995 – Implement border-image revisions in latest css3-background

CSS3 の最新仕様に合わせて、border-image (現在はベンダー接頭辞付き -moz-border-image) の実装が更新されました。旧バージョン (特に Firefox 10 ESR) 向けの指定と併記する方法は Piro さんのブログ記事 が参考になります。 この変更は Firefox 14 に持ち越されました。

複数行のツールチップ表示が可能になりました

Bug 358452 – Firefox: Let authors put line breaks (newlines) in tooltips (title attribute)

Firefox はこれまで title 属性値内の改行文字を無視していましたが、HTML5 の仕様に従い、改行を反映して複数行のツールチップを表示させることが可能となりました。このため title 属性の値に改行文字を含めている場合、従来とは表示が異なります。

空の Location ヘッダを返すページは表示できなくなります (3/25 追記)

Bug 738122 – Corrupted Content Error on Firefox 12 and later due to an empty Location response header

セキュリティ脆弱性を修正するための変更により、HTTP レスポンスヘッダに空の値の Location ヘッダを含むページを開くと、「コンテンツデータ破損エラー」「このページは、データの伝送中にエラーが検出されたため表示できません」となります。問題を解決するには不正な Location ヘッダを削除してください。

UniversalXPConnect 以外の特権管理機能が削除されました (3/16 追記)

Bug 713747 – Rip out non-UniversalXPConnect privilege manager functionality

Firefox では、JavaScript 拡張仕様 netscape.security.PrivilegeManager.enablePrivilege で高度な特権を要求することで、通常 Web コンテンツでは許可されていない操作 (ローカルファイルの読み込み、設定の変更など) を行うことができます。この 特権管理機能 を有効化するにはあらかじめ Firefox の設定を変更する必要があり、イントラネットなどごく一部で使われてきました。

Firefox 12 では、汎用的な UniversalXPConnect を除く 5 つの特権、UniversalBrowserReadUniversalBrowserWriteUniversalPreferencesReadUniversalPreferencesWriteUniversalFileRead が削除されました。

将来的には、Web コンテンツから利用できる特権管理機能 (enablePrivilege 関数) そのものが廃止される予定であり、アドオン で代用することが推奨されています。

JavaScript シャープ変数への対応が打ち切られました

Bug 566700 – remove sharp variables

シャープ変数 は、Netscape 時代に考案され、Mozilla の JavaScript エンジンも実装していた非標準の拡張仕様です。Firefox 12 以降では使用できません。

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

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

2 件のコメント

  1. myakura :

    border-imageですが、バックアウトされているのでFx12には入っていないと思います。 https://bugzilla.mozilla.org/show_bug.cgi?id=713643

  2. Kohei Yoshino :

    ご指摘ありがとうございます。訂正しました。