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-colorbackground-imagebackground-positionbackground-repeatbackground-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 でサポートされました。 バグ 423756
  • text-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 属性をサポート

checkboxradio タイプの HTML input 要素が 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 に新しい mozInnerScreenXmozInnerScreenY プロパティが追加されました。これらはウィンドウ表示領域の左上コーナーを基準にしたスクリーンの座標を返します。
  • chrome に対してのみアクセス可能な新しい mozScreenPixelsPerCSSPixel プロパティは CSS ピクセルとスクリーン・ピクセルの変換率を提供します。この値はコンテンツのズームレベルに応じて変化します。
  • ページ URI の文書フラグメント識別子("#" (ハッシュ) 文字の後の部分)が変更になったとき、新たな hashchange イベントがページに送られます。バグ 385434バグ 504837、および バグ 504220 を参照してください。
  • document.readystate で complete属性がサポートされました。バグ 347174
  • HTML5 の element.classList がサポートされ、クラス属性の処理が容易になりました。バグ 501257
  • HTML 文書の localNamenamespaceURI が XHTML 文書と同じように振舞うようになりました。localName は小文字で値を返し、HTML 要素の namespaceURI"http://www.w3.org/1999/xhtml" です。
  • nsIDOMGeoPositionAddress インターフェイスによりジオロケーションの address がサポートされ、新しいフィールドが nsIDOMGeoPosition に追加されました。バグ 503942
  • window.getComputedStyle 関数は url() 値の中をクォートして返すようになりました。

XPath

choose() XPath メソッドをサポート

choose() メソッドが 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

Storage

Storage API でデータのロケールを考慮した照合がサポートされました

Gecko 1.9.2 にロケールを考慮した技術を用いて最適化された照合を提供する複数の新しい(ソート付き)照合メソッドが追加されました。

ステートメントのプロパティが列挙可能になりました

ステートメントのすべてのプロパティを列挙する for..in enumeration が利用できるようになりました。

mozIStorageStatement の getParameterIndex の動作が 3.5 と 3.6 の間で変更された

詳細は バグ 528166 を参照してください。

複数の引数のセットを非同期バインドしてステートメントを実行

詳細は バグ 490085 を参照してください。ドキュメント準備中です。

Preferences

テーマ

テーマに関する変更の詳細は Updating themes for Firefox 3.6 を参照してください。

軽量テーマ

Firefox 3.6 は軽量テーマをサポートします。これは作成するのが簡単なテーマで、ブラウザーウィンドウの上部(URL バーとボタンバー)と下部(ステータスバー)に単純に画像を適用します。これは既存の Personas テーマ構造の Firefox への統合です。

その他

  • 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 アトリビュートを用いてメニューバーを隠すことができます。
  • loadOneTabaddTab メソッドは新しい 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 そのものの内部で作業している場合にだけ興味を持つことでしょう。

マージされたインターフェイス

以下のインターフェイスは統合されました:

  • nsIPluginTagInfo2nsIPluginTagInfo にマージされました。
  • nsIPluginInstanceInternal, nsIPPluginInstancePeer, nsIPluginInstancePeer1, nsIPluginInstancePeer2, nsIPluginInstancePeer3 はすべて nsIPluginInstance にマージされました。
  • nsIWindowlessPlugInstPeernsIPluginInstance にマージされました。
  • nsIPluginManagernsIPluginManager2nsIPluginHost にマージされました。

削除されたインターフェイス

以下のインターフェイスは利用されていない、実装されていないまたは旧式であるためにすべて削除されました:

  • 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() は指定された列が選択される前にどんなカレントの選択であっても正しく削除します。

参照