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 をご覧ください。
Web 開発者向けの変更点一覧
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(en-US) メソッドが実装されました。 - マウスイベントの
mouseenterおよびmouseleaveが実装されました。
DOM4
- DOM4 仕様書で非推奨とされたため、
document.xmlVersion属性 (読み取りのみ可能で、設定は不可) が削除されました。document.xmlVersionの記事では、このプロパティを使用せずに ドキュメントが HTML か XML かを判断する方法を提案しています。 - DOM4 仕様書で非推奨とされたため、
document.xmlStandalone属性が削除されました。 - DOM4 仕様書で非推奨とされたため、
document.xmlEncoding(en-US) 属性が削除されました。 - 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(en-US) のサポートが追加されました。:-moz-full-screen-ancestorプロパティが追加されました。これはフルスクリーンモードになっている要素の祖先要素に対してマッチします。
Battery API
window.navigator.mozBatteryの実験的なサポートが追加されました (設定dom.battery.enabledをtrueにすることで有効になります。また、Firefox 11 からはデフォルトで有効になる予定です)。
Canvas
createPattern()(en-US) メソッドは、サイズが 0 の canvas が指定された場合に例外が発生するようになりました。- 仕様書に準拠するため、
putImageData()(en-US) の数値引数のいずれかに有限値でない値を与えたときに例外が発生するのではなく、値を無視するようになりました。
WebGL
- Firefox 10 で、
OES_standard_derivatives拡張がサポートされました。 - 完全な開発環境上で、最低限のサポートにとどまるデバイスとの WebGL コードの互換性を確認するために役立つ 新たな設定項目 が追加されました。
Web Workers
- Workers (en-US) 内で
XMLHttpRequest.responseType属性およびXMLHttpRequest.response属性が利用可能になりました。 Worker()(en-US) コンストラクタが data URIs を受け入れるようになりました。
IndexedDB
IndexedDB を最新のドラフト仕様に更新するための大きな進展がありました。この努力は Firefox 11 でも続くでしょう。
IDBIndex.count()(en-US) メソッドおよびIDBObjectStore.count()(en-US) メソッドが追加されました。IDBCursor.advance()(en-US) メソッドが追加されました。IDBObjectStore.createIndex()(en-US) およびIDBDatabase.createObjectStore()(en-US) で未知のオプション引数が渡されたとき、Gecko は例外を発生させるのではなくそれを無視するようになりました。IDBTransaction.abort()(en-US) が呼び出されると、待機状態にあるすべてのIDBRequest(en-US) はerrorCodeをABORT_ERRORに設定します。IDBObjectStore.delete()(en-US) メソッドおよびIDBCursor.delete()(en-US) メソッドは、戻り値となるIDBRequest(en-US) のresult属性の値をundefinedにするようになりました。- 最新の仕様書で削除されたため、
IDBDatabase.setVersion()(en-US) メソッドは削除されました。データベースのバージョンは、更新されたIDBFactory.open()(en-US) メソッドで渡すことができ、onupgradeneededコールバックでデータベースのスキーマの更新が可能になります。なお、バージョンの型はDOMStringからunsigned long longに替わりました。また、IDBVersionChangeRequestインタフェースは削除され、新たなIDBOpenDBRequest(en-US) インタフェースに置き換えられました。 IDBFactory.deleteDatabase()(en-US) メソッドが追加されました。
その他の変更点
- SVG を含む文字列が与えられたとき、適切な MIME タイプ
image/svg+xmlが渡された場合はDOMParserがSVGDocumentを生成する (en-US)ようになりました。 - 従来
element.setAttribute()が整数値の構文解析を行うときは、数値ではない文字列が含まれる場合 (例えば "42foo") にエラーを報告していました。これが仕様書へ合致させるために、数値 42 へ正しく切り詰めるようになりました。 - ESC キーで
window.oninput(en-US) ハンドラが誤って呼び出されるという、間違った結果にならないようになりました。 - 従来実装されていたものの実際にはアクセスする方法がない
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-bidiCSS プロパティへ、新たに 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インタフェースは、再起動の不要なアドオンがスペルチェッカに辞書を追加できるように更新されました。注: これを行う方法に関して ドキュメントの更新 (en-US) が必要。nsIBrowserHistory.lastPageVisited属性は削除されました。nsIDocumentViewerインタフェースはnsIContentViewerに統合されました。nsIURIFixupインタフェースに、コンバートする際にプラットフォームの文字コードではなく UTF-8 を使用することを示すFIXUP_FLAG_USE_UTF8フラグが追加されました。
プラグインの変更
- 新しい変数
NPNVdocumentOriginを追加しました。これはドキュメントの生成元を返すもので、window.locationよりセキュアです。
ビルドシステムの変更
- 実際はビルドを成功できないようにしてしまう、
--disable-rdfビルドオプションが削除されました。RDF サポートの完全な削除を可能にする作業は進行中ですが、現在の XUL ではこの機能が必須です。RDF を必要とする最後の痕跡を削除する作業の進捗については Firefox バグ 559505 をご覧ください。 --disable-smilビルドオプションは削除されました。