--- title: Firefox 4 for developers slug: Mozilla/Firefox/Releases/4 tags: - CSS - Firefox - Firefox 4 - Gecko - Gecko 2.0 - HTML - JavaScript - XPCOM - XUL - 要更新 translation_of: Mozilla/Firefox/Releases/4 ---

Firefox 4 (6 月後半にベータ版リリースが予定されています)では、パフォーマンスが向上し、 HTML 5 やその他の革新的な Web 技術のさらなるサポートが追加され、さらには、セキュリティも改善しています。 この記事では、この次期リリースについてのとっかかりの情報と、 Web 開発者、アドオン開発者、そして、Gecko プラットフォーム開発者向けに利用可能になる機能の一覧を提供します。

これらの機能の多くはすでに Firefox 4 beta リリース、もしくは(冒険心にあふれているなら)ナイトリー trunk ビルド で試すことできます。

註:この記事は作成中であり、このページからリンクされている記事もまた同様です。多くの記事名が仮名であり、いくつかのトピックは複数の記事に分割されるかもしれません。

Web 開発者向け機能

Gecko は現在 HTML5 パーサーを利用しています。それはバグが修正され、相互運用性が改善され、また、パフォーマンスが向上されたものです。また、HTML マークアップでコンテンツに SVGMathML を直接埋め込むことも可能にします。

HTML

HTML5 パーサー入門
HTML5 パーサーが意味することと、どのように SVG と MathML をコンテンツにインラインで埋め込むかの概説。
HTML5 におけるフォーム
HTML5 における Web フォームの改善の概説。これらの変更点には <input> 要素における入力種類の追加、データバリデーションなどが含まれています。
HTML5 Sections
Gecko は文書におけるセクションに関する新しい HTML5 要素をサポートします。: <article><section><nav><aside><hgroup><header> および <footer>
HTML5 の hidden 属性
この属性は、すべての要素に共通であり、Web ページでユーザに現在は関係しないコンテントを隠すために用いられます。
その他の HTML5 要素
Gecko は次の新しい HTML5 要素もサポートします。: <mark><figure> および <figcaption>
WebSocket
Web アプリケーションとサーバーの間でリアルタイムコミュニケーションを行うための WebSocket API を利用するためのガイド。

Canvas improvements

The following changes were made to the CanvasRenderingContext2D interface to bring our <canvas> implementation closer to being in line with the specification:

小さな HTML の変更

CSS

CSS transitions
新しい CSS transitions サポートが Firefox 4 では利用できるようになりました。
CSS での算出値
-moz-calc のサポートが追加されました。これを用いることで、<length> の値を数式で指定できます。
セレクタのグルーピング
セレクタをグループ化しコンビネータを分解する :-moz-any がサポートされました。
背景画像の部分領域のサポート
-moz-image-rect 関数を用いることで、画像の一部分の領域 (subrectangle)を背景画像として利用できるようになります。
CSS touch プロパティ群
touch プロパティ群が追加されました。詳細と正式な記事名は後日追記予定です。
CSS 背景として任意の要素を使用する
-moz-element CSS 関数と document.mozSetImageElement() DOM 関数を用いることで、任意の HTML 要素を背景として使用することができます。
プライバシーと :visited セレクタ
CSS セレクタを用いた訪問済みリンクのスタイルについて取得できる情報が変更されました。これはいくつかの Web アプリケーションに影響するかもしれません。

新しい CSS プロパティ

プロパティ 説明
-moz-font-feature-settings OpenType フォントの高度な機能を変更できます。
-moz-tab-size テキストを描画するときのタブ文字 (U+0009) の幅を空白文字数で指定します。
resize サイズ変更可能な要素の方向を制御できます。

新しい CSS 擬似クラス

擬似クラス 説明
:-moz-handler-crashed プラグインがクラッシュした要素の表示に用いられます。
:-moz-placeholder フォームフィールドのガイドテキストに適用されます。
:-moz-submit-invalid 1 つ、もしくは、複数のフォームフィールドの入力が妥当でないときのフォームの送信ボタンに適用されます。
:-moz-window-inactive アクティブでないウィンドウの要素に適用されます。
:invalid 入力が妥当でない <input> フィールドに自動的に適用されます。
:optional required 属性を指定していない <input> フィールドに自動的に適用されます。
:required required 属性を指定している <input> フィールドに自動的に適用されます。
:valid 入力が妥当であると判断された <input> フィールドに自動的に適用されます。

