このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Firefox 6 開発者向けリリースノート

Firefox 6 は Gecko 6.0 ベースのブラウザーで、2011 年 8 月 16 日にリリースされました。このページは Firefox 6 のリリースにあたり、開発者に関係する変更についてまとめたものです。

ウェブ開発者向けの変更点一覧

HTML

  • プログレスバーを表す HTML5 の <progress> 要素がサポートされました。
  • メディア要素にテキストトラックを追加する HTML5 の <track> 要素について、そのパース処理部分が実装されました。要素そのものは実装されていませんが、DOM に現れるようにはなります。
  • border-radius プロパティによって角が丸められたコンテナー内の <iframe> についても、適切に角が丸められるようになりました。
  • <form> 要素の <input> テキストフィールドが XUL の maxwidth プロパティをサポートしなくなりました。これは意図的なものではなく、また HTML 仕様違反でもあります。要素の最大幅を設定するには、size 属性を使用してください。
  • <canvas>CanvasRenderingContext2dfillStylestrokeStyle プロパティはこれまで、妥当な色の指定の後に続く余計なものを無視する処理をしていましたが、適切にエラーとして処理されるように修正されました。たとえば、"red blue" を指定したとき、これまでは "red" と扱われていましたが、これからは指定そのものが無視されます。
  • <canvas> 要素の width と height を適切に 0px と指定できるようになりました。これまではそう指定しても 300px にされていました。
  • HTML カスタムデータ属性 (data-*) に対応しました。DOM の dataset プロパティからデータにアクセスできます。
  • <textarea> 要素がフォーカスされたとき、テキスト挿入箇所が最後ではなく先頭になりました。これにより、他のブラウザーの挙動と一致します。

CSS

-moz-text-decoration-color

このプロパティは、テキスト装飾で使用する下線、上線、取り消し線などの色を指定します。

-moz-text-decoration-line

このプロパティはテキスト装飾の種類を指定します。

-moz-text-decoration-style

このプロパティは、テキスト装飾で使用する下線、上線、取り消し線などのなどのスタイルを指定します。スタイルには単一線、二重線、破線、点線などがあります。

-moz-hyphens

このプロパティは行の折り返しが発生する際、単語のハイフネーションを制御するプロパティです。

-moz-orient

現在は Mozilla 固有のプロパティで、いくつかの要素 (<progress> 要素など) の縦横の向きを制御します。

::-moz-progress-bar

Mozilla 固有の擬似要素で、<progress> 要素において、完了した部分のスタイルづけを行うためのものです。

