Firefox 3.5 開発者向け情報

Firefox 3.5 (2009 年 7 月 30 日にリリース) では数多くの新機能が導入され、また、幅広い種類のウェブ標準に対するサポートが追加および改善されます。この記事は主な変更点をカバーする記事へのリンクを伴う広範囲に及ぶ一覧を提供します。

Firefox 3.5 の開発者向け新機能

ウェブサイトとアプリケーション開発者向け

HTML 5 サポート

Firefox での音声と動画の使用

Firefox 3.5 では HTML 5 の audio および video 要素がサポートされます。

Firefox でのオフラインリソース

Firefox 3.5 では HTML 5 のオフラインリソース仕様をすべてサポートしています。

ドラッグ&ドロップ

HTML5 のドラッグ&ドロップ API によってウェブサイト内およびウェブサイト間のアイテムのドラッグ&ドロップがサポートされます。これにより、拡張や Mozilla ベースアプリケーションに対してもより単純な API が提供されます

新しくサポートされる CSS の機能

ダウンロードフォントのサポート

新しい @規則である @font-face を利用して Web ページでダウンロードフォントを提供できます。これにより、ページ作者が期待する通りにサイトが描画されるようになります。

CSS メディアクエリー

Firefox 3.5 では CSS メディアクエリーをサポートしています。これはメディア依存スタイルシートを拡張するものです。

::before および ::after の CSS 2.1 への更新

::before および ::after 擬似要素が CSS 2.1 サポートを満たすように更新されました。positionfloatlist-style-*、そして、いくつかの display プロパティのサポートが追加されています。

長さの単位 ch

単位 ch が通常の長さの単位として任意の場所で使えるようになりました。"1 ch" は文字 '0' の横幅です。

opacity

標準の opacity プロパティの先行実装である -moz-opacity という CSS への Mozilla 拡張が削除されました。

text-shadow

Web コンテンツにテキストとテキスト装飾に適用される影付き効果を指定できる text-shadow プロパティがサポートされました。

overflow-wrap

この新しくサポートされたプロパティはコンテンツに単語内で改行するかどうかを指定できます。これは単語内で改行しないと 1 行に収まらないときに発生する文字あふれを防ぐためのものです。

white-space プロパティが値 pre-line をサポート

white-space プロパティの値に pre-line を指定できるようになりました。

-moz-box-shadow

-moz-border-image

-moz-column-rule

-moz-column-rule-width

-moz-column-rule-style

-moz-column-rule-color

Firefox 3.5 ではこれらの CSS への Mozilla 拡張に対するサポートが追加されます。

-moz-nativehyperlinktext カラー値

この新しいカラー値はユーザーのシステムのデフォルトのハイパーリンクの色を表します。

-moz-window-shadow プロパティおよび :-moz-system-metric(mac-graphite-theme) 擬似クラス

これらの新しい CSS 機能はテーマ作成を手助けするために追加されました。

-moz-appearance 向けの新しい値

-moz-win-glass および -moz-mac-unified-toolbar という値が -moz-appearance 向けに追加されました。

CSS transforms の使用

Firefox 3.5 では CSS transform がサポートされます。詳細は -moz-transform (en-US) および -moz-transform-origin (en-US) を参照してください。

:nth-child:nth-last-child:nth-of-type:nth-last-of-type:first-of-type:last-of-type:only-of-type

これらのセレクターがすべて Firefox 3.5 で新たにサポートされます。

新しい DOM の機能

localStorage

Firefox 3.5 では Web Storage の localStorage プロパティをサポートします。これは Web アプリケーションがクライアントのコンピュータ上にローカルにデータを保存する方法を提供します。

Web Workers の使用

Firefox 3.5 では Web アプリケーションでの簡単なマルチスレッドサポートを可能にする Web Workers をサポートします。

位置情報の使用

Firefox 3.5 では Geolocation API をサポートします。これによりウェブアプリケーションはユーザの現在位置についての情報を提供するプロバイダがインストールされ有効化されていれば、その情報を保持することができます。

セレクターを使用した DOM 要素の指定

Selectors API により与えられた選択ルールにマッチする要素を指定するために文書を検索できます。

マウスジェスチャイベント

Firefox 3.5 はトラックパッドスワイプのようなマウスジェスチャイベントをサポートします。

NodeIterator オブジェクト

NodeIterator オブジェクトは DOM サブツリーのノードのリストを繰り返し処理するためのサポートを提供します。

MozAfterPaint イベント

この新しい DOM イベントはウィンドウで塗り直し後に送られます。

MozMousePixelScroll イベント

この新しい DOM イベントにより行ベースのスクロールイベントの代わりにピクセルベースのマウススクロールホイールイベントを検知できます。

新しい JavaScript の機能

JavaScript 1.8.1 の新機能

JavaScript 1.8.1 における変更のすべての概要。

