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
であるcheckbox
input
要素にマッチする: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..in
enumeration が利用できるようになりました。 - 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 では
toolbar
XUL 要素の新しい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
にマージされました。
削除されたインターフェイス
以下のインターフェイスは利用されていない、実装されていないまたは旧式であるためにすべて削除されました:
nsIFullScreen
nsIDOMSVGListener
nsIDOMSVGZoomListener
nsIInternetConfigService
nsIDKey
nsIEventHandler
nsIJRILiveConnectPIPeer
nsIJRILiveConnectPlugin
nsIScriptablePlugin
nsIClassicPluginFactory
nsIFileUtilities
移動されたインターフェイス
以下のインターフェイスは以前の 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()
は指定された列が選択される前にどんなカレントの選択であっても正しく削除します。