Firefox 3.6 開発者向け情報
Firefox 3.6 では新規あるいは開発中のウェブ標準のサポート、性能の向上、ウェブユーザーと開発者にとってより良い体験が提供されます。このページは Firefox 3.6 で新しく利用出来るようになった機能に関する記事のリンクを提供します。
ウェブサイトとアプリケーション開発者向け
>CSS
- グラデーションの利用
-
Firefox 3.6 では
-moz-linear-gradientおよび-moz-radial-gradientプロパティがbackgroundにおいて対応が追加されました。 - 複数の背景
-
backgroundプロパティ(およびbackground-color、background-image、background-position、background-repeat、background-attachmentが複数の背景に対応しました。これによりひとつのレイヤーの中で他に重なるような背景を指定できます。 - Mozilla 独自のメディア特性
-
Mozilla 独自のシステムメトリックスに複数のメディア特性が追加されました。このメディア特性により、タッチサポートのような機能の有効性の確認を、メディアクエリーを使用してより安全に行えるようになりました。
- 背景画像のスケーリング
-
CSS 3 Backgrounds and Borders 草案の
background-sizeプロパティが-moz-background-sizeとして対応しました。 - WOFF フォントの対応
-
@font-faceが新しい WOFF ウェブフォントファイル形式に対応しました。 - ポインターイベント
-
pointer-eventsプロパティにより、要素がマウスポインターのイベントのターゲットであるかどうかをコンテンツが指定できるようになります。
その他の CSS の変更
- 長さの単位
remが対応されました。 Firefox バグ 472195 image-renderingが画像、背景画像、ビデオ、canvas でサポートされました。 Firefox バグ 423756text-align:end がサポートされました。Firefox バグ 299837displayの table 型の要素に対する DOM の変更がより良く動作するようになりました。:-moz-locale-dir(ltr)と:-moz-locale-dir(rtl)が追加され、左書きと右書きのどちらで描画されるかに応じて、ユーザーインターフェイスが容易にレイアウトをカスタマイズできるようになりました。Firefox バグ 478416:indeterminate擬似クラスの対応が追加され、checkbox型のinput要素でindeterminate属性がtrueに一致する場合に対応が追加されました。- ウィンドウ化されたプラグインは CSS 座標変換の中では表示されなくなりました。これはコンポジターによって正しく変換されないためです。
HTML
- ウェブアプリケーションからファイルを扱う
-
新しい HTML5 File API のサポートが Gecko に追加され、ウェブアプリケーションがユーザーの選択したローカルファイルにアクセス出来るようになりました。これには
input type="file"HTML 要素において複数のファイルを選択するmultiple属性のサポートが含まれます。 - HTML5 video がポスターフレームをサポート
-
video要素でposter属性がサポートされ、コンテンツがビデオの再生が開始されるまでに表示されるポスター・フレームを指定できるようになりました。 - チェックボックスとラジオボタンが
indeterminate属性をサポート -
HTML の
input要素でcheckboxとradio型のものが indeterminate 属性をサポートし、3 番目の "indeterminate" 状態を持てるようになりました。 - キャンバスの画像のスムージングが制御可能に
-
canvas要素のスケーリング時に、新しいmozImageSmoothingEnabledプロパティでスムージングの有無を指定できるようになりました。 - 非同期のスクリプト実行
-
async属性をscript要素に設定すると、そのscriptはページの残りの部分の読み込みや表示をブロックしません。代わりに、scriptはダウンロードが完了次第すぐに実行されます。
JavaScript
Gecko 1.9.2 は JavaScript 1.8.2 を採用し、ECMAScript 5 standard から多くの言語機能が追加されました。
Date.parse()は YYYY-MM-DD のような ISO 8601 日付をデコードできるようになりました。- function インスタンスの
prototypeプロパティは列挙可能 (enumerable)ではなくなりました。
DOM
- ウェブワーカーが自己終了可能に
-
ワーカーが
nsIWorkerScope.close()メソッドに対応し、自分自身で終了できるようになりました。 - ドラッグ&ドロップがファイルに対応
-
ドラッグリスナーで提供される
DataTransferオブジェクトがドラッグされたファイルを含むようになりました。 - 要素が指定された CSS セレクターに一致するか確認する
-
新しい
Node.mozMatchesSelectorメソッドを使用すると、要素が指定された CSS セレクターに一致するかどうかを判定できます。詳細は Firefox バグ518003を参照してください。 - デバイスの傾きの検出
-
コンテンツはデバイスが加速度センサー(accelerometer)をサポートしていれば
MozOrientationイベントによりその傾きを検出できるようになりました。Firefox 3.6 は Mac のノートブックで加速度センサーをサポートします。 - 文書の幅と高さの変化の検出
-
document の
scrollWidthまたはscrollHeightプロパティが変化すると、MozScrollAreaChangedイベントが発動します。
その他の DOM の変更
getBoxObjectFor()メソッドが削除されました。このメソッドは非標準であり、さらに非標準なものをウェブにさらすことになるからです。Firefox バグ 340571 を参照してください。これはまた、Gecko の検出にこのメソッドをコールする MooTools にも影響します。これは最新の MooTools で修正されたのでいずれ更新されるでしょう。- DOM windows に新しい
mozInnerScreenXとmozInnerScreenYプロパティが追加されました。これらはウィンドウ表示領域の左上コーナーを基準にしたスクリーンの座標を返します。 - chrome に対してのみアクセス可能な新しい
mozScreenPixelsPerCSSPixelプロパティは CSS ピクセルと画面ピクセルの変換率を提供します。この値はコンテンツのズームレベルに応じて変化します。 - ページ URI の文書フラグメント識別子("#" (ハッシュ) 文字の後の部分)が変更になったとき、新たな
hashchangeイベントがページに送られるようになりました。Firefox バグ 385434 を参照してください。 document.readyState属性がサポートされました。Firefox バグ 347174。- HTML5 の
element.classListがサポートされ、クラス属性の処理が容易になりました。Firefox バグ 501257 - HTML 文書の
localNameとnamespaceURIが XHTML 文書と同じように振舞うようになりました。localNameは小文字で値を返し、HTML 要素のnamespaceURIは"http://www.w3.org/1999/xhtml"です。 element.getElementsByTagNameNSは引数を小文字に変換しなくなったため、引数内の大文字の ASCII 文字が HTML 要素との一致を失敗させます。document.getElementsByTagNameNSについても同様です。nsIDOMGeoPositionAddressインターフェイスによりジオロケーションの address がサポートされ、新しいフィールドがnsIDOMGeoPositionに追加されました。Firefox バグ 503942window.getComputedStyle関数はurl()値の中をクォートして返すようになりました。
XPath
XUL とアドオン開発者向け
あなたが拡張機能の開発者なら、あなたの拡張機能に影響するかもしれない変更点の役に立つ概要を記した Updating extensions for Firefox 3.6 を読むことから始めてください。プラグインの開発者は Updating plug-ins for Firefox 3.6 を読んでください。
新機能
- デバイスの傾きの検出
-
コンテンツはデバイスが加速度センサー(accelerometer)をサポートしていれば
MozOrientationイベントによりその傾きを検出できるようになりました。Firefox 3.6 は Mac のノートブックで加速度センサーをサポートします。 - HTTP アクティビティのモニタリング
-
HTTP トランザクションをモニターし、リアルタイムでリクエストとレスポンスを観察できます。
- Windows のタスクバーとの協調
-
Windows 7 またはそれ以降のタスクバー内で、ウィンドウの設定の変更が可能になりました。Firefox 3.6 ではこの機能はデフォルトで無効になっています。
Places
- Places のクエリーは結果にリダイレクトされたページが含んでいるかどうかを特定できるように
redirectsModeがnsINavHistoryQueryOptionsインターフェイスで利用できるようになりました。 - 新しい
nsIFaviconService.expireAllFavicons()メソッドがnsIFaviconServiceインターフェイスに追加されました。
ストレージ
- ストレージ API でデータのロケールを考慮した照合がサポートされました
-
Gecko 1.9.2 にロケールを考慮した技術を用いて最適化された照合を提供する複数の新しい(ソート付き)照合メソッドが追加されました。
- ステートメントのプロパティが列挙可能になりました
-
ステートメントのすべてのプロパティを列挙する
for...inenumeration が利用できるようになりました。 - mozIStorageStatement の getParameterIndex の動作が 3.5 と 3.6 の間で変更された
-
詳細は Firefox バグ 528166 を参照してください。
- 複数の引数のセットを非同期バインドしてステートメントを実行
-
詳細は Firefox バグ 490085 を参照してください。ドキュメント準備中です。
Preferences
nsIContentPrefServiceインターフェイスが新しく二つのメソッドを持ちました:nsIContentPrefService.getPrefsByName()とnsIContentPrefService.removePrefsByName()。
テーマ
テーマに関する変更の詳細は Updating themes for Firefox 3.6 を参照してください。
その他
- Firefox は components ディレクトリー内にインストールされたサードパーティのコンポーネントをロードしなくなりました。これはバグのあるサードパーティコンポーネントが実行されるのを防止することによる安定性の向上に貢献します。このやり方でコンポーネントをインストールする開発者は標準的なアドオンとしてインストールできるようにそれらコンポーネントを XPI パッケージとして再パッケージする必要があります。
- 拡張において chrome を登録するために用いていた
contents.rdfは利用できなくなりました。chrome.manifestファイルを代わりに利用しなければなりません。 Firefox バグ 492008 を参照してください。 - メニューバーを自動的に隠すためのサポートが追加されました。Firefox バグ 477256 を参照してください。
- オブジェクトに対して
container-live-role属性を持たせるためのサポートが追加されました。Firefox バグ 391829 を参照してください。 tabs-closebuttonバインディングが削除されました。Firefox バグ 500971 を参照してください。- 発生したイベントに基づいて音を鳴らすための
nsISoundに対するサポートが追加されました。 Firefox バグ 502799 を参照してください。 - Gecko 1.9 での新しいドラッグ&ドロップ API をサポートするために
nsITreeViewのメソッドであるnsITreeView.canDrop()およびnsITreeView.drop()の構文が変更になりました。Firefox バグ 455590 を参照してください。 - Windows のダイアログとウィザードのデフォルトボタンへのマウスカーソルの移動がサポートされました。Firefox バグ 76053 を参照してください。これはダイアログとウィザード要素によって自動的に行われます。ただし、XUL アプリケーションが
window要素のウィンドウを生成し、それがデフォルトボタンを持つ場合は、ウィンドウの onload イベントでnsIDOMChromeWindow.notifyDefaultButtonLoaded()をコールする必要があります。 nsILocalFileMacインターフェイスが二つのメソッドを持ちました:setFileTypeAndCreatorFromMIMEType()とsetFileTypeAndCreatorFromExtension()。- 新しい
NetUtils.jsmコードモジュールは、入力ストリームから出力ストリームに非同期にデータをコピーする簡単に利用できるメソッドを提供します。 - 新しい
openLocationLastURL.jsmコードモジュールは、プライベートブラウジングモードであるかを正しく判断して、"Open Location" ダイアログボックスの記憶された URL データの読み込みと変更を容易にします。 - Windows では、
nsIScreenインターフェイスは、グラフィックスドライバーが 32 ビットをサポートしていても、ピクセルごとに 24 ビットカラーをレポートします。これは 24 ビットは実際に利用されているカラーピクセルの数をより正確に表現するためです。 - Window では
<xul:toolbar>XUL 要素の新しいautohide属性を用いてメニューバーを隠すことができます。 loadOneTabとaddTabメソッドは新しいrelatedToCurrent引数をサポートし、加えて、多くの引数が省略可能であるために名前による引数の指定ができます。- インストールマニフェストで "hidden" プロパティはサポートされなくなりました。アドオンマネージャウィンドウ上でユーザーが見ることのできないアドオンは不可能になりました。
@mozilla.org/webshell;1コンポーネントはもう存在しません。代わりに@mozilla.org/docshell;1を使う必要があります。- タイマーイベントをスケジュールするために、タイマーがコールするオブジェクトをインスタンシエイトすることなく update-timer カテゴリーで登録できるようになりました。代わりに必要になったときにインスタンシエイトされます。詳細は
nsIUpdateTimerManager.registerTimer()を参照してください。 NPN_GetValue()関数はもはや変数値NPNVserviceManager,NPNVDOMelement,NPNVDOMWindowを経由した XPCOM へのアクセスを提供しません。これは将来のバージョンの Gecko バージョンでプラグインを分離したプロセスで動作させるための作業の一部です。- プラグインは XPCOM (IDL) インターフェースを通じてスクリプト化できなくなりました。プラグインをスクリプト化可能にするには NPRuntime API を使用し、
NPP_GetValue()は、値NPPVpluginScriptableInstanceまたはNPPVpluginScriptableIIDで呼び出されることはなくなりました。これは、将来の Gecko バージョンでプラグインを別プロセスで実行できるようにするための作業の一環です。
Firefox/Gecko 開発者向け
いくつかの変更はあなたが Firefox そのものの内部で作業している場合にだけ興味を持つことでしょう。
マージされたインターフェイス
以下のインターフェイスは統合されました:
nsIPluginTagInfo2はnsIPluginTagInfoにマージされました。nsIPluginInstanceInternal,nsIPPluginInstancePeer,nsIPluginInstancePeer1,nsIPluginInstancePeer2,nsIPluginInstancePeer3はすべてnsIPluginInstanceにマージされました。nsIWindowlessPlugInstPeerはnsIPluginInstanceにマージされました。nsIPluginManagerとnsIPluginManager2はnsIPluginHostにマージされました。
削除されたインターフェイス
以下のインターフェイスは利用されていない、実装されていないまたは旧式であるためにすべて削除されました:
nsIFullScreennsIDOMSVGListenernsIDOMSVGZoomListenernsIInternetConfigServicensIDKeynsIEventHandlernsIJRILiveConnectPIPeernsIJRILiveConnectPluginnsIScriptablePluginnsIClassicPluginFactorynsIFileUtilities
移動されたインターフェイス
以下のインターフェイスは以前の IDL ファイルから新しい場所に移動されました:
nsIDOMNSCSS2Propertiesは専用の IDL ファイル (dom/interfaces/css/nsIDOMCSS2Properties.idl) に移動されました。nsIUpdateTimerManagerはそれ自身の IDL ファイル内に配置されます。
多くのインターフェイスが移動されました。完全なリストは Interfaces moved in Firefox 3.6 を参照してください。
その他のインターフェイスの変更
以下のようなさまざまな変更が行われました:
nsIPluginインターフェイスはnsIFactoryではなくnsISupportsから継承します。nsIPluginHostインターフェイスはnsIFactoryではなくnsISupportsから継承しますす。nsIFrameインターフェイスはnsISupportsではなくnsQueryFrameから継承します。nsIDeviceContextメソッドgetPaletteInfo()は今まで実装されてことがないので削除されました。nsIScriptContextメソッドreportPendingException()はもう利用されていないので削除されました。
アクセシビリティコードの変更
- メイン文書の子どもが変更された時と同様に、frame と iframe の子どもが変更されたときに
EVENT_REORDERアクセシビリティイベント が送信されます。Firefox バグ 420845 を参照してください。 nsIAccessibleTable.selectRow()は指定された列が選択される前にどんなカレントの選択であっても正しく削除します。