Object.getPrototypeOf()

このメソッドは指定されたオブジェクトのプロトタイプを返します。

ネイティブ JSON の使用

Firefox 3.5 は JSON をネイティブでサポートします。

String オブジェクトの新しい trim メソッド

String オブジェクトに trim()trimLeft()、そして trimRight() メソッドが定義されました。

ネットワーク機能

HTTP 向けのクロスサイトアクセスコントロール

Firefox 3.5 では、サーバーがサポートする場合に、XMLHttpRequest によるものも含む HTTP リクエストでドメインを超える動作が可能になりました。

XMLHttpRequest のための Progress イベント

Progress イベントが拡張がリクエストの進捗を監視できるようにするために提供されるようになりました。

同期 XMLHttpRequestサポートの改善

DOM TimeoutInput Events が同期 XMLHttpRequest中に抑制されるようになりました。

DNS プリフェッチの制御

Firefox 3.5 では DNS プリフェッチが提供され、それにより現在のページに含まれるリンクのドメイン名解決が事前に行われ、リンクが実際にクリックされたときの時間を節約しま す。この記事では Web サイト側でプリフェッチを無効にする、もしくは、プリフェッチの動作を調整する方法について説明しています。

新しい Canvas の機能

Canvas要素向けの HTML5 テキスト API

Canvas 要素が HTML5 テキスト API をサポートするようになりました。

Canvas での影付き効果

Canvas での影付き効果がサポートされるようになりました。

createImageData() (en-US)

Canvas の createImageData() メソッドがサポートされるようになりました。このメソッドを利用することで、ImageData オブジェクトを必要なときに自動的に作成させるのではなく、コードで明示的に作成することができます。オブジェクトを作成する必要性を無くすことができるので、このメソッドで他の ImageData を扱うメソッドのパフォーマンスを改善することができます。

moz-opaque 属性

moz-opaque DOM 属性が追加されたことにより、Canvas は半透明な要素があるかどうか知ることができます。Canvas が半透明な要素がないことを知った場合、ペインティングパフォーマンスが最適化されます。

新しい SVG の機能

HTML の内容への SVG 効果の適用

SVG 効果を HTML および XHTML の内容に適用できるようになりました。この記事はその方法について説明しています。

その他の新機能

Firefox での ICC カラー補正 (en-US)

Firefox 3.5 では タグ付けられた画像に対して ICC カラー補正がサポートされています。

script 要素で defer 属性がサポート

この属性はスクリプトが実行し終わるの待たずにブラウザにパースし描画し続けることを選択させます。

その他の改善

  • Text ノードの wholeText プロパティ と replaceWholeText() メソッドが実装されました。
  • element.children プロパティが追加されました。これは与えられた要素の子要素のコレクションを返します。
  • element.contentEditable プロパティに対応するようになり、編集可能な要素に対応するようになりました。
  • DOM Element オブジェクトで Element Traversal API がサポートされました。
  • HTML document ノードを cloneNode() を用いて複製できるようになりました。
  • 非標準である DOM の getBoxObjectFor() メソッドが削除されました。代わりとして getBoundingClientRect() を利用すべきです。
  • 伝達された DOM イベントを再伝達できるようになりました。これにより Firefox 3.5 は Acid 3 test 30 をパスします。
  • DOM 2 Range ハンドリングが改善されました。
  • 非 Chrome スコープにおいて、例外でキャッチされるオブジェクトがスローされたオブジェクトを含む XPConnect ラッパーではなく実際にスローされたオブジェクトになりました。
  • SVG ID 参照が動的な変更に対応するようになりました。
  • SVG フィルターが foreignObject でも動作するようになりました。
  • 互換性のために GetSVGDocument() メソッドが object および iframe 要素に追加されました。
  • JavaScript においてオブジェクトおよび配列の初期化子によるプロパティの暗黙的な設定ではセッターの定義を行わないようになりました。詳細は オブジェクトおよび配列の初期化子は評価時にセッターの定義を行うべきではない というブログ投稿を参照してください。
  • gDownloadLastDir.path 変数は、パスではなく nsIFile を参照しているので、 gDownloadLastDir.file に名称変更されました。
  • gDownloadLastDirPath 変数は、パスではなく nsIFile を参照しているので、 gDownloadLastDirFile に名称変更されました。
  • Firefox 3.5 から、XPCNativeWrapper オートメーションを得る Chrome パッケージでの data: バインディングを利用することはできなくなります。

XUL とアドオン開発者向け

拡張開発者であるなら、Firefox 3.5 向けに拡張を更新する から読み始めるべきです。その記事ではあなたの拡張に影響しうる変更を知る上で役立つ概観を提供しています。

新しいコンポーネントと機能

プライベートブラウジングモードのサポート

