Firefox 10 for developers
Gecko 10.0 を搭載した Firefox 10 は米国時間 2012 年 1 月 31 日にリリースされました。このページでは、開発者に影響する Firefox 10 の変更点をまとめています。
メモ: Firefox 10 は、2 桁の数値で表記される最初のリリースです。これにより、一部の UserAgent 検出スクリプトで問題が発生するおそれがあります。そのようなスクリプトや、ページに埋め込まれているサードパーティのソフトウェア (ライブラリーなど) で UserAgent 検出を行っているものの確認を行うようにしてください。この点に関する詳細情報は、hack.mozilla.org の記事 Firefox goes 2-digit article on をご覧ください。
ウェブ開発者向けの変更点一覧
HTML
- 方向が異なるテキストの部分を分離することを可能にする、HTML5 の
<bdi>
(bi-directional isolation) 要素が実装されました。これは、既知の方向のテキスト内に未知の方向のテキスト (例えばデータベースから取り出したテキストで、方向が異なる可能性がある) を表示する場合に特に有用です。 href
属性に、ページ先頭へのリンクを作成するための断片 "top" を指定可能になりました。これは過去に動作していてその後一時的に削除されていましたが、HTML5 仕様書との互換性のため再び動作するようになりました。例:<a href="#top">Return to top of page</a>
.
JavaScript
WeakMap.set()
メソッドの戻り値はそれ自身からundefined
に替わりました。- Firefox 7 以降で正規表現のハンドリングに関する不具合がありましたが、修正されました。詳しくは Firefox バグ 683838 をご覧ください。
- ECMAScript 5 strict mode (すなわち、
"use strict;"
以降) では、E4X の構文を使用できなくなりました。
DOM
DOM3 Events
- DOM イベントの
event.stopImmediatePropagation
メソッドが実装されました。 - マウスイベントの
mouseenter
およびmouseleave
が実装されました。
DOM4
- DOM4 仕様書で非推奨とされたため、
document.xmlVersion
属性 (読み取りのみ可能で、設定は不可) が削除されました。document.xmlVersion
の記事では、このプロパティを使用せずに ドキュメントが HTML か XML かを判断する方法を提案しています。 - DOM4 仕様書で非推奨とされたため、
document.xmlStandalone
属性が削除されました。 - DOM4 仕様書で非推奨とされたため、
document.xmlEncoding
属性が削除されました。 - DOM4 仕様書で非推奨とされたため、
text.isElementContentWhiteSpace
属性が削除されました。 - DOM4 仕様書で非推奨とされたため、
text.replaceWholeText
メソッドが削除されました。 - DOM4 仕様書で非推奨とされたため、
node.isSameNode
メソッドが削除されました。node1.isSameNode(node2)
に代わり、===
演算子を使用できます。例:node1 === node2
Page Visibility API
- Page Visibility API が実装されました (接頭辞が付加されています):
document.mozHidden
、document.mozVisibilityState
が利用可能であり、また状態が変更されるとmozvisibilitychanged
イベントが送信されます。
Full Screen API
document.mozFullScreenEnabled
のサポートが追加されました。:-moz-full-screen-ancestor
プロパティが追加されました。これはフルスクリーンモードになっている要素の祖先要素に対してマッチします。
Battery API
window.navigator.mozBattery
の実験的なサポートが追加されました (設定dom.battery.enabled
をtrue
にすることで有効になります。また、Firefox 11 からはデフォルトで有効になる予定です)。
Canvas
createPattern()
メソッドは、サイズが 0 の canvas が指定された場合に例外が発生するようになりました。- 仕様書に準拠するため、
putImageData()
の数値引数のいずれかに有限値でない値を与えたときに例外が発生するのではなく、値を無視するようになりました。
WebGL
- Firefox 10 で、
OES_standard_derivatives
拡張がサポートされました。 - 完全な開発環境上で、最低限のサポートにとどまるデバイスとの WebGL コードの互換性を確認するために役立つ 新たな設定項目 が追加されました。
Web Workers
- Workers 内で
XMLHttpRequest.responseType
属性およびXMLHttpRequest.response
属性が利用可能になりました。 Worker()
コンストラクターが data URIs を受け入れるようになりました。
IndexedDB
IndexedDB を最新のドラフト仕様に更新するための大きな進展がありました。この努力は Firefox 11 でも続くでしょう。
IDBIndex.count()
メソッドおよびIDBObjectStore.count()
メソッドが追加されました。IDBCursor.advance()
メソッドが追加されました。IDBObjectStore.createIndex()
およびIDBDatabase.createObjectStore()
で未知のオプション引数が渡されたとき、Gecko は例外を発生させるのではなくそれを無視するようになりました。IDBTransaction.abort()
が呼び出されると、待機状態にあるすべてのIDBRequest
はerrorCode
をABORT_ERROR
に設定します。IDBObjectStore.delete()
メソッドおよびIDBCursor.delete()
メソッドは、戻り値となるIDBRequest
のresult
属性の値をundefined
にするようになりました。- 最新の仕様書で削除されたため、
IDBDatabase.setVersion()
メソッドは削除されました。データベースのバージョンは、更新されたIDBFactory.open()
メソッドで渡すことができ、onupgradeneeded
コールバックでデータベースのスキーマの更新が可能になります。なお、バージョンの型はDOMString
からunsigned long long
に替わりました。また、IDBVersionChangeRequest
インターフェイスは削除され、新たなIDBOpenDBRequest
インターフェイスに置き換えられました。 IDBFactory.deleteDatabase()
メソッドが追加されました。
その他の変更点
- SVG を含む文字列が与えられたとき、適切な MIME タイプ
image/svg+xml
が渡された場合はDOMParser
がSVGDocument
を生成するようになりました。 - 従来
element.setAttribute()
が整数値の構文解析を行うときは、数値ではない文字列が含まれる場合 (例えば "42foo") にエラーを報告していました。これが仕様書へ合致させるために、数値 42 へ正しく切り詰めるようになりました。 - ESC キーで
window.oninput
ハンドラーが誤って呼び出されるという、間違った結果にならないようになりました。 - 従来実装されていたものの実際にはアクセスする方法がない
NameList
インターフェイスは削除されました。 document.createProcessingInstruction()
メソッドが HTML ドキュメントでも、XML ドキュメントの場合と同様に動作するようになりました。ProcessingInstruction
ノードは現在も XML ドキュメントでのみサポートされていますが、ノードはドキュメントをまたいで移動させられますので、HTML ドキュメントでも同様にノードを作成することに役立ちます。XMLHttpRequest
のプロパティresponseType
の値として Firefox 9 で導入した "moz-json
" は、最新のドラフト仕様への更新を行い接頭辞を削除しました。Firefox バグ 707142#c13 をご覧ください。
CSS
- CSS 3D Transforms がサポートされました。これには
transform-style
、perspective
、perspective-origin
、backface-visibility
の各プロパティ、また同様にtransform
および<transform-function>
プロパティによる 3D transform 機能が含まれます。詳しくは Using CSS transforms をご覧ください。 unicode-bidi
CSS プロパティへ、新たに 2 つの値-moz-isolation
および-moz-plaintext
が追加されました。値-moz-isolation
は、要素がその環境から受けるテキストの方向の見解から切り離すことで、異なる方向のテキストであることを示すことができます。unicode-bidi:-moz-isolation
を指定した要素は、<bdi>
要素のように動作します。値-moz-plaintext
は、テキストの方向の決定に CSS のdirection
プロパティではなく Unicode のヒューリスティックな方法を用いることを示します。- CSS の
linear-gradient()
プロパティおよびrepeating-linear-gradient()
プロパティは、新たにto
構文と magic corner アルゴリズムをサポートするよう更新されました。これにより、グラデーションが描画されたボックスの隅へ精密に色を配置することができます。 text-overflow
プロパティに処理法が一つだけ指定されている場合に、ボックスの両側へオーバーフローする場合のtext-overflow
の扱いが 正しくなりました。- ポジショニングされた
<table>
要素内部でのposition
プロパティの扱いが 修正されました。この変更はページのレイアウトに影響を与えますが、CSS 仕様書や他のブラウザーに従うことになりますので、レイアウトの修正は容易でしょう。 <table>
要素のマージンの相殺が、CSS 仕様書に合致するようになりました。以前は table 要素のマージンは隣接する要素のマージンと相殺されなかったため、正しくないレイアウトになっていました。この変更はページのレイアウトに影響を与えますが、CSS 仕様書や他のブラウザーに従うことになりますので、レイアウトの修正は容易でしょう。
SVG
- 最新の SVG 1.1 仕様書へ準拠するため、
<mask>
要素は sRGB および linearRGB をサポートするように更新されました。デフォルトは sRGB です。
ネットワーク
- HTTP ヘッダー
Accept-Charset
は、HTTP 要求時に送信されなくなりました。このヘッダーがない場合、サーバーは UTF-8 での送信として応答するべきです。
開発ツール
console
オブジェクトへ新たに 2 つのメソッド、console.time()
およびconsole.timeEnd()
が追加されました。これらはページにタイマーをセットするために用いられます。- コンテンツの背後にある HTML や CSS の調査および操作を行うすばらしい方法を提供する、調査ツール が新たに追加されました。
Mozilla 開発者とアドオン開発者向けの変更点
アドオンを Firefox 10 へ対応させる際に発生すると思われる問題の概要に関しては、Updating add-ons for Firefox 10 をご覧ください。
メモ: 古い PRBool
データ形式は退役されました。これを参照する文書では、どこでも代わりに標準 C++ bool
形式を使用します。現時点では文書が更新されていませんが、将来更新されますので留意してください。
Manifests
- インストールマニフェストに
<em:strictCompatibility>
のサポートが追加されました。これによりアドオンの作者が、拡張機能で最大バージョンのチェックを有効にすることができます。true
に設定すると、アプリケーションのバージョンが<em:maxVersion>
を上回っている場合にアドオンが無効になります。Firefox 10 はデフォルトで、指定された最大バージョンに関わらずアドオンは互換性があるものとします。このフラグは、その設定を上書きします。Firefox の更新により動作しなくなる可能性があることをアドオンで行っている場合はこれを設定するべきですが、アドオンにバイナリーコンポーネントが含まれている場合は常に厳密なチェックが行われますのでこれを設定しないようにしてください (バイナリーコンポーネントは Firefox のメジャーリリースごとに、必ず再コンパイルが必要です)。 - 以前の動作、つまりマニフェストの
strictCompatibility
の値に関わらずすべてのアドオンで厳密な互換性チェックを行う方式に戻したい場合は、設定項目extensions.strictCompatibility
をtrue
にしてください。
XUL
- chrome.manifest ファイルを用いるブートストラップ型アドオンは、マニフェストファイルが自動的に登録されるようになりました。詳しくは Adding user interface with a chrome.manifest をご覧ください。
XPConnect
Components.utils
に、デバッグ用に用意された情報へのアクセスを可能にするプロパティとメソッドがいくつか追加されました。
インターフェイスの変更
mozISpellCheckingEngine
インターフェイスおよびnsIEditorSpellCheck
インターフェイスは、再起動の不要なアドオンがスペルチェッカに辞書を追加できるように更新されました。注: これを行う方法に関して ドキュメントの更新 が必要。nsIBrowserHistory.lastPageVisited
属性は削除されました。nsIDocumentViewer
インターフェイスはnsIContentViewer
に統合されました。nsIURIFixup
インターフェイスに、コンバートする際にプラットフォームの文字コードではなく UTF-8 を使用することを示すFIXUP_FLAG_USE_UTF8
フラグが追加されました。
プラグインの変更
- 新しい変数
NPNVdocumentOrigin
を追加しました。これはドキュメントの生成元を返すもので、window.location
よりセキュアです。
ビルドシステムの変更
- 実際はビルドを成功できないようにしてしまう、
--disable-rdf
ビルドオプションが削除されました。RDF サポートの完全な削除を可能にする作業は進行中ですが、現在の XUL ではこの機能が必須です。RDF を必要とする最後の痕跡を削除する作業の進捗については Firefox バグ 559505 をご覧ください。 --disable-smil
ビルドオプションは削除されました。