新しい CSS 擬似セレクタ

擬似セレクタ 説明
:-moz-focusring Gecko がフォーカスインジケータを描画すべきとしている要素の見え方を指定できます。

新しい CSS 関数

関数 説明
:-moz-any セレクタをグループ化しコンビネータを分解できます。
-moz-calc <length> の値を数式で指定できます。
-moz-element 任意の要素を background-image および background の背景として使用できます。
-moz-image-rect 画像の一部分を background-image もしくは backgroundで利用できます。

改名された CSS プロパティ

旧名称 新名称 備考
-moz-background-size background-size -moz-background-size という名称はサポートされません。
-moz-border-radius border-radius 旧名称は、サイトを更新するための時間を考慮して、限られた期間サポートされます。描画の変更も仕様の最新版に適合するようになります。
-moz-box-shadow box-shadow

小さな CSS の変更

グラフィックとビデオ

WebGL
開発中の WebGL 標準が Firefox でサポートされました。
グラフィックパフォーマンスの最適化
Firefox 4 でグラフィックとビデオのパフォーマンスを最大限引き出すための Tips & Tricks。
WebM ビデオのサポート
新しいオープンな WebM ビデオフォーマットが Gecko2.0 でサポートされます。このサポートは 6 月 9 日以降のナイトリーに含まれています。
SMIL による SVG アニメーション
SVG の SMIL アニメーションのサポートが利用できるようになりました。バグ 482402 を参照してください。
画像と CSS 背景としての SVG の利用
SVG を <img> 要素とともに、また、CSS の background-image で利用することができるようになりました。
メディア要素での buffered 属性サポート
<video> および <audio> 要素での buffered 属性がサポートされました。これを用いることでメディアファイルでバッファリングされた範囲が判断可能になります。これをサポートするために TimeRanges DOM インタフェースが実装されました。
メディア要素での preload 属性
HTML5 仕様から preload 属性が実装されました。これは以前実装された(そしてもうサポートされない)autobuffer 属性を置き換えものです。これは <video> および <audio> 要素、同様にnsIDOMHTMLMediaElement インタフェースを実装した要素で利用できます。
SVG text 位置指定の改善
SVG <text> and <tspan> 要素で xydx、および dy プロパティの値のためのリストを指定できるようになりました。これを用いることで、文字列中の各文字の位置を個別に制御できます。

DOM

JavaScript 型付き配列
JavaScript 型付き配列 (typed arrays) のサポートが追加されました。これを用いることで、ネイティブデータ型を用いた生のデータを含むバッファを扱えます。 File APIWebGL、および WebSockets を含む、いくつかの API でこれを用いることができます。
範囲の境界領域の保持
Range オブジェクトに range.getClientRects() および range.getBoundingClientRect() メソッドが追加されました。
任意の要素上でのマウスイベントのキャプチャ
Internet Explorer 由来の setCapture()releaseCapture() API のサポートが追加されました。バグ 503943 を参照してください。
ブラウザ履歴の操作
window.history オブジェクトを通して利用できる、既存のドキュメント履歴オブジェクトが新しい HTML5 の pushState()replaceState() メソッドをサポートするようになりました。
MozBeforePaint を用いたアニメーション
追加された新しいイベントと window.mozRequestAnimationFrame() メソッドおよび window.mozAnimationStartTime プロパティを組み合わせることで、互いに同期したアニメーションを作成する方法が提供されます。
タッチイベントとマルチタッチイベント
タッチイベントとマルチタッチイベントのサポートが追加されました。

HTML 要素の DOM インタフェースが変更されました

いくつかの HTML 要素に関連づけられた DOM インタフェースが、以下のように、 HTML5 仕様で要求されるひとつのインタフェースに変更されました。

Firefox 3.6 でのインタフェース Firefox 4 でのインタフェース HTML 要素
HTMLSpanElement HTMLElement <abbr>, <acronym>, <address>, <b>, <bdo>, <big>, <blink>, <center>, <cite>, <code>, <dd>, <dfn>, <dt>, <em>, <i>, <kbd>, <listing>, <nobr>, <plaintext>, <s>, <samp>, <small>, <strike>, <strong>, <sub>, <sup>, , <tt>, <u>, <var>, <xmp>
HTMLDivElement HTMLElement <noembed>, <noframes>, <noscript>
HTMLWBRElement HTMLElement <wbr>