Firefox 3.5 ではプライベートブラウジングモードが提供されます。これはユーザの活動を記録しません。拡張はこの記事で挙げるガイドラインに従ってプライベートブラウジングをサポートすることができます。

Firefox 3.5 でのセキュリティの変更

この記事は Firefox 3.5 でのセキュリティ関連の変更をカバーしています。

Firefox 3.5 でのテーマの変更

この記事は Firefox 3.5 でのテーマ関連の変更をカバーしています。

WiFi アクセスポイントのモニタリング

UniversalXPConnect 特権を持つコードで有効なアクセスポイントの一覧がモニタリング可能になり、個々の SSIDs、MAC アドレス、シグナル強度の情報が取得できます。 これを Geolocation と連携して用いることで WiFi ベースのロケーションサービスを提供できます。

注目すべき変更と改善

  • XUL textbox ウィジェットが検索フィールドとして利用するための search type を提供するようになりました。
  • ウィンドウ間のタブのドラッグ&ドロップのサポートのために、browser ウィジェットに swapDocShells() メソッドが定義されました。
  • panel 要素に level 属性が追加されました。 これは panel を他のアプリケーションの手前に表示するか、単純に panel が含まれるウィンドウの手前に表示するかどうかを指定できます。
  • XUL 要素が clientHeightclientWidthscrollHeightscrollWidth プロパティをサポートするようになりました。
  • keysets now include a disabled 要素に disabled 属性が追加されました。
  • 加えて、 keyset 要素はノードの removeChild() メソッドを用いて削除可能になりました。
  • mozIStorageStatement には initialize() メソッドがありましたが、削除されました。利用者は新しいステートメントオブジェクトを得るための代替として createStatement() メソッドを使うべきです。
  • Storage API が非同期リクエストのサポートを提供するようになりました。
  • nsICookie2 インターフェースに新しく creationTime 属性が追加され、Cookie が作成された時間を取得できるようになりました。
  • プロトコルが登録することを許可されることを保証するために Chrome 登録の間にチェックされる nsIProtocolHandler へのフラグが追加されました (URI_IS_LOCAL_RESOURCE)。
  • Linux で Firefox がプラグインを探すために /usr/lib/mozilla/plugins を見るようになりました。以前にサポートされていた場所も同様に検索対象です。
  • プラグイン API がプライベートブラウジングモードのサポートを含むために更新されました。これにより、NPNprivateModeBool を用いているプライベートブラウジングモードの状態を調べるために、 NPN_GetValue() を使用できるようになりました。

エンドユーザ向け新機能

ユーザーエクスペリエンス

ロケーションアウェアブラウジング

選択次第で、 Firefox 3.5 がウェブサイトと現在の位置についての情報を共有できるようになります。 Firefox 3.5 は接続しているネットワークについての情報を位置を共有するために用いることができます。もちろん、プライバシーを確保するために、そうする前に許可を求めます。

オープンなオーディオとビデオのサポート

Firefox 3.5 は、オーディオのための WAV 同様、オープンな Ogg フォーマットを用いた埋め込みビデオおよびオーディオをサポートします。プラグインは必要なく、何かあるいはどうやってもあなたのプラットフォームで利用出来ないものをインストールする必要があるという旨のエラーメッセージに混乱することはありません。

ローカルデータストレージ

ウェブアプリケーションはあなたのコンピュータにデータを保存するために Web Storage のローカルストレージ機能を利用できるようになります。これはサイト設定からより複雑なデータまであらゆるものにとって素晴らしく役立つものです。

セキュリティとプライバシー

プライベートブラウジング

他人のコンピュータを利用する必要がありますか?プライベートブラウジングモードに切り替えることで、Cookie、履歴、その他のあらゆる潜在的なプライベートな情報を含んだあなたのセッションは全く記録されなくなります。

より良いプライバシーコントロール

プライバシー設定画面はユーザがプライベート情報をより細かくコントロールできるようにするために完全にデザインし直されました。ユー ザは履歴、Cookie、ダウンロード、フォーム入力のような情報を保持、破棄するかどうか選択できます。 さらに、ユーザは履歴とブックマークの内容をそれぞれアドレスバーの自動サジェストに含むかどうか指定できます。 ですから、アドレスバーでタイプ中に意図せずプライベートな Web アドレスがポップアップすることを防ぐことができます。

パフォーマンス

より速い JavaScript パフォーマンス

新しい TraceMonkey JavaScript エンジンを持つ Firefox 3.5 では "AJAX" の "J" である、JavaScript が劇的にスピードアップしています。ウェブアプリケーションは Firefox 3 よりももっとより速くなります。

より速いページレンダリング

"Speculative parsing(投機的解釈)" のような技術のおかげで、 Firefox 3.5 ではウェブコンテンツがより速く描画されます。ユーザーは「Firefox 3.5 ではコンテンツがより速く描画される」ということ以外は知る必要がありません。

関連情報