Firefox 7 for developers
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
属性が指定されていない場合、要素の内容テキストを反映するようになりました。
Canvas
setTransform()
,bezierCurveTo()
,arcTo()
に不正な値を与え呼び出したとき、例外が投げられなくなりました。これらは無視されます。isPointInPath()
メソッドに与えられた点と現在のパスを比較するにあたり、変換マトリクスを適切に考慮するようになりました。strokeRect()
メソッドが幅 0 高さ 0 で呼び出された場合、何もしなくなりました。drawImage()
メソッドが幅 0 もしくは高さ 0 で呼び出された場合、<canvas>
はINVALID_STATE_ERR
を投げるようになりました。drawImage()
メソッドが非定形の座標で呼び出された場合に、例外が投げられなくなりました。toDataURL()
が JPEG の品質を制御する引数を受け付けるようになりました。globalCompositeOperation
の値から、非標準だったclear
とover
が削除されました。- 影 が
source-over
合成処理の場合にのみ描画されるようになりました。 - Canvas の塗りつぶし方を設定する
mozFillRule
アトリビュートが追加されました。
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-Disposition
HTTP ヘッダーが送信されたとき、FormData
インターフェイスはファイル名を空文字列として報告しないようになりました。これによって幾つかのサーバーに起こっていたエラーが解消されます。element.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 でも利用可能になりました。
Console API
- web console が開かれる前に
console.log
によって記録されたメッセージもあらかじめ記録され、web console が開かれた時に表示されるようになりました。
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
- アプリケーション起動中に変更が行われたアドオンの一覧を管理できるメソッドがアドオンマネージャに追加されました。
addStartupChange()
、removeStartupChange()
、getStartupChanges()
の 3 つです。
XUL
tree
要素で、datasources
属性によって参照されたノードがすべてid
属性で指定された固有 ID を持っていた場合、3 種類の公開状態を記憶できるようになりました。panel
要素で、新しいbackdrag
属性を使って、ユーザーがバックグラウンドの任意の場所をクリックして、その要素をドラッグできるように 設定することが可能となりました。
XPCOM
Components.utils.schedulePreciseGC()
メソッドが追加されました。これは、以後どこかの時点で JavaScript コードが何も実行されていないときに、完全なガベージコレクション処理を行う予定を入れられるものです。Components.utils.unload()
メソッドが追加されました。これは、Components.utils.load()
で読み込まれた JavaScript コードモジュールを破棄できるようにするものです。
ユーザー体験の変更
- 拡張機能のオプションが、再起動不要型と従来型のいずれでも アドオンマネージャ内に表示 されるようになりました。
- ダウンロードされたファイルの保存先がサイトごとに記憶されるようになりました。このデータは DownloadLastDir.jsm を使ってアクセスできます。
ビルドシステムの変更
- ActiveX 組み込み API はビルドされなくなり、ビルドシステムでのサポートも削除されました。関連インターフェイスも削除されました。下記 削除されたインターフェイス を参照してください。
- Windows でのビルド時に
-Zc:wchar_t-
を指定できなくなりました。詳しくは、更新された ビルド手順 をご覧ください。
インターフェイスの変更
nsISocketTransport
に新しい接続フラグDISABLE_IPV6
が追加されました。これは、利用可能な IPv6 アドレスがあってもそれを無視して、IPv4 アドレスのみに接続するようソケットを設定するものです。また、nsIDNSService
に新しい解決フラグRESOLVE_DISABLE_IPV6
が追加されました。これは、利用可能な IPv6 アドレスがあってもそれを無視して、IPv4 ホストのみを考慮してドメイン名解決を行うものです。これらの変更は、IPv4 と IPv6 の両方に対応している (その中でも特に IPv6 接続がうまくいかない) ホストへ接続する際の応答時間を短縮する 「幸せな目玉」戦略 を実装するために使われます。inIDOMUtils
に 2 つのメソッドが追加されました。あるノードの子ノード一覧を返すgetChildrenForNode()
と、選択範囲内で使用されているフォントフェイス一覧を返すgetUsedFontFaces()
です。nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCH
インターフェイスはnsIMarkupDocumentViewer
インターフェイスへ統合されました。nsIDOMWindow2
インターフェイスはnsIDOMWindow
インターフェイスへ統合されました。nsIDOMWindow_2_0_BRANCH
インターフェイスはnsIDOMWindowInternal
インターフェイスへ統合されました。- URI 引数付きで
nsINavHistoryObserver
メソッドを使う場合、GUID も必要となります。 nsISHistory_2_0_BRANCH
インターフェイスはnsISHistory
インターフェイスへ統合されました。-
nsITelemetry
に、ID からヒストグラムを返すgetHistogramById()
メソッドと、false
設定時に 使用統計情報 (Telemetry) の記録を無効化できるcanRecord
属性が追加されました。使用統計情報はプライベートブラウジングモードでは記録されなくなりました。(Firefox バグ 661574、Firefox バグ 661573)newHistogram()
で定義された使用統計ヒストグラムは、Mozilla への定期報告に含まれません。 nsIMemoryReporter
インターフェイスに大幅な変更が行われました。使用する場合はコードに変更を加える必要があるでしょう。nsIXMLHttpRequest.setRequestHeader()
によって設定されたヘッダーが、リダイレクトを辿る際にもリクエストに含まれて送信されるようになりました。これまでこの方法で設定されたヘッダーは送信されていませんでした。nsIDocShell
にallowWindowControl
属性が追加されました。true
を設定すると、docshell のコンテンツがウィンドウをコントロールできるようになります (ウィンドウの移動やサイズ変更など)。nsIThreadInternal2
インターフェイスはnsIThreadInternal
インターフェイスへ統合されました。
新しいインターフェイス
nsIDOMFontFace
-
ひとつのフォントフェイスを表します。
nsIDOMFontFaceList
-
nsIDOMFontFace
で表されたフォントフェイスの一覧を表します。
削除されたインターフェイス
以下のインターフェイスは、不要となり削除された実装です。
nsIDOM3Attr
nsIDOM3Node
nsIDOM3TypeInfo
nsIDOM3Text
nsIDOMDocumentStyle
nsIDOMNSDocument
nsIDOMNSFeatureFactory
nsIDOMNSHTMLDocument
nsIDOMNSHTMLFormElement
nsIDOMNSHTMLHRElement
nsIDOMNSHTMLTextAreaElement
以下のインターフェイスは、ActiveX 組み込み API 廃止の一環として削除されました。
DITestScriptHelper
DWebBrowserEvents
DWebBrowserEvents2
IDispatch
IMozControlBridge
IMozPluginHostCtrl
IWebBrowser
IWebBrowser2
IWebBrowserApp
IXMLDocument
IXMLElement
IXMLElementCollection
IXMLError
nsIActiveXSecurityPolicy
nsIDispatchSupport
nsIMozAxPlugin
nsIScriptEventHandler
nsIScriptEventManager