小さな DOM の変更

セキュリティ

Content Security Policy (CSP)
Content Security Policy (CSP) は Mozilla が提案する Web デザイナーとサーバー管理者が Web サイトの相互利用でどのようなコンテンツを指定するかの仕様です。目的はクロスサイトスクリプティングを含む攻撃とデータインジェクション攻撃を判定し、軽減することです。
HTTP Strict Transport Security
HTTP Strict Transport Security は Web サイトがブラウザに HTTP を用いる代わりに HTTPS を用いてのみやり取りすべきであることを伝えるセキュリティ機能です。
X-FRAME-OPTIONS レスポンスヘッダ
Internet Explorer 8 で導入された X-FRAME-OPTIONS HTTP レスポンスヘッダが Firefox でサポートされるようになりました。これを用いることでサイトがページをフレーム内で用いることができるかどうか、フレーム内で利用可能ならば、同じドメイン内に限定するかどうかを指示することができます。
User Agent 文字列 の変更
HTTP リクエストで送ったデータとエントロピーの総量を減少させるべきにあるように、 ユーザエージェント文字列から暗号の強度を表す文字列と言語を表す文字列が削除されました。

JavaScript

JavaScript 1.8.5 で実装される変更の概要については、JavaScript 1.8.5の新機能 を参照してください。Firefox 4 における JavaScript は ECMASCript 5 標準へのさらなる順守となる予定です。

開発者ツール