その他の変更

  • @-moz-document に新しく regexp() 関数記法が追加されました。これにより、スタイルシートを適用する文書の URL を 正規表現で照合できます。
  • aural 媒体グループのために持っていたコードを削除したため、azimuth CSS プロパティのサポートが廃止されました。このプロパティはちゃんと実装されていなかったため、パッチを当て続けるのではなく未完成の実装を省くほうが理にかなっていると考えました。
  • これまで、:hover 擬似クラスは前方互換モードにおいてクラスセレクターに適用されませんでした。このため .someclass:hover といったコードは動きませんでしたが、この例外が取り払われました。
  • :indeterminate 擬似クラスは <progress> 要素にも適用できます。これは標準外ですが、便利ですので他のブラウザーにも取り入れられて欲しいと考えています。
  • moz-win-exclude-glass 値が -moz-appearance CSS プロパティに追加されました。これにより、Windows システム上の Aero Glass グラデーション効果における不透明領域を除外できます。
  • Firefox bug 658949 により、データ URL におけるハッシュ記号 (#) の処理方法が変更されました。エスケープされていない場合、この記号が含まれている CSS スタイルシートは、場合により破損することがありました。

DOM

コード内でのメディアクエリーの使用

window.matchMedia() メソッドと MediaQueryList インターフェイスによって、メディアクエリーの結果をプログラムから検証できます。

タッチイベント

Firefox 6 は W3C の標準タッチイベント仕様に対応しています。これにより、タッチスクリーンやトラックパッドなどタッチセンサー式の機器でのタッチの解釈が容易になります。

サーバー送信イベント

サーバー送信イベントは、サーバーが手元で生成された DOM イベントと同じようにイベントを送出するよう、ウェブアプリケーションが尋ねるための機能です。

  • これまでずっと、空文字列を返すだけだった navigator.securityPolicy プロパティが完全に削除されました。
  • BlobBuilder に対応しました。現時点では接頭辞付きの実装 (MozBlobBuilder) となっています。
  • Document.height, Document.width が削除されました。 Firefox バグ 585877
  • DocumentType オブジェクトの entities, notations プロパティが削除されました。これは実装されておらず常に null を返しており、また仕様からも削除されていました。
  • DOMConfiguration インターフェイスと、それを使用していた document.domConfig プロパティが削除されました。これらはサポートされておらず、また DOM 仕様からも削除されていました。
  • hashchange イベントが適切に newURL, oldURL フィールドを含むようになりました。
  • FileReader インターフェイスの abort() メソッドが、ファイルの読み込み中に利用された際に例外を投げるようになりました。
  • window.postMessage() メソッドが構造化クローンアルゴリズムを使用するようになり、あるウィンドウから他のウィンドウに文字列ではなく JavaScript オブジェクトを渡せるようになりました。
  • window.history API が pushState(), replaceState() メソッドに渡されたオブジェクトのシリアライズに構造化クローンアルゴリズムを使用するようになりました。これによって循環参照などを含むより複雑なオブジェクトも使用可能となりました。
  • 新しく追加された beforeprint, afterprint イベントによって、印刷が行われたときと完了したときを検出することができるようになりました。
  • document.strictErrorChecking プロパティが削除されました。実装されておらず、また DOM 仕様からも削除されていました。
  • 標準である event.defaultPrevented プロパティがサポートされました。event.preventDefault() がイベントから呼び出されたかを知る際には、標準外の getPreventdefault() ではなくこちらを使うようにしましょう。
  • window.top プロパティが、適切に読み取り専用となりました。
  • これまでドキュメントのなかった DOM views が削除されました。これらには実装の詳細が多く、また不必要に様々なものを複雑にしていたため削除されました。もしこの変化に気づいた場合は、何か誤ったことをしている可能性があります。
  • EventTarget の関数 addEventListener() に指定する引数 useCapture が省略可能となりました。これは WebKit の動作とも共通し、また新しい仕様でもそう定義されています。
  • XMLHttpRequest オブジェクトの mozResponseArrayBuffer プロパティが responseType, response プロパティに置き換えられました。
  • dataset プロパティが HTMLElement インターフェイスに追加されました。このプロパティにより 要素の data-* グローバル属性 にアクセスできます。
  • CustomEvent インターフェイスが実装されました (Firefox バグ 427537)
  • セキュリティの観点から、ユーザーがロケーションバーに data: URI と javascript: URI を入力した時、現在のページのセキュリティコンテキストを受け継がなくなりました。代わりに、新しい空のセキュリティコンテキストが生成されます。これにより、ロケーションバーに入力した javascript: URL から読み込まれたスクリプトは、DOM メソッドなどへのアクセスを持たなくなります。しかし、これらの URL がスクリプトから使用された場合は、これまでと同じように動作します。

JavaScript

  • これまで、いくつかの組み込み関数 (eval, parseInt, Date.parse など) に対し new 演算子を使うことができましたが、仕様においてこれは許されるべきではないとされていました。Firefox 6 では、このサポートが廃止されました。new 演算子のこういった利用は公式にはサポートされておらず、また広く利用されてもいません。この変更が何かに影響することはないでしょう。
  • ECMAScript 2015 の WeakMaps がプロトタイプ実装として追加されました。

SVG

  • pathLength 属性に対応しました。
  • data: URL から読み込まれたパターン、グラデーション、フィルターが適切に動作するようになりました。

MathML

  • <mstyle> の実装が修正されました。

アクセシビリティ (ARIA)

  • 状態変化イベントが aria-busy の値の変化でも発生するようになりました。
  • aria-sort が発生した際に属性変化イベントが発生するようになりました。

ネットワーク

WebSocket

WebSocket プロトコルのサポートがバージョン 07 に更新されました。また、グローバルオブジェクトの WebSocket オブジェクトが MozWebSocket に改称されました。接頭辞のないオブジェクトの検出を目的としたときに問題となるため、それを防ぐ目的です。

  • Content-Disposition ヘッダーの構文解析が修正され、バックスラッシュでエスケープされた ASCII 文字が適切に文字そのものとして処理されるようになりました。これまではその文字をアンダースコア ("_") に置き換えるという誤った処理がなされていました。
  • Set-Cookie ヘッダーのパスの値において、クォートが適切に処理されるようになりました。これまでクォートを使った場合はそれがデリミタではなく、パスの文字列として認識されていました。**この変更により、いくつかのサイトで互換性の問題が発生する可能性があります。**製作者はコードをチェックすることが望まれます。
  • Upgrade リクエストヘッダーがサポートされました。nsIHttpChannelInternal.HTTPUpgrade() を呼ぶことで、HTTP チャネルから他のプロトコルへのアップグレードをリクエストできます。

その他の変更

  • Microsummary が削除されました。広く使われおらず、また見つけにくい機能でもあり、サポートの継続によって Places (ブックマークと履歴) のアーキテクチャを向上させることが難しくなっていたからです。
  • WebGL が OES_texture_float 拡張に対応しました。
  • JavaScript コードをテストする簡易で便利なツール Scratchpad が追加されました。
  • console.trace() メソッドがコンソール API に追加されました (Firefox バグ 585956)。

Mozilla 開発者とアドオン開発者向けの変更点

Firefox 6 へアドオンを対応させるために必要な作業の概要は アドオンの Firefox 6 対応 をご覧ください。

メモ: Firefox 6 では、従来のメジャーリリースと同様に、バイナリーコンポーネントをコンパイルし直す必要があります。詳しくは バイナリーインターフェイス をご覧ください。

JavaScript コードモジュール

FileUtils.jsm

  • openSafeFileOutputStream() メソッドは、ファイルを即座に開こうとする代わりに、DEFER_OPEN ビヘイビアフラグ 付きで開くようになりました。

XPCOMUtils.jsm

  • 新しい importRelative() メソッドは、ある JavaScript コードモジュールを、他の JavaScript コードモジュールの相対パスから読み込むようになりました。これによって互いに依存するモジュールを開発しやすくなりました。

XPCOM

クロームからの DOM の使用

クロームコードでの DOM File API の使用

これまでもクロームコード内で DOM File API を使うことは可能でしたが、File コンストラクターをクロームで使用した場合に、ローカルパス名文字列を指定できるようになりました。また、nsIFile オブジェクトを使用して、DOM File API を通じてアクセスするファイルを指定できるようになりました。

インターフェイスの変更

  • nsINavHistoryQueryOptions で、新たな定数 SORT_BY_FRECENCY_ASCENDINGSORT_BY_FRECENCY_DESCENDING を使った訪問頻度順のソートが可能になりました。
  • nsIFilePickeraddToRecentDocs 属性が追加されました。これは、もしユーザーの「最近使用したドキュメント」リストがあれば、そのリストに選択したファイルを追加するよう指定できるものです。この属性はプライベートブラウジングモードでは無視されます。
  • nsINavBookmarkObserver メソッドにアイテム ID 引数を与える場合、GUID も必要となります。
  • nsIPrefBranch.clearUserPref() が、指定された設定が存在しない場合やユーザー設定値がない場合も、例外を投げなくなりました。その代わり、単に何もしなくなりました。
  • nsIMemoryReporter インターフェイスで、調べたいメモリーの種類 (マップ、ヒープ、その他) を指定できるようになりました。
  • nsISHEntrystateData 属性が nsIStructuredCloneContainer を返すようになりました。
  • nsIURInsIURI.ref 属性が追加されました。これは、URI の一部の参照 ("#" 以降の部分) を返すものです。また、参照メンバーなしに nsIURI を複製できる cloneIgnoringRef() メソッドと、参照メンバーを無視して他の nsIURI と比較できる equalsExceptRef() メソッドが追加されました。

新しいインターフェイス

mozIAsyncFavicons

ブックマークアイコン (favicon) サービスへの非同期アクセスが可能な新サービスです。

nsIEventSource

詳細は後日解説します。

nsIGSettingsCollection

詳細は後日解説します。

nsIGSettingsService

詳細は後日解説します。

nsIHttpUpgradeListener

nsIHttpChannelInternal.HTTPUpgrade() メソッドを通じた HTTP アップグレード要求を処理するためのコールバックインターフェイスです。

nsIStructuredCloneContainer

構造化クローンアルゴリズム を使ってシリアライズされたオブジェクトのためのコンテナーです。

nsITelemetry

パフォーマンス測定を目的とした使用統計情報 (Telemetry)を記録とヒストグラムの生成に使用されます。Firefox バグ 649502Firefox バグ 585196 参照。

nsITimedChannel

Firefox バグ 576006 参照。

nsIWebSocketListener

Firefox バグ 640003 参照。

nsIWebSocketProtocol

Firefox バグ 640003 参照。

削除されたインターフェイス

以下のインターフェイスは、不要となり削除された実装です。詳細はバグを参照してください。

その他の変更

アプリケーションコードからの設定の使用(英語)

設定へ簡単にアクセスできる、新しい静的な API が実装されました。これはアプリケーションコードからのみ使用可能であり、アドオンでは使用できません。