Firefox 3.6 for developers
Firefox 3.6 では新規あるいは開発中のウェブ標準のサポート、性能の向上、ウェブユーザーと開発者にとってより良い体験が提供されます。このページは Firefox 3.6 で新しく利用出来るようになった機能に関する記事のリンクを提供します。
ウェブサイトとアプリケーション開発者向け
>CSS
- グラデーションの利用
-
Firefox 3.6 では
backgroundにおいて、Mozilla が提案中の-moz-linear-gradientと-moz-radial-gradientプロパティのサポートが追加されました。 - 複数の背景
-
backgroundプロパティ(およびbackground-color、background-image、background-position、background-repeat、background-attachment)が複数の背景をサポートしました。これによりひとつのレイヤーの中で他に重なるような背景を指定できます。 - Mozilla 独自のメディア特性
-
Mozilla 独自のシステムメトリックスに複数のメディア特性が追加されました。このメディア特性により、タッチサポートのような機能の有効性の確認を、media queries を使用してより安全に行えるようになりました。
- 背景画像のスケーリング
-
CSS 3 Backgrounds and Borders 草案の
background-size プロパティが-moz-background-sizeとしてサポートされました。 - WOFF フォントのサポート
-
@font-faceが新しい WOFF ウェブフォントファイルフォーマットをサポートしました。 - ポインターイベント
-
pointer-eventsプロパティにより、要素がマウスポインターのイベントのターゲットであるかどうかをコンテンツが指定できるようになります。
その他の CSS の変更
- CSS3 Values and Units で定義されている長さの単位
remがサポートされました。 バグ 472195 image-renderingが画像、背景画像、ビデオ、canvas でサポートされました。 バグ 423756text-align:end がサポートされました。バグ 299837- table
displayタイプの要素に対する DOM の変更がより良く動作するようになりました。 indeterminate属性がtrueであるcheckboxinput要素にマッチする:indeterminate擬似クラスのサポートが追加されました。:-moz-locale-dir(ltr)と:-moz-locale-dir(rtl)が追加され、ユーザーインターフェイスが left-to-right または right-to-left のどちらで描画されるかに応じて、容易にレイアウトをカスタマイズできるようになりました。バグ 478416- ウィンドウ化されたプラグインは CSS transforms の中では表示されなくなりました。これはコンポジターによって正しく変換されないためです。
HTML
- ウェブアプリケーションからファイルを扱う
-
新しい HTML5 File API のサポートが Gecko に追加され、ウェブアプリケーションがユーザーの選択したローカルファイルにアクセス出来るようになりました。これには
input type="file"HTML 要素において複数のファイルを選択するmultiple属性のサポートが含まれます。
- HTML5 video がポスター・フレームをサポート
-
video要素でposter属性がサポートされ、コンテンツがビデオの再生が開始されるまでに表示されるポスター・フレームを指定できるようになりました。 - チェックボックスとラジオボタンが
indeterminate属性をサポート -
checkboxとradioタイプの HTMLinput要素が indeterminate 属性をサポートし、3 番目の "indeterminate" 状態を持てるようになりました。 - Canvas 画像のスムージングが制御可能に
-
canvas要素のスケーリング時に、新しいmozImageSmoothingEnabledプロパティでスムージングの有無を指定できるようになりました。
JavaScript
Gecko 1.9.2 は JavaScript 1.8.2 を採用し、ECMAScript 5 standard から多くの言語機能が追加されました:
Date.parse()は YYYY-MM-DD のような ISO 8601 dates をデコードできるようになりました。- function インスタンスの
prototypeプロパティは列挙可能 (enumerable)ではなくなりました。
DOM
- Web workers が自己終了可能に
-
Workers が
nsIWorkerScope.close()メソッドをサポートし、自分自身で終了できるようになりました。 - ドラッグ&ドロップがファイルをサポート
-
ドラッグリスナーで提供される
DataTransferオブジェクトがドラッグされたファイルを含むようになりました。 - デバイスの傾きの検出
-
コンテンツはデバイスが加速度センサー(accelerometer)をサポートしていれば
MozOrientationイベントによりその傾きを検出できるようになりました。Firefox 3.6 は Mac のノートブックで加速度センサーをサポートします。 - document の幅と高さの変化の検出
-
document の
scrollWidthまたはscrollHeightプロパティが変化すると、MozScrollAreaChangedイベントが発動します。
その他の DOM の変更
getBoxObjectFor()メソッドが削除されました。このメソッドは非標準であり、さらに非標準なものをウェブにさらすことになるからです。バグ 340571 を参照してください。これはまた、Gecko の検出にこのメソッドをコールする MooTools にも影響します。これは最新の MooTools で修正されたのでいずれ更新されるでしょう。- DOM windows に新しい
mozInnerScreenXとmozInnerScreenYプロパティが追加されました。これらはウィンドウ表示領域の左上コーナーを基準にしたスクリーンの座標を返します。 - chrome に対してのみアクセス可能な新しい
mozScreenPixelsPerCSSPixelプロパティは CSS ピクセルとスクリーン・ピクセルの変換率を提供します。この値はコンテンツのズームレベルに応じて変化します。 - ページ URI の文書フラグメント識別子("#" (ハッシュ) 文字の後の部分)が変更になったとき、新たな
hashchangeイベントがページに送られます。バグ 385434、バグ 504837、および バグ 504220 を参照してください。 document.readystate でcomplete属性がサポートされました。バグ 347174。- HTML5 の
element.classListがサポートされ、クラス属性の処理が容易になりました。バグ 501257 - HTML 文書の
localNameとnamespaceURIが XHTML 文書と同じように振舞うようになりました。localNameは小文字で値を返し、HTML 要素のnamespaceURIは"http://www.w3.org/1999/xhtml"です。 nsIDOMGeoPositionAddressインターフェイスによりジオロケーションの address がサポートされ、新しいフィールドがnsIDOMGeoPositionに追加されました。バグ 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 のクエリーは結果にリダイレクトされたページが含んでいるかどうかを特定できるように
nsINavHistoryQueryOptionsインターフェイスでredirectsModeを利用できるようになりました。 - 新しい
nsIFaviconService.expireAllFavicons()メソッドがnsIFaviconServiceインターフェイスに追加されました。
Storage
- Storage API でデータのロケールを考慮した照合がサポートされました
-
Gecko 1.9.2 にロケールを考慮した技術を用いて最適化された照合を提供する複数の新しい(ソート付き)照合メソッドが追加されました。
- ステートメントのプロパティが列挙可能になりました
-
ステートメントのすべてのプロパティを列挙する
for..inenumeration が利用できるようになりました。 - mozIStorageStatement の getParameterIndex の動作が 3.5 と 3.6 の間で変更された
-
詳細は バグ 528166 を参照してください。
- 複数の引数のセットを非同期バインドしてステートメントを実行
-
詳細は バグ 490085 を参照してください。ドキュメント準備中です。
Preferences
nsIContentPrefServiceインターフェイスが新しく二つのメソッドを持ちました:nsIContentPrefService.getPrefsByName()とnsIContentPrefService.removePrefsByName()。
テーマ
テーマに関する変更の詳細は Updating themes for Firefox 3.6 を参照してください。
その他
- Firefox は components ディレクトリー内にインストールされたサードパーティのコンポーネントをロードしなくなりました。これはバグのあるサードパーティコンポーネントが実行されるのを防止することによる安定性の向上に貢献します。このやり方でコンポーネントをインストールする開発者は標準的なアドオンとしてインストールできるようにそれらコンポーネントを XPI パッケージとして再パッケージする必要があります。
- 拡張において chrome を登録するために用いていた
contents.rdf は利用できなくなりました。chrome.manifestファイルを代わりに利用しなければなりません。 バグ 492008 を参照してください。 - メニューバーを自動的に隠すためのサポートが追加されました。バグ 477256 を参照してください。
- オブジェクトに対して
container-live-role属性を持たせるためのサポートが追加されました。バグ 391829 を参照してください。 tabs-closebuttonバインディングが削除されました。バグ 500971 を参照してください。- 発生したイベントに基づいて音を鳴らすための
nsISoundに対するサポートが追加されました。 バグ 502799 を参照してください。 - Gecko 1.9 での新しいドラッグ&ドロップ API をサポートするために
nsITreeViewのメソッドであるnsITreeView.canDrop()およびnsITreeView.drop()の構文が変更になりました。バグ 455590 を参照してください。 - Windows のダイアログとウィザードのデフォルトボタンへのマウスカーソルの移動がサポートされました。バグ 76053 を参照してください。これはダイアログとウィザード要素によって自動的に行われます。ただし、XUL アプリケーションが
window要素のウィンドウを生成し、それがデフォルトボタンを持つ場合は、ウィンドウの onload イベントでnsIDOMChromeWindow.notifyDefaultButtonLoaded()をコールする必要があります。 nsILocalFileMacインターフェイスが二つのメソッドを持ちました:setFileTypeAndCreatorFromMIMEType()とsetFileTypeAndCreatorFromExtension()。- 新しい
NetUtils.jsmコードモジュールは、入力ストリームから出力ストリームに非同期にデータをコピーする簡単に利用できるメソッドを提供します。 - 新しい
openLocationLastURL.jsmコードモジュールは、プライベートブラウジングモードであるかを正しく判断して、"Open Location" ダイアログボックスの記憶された URL データの読み込みと変更を容易にします。 - Windows では、
nsIScreenインターフェイスは、グラフィックスドライバーが 32 ビットをサポートしていても、ピクセルごとに 24 ビットカラーをレポートします。これは 24 ビットは実際に利用されているカラーピクセルの数をより正確に表現するためです。 - Window では
toolbarXUL 要素の新しいautohideアトリビュートを用いてメニューバーを隠すことができます。 loadOneTabとaddTabメソッドは新しいrelatedToCurrent引数をサポートし、加えて、多くの引数が省略可能であるために名前による引数の指定ができます。- インストール manifests で "hidden" プロパティはサポートされなくなりました。アドオンマネージャウィンドウ上でユーザーが見ることのできないアドオンは不可能になりました。
- @mozilla.org/webshell;1 コンポーネントはもう存在しません。代わりに @mozilla.org/docshell;1 を使う必要があります。
- タイマーイベントをスケジュールするために、タイマーがコールするオブジェクトをインスタンシエイトすることなく update-timer カテゴリーで登録できるようになりました。代わりに必要になったときにインスタンシエイトされます。詳細は
nsIUpdateTimerManager.registerTimer()を参照してください。 - The
NPN_GetValue()関数はもはや変数値NPNVserviceManager,NPNVDOMelement,NPNVDOMWindowを経由した XPCOM へのアクセスを提供しません。これは将来のバージョンの 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アクセシビリティイベント が送信されます。バグ 420845 を参照してください。 nsIAccessibleTable.selectRow()は指定された列が選択される前にどんなカレントの選択であっても正しく削除します。