Web コンソールの利用
Web コンソールツールは Web 開発者および拡張開発者のデバッグ作業の補助に役立ちます。
Gecko 2.0 note
(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

エラーコンソールは Firefox 4 からデフォルトで無効化されます。devtools.errorconsole.enabled 設定を true に変更し、ブラウザを再起動することで再び有効にすることができます。

Mozilla およびアドオン開発者向けの変更

Firefox 4 向けに既存の拡張を更新する上で役立つ Tips は、Updating extensions for Firefox 4 を参照してください。ここでは既存のアドオンの互換性を破壊する主な変更点のいくつかを取り上げているだけです。ですから、上記記事も必ず読んでください。

テーマ開発者であるならば、注意する必要がある重要な変更点を理解するために Theme changes in Firefox 4 を読むべきです。

新しいJavaScript コードモジュール

Services.jsm
Services.jsm コードモジュールは preferences service や window mediator などのよく用いられているサービスへの参照を簡単に取得できるようにするゲッターを提供します。
JS-ctypes API
JS-ctypes API は C 互換外部ライブラリ関数を XPCOM を利用すること無しに呼び出せるようにします。
Add-ons Manager
新しい Add-ons Manager はインストールされたアドオンについての情報の提供、それらの管理のためのサポート、および、アドオンのインストールと削除の方法を提供します。
PopupNotifications.jsm
新しいポップアップ通知モジュールを用いることで簡単に魅力的な非モーダルな通知をユーザに提供できます。この API の使い方はポップアップ通知の利用で参照できます。
chrome: URL からコードモジュールを読み込む
chrome: URL を用いて JavaScript コードモジュールを読め込むことができるようになりました。JAR ファイルの中でも可能です。
DownloadLastDir.jsm
DownloadLastDir.jsm コードモジュールは gDownloadLastDir グローバル変数を提供します。この変数には最後のダウンロードが行われたディレクトリのパスを知るために利用可能な文字列が含まれています。このモジュールはプライベートブラウジングに対応しています。
PerfMeasurement.jsm コードモジュールを用いたパフォーマンスの測定
PerfMeasurement.jsm コードモジュールは JavaScript コードにおける CPU レベルでのパフォーマンスデータを測定するための API を提供します。

小さなコードモジュールの変更

DOM の変更

ChromeWorker
特権コード向けの新しいタイプの Worker です。これを用いると、拡張およびアプリケーションコードで Worker から js-ctypes のようなものを用いることができます。
タッチイベント
(非標準の) タッチイベントのサポートが追加されました。これを用いると、タッチスクリーン上で同時に複数の指でトラックできます。

XUL

Tabbrowser (gBrowser) の変更

いくつかの変更が <tabbrowser> 要素になされており、タブ機能の拡張に影響があります。アイコンタブのサポートに加えて、タブバーが標準ツールバーに統合されたという変更もあります。この変更によって、ユーザがツールバーボタンをそこへドラッグできるようになっています。

ポップアップに対する変更点

リモート XUL サポートの削除

リモート XUL がサポートされなくなりました。 これは HTTP を経由して供給される XUL ドキュメントにのみ影響します。 また、dom.allow_XUL_XBL_for_file の設定を作成して、その値を true に設定しない限り、file:// URL 形式を用いた XUL 文書の読み込みも行えなくなります。しかしながら、ホワイトリスト機能を用いることで、特定ドメインのリモート XUL を読み込むことを許可できます。Remote XUL Manager 拡張 を用いると、このホワイトリストを管理できます。

小さな XUL の変更

開発者に影響がある UI の変更

アドオンバー
ステータスバーが削除され、新しいアドオンバーに置き換えられました。以前にステータスバーに UI を追加していた拡張は更新する必要があります。
ブラウザのクロームを隠す
ブラウザのクロームを隠したいときに、隠せるようになりました。例えば、about:addons がこれを用いています。

Storage

小さなストレージ API の変更

XPCOM

以下から参照できる特定の変更に加えて、凍結されたインタフェースが一切無くなったという重要な変更もあります。すべてのインタフェースは非凍結となっています。ドキュメンテーションに書いていることに関わらずです。ドキュメンテーションを後ほど更新する予定です。

Gecko 2.0 における XPCOM の変更
Firefox 4 で互換性に影響を与える XPCOM への変更についての詳細。
Components.utils.getGlobalForObject()
この新しいメソッドはオブジェクトが属しているグローバルオブジェクトを返します。これは現在削除された __parent__ の一般的用途を置き換えます。

Places

インタフェースの変更

メモリ管理

確実なメモリアロケーション
Mozilla は null を返さないことを保証する確実なメモリアロケータを複数提供するようになりました。この記事を読んでそれらがどのように動作し、どのようにして不確実な、あるいは、確実なメモリアロケーションを明確に指定して呼び出すのかを学んでください。

その他の変更

その他の変更

ルートの chrome.manifest ファイルだけが読み込まれるように
ルートの chrome.manifest ファイルだけが読み込まれるようになりました。 2 つ以上のマニフェストファイルを読み込む必要がある場合は、ルートの chrome.manifest でそれらを読み込むために manifest コマンドを使用できます。
Gopher サポートの削除
Gopher プロトコルがネイティブでサポートされなくなりました。継続してサポートを受けるには OverbiteFF 拡張を利用できます。
コンテントプロセスイベントハンドリング
out-of-process プラグインのサポートとその他の multiple-process 機能をサポートするために、プロセス間でメッセージを送ることをサポートするための新しい API が導入されました。
ブートストラップ拡張
ブラウザを再起動せずにインストール、アンインストール、更新(またはダウングレード)できる拡張を作成できるようになりました。
デフォルトプラグイン の削除
デフォルトプラグインが削除されました。アプリケーションプラグインフォルダもデフォルトで削除されますが、このフォルダ経由でプラグインをインストールするためのサポートはまだ存在します。bug 533891 を参照してください。
Extension Manager の AddonManager への置き換え
nsIExtensionManagerAddonManager に置き換えられました。 指定した拡張 ID からインストール場所を取得するための方法は現在のところ存在しないと思われるので、それに最も近い回避策はプロファイルディレクトリを見つけるためにディレクトリサービスを用い、それに "extensions" を追加することです(この手段ではプロファイルディレクトリ外あるいは他の位置にエイリアスされている拡張は取得できません)。
子 HWND はもはや利用されません
Firefox は Windows で内部利用していた 子 HWND を作成しないようになりました。これらの HWND を扱うネィティブコードを用いる拡張を書いていた場合、その拡張は Firefox 4 では動作しないでしょう。HWND を用いることを止めるか、NPAPI プラグインで HWND に依存するコードをラップする必要があります。それは多大な作業であり、HWND を直接用いることを避けられるならば、そうすべきです。
ジェスチャの変更
トラックパッド上の 3 本指の上下スワイプジェスチャが、デフォルトで、Firefox Panorama (旧称 TabCandy) の開閉に変更されました。これらの変更を以前の scroll-to-top および scroll-to-bottom コマンドに戻すには、about:config を開き、browser.gesture.swipe.downcmd_scrollBottom にし、browser.gesture.swipe.upcmd_scrollTop に設定してください。

関連情報