Firefox 7 開発者向けリリースノート
Firefox 7 は 2011 年 9 月 27 日にリリースされました。このページは Firefox 7 のリリースにあたり、開発者に関係する変更についてまとめたものです。
ウェブ開発者向けの変更点一覧
>HTML
HTMLHeadElementのprofileプロパティが削除されました。このプロパティは Gecko 2.0 から非推奨となっていました。HTMLImageElementのxプロパティとyプロパティが削除されました。HTMLSelectElementのadd()メソッドのbefore引数が optional となりました。<body>のbackground属性が URI として解決されなくなりました。この変更は HTML 仕様への準拠によるものです。<option>のlabel属性が指定されていない場合、要素の内容テキストを反映するようになりました。
キャンバス
- Azure project の一環として、Direct2D Azure Backend が実装され、2D キャンバスのパフォーマンスが著しく向上します。
setTransform(),bezierCurveTo(),arcTo()に不正な値を与え呼び出したとき、例外が投げられなくなりました。これらは無視されます。isPointInPath()メソッドに与えられた点と現在のパスを比較するにあたり、変換行列を適切に考慮するようになりました。strokeRect()メソッドが幅 0 高さ 0 で呼び出された場合、何もしなくなりました。drawImage()メソッドが幅 0 もしくは高さ 0 で呼び出された場合、<canvas>はINVALID_STATE_ERRを投げるようになりました。drawImage()メソッドが非定形の座標で呼び出された場合に、例外が投げられなくなりました。toDataURL()が JPEG の品質を制御する引数を受け付けるようになりました。globalCompositeOperationの値から、標準外だったclearとoverが削除されました。- 影が
source-over合成処理の場合にのみ描画されるようになりました。 - コンテキストに
mozFillRule属性を設定することで、キャンバスで使用される塗りつぶしルールを構成できるようになりました。 - 実験的な
mozDash、mozDashOffset、mozCurrentTransform、mozCurrentTransformInverse属性の対応が追加されました。 - 標準外メソッド
mozDrawText()、mozMeasureText()、mozPathText()、mozTextAlongPath()の対応が削除されました。
CSS
text-overflowが対応されました-moz-orientが修正され、縦配置の<progress>でも進行方向が適切なものになりました。
MathML
- XLink href が復活し、また MathML3 の
href属性もサポートされました。リンクには後者の属性を使うことが望まれます。 <mpadded>要素にvoffset属性のサポートが追加されました。またlspace属性の挙動も修正されました。- トップレベル要素である
<math>要素が<mstyle>要素のもつ属性すべてを受け入れるようになりました。 - Asana Math フォントのサポートが追加されました。
<mfrac>要素によって表される分数の線の太さmediumが修正され、規定の太さになりました。- 負のスペースを表すキーワードがサポートされました。
DOM
Fileインターフェイスの非標準なメソッドgetAsBinary(),getAsDataURL(),getAsText()が削除されました。あわせて、非標準なプロパティfileNameとfileSizeも削除されました。Blobによってデータが指定され、またContent-DispositionHTTP ヘッダーが送信されたとき、FormDataインターフェイスはファイル名を空文字列として報告しないようになりました。これによって幾つかのサーバーに起こっていたエラーが解消されます。HTMLelement.dir属性が結果を常に小文字で返すようになりました。これは HTML 仕様の要件によるものです。FileReaderのreadAsArrayBuffer()メソッドが実装されました。Document.createEntityReferenceが削除されました。このメソッドは適切に実装されておらず、他のブラウザーのほとんどで実装されていませんでした。document.normalizeDocumentが削除されました。今後はNode.normalizeを利用してください。indexが範囲外の場合、DOMTokenList.itemがundefinedを返すようになりました。これまではnullを返していました。Node.getFeatureが削除されました。HTMLInsElementインターフェイスとHTMLDelElementインターフェイスが削除されました。これは<ins>と<del>要素が実際にはHTMLModElementを使用していたためです。- 新しい DOM4 仕様にある
AttrがNodeを継承しない (DOM Core 1, 2, 3 まではしていた) という定義に準拠するため、Attrインターフェイス上のNodeプロパティやメソッドについて、将来的にこれらを削除するといった意味の警告を出すようになりました。 windowオブジェクトにwindow.ondeviceorientationプロパティとwindow.ondevicemotionプロパティのサポートを追加しました。window.resizeTo、window.resizeBy、window.moveTo、window.moveByはメインウィンドウに適用されなくなりました。
JavaScript
Function.arityプロパティが削除されました。今後はFunction.lengthを利用してください。
WebSocket
- 設定項目に
network.websocket.max-connectionsが導入されました。これは WebSocket の同時最大接続数を決定するために使用されます。既定値は 200 です。 - WebSocket プロトコルで使用するプロトコルバージョンが、IETF draft 10 で指定されているバージョン 8 になりました。Firefox 6 ではバージョン 7 が使われていました。
- WebSocket API が Firefox Mobile でも利用可能になりました。
コンソール API
- ウェブコンソール が開かれる前に
console.logによって記録されたメッセージもあらかじめ記録され、ウェブコンソールが開かれた時に表示されるようになりました。
Web timing
- Navigation Timing 仕様の初期実装が完了しました。ウェブサイトのパフォーマンス測定に利用できるデータを提供します。
XML
- XSLT スタイルシートは、これまでサポートされていた
text/xslに加えて、正式なインターネットメディア (MIME) 型application/xslt+xmlも利用可能になりました(スタイルシート処理命令もしくは HTTP Link ヘッダーで利用できます)。
Mozilla 開発者とアドオン開発者向けの変更点
これらの変更は、アドオン開発者と、Mozilla 本体のコードに関わっている開発者の双方に影響するものです。アドオン開発者はアドオンの Firefox 7 対応に書かれている追加情報も参照してください。
メモ: Firefox 7 では、従来のメジャーリリースと同様に、バイナリーコンポーネントをコンパイルし直す必要があります。
JavaScript コードモジュール
FileUtils.jsm
- 書き込みのための、安全でない状態のファイル出力ストリームを開ける
openFileOutputStream()メソッドが追加されました。
AddonManager.jsm
- アプリケーション起動中に変更が行われたアドオンの一覧を管理できるメソッドがアドオンマネージャに追加されました。
AddonManager.addStartupChange()、AddonManager.removeStartupChange()、AddonManager.getStartupChanges()です。
XUL
<tree>要素で、datasources属性によって参照されたノードがすべてid属性で指定された固有 ID を持っていた場合、3 種類の公開状態を記憶できるようになりました。<panel>要素で、新しいbackdrag属性を使って、ユーザーがバックグラウンドの任意の場所をクリックして、その要素をドラッグできるように設定することが可能となりました。
XPCOM
Components.utils.schedulePreciseGC()メソッドが追加されました。これは、以後どこかの時点で JavaScript コードが何も実行されていないときに、完全なガベージコレクション処理を行う予定を入れられるものです。Components.utils.unload()メソッドが追加されました。これは、Components.utils.load()で読み込まれた JavaScript コードモジュールを破棄できるようにするものです。
メモリーレポーター
マルチレポーターの対応が追加されました。これは、要求に応じてデータを収集し、生成された結果ごとにコールバックを呼び出すメモリレポーターを指します。関連するインターフェイスについては nsIMemoryMultiReporter および nsIMemoryMultiReporterCallback を参照してください。また、nsIMemoryReporterManager.registerMultiReporter() および nsIMemoryReporterManager.unregisterMultiReporter() メソッドも参照してください。
ユーザー体験の変更
- 拡張機能のオプションが、再起動不要型と従来型のいずれでもアドオンマネージャ内に表示されるようになりました。
- ダウンロードされたファイルの保存先がサイトごとに記憶されるようになりました。このデータは
DownloadLastDir.jsmを使ってアクセスできます。
ビルドシステムの変更
- ActiveX 組み込み API はビルドされなくなり、ビルドシステムでのサポートも削除されました。関連インターフェイスも削除されました。下記 削除されたインターフェイス を参照してください。
- Windows でのビルド時に
-Zc:wchar_t-を指定できなくなりました。
インターフェイスの変更
nsISocketTransportに新しい接続フラグDISABLE_IPV6が追加されました。これは、利用可能な IPv6 アドレスがあってもそれを無視して、IPv4 アドレスのみに接続するようソケットを設定するものです。また、nsIDNSServiceに新しい解決フラグRESOLVE_DISABLE_IPV6が追加されました。これは、利用可能な IPv6 アドレスがあってもそれを無視して、IPv4 ホストのみを考慮してドメイン名解決を行うものです。これらの変更は、IPv4 と IPv6 の両方に対応している (その中でも特に IPv6 接続がうまくいかない) ホストへ接続する際の応答時間を短縮する 「幸せな目玉」戦略 を実装するために使われます。inIDOMUtilsに 2 つのメソッドが追加されました。あるノードの子ノード一覧を返すinIDOMUtils.getChildrenForNode()と、選択範囲内で使用されているフォントフェイス一覧を返すinIDOMUtils.getUsedFontFaces()です。nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCHインターフェイスはnsIMarkupDocumentViewerインターフェイスへ統合されました。nsIDOMWindow2インターフェイスはnsIDOMWindowインターフェイスへ統合されました。nsIDOMWindow_2_0_BRANCHインターフェイスはnsIDOMWindowInternalインターフェイスへ統合されました。- URI 引数付きで
nsINavHistoryObserverメソッドを使う場合、GUID も必要となります。 nsISHistory_2_0_BRANCHインターフェイスはnsISHistoryインターフェイスへ統合されました。nsITelemetryに、ID からヒストグラムを返すnsITelemetry.getHistogramById()メソッドと、false設定時に使用統計情報 (Telemetry) の記録を無効化できるcanRecord属性が追加されました。使用統計情報はプライベートブラウジングモードでは記録されなくなりました。(Firefox バグ 661574、Firefox バグ 661573)nsITelemetry.newHistogram()で定義された使用統計ヒストグラムは、Mozilla への定期報告に含まれません。nsIMemoryReporterインターフェイスに大幅な変更が行われました。使用する場合はコードに変更を加える必要があるでしょう。nsIXMLHttpRequest.setRequestHeader()によって設定されたヘッダーが、リダイレクトを辿る際にもリクエストに含まれて送信されるようになりました。これまでこの方法で設定されたヘッダーは送信されていませんでした。nsIDocShellにallowWindowControl属性が追加されました。trueを設定すると、docshell のコンテンツがウィンドウをコントロールできるようになります (ウィンドウの移動やサイズ変更など)。nsIThreadInternal2インターフェイスはnsIThreadInternalインターフェイスへ統合されました。
新しいインターフェイス
nsIDOMFontFace-
ひとつのフォントフェイスを表します。
nsIDOMFontFaceList-
nsIDOMFontFaceで表されたフォントフェイスの一覧を表します。
削除されたインターフェイス
以下のインターフェイスは、不要となり削除された実装です。
nsIDOM3AttrnsIDOM3NodensIDOM3TypeInfonsIDOM3TextnsIDOMDocumentStylensIDOMNSDocumentnsIDOMNSFeatureFactorynsIDOMNSHTMLDocumentnsIDOMNSHTMLFormElementnsIDOMNSHTMLHRElementnsIDOMNSHTMLTextAreaElement
以下のインターフェイスは、ActiveX 組み込み API 廃止の一環として削除されました。
DITestScriptHelperDWebBrowserEventsDWebBrowserEvents2IDispatchIMozControlBridgeIMozPluginHostCtrlIWebBrowserIWebBrowser2IWebBrowserAppIXMLDocumentIXMLElementIXMLElementCollectionIXMLErrornsIActiveXSecurityPolicynsIDispatchSupportnsIMozAxPluginnsIScriptEventHandlernsIScriptEventManager
その他の変更
- ライブラリウィンドウの構造 (
places.xul) がクリーンアップされました。これにより拡張機能やテーマが動作しなくなる可能性があります。 - 印刷プレビューウィンドウの外観が刷新されました。テーマ作成者は、CSS 擬似要素
::-moz-page、::-moz-page-sequence、::-moz-scrolled-page-sequenceを使用してスタイル設定することが推奨されます。