Firefox 4 for developers - Mozilla

Firefox 4 for developers
========================

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

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

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

Web 開発者向け機能
-----------

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

### HTML

HTML5 パーサー入門 (en-US)

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:

* Specifying a negative radius when calling `arc()` now correctly throws an `INDEX_SIZE_ERR` exception.
* Specifying non-finite values when calling `createLinearGradient()` and `createRadialGradient()` now throws `NOT_SUPPORTED_ERR` instead of `SYNTAX_ERR`.
* Setting `miterLimit` to a negative value no longer throws an exception; instead, it properly ignores non-positive values.
* Setting `lineWidth` to a negative value no longer throws an exception; instead, it properly ignores non-positive values.
* The `putImageData()` method now supports the optional parameters `dirtyX`, `dirtyY`, `dirtyWidth`, and `dirtyHeight`.

#### 小さな HTML の変更

* `<textarea>` 要素をデフォルトでサイズ変更できるようになりました。これを無効にするために `resize` CSS プロパティが利用できます。
* `canvas.getContext` および `canvas.toDataURL` が認識できない引数を指定して呼び出したときに例外を投げなくなりました。
* `<canvas>` 要素に Mozilla 固有の `mozGetAsFile()` メソッドが追加されました。これを用いることで、Canvas の内容である画像を含んだメモリベースのファイルを保持できます。詳細は `HTMLCanvasElement` を参照してください。
* `canvas2dcontext.lineCap` および `canvas2dcontext.lineJoin` が認識できない値を設定したときに例外を投げなくなりました。
* `canvas2dcontext.globalCompositeOperation` が認識できない値を設定したときに例外を投げなくなりました。また、非標準の値 `darker` をサポートしなくなりました。
* 他のブラウザでは実装されておらず、非推奨 な要素である `<spacer>` 要素のサポートが無くなりました。
* The `<isindex>` 要素が、`document.createElement()` メソッドによって作成されたときに、 一切プロパティもメソッドも持たない単純な要素として作成されるようになりました。
* Gecko に `<input>` 要素での `click()`メソッドの呼び出しが追加されました。このメソッドを用いることでファイル選択ダイアログが開けます。Web アプリケーションからファイルを利用する の記事内の 例 を参照してください。
* `<input>` 要素に新しい `mozactionhint` (en-US) 属性が追加されました。これを用いることで仮想キーボード上でのエンターキーのラベルを指定できます。
* `<iframe>`、`<noembed>`、および `<noframes>` 要素内の `<script>` 要素が実行されるようになりました。以前のバージョンの Firefox ではこれらの要素内での実行はされませんでした。これは仕様準拠であり、他のブラウザの挙動と合致します。
### CSS

CSS transitions

新しい CSS transitions サポートが Firefox 4 では利用できるようになりました。

CSS での算出値

`-moz-calc` (en-US) のサポートが追加されました。これを用いることで、`<length>` の値を数式で指定できます。

セレクタのグルーピング

セレクタをグループ化しコンビネータを分解する `:-moz-any` (en-US) がサポートされました。

背景画像の部分領域のサポート

`-moz-image-rect` 関数を用いることで、画像の一部分の領域 (subrectangle)を背景画像として利用できるようになります。

CSS touch プロパティ群

touch プロパティ群が追加されました。詳細と正式な記事名は後日追記予定です。

CSS 背景として任意の要素を使用する (en-US)

`-moz-element` (en-US) CSS 関数と `document.mozSetImageElement()` (en-US) DOM 関数を用いることで、任意の HTML 要素を背景として使用することができます。

プライバシーと :visited セレクタ

CSS セレクタを用いた訪問済みリンクのスタイルについて取得できる情報が変更されました。これはいくつかの Web アプリケーションに影響するかもしれません。

#### 新しい CSS プロパティ

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

#### 新しい CSS 擬似クラス

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

#### 新しい CSS 擬似セレクタ

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

#### 新しい CSS 関数

| 関数 | 説明 |
| --- | --- |
| `:-moz-any` (en-US) | セレクタをグループ化しコンビネータを分解できます。 |
| `-moz-calc` (en-US) | `<length> の値を数式で指定できます。` |
| `-moz-element` (en-US) | 任意の要素を `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 の変更

* `text-shadow` プロパティのぼかし範囲が 300 までに制限されるようになりました。これは健全さとパフォーマンスの理由によるものです。
* `overflow` プロパティがテーブルグループ要素 (`<thead>`、`<tbody>`、および `<tfoot>`) に適用されなくなりました。
* `-moz-appearance` プロパティが要素に境界のない Aero Glass の見た目を適用する `-moz-win-borderless-glass 値をサポートするようになりました。`
* `-moz-device-pixel-ratio` メディア機能が追加されました。これを用いることで、Media Query で用いられる、CSS ピクセルを基準としたデバイスのピクセル比率を指定できます。
* Gecko の CSS 単位の (en-US) 扱いが他のブラウザにより良く適合するように、また、絶対的長さをデバイスの DPI を基準にした画面ピクセル数により的確に変換するように修正されました。
### グラフィックとビデオ

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>` 要素で `x`、`y`、`dx`、および `dy` プロパティの値のためのリストを指定できるようになりました。これを用いることで、文字列中の各文字の位置を個別に制御できます。

### DOM

JavaScript 型付き配列

JavaScript 型付き配列 (typed arrays) のサポートが追加されました。これを用いることで、ネイティブデータ型を用いた生のデータを含むバッファを扱えます。 File API (en-US)、WebGL、および WebSockets を含む、いくつかの API でこれを用いることができます。

範囲の境界領域の保持

`Range` オブジェクトに `range.getClientRects()` および `range.getBoundingClientRect()` メソッドが追加されました。

任意の要素上でのマウスイベントのキャプチャ

Internet Explorer 由来の `setCapture()` と `releaseCapture()`API のサポートが追加されました。バグ 503943 を参照してください。

ブラウザ履歴の操作

`window.history` オブジェクトを通して利用できる、既存のドキュメント履歴オブジェクトが新しい HTML5 の `pushState()` と `replaceState()` メソッドをサポートするようになりました。

MozBeforePaint を用いたアニメーション

追加された新しいイベントと `window.mozRequestAnimationFrame()` (en-US) メソッドおよび `window.mozAnimationStartTime` (en-US) プロパティを組み合わせることで、互いに同期したアニメーションを作成する方法が提供されます。

タッチイベントとマルチタッチイベント

タッチイベントとマルチタッチイベントのサポートが追加されました。

#### 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 の変更

* `wrap` DOM 属性を利用することで、`<textarea>` `要素の折り返しを`DOM によってコントロールできるようになりました。バグ 41464
* `document.createElement()` を用いて作成されてドキュメントに追加された `<script>` 要素が、標準で HTML5 仕様に従って動作するようになりました。 `src` 属性で指定されたスクリプトは（順番を調整することはせずに）実行可能になりしだい実行され、`src` 属性で指定されていないスクリプトは同期的に実行されます。`src` 属性を持つ挿入されたスクリプトを挿入された順番で実行するには、`それらに .async=false を指定します。`
* DOM の `file` オブジェクトが url プロパティを提供するようになりました。
* DOM の `file` オブジェクトに`新しく click()` メソッドが追加されました。
* XMLHttpRequest で FormData (en-US) がサポートされました。
* `element.isContentEditable` プロパティが実装されました。
* `document.currentScript` プロパティを用いることで、現在実行されている `<script>` 要素のスクリプトを判別できます。新しく追加された `element.onbeforescriptexecute` および `element.onafterscriptexecute` イベントは script 要素の実行前後に発生します。
* `DragTransfer` オブジェクトに `mozSourceNode` プロパティが追加されました。
* `Selection` オブジェクトに `selection.modify()` (en-US) メソッドが追加されました。このメソッドを用いると、ブラウザウィンドウでの現在のテキスト選択範囲あるいはカーソル位置を簡単に変更できます。
* `window.directories` オブジェクトと `window.open` の `directories` 特性（これらは他のブラウザではサポートされていません）が 削除されました。代わりに `personalbar` を利用してください。バグ 474058
* `event.mozInputSource` プロパティが DOM ユーザインタフェースイベントに追加されました。この非標準プロパティを用いると、イベントを生成したデバイスのタイプを判別できます。
* `document.onreadystatechange` イベントが実装されました。
* `document.createElement` メソッドが Quirks モードでタグ名の前後の `<` と `>` を受け入れないようになりました。
* `element.setCapture()` および`document.releaseCapture()` メソッドが追加され、これらを用いることで、`指定要素で mousedown` イベントが発生した後にマウスが通常の追跡領域を越えても、マウスイベントを追い続けることができます。
* The `window.mozPaintCount` プロパティが追加されました。これを用いることで、何回ドキュメントが描画されたかを判定できます。これは Web アプリケーションのパフォーマンスをテストするときに役立ちます。
* `window.navigator.appVersion` および `window.navigator.userAgent` から言語トークンが削除されました。代わりに `window.navigator.language` もしくは Accept-Language ヘッダ (en-US) を利用してください。 バグ 572656
* XMLHttpRequest オブジェクトに追加された Gecko 固有の `mozResponseArrayBuffer`プロパティを用いると、レスポンスを文字列と同様 に JavaScript Typed Array として扱えます。
* Mouse イベント (en-US) に `mozPressure` プロパティが追加されました。このプロパティは圧力感知をサポートする入力デバイスでの圧力を示します。
* ~~window.createBlobURL()~~ `window.URL.createObjectURL()` (en-US) および `window.URL.revokeObjectURL()` (en-US) メソッドを用いることで、ローカルファイルを参照する BLOB ("Binary Large OBject") URL を作成できます。
* `DOMImplementation.createHTMLDocument()` メソッドを用いることで、新しい HTML 文書を作成できます。
* `Node.mozMatchesSelector()` が指定セレクタ文字列が妥当ではない場合に正しくない `false` を返すのではなく、`SYNTAX_ERR` 例外を投げるようになりました。
* CSS 同様の省略構文を用いて 要素の SVG プロパティの値を設定できるようになりました。例: `element.style.fill = 'lime'`。詳細は `element.style` を参照してください。
* ドキュメントルートに `privatebrowsingmode` 属性 が追加されました。これはプライベートブラウジングがセッションで一時的であるか永続的であるかの状態を含む、プライベートブラウジングモードの状態を示します。
* `window.getComputedStyle()` メソッドの 2 番目のパラメータが、他の主なブラウザと同様に省略可能になりました。
* DOM の `StorageEvent` オブジェクトが仕様の最新版に合致するようになりました。
* `window.setTimeout()` メソッドの最小遅延時間を設定するための `dom.min_timeout_value が追加されました。`
* `MozAfterPaint` イベントは、潜在的なセキュリティ問題があるため、デフォルトでは送られなくなりました。設定を変更することで有効にできます。
### セキュリティ

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 のメモ(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 を提供します。

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

* `NetUtil.jsm` コードモジュールが `readInputStreamToString()` メソッドを提供するようになりました。これを用いることで、ストリームが null 文字を含んでいても、ストリームから文字列に任意のバイトを読み出せます。
* JavaScript コードモジュール内で Worker を利用できるようになりました。
### DOM の変更

`ChromeWorker`

特権コード向けの新しいタイプの Worker です。これを用いると、拡張およびアプリケーションコードで Worker から js-ctypes のようなものを用いることができます。

タッチイベント

(非標準の) タッチイベントのサポートが追加されました。これを用いると、タッチスクリーン上で同時に複数の指でトラックできます。

### XUL

#### Tabbrowser (gBrowser) の変更

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

* TabClose/TabSelect/TabOpen イベントはもはや tabbrowser 要素 (gBrowser) にバブルアップしません。これらのイベントのためのイベントリスナーは gBrowser 直接ではなく gBrowser.tabContainer に追加すべきです。
* タブコンテキストメニューはもはや tabbrowser の無名の子要素ではありません。それゆえ XUL オーバーレイで直接オーバレイできるようになります。gBrowser.tabContextMenu 経由で JavaScript でより直接的にアクセスすることもできます。詳細はこのブログ投稿を参照してください。
* 新たに `visibleTabs` プロパティが追加され、これを用いると、現在表示されているタブの配列を取得することができます。このことにより、現在のタブセットでどのタブが表示されているかを知ることができます。これは例えば、Firefox Panorama で利用されています。
* 新たに `showOnlyTheseTabs` メソッドが追加されました。これは Firefox Panorama で用いられています。
* 新たに `getIcon` メソッドが追加されました。これを用いると、`<xul:browser>` 要素から引っ張り出す必要無しに、 タブのファビコンを得ることができます。
* 新たに `tabbrowser.tabs` プロパティが追加されました。これを用いると、簡単に `<xul:tabbrowser>` 要素内のタブの一覧を取得できます。
* 新たに `pinTab` と `unpinTab` メソッドが追加されました。これを用いると、タブのアイコン化およびタブのアイコン化の解除ができます（つまり、アイコンタブと通常タブを切り替えます）。
* `getTabModalPromptBox` メソッドと `<xul:tabbrowser>` 要素の `tabmodalPromptShowing` 属性がタブモーダルアラートのサポートのために追加されました。

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

* `<xul:popup>` 要素がサポートされなくなりました。代わりに `<xul:menupopup>` 要素を使うべきです。(`popup` 要素を用い続けた場合、その要素にはもはや何の特別な意味もないため、不具合に遭遇するでしょう。例えば、`<xul:menuseparator>` 要素は `<xul:popup>` 要素内で用いたときに透明で表示される可能性があります。)
* `<xul:menupopup>` XUL 要素に `triggerNode` プロパティが追加されました。このプロパティはポップアップを開くイベントが起こったノードを示します。これは `openPopup` メソッドに対するトリガーイベント引数の追加も必要とします。また、 `anchorNode` プロパティも追加されました。このプロパティはポップアップが作成されたときに指定されたアンカーを返します。
* `<xul:panel>` 要素に `fade` および `flip` 属性が追加されました。これらの属性は新しい "arrow" スタイル通知パネルの挙動を設定するために用いられます。

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

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

#### 小さな XUL の変更

* `readonly` 属性がフィールドで正しく動作するようになりました。
* `<xul:resizer>` 要素でウィンドウをリサイズする代わりにリサイズする要素を指定できる `element` 属性を用いることができるようになりました。
* `<xul:resizer>` 要素に `type` 属性が追加され、これを用いることで、要素の変わりにウィンドウのリサイズグリップを指定し、ウィンドウのリサイズグリップが 2 度描画されることを防ぐことができます。
* "active" 属性は XUL ウィンドウでは設定されません。背景ウィンドウに異なるスタイルを指定するための新しい `:-moz-window-inactive` (en-US) 擬似クラスを利用してください。
* `emptytext` 属性は非推奨になりました。代わりに `placeholder` を用いるべきです。
* `<xul:popup>` 要素はサポートされません。代わりに `<xul:menupopup>` を持ちいるべきです。
* `<xul:window>` 要素が `accelerated` 属性を提供するようになりました。true の場合、ハードウェアレイヤーマネージャがウィンドウをアクセラレーションすることが許可されます。
* `<xul:stack>` 要素が `bottom` と `right` 要素をサポートするようになりました。
* `<xul:tree>` 要素での `alternatingbackground` 属性はサポートされません。代わりに `:-moz-tree-row` 擬似クラスを利用できます。
* anonid chevronPopup を持っていたブックマークツールバーのオーバーフローボタンは無名になりました。それは PlacesChevron の id を持っています。
* `<xul:tabs>` 要素に `tabbox` プロパティが追加されました。これは古い `_tabbox` プロパティを置き換えます。古い方のプロパティは非推奨です（そして決してドキュメント化されません）。
* XUL `<xul:window>` 要素に `drawintitlebar` 属性が追加されました。この値が `true であれば、`ウィンドウのコンテント領域にはタイトルバーが含まれており、タイトルバー内に描画することを許可します。
* 新たに `TabPinned` および `TabUnpinned` イベントが追加され、これを用いることで、タブがアイコン化したかアイコン化が解除されたかを検知できます。
* 新しい `TabAttrModified` イベント はタブの `label`、`crop`、`busy`、 `image`、あるいは、`selected` 属性のいずれかが変化したときに送られます。
* `<xul:tab>` 要素に `pinned` 属性が追加されました。これを用いることで、タブが現在アイコン化されているかどうか判定できます。
* `<xul:tree>` 要素上の `setDirectionIndicator` クラスは何もしないことがありましたが、一切利用されないようになりました。
* `<xul:window>` 要素に `chromemargin` 属性が追加され、これを用いることで、ウィンドウの両端の Chrome とコンテントのマージンを設定できます。例えば、タイトルバーに描画するためにこれを用いることができます。
* `<xul:window>` 要素に `disablechrome` 属性が追加されました。これは `about:addons のように`ブラウザ内 UI に表示するために用いるときにウィンドウで Chrome のほどんどを隠すために用いることができます。
* `<xul:window>` 要素に `disablefastfind` 属性が追加されました。これを用いることで、ウィンドウ内のページ内検索バーを無効にできます。このときコンテント内でページ検索バーはサポートされません。例えば、これはアドオンパネルで使われています。
* ツールバーをツールボックスの外部に置けるようになりました。`<xul:toolbar>` 要素の `toolboxid` プロパティを設定することで、以前のように `<xul:toolbox>` 要素のメンバーとして扱うことができます。また、`<xul:toolbox>` 要素に `externalToolbars` プロパティが追加されました。このプロパティによって、そのツールボックスのメンバーとして扱われるツールバーのすべての一覧を取得できます。
* デバッグ目的向けに logging XUL テンプレートのロギング のサポートが追加されました。
### 開発者に影響がある UI の変更

アドオンバー

ステータスバーが削除され、新しいアドオンバーに置き換えられました。以前にステータスバーに UI を追加していた拡張は更新する必要があります。

ブラウザのクロームを隠す

ブラウザのクロームを隠したいときに、隠せるようになりました。例えば、`about:addons` がこれを用いています。

### Storage

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

* `mozIStorageBindingParamsArray` インタフェースが 配列である`mozIStorageBindingParams` オブジェクトの数を示す length 属性を持つようになりました。
* `mozIStorageStatement`の メソッド bindParameters が 指定された `mozIStorageBindingParamsArray` が空のときにエラーを返すようになりました。
* `mozIStorageConnection.clone()` メソッドが追加されました。これを用いると、存在するデータベース接続を複製できます。
* `mozIStorageConnection.asyncClose()` が追加されました。これを用いると、非同期にデータベース接続を閉じることができます。クローズ処理が完了したときに通知されるコールバックを指定します。
* `mozIStorageConnection.setGrowthIncrement()` メソッドが追加されました。これを用いると、SQLite のフラグメンテーションを減らすことを助けるために、データベースファイルでの一度の増加量を指定できます。
* `SQLITE_CONSTRAINT` エラーが `NS_ERROR_FAILURE` の代わりに `NS_ERROR_STORAGE_CONSTRAINT` を報告するようになりました。
### XPCOM

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

Gecko 2.0 における XPCOM の変更

Firefox 4 で互換性に影響を与える XPCOM への変更についての詳細。

Components.utils.getGlobalForObject()

この新しいメソッドはオブジェクトが属しているグローバルオブジェクトを返します。これは現在削除された `__parent__ の一般的用途を置き換えます。`

### Places

* Places クエリの結果が複数のオブザーバによって提供されるようになり、それらのクエリは非同期で実行される可能性があります。このことにより、`nsINavHistoryResult`、`nsINavHistoryQueryOptions`、および`nsINavHistoryContainerResultNode` インタフェースにいくつかの変更があります。より大きな変更は、`nsINavHistoryResultViewer` インタフェースが `nsINavHistoryResultObserver` に改名されたことです。
* いくつかの 新しい通知 が追加されました。この通知を用いると、ブラウザが Places サービスのシャットダウンプロセスをより確実に追跡できます。これらのうち、ほとんどは内部での利用のためにのみ用意されたものですが、`places-connection-closed` 通知は Places サービスが自身のシャットダウンプロセスを完了したときを知るために利用可能です。
* いくつかの Places のメソッドで配列サイズ出力を指定する引数がオプションになりました。
* `<menupopup type="places">` のサポートが削除されました。代わりに、以前は自動で行なわれていた Places の情報を持つメニューを手動で作成して配置する必要があります。詳細はメニュービューを用いて Places 情報を表示するを参照してください。
### インタフェースの変更

* The `nsIDocShell` and `nsIWebBrowser` interfaces now have a new `isActive` attribute, which is used to allow optimization of code paths for documents that aren't currently visible.
* The `nsIMemory` method `nsIMemory.isLowMemory()` has been deprecated. You should use "memory-pressure" notifications to watch for low memory situations instead.
* The API for handling redirects on HTTP channels has changed to let them be processed asynchronously. Any code that implements redirect handling using `nsIChannelEventSink.onChannelRedirect()` needs to be updated to use `nsIChannelEventSink.asyncOnChannelRedirect()` instead. This accepts a callback handler that must be called when a redirect is successfully completed.
* The `nsINavHistoryResultObserver.batching()` method has been added, providing a way to group Places operations into batches, reducing the number of update notifications delivered, which can improve performance when observers are performing relatively involved tasks (such as refreshing views).
* The long-obsolete `nsIPref` interface has finally been removed. If you haven't already switched to `nsIPrefService`, now is the time.
* The `nsISessionStore` and `nsISessionStartup` interfaces received changes to support on-demand session restore. See the `nsISessionStore.restoreLastSession()` method.
* The `nsIPrincipal` methods `nsIPrincipal.subsumes()` and `nsIPrincipal.checkMayLoad()`, as well as its `origin`, `csp`, and `URI` attributes, are now available from script; previously they were only available from native code.
* The `nsIPrompt` interface now supports tab-modal alerts; see Using tab-modal prompts for details.
* The `nsIEffectiveTLDService.getPublicSuffixFromHost()` method now correctly rejects host name starting with a period (".").
* The `mozIJSSubScriptLoader.loadSubScript()` method now has an optional argument allowing you to specify the character set of the script; if one is not provided, ASCII is assumed (as was always assumed previously).
* The `nsIAccessProxy` interface has been removed. It was an implementation detail that has outlived its usefulness.
* The `nsIContentView` and `nsIContentViewManager` interfaces have been added for Firefox Mobile. It represents a scrollable content view whose contents are actually drawn by a separate process.
* The `nsIDiskCacheStreamInternal` interface has been added.
* The `nsIExternalURLHandlerService` interface has been added.
* The `nsISyncJPAKE` interface has been added. See bug 601645.

* `nsIDocShell` および `nsIWebBrowser` インタフェースに新しく `isActive` 属性が追加されました。これは現在表示されていないドキュメントのためにコードパスを最適化することを許可するために用いることができます。
* `nsIMemory` のメソッドである `isLowMemory()` は非推奨になりました。低メモリ状況を監視するには "memory-pressure" 通知 を用いることが推奨されます。
* HTTP チャンネル上でリダイレクトを扱う API が非同期で動作できるように変更されました。`nsIChannelEventSink.onChannelRedirect()` を用いてリダイレクトを扱う実装を行なっているコードは `nsIChannelEventSink.asyncOnChannelRedirect` を代わりに用いて更新する必要があります。これはリダイレクトが正常に完了したときに呼び出されるコールバックハンドラを受け入れます。
* `nsINavHistoryResultObserver.batching()` メソッドが追加されました。このメソッドは Places 操作をバッチにグループ化する方法を提供し、送られてくる更新通知の数を減少させ、その結果、オブザーバが（ビューをリフレッシュするような）相対的にタスクを追加するときのパフォーマンスを向上させます。
* 長い間廃止状態であった `nsIPref` インタフェースがついに削除されました。まだ `nsIPrefService` に移行していないなら、今がそのときです。
* `nsISessionStore` および `nsISessionStartup` インタフェースがユーザの要求に応じたセッションリストアのサポートへの変更を受けとるようになりました。`nsISessionStore.restoreLastSession()` メソッドを参照してください。
* `nsIPrincipal` のメソッドである `nsIPrincipal.subsumes()` および `nsIPrincipal.checkMayLoad()` が `origin`、`csp、` および `URI` 属性同様に、スクリプトから利用可能になりました。以前はこれらはネイティブコードからのみ利用可能でした。
* `nsIPrompt` インタフェースがタブモーダルアラートをサポートするようになりました。詳細はタブモーダルプロンプトの利用を参照してください。
* `nsIEffectiveTLDService.getPublicSuffixFromHost()` メソッドがピリオド (".") で始まるホスト名を正しく拒否するようになりました。
### メモリ管理

確実なメモリアロケーション

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

### その他の変更

* Firefox 内に含まれるリソースのほとんどが単一の JAR アーカイブである `omni.jar` にまとめられました。これにより、 I/O が減少し、その結果、起動パフォーマンスが向上しています。詳細は omni.jar についてを読んでください。
* `accessibility.disablecache` 設定はサポートされなくなりました。これはデバッグ目的で公開されており、もはや用いられません。
* バージョンアップによって GUID が変更になるアドオンが正しく更新されるようになりました。
* プラットフォーム固有のディレクトリを削除した副作用として、各プラットフォーム向けに異なった設定を提供することができなくなりました。
* デフォルトで、拡張はインストール時に展開されなくなりました。その代わりに XPI ファイルから直接実行されます。拡張は古い挙動を選択するためにインストールマニフェスト内で unpack プロパティを使用できます。バイナリコンポーネントや、js-ctypes を利用して読み込まれる DLL、検索プラグイン (en-US)、辞書、ウィンドウアイコンは展開される必要があるように指定しなければなりません。SQLite データベースを生成する拡張や、拡張ディレクトリからファイルシステムへ相対的に何かをコピーする拡張も、それらのコードを変更する必要があるかもしれません。
* カスタマイズされた Firefox にアプリケーションスタートアップ時に自動でインストールされる拡張を含められるようになりました。
その他の変更
------

ルートの chrome.manifest ファイルだけが読み込まれるように

ルートの `chrome.manifest` ファイルだけが読み込まれるようになりました。 2 つ以上のマニフェストファイルを読み込む必要がある場合は、ルートの `chrome.manifest` でそれらを読み込むために `manifest` コマンドを使用できます。

Gopher サポートの削除

Gopher プロトコルがネイティブでサポートされなくなりました。継続してサポートを受けるには OverbiteFF 拡張を利用できます。

コンテントプロセスイベントハンドリング

out-of-process プラグインのサポートとその他の multiple-process 機能をサポートするために、プロセス間でメッセージを送ることをサポートするための新しい API が導入されました。

ブートストラップ拡張

ブラウザを再起動せずにインストール、アンインストール、更新（またはダウングレード）できる拡張を作成できるようになりました。

デフォルトプラグイン の削除

デフォルトプラグインが削除されました。アプリケーションプラグインフォルダもデフォルトで削除されますが、このフォルダ経由でプラグインをインストールするためのサポートはまだ存在します。bug 533891 を参照してください。

Extension Manager の AddonManager への置き換え

nsIExtensionManager は AddonManager に置き換えられました。 指定した拡張 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.down` を `cmd_scrollBottom` にし、`browser.gesture.swipe.up` を `cmd_scrollTop` に設定してください。

関連情報
----

* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers


Firefox 66 for developers - Mozilla

Firefox 66 for developers
=========================

Firefox 66 は、米国時間 2019 年 3 月 19 日 にリリースされました。このページでは、開発者に影響する Firefox 66 の変更点をまとめています。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

* ウェブコンソール の自動補完のポップアップから、JavaScript のゲッターを実行できるようになりました (Firefox バグ 1499289)。
* Window の `alert()`、`prompt()`、`confirm()` メソッドがレスポンシブデザインモード で動作しなくなっていたのを、再び動作するようになりました (Firefox バグ 1273997)。
* コンソールの出力を右クリックして "**表示メッセージをクリップボードにエクスポートする**" を選択すると、コンソールの出力をクリップボードにコピーできます。
### HTML

* `file:` URL から読み込んだ UTF-8 エンコードされた HTML (およびプレーンテキスト) ファイルについて、`<meta charset="utf-8">` または UTF-8 BOM がないものもサポートしました。このようなファイルをサーバーにアップロードする前に、ローカル環境で作業しやすくするためです。サーバーでは、このようなファイルに `Content-Type` HTTP ヘッダーで `charset=utf-8` を送信しなければなりません。ローカルファイルで使用する検出方法は、ネットワーク環境の逐次読み込みで問題が発生します (Firefox バグ 1071816)。

#### 廃止

* `<input>` 要素から `x-moz-errormessage` 属性を削除しました (Firefox バグ 1513890)。独自の検証メッセージを実装するには、代わりに制約検証機能を使用してください。
### CSS

* スクロールアンカリングを、デスクトップ版 Firefox に実装しました (モバイル版は未実装です)。`overflow-anchor` プロパティを含みます (Firefox バグ 1305957)。
* 属性セレクター で、大文字・小文字の区別に関する修飾子 `s` をサポートしました (Firefox バグ 1512386)。
* いくつかの 論理的プロパティ ショートハンドと、フローに関係する border radius プロパティを実装しました:
    + `padding-block` および `padding-inline` (Firefox バグ 1519847)。
    + `margin-block` および `margin-inline` (Firefox バグ 1519944)。
    + `inset`、`inset-block`、`inset-inline` (Firefox バグ 1520229)。
    + `border-block-color`、`border-block-style`、`border-block-width`、`border-inline-color`、`border-inline-style`、`border-inline-width` (Firefox バグ 1520236)。
    + `border-block`、`border-inline` (Firefox バグ 1520396)。
    + `border-start-start-radius`、`border-start-end-radius`、`border-end-start-radius`、`border-end-end-radius` (Firefox バグ 1520684)。
* `overflow-inline` および `overflow-block` メディアクエリーを実装しました (Firefox バグ 1422235)。
* 仕様書で公表された規則に従って、`grid-template-columns` および `grid-template-rows` のアニメーションを実装しました (Firefox バグ 1348519)。
* テーブルのセルや列の幅で、パーセンテージを使用した `calc()` をサポートしました (Firefox バグ 957915)。
* `min-content` および `max-content` キーワードが、接頭辞なしで使用可能になりました (Firefox バグ 1322780)。これらは以下のプロパティに設定できます:
    + `width`
    + `height`
    + `flex-basis`
    + `min-width`
    + `max-width`
    + `min-height`
    + `max-height`
    + `min-block-size`
    + `min-inline-size`
    + `max-block-size`
    + `max-inline-size`
    + `block-size`
    + `inline-size`
### SVG

*変更なし。*

#### 廃止

* `xml:base` 属性のサポートを廃止しました (Firefox バグ 903372)。
### JavaScript

*変更なし。*

### API

#### API の追加と変更

* Release 版の Firefox 66 を公開した後すみやかに、音声の自動再生がデフォルトでブロックされます (Firefox バグ 1487844。ロールアウトについては Firefox バグ 1535667 をご覧ください)。この機能は、すべてのユーザーへ段階的に適用されます。

#### DOM

* `HTMLSlotElement.assignedElements()` メソッドを実装しました (Firefox バグ 1425685)。
* `TextEncoder.encodeInto()` メソッドを実装しました (Firefox バグ 1514664)。

#### DOM イベント

* `InputEvent.inputType` プロパティを実装しました (Firefox バグ 1447239)。
* `Window.event` および `Event.returnValue` プロパティ (元は IE の独自機能であり、互換性の理由でほかのブラザーもサポートしました) を、Firefox 66 で再導入しました。それぞれバージョン 63 や 64 で追加した後、互換性の問題で再び削除していました。
* バージョン 66 より、`keypress` イベントオブジェクトの `KeyboardEvent.keyCode` プロパティが 0 であるとき、値が `KeyboardEvent.charCode` と同じになります。逆に `charCode` が 0 であるときは、`keyCode` と同じ値になります。このミラーリング動作はほかのブラウザーと一致しており、これに関連する互換性の問題のほとんどが解決すると思われます。ただし 一部の JavaScript ライブラリーで、ブラウザー検出によって新たな問題が発生する可能性があります。仕様書の用語では、*split model* から *conflated model* に切り替えました (UI Event 仕様書の How to determine keyCode for keypress events をご覧ください)。

#### メディア、ウェブオーディオ、WebRTC

* 新しい AV1 動画コーデック を macOS および Windows (Intel プロセッサー用) で、デフォルトで有効にしました。Linux は Firefox 67 でサポートする予定です (Firefox バグ 1521181、Firefox バグ 1452146、Firefox バグ 1534814)。
* `MediaDevices` の `getDisplayMedia()` メソッド (`navigator.mediaDevices.getDisplayMedia()` として使用可能) を追加して、仕様書に一致させました。このメソッドは、スクリーンまたはスクリーンの一部を `MediaStream` として取得して、操作または共有できます (Firefox バグ 1321221)。
* スクリーンやウィンドウの内容を取得するための、Firefox 独自の `getUserMedia()` に基づくメソッドを最終的に非推奨にする取り組みの一部として、非標準の `mediaSource` 定数を値 `screen` および `window` と同等に扱うようになりました。どちらも、ユーザーが選択するスクリーンやウィンドウのリストを提供します (Firefox バグ 1474376)。
* ローカル出力の `RTCRTPStreamStats` (en-US) オブジェクトに `qpSum` (en-US) を追加しました。これは、ビデオトラックで送受信するすべてのフレームの量子化パラメーターの合計を表します。この値が高ければ、ストリームはより圧縮されていると考えられます (Firefox バグ 1347070)。
* 将来の Firefox で Feature Policy をサポートするための取り組みで、コンテンツに適切なオリジンが存在しない状況では `getUserMedia()` を使用できなくなりました。例えばサンドボックス化された `<iframe>`、ユーザーがアドレスバーに入力した `data` URL から呼び出した場合です。詳しくは MediaDevices.getUserMedia() ページの セキュリティ セクションをご覧ください (Firefox バグ 1371741)。

#### 廃止

* WebRTC の古い `PeerConnection.getStats()` メソッドと、これに関連付けられた型を削除しました (Firefox バグ 1328194)。
### ネットワーク

* `Accept` ヘッダーの既定値が `*/*` になりました (Firefox バグ 1417463)。
### セキュリティ

*変更なし。*

### プラグイン

*変更なし。*

### WebDriver conformance (Marionette)

#### API の変更点

* 新しい閲覧コンテキストを開く操作をサポートするため `WebDriver:NewWindow` を追加しました。ウィンドウまたはタブのいずれかを開くことができます (Firefox バグ 1504756)。
* 指定した要素が現在の閲覧コンテキストに含まれていない場合に、`WebDriver:SwitchToFrame` で `no such element` エラーが発生するようになりました (Firefox バグ 1517196)。
* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` が、仕様書に準拠しない `scriptTimeout` 引数をサポートしないようになりました。代わりに `WebDriver:SetTimeout` または `timeouts` 機能を使用してください (Firefox バグ 1510929)。
    + さらに、不定のスクリプトタイムアウトをサポートしました (Firefox バグ 1128997)。
* `WebDriver:SetWindowRect` が、応答でウィンドウの状態を返さないようになりました (Firefox バグ 1517587)。

#### バグ修正

* `WebDriver:TakeScreenshot` が、ビューポートの寸法に代わって `Document.documentElement` の `Element.clientWidth` および `Element.clientHeight` プロパティを使用するようになりました (Firefox バグ 1385706)。
* ウィンドウ操作コマンドがプラットフォームをまたいで確かに動作するようにするため、さまざまな修正を行いました (Firefox バグ 1522408, Firefox バグ 1478358, Firefox バグ 1489955)。
アドオン開発者向けの変更点
-------------

### API の変更点

#### メニュー

* `type` (en-US) が "bookmark" である拡張機能のメニュー項目が、ブックマークサイドバー (`Ctrl` + `B`) およびライブラリーウィンドウ (`Ctrl` + `Shift` + `B`) にも表示されるようになりました (Firefox バグ 1419195)。
### マニフェストの変更点

*変更なし。*

関連情報
----

* Firefox 66: The Sound of Silence
過去のバージョン
--------

* Firefox 65 for developers
* Firefox 64 for developers
* Firefox 63 for developers
* Firefox 62 for developers
* Firefox 61 for developers
* Firefox 60 for developers
* Firefox 59 for developers
* Firefox 58 for developers
* Firefox 57 for developers
* Firefox 56 for developers
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers
* Firefox 51 for developers
* Firefox 50 for developers
* Firefox 49 for developers
* Firefox 48 for developers
* Firefox 47 for developers
* Firefox 46 for developers
* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* Firefox 35 for developers


Firefox 107 for developers - Mozilla

Firefox 107 for developers
==========================

このページでは、開発者に影響する Firefox 107 の変更点をまとめています。Firefox 107 は、2022 年 11 月 15 日にリリースされました。

ウェブ開発者向けの変更点一覧
--------------

### HTML

変更なし。

### MathML

* `<ms>` (en-US) MathML 要素で、独自の始めと終わりの引用符を示すための非推奨属性であった `lquote` および `rquote` 属性を無効にしました。
 この動作は `mathml.ms_lquote_rquote_attributes.disabled` で設定しており、既定値を `true` にしました (Firefox バグ 1793387)。
### CSS

* `contain-intrinsic-size` ショートハンド CSS プロパティを、サイズの封じ込め の対象になる UI 要素のサイズを指定するために適用できるようになりました。
 これはユーザーエージェントが、子要素をレンダリングせずに要素のサイズを特定することを可能にします。
 ショートハンドプロパティの `contain-intrinsic-width` (en-US) および `contain-intrinsic-height` (en-US) とともに、論理的プロパティ の `contain-intrinsic-block-size` (en-US) および `contain-intrinsic-inline-size` (en-US) もサポートしました (Firefox バグ 1597529)。
* font-palette (en-US) によって、カラーフォントをサポートしました (Firefox バグ 1791558)。また、@font-palette-values (en-US) CSS アットルールと、その記述子である font-family (en-US)、base-palette (en-US)、override-colors (en-US) でも、カラーフォントをサポートしました。これらを合わせて、カラーパレットの定義を支援します (Firefox バグ 1791558)。
### JavaScript

変更なし。

### API

#### 廃止

* 非標準かつ非推奨である `SVGSVGElement.useCurrentView` (en-US) プロパティを削除しました (詳しくは Firefox バグ 1174097 をご覧ください)。
### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* `script.evaluate`、`script.callFunction`、`script.disown` コマンドの `target` 引数でレルムをサポートしました (Firefox バグ 1779231)。
* `WeakMap` や `Uint8Array` など、コンテナ型の値フィールドを持つ複雑なオブジェクトの JSON シリアライズをサポートしました (Firefox バグ 1770754)。
* `browsingContext.create` コマンドの `context` 引数をサポートしました。既存のタブに関連する新しいタブを開くことができます (Firefox バグ 1765619)。
* `wait` 引数を `none` に設定して `browsingContext.navigate` コマンドを呼び出したときの信頼性が向上しました (Firefox バグ 1763109)。

#### Marionette

* `WebDriver:ElementSendKeys` コマンドが、要素にフォーカスがあたっていない場合に限ってキャレットを設定するようになりました (Firefox バグ 1791736)。
* `WebDriver:PerformAction` コマンドを、`pointerMove` および `wheel` アクションのさまざまな引数で `undefined` を値として受け入れないように更新しました (Firefox バグ 1781066)。
* Selenium Atoms を、最近の WebDriver 仕様書の変更点に合わせて更新しました (Firefox バグ 1771942)。
アドオン開発者向けの変更点一覧
---------------

### 廃止

### その他

* `scripting.executeScript` (en-US) でエラーが発生したときに返される `error` プロパティが、メッセージプロパティを持つオブジェクトだけでなく、スクリプトがスローしたり拒否拒否したりした任意の値を表すようになりました (Firefox バグ 1740608)。
過去のバージョン
--------

* Firefox 106 for developers
* Firefox 105 for developers
* Firefox 104 for developers
* Firefox 103 for developers
* Firefox 102 for developers
* Firefox 101 for developers
* Firefox 100 for developers
* Firefox 99 for developers
* Firefox 98 for developers
* Firefox 97 for developers
* Firefox 96 for developers
* Firefox 95 for developers
* Firefox 94 for developers
* Firefox 93 for developers
* Firefox 92 for developers
* Firefox 91 for developers
* Firefox 90 for developers
* Firefox 89 for developers
* Firefox 88 for developers
* Firefox 87 for developers
* Firefox 86 for developers
* Firefox 85 for developers
* Firefox 84 for developers
* Firefox 83 for developers
* Firefox 82 for developers
* Firefox 81 for developers
* Firefox 80 for developers
* Firefox 79 for developers
* Firefox 78 for developers
* Firefox 77 for developers
* Firefox 76 for developers


Firefox 57 (Quantum) for developers - Mozilla

Firefox 57 (Quantum) for developers
===================================

Firefox 57 (別名 Firefox Quantum) は、米国時間 2017 年 11 月 14 日にリリースされました。このページでは、開発者に影響する Firefox 57 の変更点をまとめています。

Firefox 57 === Firefox Quantum
------------------------------

Firefox 57 は、Firefox を徹底的に再構築してパフォーマンス、安定性、外見を大きく向上させることを目指す Firefox Quantum エンジニアリングプロジェクトにちなんで **Quantum** というリリース名が与えられました。Firefox 57 はこれらの改善点の一部をリリースする最初のバージョンであり、祝福を求めていました。

**メモ:** このリリースの Quantum の特徴について詳しくは、Dan Callahan による記事 Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling をご覧ください。

Firefox's new parallel CSS engine、別名 **Quantum CSS** または **Stylo** はデスクトップ版の Firefox 57 でデフォルトで有効であり、モバイル版の Firefox は追って有効化します。多くのパフォーマンス向上は別として、開発者が何らかの大きな違いに気づくことがあってはいけません。Stylo には多くの小規模な機能差がありますが、Gecko で取り除くべき非標準の動作を修正するために実装したものです。このような差異は、適宜リファレンスのページやリリースノートに掲載します (Quantum CSS に関する補足 を参照)。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

*変更なし。*

### HTML

* `<input>` の date および time 型が、すべてのビルドで有効になりました (Firefox バグ 1399036)。
### CSS

* `display-mode` メディアクエリーの値 `minimal-ui` および `standalone` をサポートしました (Firefox バグ 1369815)。ウェブアプリマニフェストの `display` フィールド もご覧ください。
* `grid-row-gap` および `grid-column-gap` プロパティが、`grid` ショートハンドプロパティでリセットされないようになりました (Firefox バグ 1387410)。
* 設定項目 `layout.css.clip-path-shapes.enabled` を削除しました (Firefox バグ 1399767)。この設定項目で、`clip-path` の `<basic-shape>` のサポートを無効化できました。これは Firefox 54 で導入されたものであり、今後は無効化できません。

#### Quantum CSS に関する補足

Quantum で以下の不具合を修正しました。

* 以前の Gecko のスタイルシステムでは `radial-gradient(circle gold,red)` のような放射状のグラデーションが、`circle` と `gold` の間にカンマがないため動作すべきではないにもかかわらず、動作していました (Firefox バグ 1383323)。
* オフスクリーンの要素をオンスクリーンにアニメーションするときに遅延を指定すると、Gecko は Windows など一部のプラットフォームで再描画を行いません (Firefox バグ 1383239)。
* Gecko では、`<details>` 要素で `animation` をアクティブにすると `open` 属性を使用して既定で開かせることができません (Firefox バグ 1382124)。
* Gecko では、色を指定した `text-shadow` から色を指定しない `text-shadow` へ遷移する場合に`トランジション`が動作しません (Firefox バグ 726550)。
* Gecko ではアニメーションのフィリングをキャンセルする (例えば `animation-fill-mode: forwards` を設定) と、1 回だけですが同じ要素に設定したトランジションを発生させられます (詳しくは Firefox バグ 1192592 および こちらのテストケース をご覧ください)。一般的に、宣言的なアニメーションがトランジションを発生させるべきではありません。
* Gecko では em 単位を使用するアニメーションが、アニメーションする要素の親で `font-size` を変更しても影響を受けませんが、実際は影響を受けるべきです (Firefox バグ 1254424)。
* Gecko と Quantum CSS では `font-size` の継承が異なっており、Gecko では一部の言語設定で継承したフォントのサイズが想定より小さくなります (Firefox バグ 1391341)。
* Gecko では `@-moz-document` 規則の `domain()` あるいは `url-prefix()` URL マッチング関数で解析するときに、URL トークンの解析と同じ仕組みを再使用します。Quantum CSS は同じ仕組みを使用せず、括弧や引用符を含む場合にトークンを無効とみなしません (Firefox バグ 1362333)。
* Gecko では canvas 2D コンテキストの `font` の値としてシステムフォント (例えば `menu`) を設定すると、期待するフォントが返りません (何も返りません)。Quantum でこの不具合を修正しました (Firefox バグ 1374885)。
* Gecko では、切り離されたサブツリー (例えば `createElement()` を使用して作成した、DOM に未挿入の `<div>`) を作成すると、サブツリーのルート要素がブロックレベル要素として設定されます。Quantum CSS では仕様書に従って、インラインとして設定します (Firefox バグ 1374994)。
* Gecko では `calc()` 式を `radial-gradient()` の半径の構成要素として使用すると、式が拒否されて値が無効になります (Firefox バグ 1376019)。
* Gecko では `calc(1*2*3)` が正しく解析されません。Quantum CSS でこの不具合を修正しました (Firefox バグ 1379467)。
* Quantum CSS では、`calc()` を仕様書で説明されているとおり全面的にサポートしています (Firefox バグ 1350857)。Gecko はそうではありません。
* Gecko は `::before` および `::after` 疑似要素で、`content` プロパティの値が `normal` や `none` であっても疑似要素を生成する不具合があります。仕様書によると、このようにするべきではありません (Firefox バグ 1387931)。
* Gecko は `background-position` プロパティで、異なる数の `<position>` 値を持つ 2 つの値の間 (例えば `background-position: 10px 10px;` と `background-position: 20px 20px, 30px 30px;`) でトランジションを行えない不具合があります (Firefox バグ 1390446)。
### SVG

*変更なし。*

### JavaScript

* 非標準の `for each...in` (E4X) ループを廃止しました。代わりに `for...of` を使用してください。また、移行の助けになる Warning: JavaScript 1.6's for-each-in loops are deprecated をご覧ください。(Firefox バグ 1083470)
* `Object.prototype.watch()` および `unwatch()` メソッドが非推奨になり、使用すると警告が発生します。また、将来削除する予定です (Firefox バグ 934669)。
* 非標準の `Iterator` および `StopIteration` オブジェクトと、古いイテレーションプロトコルを廃止しました (Firefox バグ 1098412)。
* 非同期ジェネレーターを有効化しました (Firefox バグ 1352312)。
* for await (... of ...) 構文を有効化しました (Firefox バグ 1352312)。
### API

#### 新規 API

* `PerformanceObserver` API をデフォルトで有効にしました (Firefox バグ 1386021)。
* `AbortController` および `AbortSignal` インターフェイス (Abort API) を追加しました。必要に応じて、DOM リクエスト (fetch リクエスト など) を中止できます (Firefox バグ 1378342)。
* Storage API を実装して、デフォルトで有効にしました (Firefox バグ 1399038)。

#### DOM

* Selection API の `Selection.type` (en-US) プロパティを実装しました (Firefox バグ 1359157)。
* `Document.createEvent('FocusEvent')` をサポートしました (Firefox バグ 1388069)。
* `HTMLInputElement` インターフェイスの `files` プロパティが設定可能になりました (Firefox バグ 1384030)。
* `HTMLDocument.getSelection()` メソッドを `Document` インターフェイスに移動して、XML ドキュメントで使用可能になりました (Firefox バグ 718711)。
* `messageerror` イベントを実装して、メッセージターゲットで実装したイベントハンドラーの発動に反応して実行するコードを持つことが可能になりました。`MessagePort.messageerror_event`、`DedicatedWorkerGlobalScope.messageerror_event`、`Worker.messageerror_event`、`BroadcastChannel.messageerror_event`、`Window.messageerror_event` をご覧ください (Firefox バグ 1359017)。
* `Headers` の値で反復処理を行うとき、値を自動的に辞書順で整列して、さらに重複するヘッダー名の値を結合するようになりました (Firefox バグ 1396848)。

#### DOM イベント

*変更なし。*

#### メディアと WebRTC

* SCTP メッセージの end-of-record (EOR) フラグを使用することにより、`RTCDataChannel` で任意のサイズ (256kiB が相互運用性が高いのですが、最大 1GiB まで) のメッセージをサポートしました。詳しくは Understanding message size limits (en-US) をご覧ください (Firefox バグ 979417)。

**メモ:** Firefox は、複数のソースの SCTP メッセージを多重化する機能を提供する SCTP ndata プロトコルが未サポートですので、大きなデータオブジェクトを送信すると他のすべての SCTP 通信で著しい遅延が発生する可能性があります。Firefox の ndata サポートの実装および展開の進捗を追跡するには、Firefox バグ 1381145 をご覧ください。
* `RTCDataChannel.send()` (en-US) メソッドで、送信しようとしたメッセージのサイズが受信側の ユーザーエージェント と互換性がない場合に `TypeError` 例外を発生できるようになりました (これは Firefox バグ 979417 の一部として実装しました)。
* MediaStream Recording API を更新し、録画中に発生した問題を報告するために送信される `error` イベントを一般的なイベントから `MediaRecorderErrorEvent` 型にしました。
* `OfflineAudioContext` のコンストラクターで引数のリストに加えてオブジェクトを指定可能になったため、関連文書を更新しました (Firefox バグ 1388591)。
### セキュリティ

* `resource://` URL が情報を漏えいしないようになりました (Firefox バグ 863246)。
* Data URI のオリジンが、ナビゲーションの責任がある設定オブジェクトのオリジンを継承するのではなく、一意の opaque origin として扱うようになりました (Firefox バグ 1324406)。
### プラグイン

*変更なし。*

### その他

* Firefox の ヘッドレスモード に、コマンドラインからウェブサイトのスクリーンショットを直接取得することを可能にする `-screenshot` フラグを追加しました (Firefox バグ 1378010)。
ウェブプラットフォームから廃止
---------------

### HTML

* さまざまなウェブ互換性の問題があるため、Firefox 57 で `<link rel="preload">` (Preloading content with rel="preload" をご覧ください) を無効化しました (Firefox バグ 1405761)。キャッシュ不可のリソース向けに改良したバージョンを Firefox 58 に搭載する予定です。
### API

* Mozilla 独自仕様 ソーシャル API を完全に削除しました (Firefox バグ 1388902)。
### SVG

*変更なし。*

アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

**メモ:** Firefox 57 より、XPCOM ベースのアドオンのサポートを全面的に廃止します。すべての拡張機能は新しい ブラウザー拡張機能 (WebExtensions としても知られています) への移行が必要であり、そうしなければ動作しません。

### WebExtensions

以下の API を追加または拡張しました:

* `bookmarks`
    + `bookmarks.BookmarkTreeNodeType` でセパレーターをサポートしました。
* `browser_action`
    + light/dark テーマアイコンのための `theme_icons` プロパティ
* `browserAction`
    + `browserAction.openPopup()` (en-US)
* `browserSettings`
    + `allowPopupsForUserEvents` (en-US)
    + `homepageOverride` (en-US)
    + `imageAnimationBehavior` (en-US)
    + `newTabPageOverride`
* `browsingData`
    + `browsingData.removeLocalStorage()` (en-US)
* `clipboard`
    + `setImageData()`
* `contextualIdentities`
    + `onCreated` (en-US)
    + `onRemoved` (en-US)
    + `onUpdated` (en-US)
    + `contextualIdentitities.ContextualIdentity` (en-US) の `colorCode` および `iconUrl`
* `devtools.panels`
    + `devtools.panels.ElementsPanel.createSidebarPane()` (en-US)
* `downloads`
    + `downloads.download()` の `incognito` オプション
    + `downloads.DownloadItem` (en-US) の `estimatedEndTime` プロパティ
* `find`
    + `find()`
    + `highlightResults()` (en-US)
    + `removeHighlighting()` (en-US)
* `pageAction.openPopup()` (en-US)
* `privacy` (en-US)
    + `websites.trackingProtectionMode` (en-US)
* `proxy`
    + `FindProxyForURL()` がオブジェクトを返せるようになりました
* `runtime`
    + `runtime.openOptionsPage()` を Android でサポート
* `sessions`
    + `setTabValue()` (en-US)
    + `getTabValue()` (en-US)
    + `removeTabValue()` (en-US)
    + `setWindowValue()` (en-US)
    + `getWindowValue()` (en-US)
    + `removeWindowValue()` (en-US)
* `sidebarAction`
    + `sidebarAction.open()` (en-US)
* `storage`
    + `storage.managed` (en-US)
* `tabs`
    + `tabs.update()` (en-US) の `loadReplace` オプション
    + `tabs.Tab`、`tabs.onUpdated` (en-US)、`tabs.query()` の `discarded` プロパティ
    + `tabs.create()` で "view-source:" URL を開くことが可能になりました
    + `tabs.Tab`、`tabs.create()`、`tabs.query()`、`tabs.update()` (en-US) の `openerTabId` プロパティ
* `theme` (en-US)
    + `colors.toolbar`
    + `colors.toolbar_field`
    + `colors.toolbar_field_text`
    + `colors.toolbar_text`
* `theme`
    + `theme.update()` (en-US) の `windowId` オプション
* `webRequest`
    + `filterResponseData()` (en-US)
    + `webRequest` イベントの `proxyInfo` プロパティ
* `windows`
    + `windows.create()` (en-US) の `allowScriptsToClose` プロパティ
過去のバージョン
--------

* Firefox 56 for developers
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers
* Firefox 51 for developers
* Firefox 50 for developers
* Firefox 49 for developers
* Firefox 48 for developers
* Firefox 47 for developers
* Firefox 46 for developers
* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* Firefox 35 for developers
* Firefox 34 for developers
* Firefox 33 for developers
* Firefox 32 for developers
* Firefox 31 for developers
* Firefox 30 for developers
* Firefox 29 for developers
* Firefox 28 for developers
* Firefox 27 for developers
* Firefox 26 for developers


Firefox 10 for developers - Mozilla

Firefox 10 for developers
=========================

Gecko 10.0 を搭載した Firefox 10 は米国時間 2012 年 1 月 31 日にリリースされました。このページでは、開発者に影響する Firefox 10 の変更点をまとめています。

**メモ:** Firefox 10 は、2 桁の数値で表記される最初のリリースです。これにより、一部の UserAgent 検出スクリプトで問題が発生するおそれがあります。そのようなスクリプトや、ページに埋め込まれているサードパーティのソフトウェア (ライブラリなど) で UserAgent 検出を行っているものの確認を行うようにしてください。この点に関する詳細情報は、hack.mozilla.org の記事 Firefox goes 2-digit article on をご覧ください。

Web 開発者向けの変更点一覧
---------------

### HTML

* 方向が異なるテキストの部分を分離することを可能にする、HTML5 の `<bdi>` (bi-directional isolation) 要素が実装されました。これは、既知の方向のテキスト内に未知の方向のテキスト (例えばデータベースから取り出したテキストで、方向が異なる可能性がある) を表示する場合に特に有用です。
* `href` 属性に、ページ先頭へのリンクを作成するための断片 "top" を指定可能になりました。これは過去に動作していてその後一時的に削除されていましたが、HTML5 仕様書との互換性のため再び動作するようになりました。例: `<a href="#top">Return to top of page</a>`.
### JavaScript

* `WeakMap.set()` メソッドの戻り値はそれ自身から `undefined` に替わりました。
* Firefox 7 以降で正規表現のハンドリングに関する不具合がありましたが、修正されました。詳しくは Firefox バグ 683838 をご覧ください。
* ECMAScript 5 strict mode (すなわち、`"use strict;"` 以降) では、E4X の構文を使用できなくなりました。
### DOM

#### DOM3 Events

* DOM イベントの `event.stopImmediatePropagation` (en-US) メソッドが実装されました。
* マウスイベントの `mouseenter` および `mouseleave` が実装されました。

#### DOM4

* DOM4 仕様書で非推奨とされたため、`document.xmlVersion` 属性 (読み取りのみ可能で、設定は不可) が削除されました。`document.xmlVersion` の記事では、このプロパティを使用せずに ドキュメントが HTML か XML かを判断する方法を提案しています。
* DOM4 仕様書で非推奨とされたため、`document.xmlStandalone` 属性が削除されました。
* DOM4 仕様書で非推奨とされたため、`document.xmlEncoding` (en-US) 属性が削除されました。
* DOM4 仕様書で非推奨とされたため、`text.isElementContentWhiteSpace` 属性が削除されました。
* DOM4 仕様書で非推奨とされたため、`text.replaceWholeText` メソッドが削除されました。
* DOM4 仕様書で非推奨とされたため、`node.isSameNode` メソッドが削除されました。`node1.isSameNode(node2)` に代わり、`===` 演算子を使用できます。例: `node1 === node2`

#### Page Visibility API

* Page Visibility API が実装されました (接頭辞が付加されています): `document.mozHidden`、`document.mozVisibilityState` が利用可能であり、また状態が変更されると `mozvisibilitychanged` イベントが送信されます。

#### Full Screen API

* `document.mozFullScreenEnabled` (en-US) のサポートが追加されました。
* `:-moz-full-screen-ancestor` プロパティが追加されました。これはフルスクリーンモードになっている要素の祖先要素に対してマッチします。

#### Battery API

* `window.navigator.mozBattery` の実験的なサポートが追加されました (設定 `dom.battery.enabled` を `true` にすることで有効になります。また、Firefox 11 からはデフォルトで有効になる予定です)。

#### Canvas

* `createPattern()` (en-US) メソッドは、サイズが 0 の canvas が指定された場合に例外が発生するようになりました。
* 仕様書に準拠するため、`putImageData()` (en-US) の数値引数のいずれかに有限値でない値を与えたときに例外が発生するのではなく、値を無視するようになりました。

#### WebGL

* Firefox 10 で、`OES_standard_derivatives` 拡張がサポートされました。
* 完全な開発環境上で、最低限のサポートにとどまるデバイスとの WebGL コードの互換性を確認するために役立つ 新たな設定項目 が追加されました。

#### Web Workers

* Workers (en-US) 内で `XMLHttpRequest.responseType` 属性および `XMLHttpRequest.response` 属性が利用可能になりました。
* `Worker()` (en-US) コンストラクタが data URIs を受け入れるようになりました。

#### IndexedDB

IndexedDB を最新のドラフト仕様に更新するための大きな進展がありました。この努力は Firefox 11 でも続くでしょう。

* `IDBIndex.count()` (en-US) メソッドおよび `IDBObjectStore.count()` (en-US) メソッドが追加されました。
* `IDBCursor.advance()` (en-US) メソッドが追加されました。
* `IDBObjectStore.createIndex()` (en-US) および `IDBDatabase.createObjectStore()` (en-US) で未知のオプション引数が渡されたとき、Gecko は例外を発生させるのではなくそれを無視するようになりました。
* `IDBTransaction.abort()` (en-US) が呼び出されると、待機状態にあるすべての `IDBRequest` (en-US) は `errorCode` を `ABORT_ERROR` に設定します。
* `IDBObjectStore.delete()` (en-US) メソッドおよび `IDBCursor.delete()` (en-US) メソッドは、戻り値となる `IDBRequest` (en-US) の `result` 属性の値を `undefined` にするようになりました。
* 最新の仕様書で削除されたため、`IDBDatabase.setVersion()` (en-US) メソッドは削除されました。データベースのバージョンは、更新された `IDBFactory.open()` (en-US) メソッドで渡すことができ、`onupgradeneeded` コールバックでデータベースのスキーマの更新が可能になります。なお、バージョンの型は `DOMString` から `unsigned long long` に替わりました。また、`IDBVersionChangeRequest` インタフェースは削除され、新たな `IDBOpenDBRequest` (en-US) インタフェースに置き換えられました。
* `IDBFactory.deleteDatabase()` (en-US) メソッドが追加されました。

#### その他の変更点

* SVG を含む文字列が与えられたとき、適切な MIME タイプ `image/svg+xml` が渡された場合は `DOMParser` が `SVGDocument` を生成する (en-US)ようになりました。
* 従来 `element.setAttribute()` が整数値の構文解析を行うときは、数値ではない文字列が含まれる場合 (例えば "42foo") にエラーを報告していました。これが仕様書へ合致させるために、数値 42 へ正しく切り詰めるようになりました。
* ESC キーで `window.oninput` (en-US) ハンドラが誤って呼び出されるという、間違った結果にならないようになりました。
* 従来実装されていたものの実際にはアクセスする方法がない `NameList` インタフェースは削除されました。
* `document.createProcessingInstruction()` メソッドが HTML ドキュメントでも、XML ドキュメントの場合と同様に動作するようになりました。`ProcessingInstruction` ノードは現在も XML ドキュメントでのみサポートされていますが、ノードはドキュメントをまたいで移動させられますので、HTML ドキュメントでも同様にノードを作成することに役立ちます。
* `XMLHttpRequest` のプロパティ `responseType` の値として Firefox 9 で導入した "`moz-json`" は、最新のドラフト仕様への更新を行い接頭辞を削除しました。Firefox バグ 707142#c13 をご覧ください。
### CSS

* CSS 3D Transforms がサポートされました。これには `transform-style`、`perspective`、`perspective-origin`、`backface-visibility` の各プロパティ、また同様に `transform` および `<transform-function>` プロパティによる 3D transform 機能が含まれます。詳しくは Using CSS transforms をご覧ください。
* `unicode-bidi` CSS プロパティへ、新たに 2 つの値 `-moz-isolation` および `-moz-plaintext` が追加されました。値 `-moz-isolation` は、要素がその環境から受けるテキストの方向の見解から切り離すことで、異なる方向のテキストであることを示すことができます。`unicode-bidi:-moz-isolation` を指定した要素は、 `<bdi>` 要素のように動作します。値 `-moz-plaintext` は、テキストの方向の決定に CSS の `direction` プロパティではなく Unicode のヒューリスティックな方法を用いることを示します。
* CSS の `linear-gradient()` プロパティおよび `repeating-linear-gradient()` プロパティは、新たに `to` 構文と *magic corner* アルゴリズムをサポートするよう更新されました。これにより、グラデーションが描画されたボックスの隅へ精密に色を配置することができます。
* `text-overflow` プロパティに処理法が一つだけ指定されている場合に、ボックスの両側へオーバーフローする場合の `text-overflow` の扱いが 正しくなりました。
* ポジショニングされた `<table>` 要素内部での `position` プロパティの扱いが 修正されました。**この変更はページのレイアウトに影響を与えますが、CSS 仕様書や他のブラウザに従うことになりますので、レイアウトの修正は容易でしょう。**
* `<table>` 要素のマージンの相殺が、CSS 仕様書に合致するようになりました。以前は table 要素のマージンは隣接する要素のマージンと相殺されなかったため、正しくないレイアウトになっていました。**この変更はページのレイアウトに影響を与えますが、CSS 仕様書や他のブラウザに従うことになりますので、レイアウトの修正は容易でしょう。**
### SVG

* 最新の SVG 1.1 仕様書へ準拠するため、`<mask>` 要素は sRGB および linearRGB をサポートするように更新されました。デフォルトは sRGB です。
### ネットワーク

* HTTP ヘッダ `Accept-Charset` は、HTTP 要求時に送信されなくなりました。このヘッダがない場合、サーバは UTF-8 での送信として応答するべきです。
### 開発ツール

* `console` オブジェクトへ新たに 2 つのメソッド、`console.time()` および `console.timeEnd()` が追加されました。これらはページにタイマーをセットするために用いられます。
* コンテンツの背後にある HTML や CSS の調査および操作を行うすばらしい方法を提供する、調査ツール が新たに追加されました。
Mozilla 開発者とアドオン開発者向けの変更点
-------------------------

アドオンを Firefox 10 へ対応させる際に発生すると思われる問題の概要に関しては、Updating add-ons for Firefox 10 をご覧ください。

**メモ:** 古い `PRBool` データ形式は退役されました。これを参照する文書では、どこでも代わりに標準 C++ `bool` 形式を使用します。現時点では文書が更新されていませんが、将来更新されますので留意してください。

### Manifests

* インストールマニフェストに `<em:strictCompatibility>` のサポートが追加されました。これによりアドオンの作者が、拡張機能で最大バージョンのチェックを有効にすることができます。`true` に設定すると、アプリケーションのバージョンが `<em:maxVersion>` を上回っている場合にアドオンが無効になります。Firefox 10 はデフォルトで、指定された最大バージョンに関わらずアドオンは互換性があるものとします。このフラグは、その設定を上書きします。Firefox の更新により動作しなくなる可能性があることをアドオンで行っている場合はこれを設定するべきですが、アドオンにバイナリコンポーネントが含まれている場合は常に厳密なチェックが行われますのでこれを**設定しない**ようにしてください (バイナリコンポーネントは Firefox のメジャーリリースごとに、必ず再コンパイルが必要です)。
* 以前の動作、つまりマニフェストの `strictCompatibility` の値に関わらずすべてのアドオンで厳密な互換性チェックを行う方式に戻したい場合は、設定項目 `extensions.strictCompatibility` を `true` にしてください。
### XUL

* chrome.manifest ファイルを用いるブートストラップ型アドオンは、マニフェストファイルが自動的に登録されるようになりました。詳しくは Adding user interface with a chrome.manifest をご覧ください。
### XPConnect

* `Components.utils` に、デバッグ用に用意された情報へのアクセスを可能にするプロパティとメソッドがいくつか追加されました。
### インタフェースの変更

* `mozISpellCheckingEngine` インタフェースおよび `nsIEditorSpellCheck` インタフェースは、再起動の不要なアドオンがスペルチェッカに辞書を追加できるように更新されました。**注: これを行う方法に関して ドキュメントの更新 (en-US) が必要。**
* `nsIBrowserHistory.lastPageVisited` 属性は削除されました。
* `nsIDocumentViewer` インタフェースは `nsIContentViewer` に統合されました。
* `nsIURIFixup` インタフェースに、コンバートする際にプラットフォームの文字コードではなく UTF-8 を使用することを示す `FIXUP_FLAG_USE_UTF8` フラグが追加されました。
### プラグインの変更

* 新しい変数 `NPNVdocumentOrigin` を追加しました。これはドキュメントの生成元を返すもので、`window.location` よりセキュアです。
### ビルドシステムの変更

* 実際はビルドを成功できないようにしてしまう、`--disable-rdf` ビルドオプションが削除されました。RDF サポートの完全な削除を可能にする作業は進行中ですが、現在の XUL ではこの機能が必須です。RDF を必要とする最後の痕跡を削除する作業の進捗については Firefox バグ 559505 をご覧ください。
* `--disable-smil` ビルドオプションは削除されました。
関連情報
----

* Firefox 9 for developers
* Firefox 8 for developers
* Firefox 7 for developers
* Firefox 6 for developers
* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers


Firefox 8 for developers - Mozilla

Firefox 8 for developers
========================

Firefox 8 は 2011 年 11 月 8 日にリリースされました。このページでは、開発者に影響する Firefox 8 の変更点をまとめています。

Web 開発者向けの変更点一覧
---------------

### HTML

* `HTMLImageElement` に `crossOrigin` プロパティが追加され、また `<img>` 要素に `crossorigin` 属性が追加されました。(参考: バグ 664299)
* `HTMLSelectElement.add()` メソッドの引数に、インデックスが追加されました。インデックスが指す要素の前に、新たな項目が挿入されます。このメソッドはこれまで、項目のみがサポートされていました。(参考: バグ 666200)
* `HTMLIsIndexElement` コンストラクタが削除されました。Firefox 4 以前から、どの要素もこのインターフェースをインプリメントしていませんでした。
* HTML5 のコンテキストメニュー機能 (contextmenu 属性) がサポートされました。この機能によって、要素固有のメニュー項目をネイティブのコンテキストメニューに追加できます。(この機能は HTML5 仕様の変更を待っている関係で、現時点では試験実装という扱いです。参考: バグ 617528)
* すべての要素に `accesskeylabel` 属性がサポートされました。
* `<input>` と `<textarea>` に `selectionDirection` アトリビュートが追加されました。また、`setSelectionRange()` メソッドが選択方向を指定できるようになりました。
* `tabindex` 属性でフォーカス可能になった要素にフォーカスしたとき、ほとんどの要素でフォーカスリングが描画されるようになりました。
### DOM

* `insertAdjacentHTML` メソッドが実装されました。
* `BlobBuilder` に `getFile()` メソッドが追加されました。このメソッドは blob の内容をファイルとして返します。
* 入れ子になった `<label>` のイベントハンドリングが修正されました。
* ウィンドウ間での `window.postMessage()` に `File` と `FileList` が使えるようになりました。
* `element.contenteditable` な領域において、見出しで改行した際、もしくはリスト編集モードから 2 回開業して抜け出す際、段落が挿入されるようになりました。(これまでは`<br>`でしたが、これからは`<p>`が挿入されます。)
* `element.contenteditable` な領域において、1 行目に均等割付を与えたときに適切な処理を妨げるバグを修正しました。
* `element.contenteditable` な領域の最初で delete もしくは backspace を押した際に、前のブロックに影響するバグを修正しました。
* `document.getSelection()` が文字列化ではなく、`window.getSelection()` と同じ `Selection` オブジェクトを返すようになりました。
* HTML5 の `selectionDirection` プロパティが実装されました。編集可能テキストで選択した方向を指定できます。
* `HTMLMediaElement` の `seekable` プロパティが実装されました。このプロパティは `TimeRanges` を返します。
* `HTMLMediaElement``.preload` 属性が適切な *enumerated value* を反映するようになりました。
* `crossOrigin` プロパティ に不正な値が使われた場合は "Anonymous" と扱われるようになりました。
* `window.navigator.cookieEnabled` が、サイトごとの設定で Cookie の設定が上書きされている場合においても正しい情報を返すようになりました。
### JavaScript

* 引数なしで呼び出された `RegExp.exec()`, `RegExp.test()` が文字列 "undefined" にマッチするようになりました。
* 引数なし、もしくは `undefined` をとり呼び出された `String.search()`, `String.match()` が空文字列にマッチするようになり、つまりはすべての文字列にマッチするようになりました。
* ウォッチリストのサポートが行われました。ウォッチリストは (非標準の) `watch()` メソッドおよび `unwatch()` メソッドから利用できます。
### CSS

* `<resolution>` が仕様に従い、`<integer>` だけでなく `<number>` もサポートしました。
* `hyphens` 利用時のハイフネーション規則がより多くの言語でサポートされました。
* `background-size` の処理が仕様により従ったものになりました。
* これまで Quriks モードでの `text-decoration` は、太い線で描画され、また子孫要素のテキストに沿って描画されていました。Firefox 8 からは、標準モードにより近い表示になります。
* 要素の水平方向への配置がより仕様に沿った実装になりました。この件に関するドキュメントを準備中ですが、今は バグ 682780 のコメント 23 をお読みください。
* SVG 画像の拡大縮小 (en-US) が背景画像においても適切に処理されるようになりました。
### Network

* ダブルクォートが RFC 2231/RFC 5987 エンコーディングの区切り子として利用できなくなりました。これはそれらの RFC への準拠によるものです。
* MIME ヘッダフィールドのパーサは、引数に「=」が含まれない `Content-Disposition` ヘッダを受け付けなくなりました。
* JavaScript が無効な環境ではスクリプトファイルをダウンロードしないようになりました。
* SSL 2.0 のサポートが打ち切られました。
### WebSocket

* WebSocket オブジェクトの `send()` (en-US) メソッドが不適切に真偽値を返していた挙動が修正されました。
* `WebSocket` (en-US) オブジェクトの `close()` (en-US) メソッドが現在の標準草案に従ったものになりました。また、クローズイベントが適切に `CloseEvent` (en-US) インターフェースを利用するようになりました。
* The `WebSocket` (en-US) オブジェクトの `extensions` アトリビュートがサポートされました。
* WebSocket コンストラクタがひとつのプロトコル文字列だけではなく、プロトコルの配列もサポートするようになりました。
* SSL と 非 SSL の混在が WebSocket で認められなくなりました。
* WebSocket の接続エラーが `onerror` ハンドラをトリガーするようになりました。
* WebSocket API が最新版の仕様に追従しました。(参考: バグ 674890, バグ 674527, バグ 674716)
* WebSocket の deflate-stream 拡張が無効にされました。この拡張は非推奨とされており、またいくつかの Web サイトとの互換性を損ねていました。
### WebGL

* 他のドメインからのテクスチャ読み込みが再び可能になりました。ただし、CORS によってアクセスを許可されている場合に限ります。(参考: Cross-domain textures)
* Cross-process rendering with Direct2D/Direct3D 10.
### MathML

* `<math>` 要素に `displaystyle` 属性のサポートが追加されました。
* `<mtable>` 要素の `align` において、*負の行数* の解釈が修正されました。
### 開発者ツール

* `console` オブジェクトが `dir()` メソッドをサポートしました。個のメソッドは指定したオブジェクトについて、インタラクティブなプロパティリストを表示します。
Mozilla 開発者とアドオン開発者向けの変更点
-------------------------

アドオンを Firefox 8 互換にする際に必要となりそうな変更点は Updating add-ons for Firefox 8 にまとめられています。

**メモ:** Firefox 8 では、従来のメジャーリリースと同様に、バイナリコンポーネントをコンパイルし直す必要があります。詳しくは バイナリインタフェース をご覧ください。

### XPCOM

`Components.utils`

特定のコンパートメントでより簡単にオブジェクトを作成できるようにするため、新しいメソッド `createObjectIn()` と `makeObjectPropsNormal()` が追加されました。

#### その他の XPCOM 関連の変更

* You can now instantiate DOM `File` objects from component code by simply doing new File, instead of having to instantiate an `nsIDOMFile` directly.
* The `nsTPtrArray` array type has been removed. Its functionality is now all available on `nsTArray`, which now offers the `SafeElementAt()` method when instantiated using a pointer type. See the section on `SafeElementAt()` in the XPCOM array guide for more information.
### Workers

ChromeWorkers から XPCOM オブジェクトにアクセスできなくなりました。XPConnect は バグ 649537 によりワーカーコンテキストで無効にされています。

### XUL

* A bug in `document.execCommand()` that occurred when calling it on the value of `contentDocument` has been fixed. Since Firefox 3, this resulted in errors instead of working correctly.
* Bootstrapped add-ons can now load chrome using a `chrome.manifest` file. See the section Adding user interface with a chrome.manifest for details.
### JavaScript コードモジュール

#### ISO8601DateUtils.jsm

* このコードモジュールは削除されました。`Date.parse()` が ISO 8601 形式の日付を受け付けるようになり、新しい `Date.toISOString()` (en-US) で ISO 形式の日付と時刻を出力できます。今後は ISO8601DateUtils.jsm の代わりにこれらのメソッドを使ってください。なお、今のところこれらは タイムゾーンに対応していません。
### ビルドシステムの変更

* 以下のビルド設定オプションは削除されました。
    + `--enable-timeline`
    + `--disable-storage`
    + `--necko-disk-cache`
* When compiling IDL files to headers, the header file `jspubtd.h` is automatically included when needed. Manual inclusions of `jspubtd.h` and/or `jsapi.h` in IDL files that use jsval or [implicit\_jscontext] are no longer necessary.
### クロームの登録

* Gecko のバージョン互換性を指定する `platformversion` フラグが chrome.manifest でも使えるようになりました。
### インタフェースの変更

* `mozIJSSubScriptLoader.loadSubScript()` メソッドが、可能な場合、起動キャッシュからスクリプトを読み込むようになりました。
* `nsIAccessNode` インタフェースから `ownerWindow` 属性が削除されました。
* `nsIDOMStorageWindow` インタフェースは `nsIDOMWindow` インタフェースへ統合されました。
* `nsIDOMWindowInternal` インタフェースの全メンバーが `nsIDOMWindow` インタフェースへ移動されました。インタフェース自体は互換性維持のため Firefox 9 まで (メンバーを持たない状態で) 残されます。
* `nsIMemoryReporter` の `KIND_MAPPED` 属性が廃止され、代わりに `KIND_NONHEAP` 属性と新しい単位型 `UNITS_COUNT_CUMULATIVE`、`UNITS_PERCENTAGE` が追加されました。
* `nsINetworkLinkService` インタフェースに `linkType` 属性が追加されました。この属性で使用中のネットワーク接続の種類を参照できます。ただし、今のところすべての OS で `LINK_TYPE_UNKNOWN` が返ります。Android 対応は、セキュリティの懸念が報告されたため、バックアウトされました。
* `nsISelection2` インタフェースは `nsISelectionPrivate` インタフェースへ統合されました。
* `nsISelection3` インタフェースは `nsISelection` インタフェースへ統合されました。
* `nsISessionStartup` の属性の状態が、パフォーマンス上の理由から、文字列型ではなく `jsval` 型になりました。
* `nsIDocShell` の `isActive` 属性は、最小化されたウィンドウでは `false` を返すようになりました。

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

次のインターフェースは内部で使用されていたもので、必要がなくなったため削除されました。

* `nsITimelineService`
* `nsIDOMHTMLIsIndexElement`

`nsIWorkerFactory` インターフェースも削除されました。ワーカーは `Worker`, `ChromeWorker` コンストラクタから生成可能です。

### その他の変更

* ウィンドウが最小化されたとき、最小化から復帰したとき、あるいは全画面表示と通常表示の切り替えが行われたときに、`window` が `sizemodechange` イベントを受け取るようになりました。
* `extensions.autoDisableScopes` 設定を使う (en-US) ことで、特定の場所からのアドオン自動インストールを無効化できるようになりました。
参考
--

* Firefox 7 for developers
* Firefox 6 for developers
* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers


Firefox 21 for developers - Mozilla

Firefox 21 for developers
=========================

Gecko 21 を搭載した Firefox 21 は米国時間 2013 年 5 月 14 日にリリースされました。このページでは、開発者に影響する Firefox 20 の変更点をまとめています。

Web 開発者向けの変更点一覧
---------------

### HTML

* `<style>` 要素に `scoped` 属性を追加しました。これは、ドキュメントの他の部分から隔離されたスタイルを含めることを可能にします。このようなスタイルは、Firefox 20 で導入した `:scope` CSS 擬似要素を使用して選択できます (Firefox バグ 508725)。
* 新たな HTML 要素 `<main>` を実装しました (Firefox バグ 820508)。
### JavaScript

* 旧式の JavaScript 拡張である E4X を削除しました。Gecko しか実装せず、有意な牽引力は得られませんでした (Firefox バグ 788293)。
* parseInt は、先頭が "0" の文字列を 8 進数として扱わないようになりました (Firefox バグ 786135)。
### CSS

* `-moz-user-select` の値 `none` は、値 `-moz-none` と同じ動作になりました。Gecko が WebKit (Chrome, Safari)、Presto (Opera)、Trident (Internet Explorer) に合わせています (Firefox バグ 816298)。
* XHTML コンテンツで `-moz-hyphens` の値 `auto` は、言語が明示的に宣言されていないときに間違ったハイフネーションルールを適用していました。これは (Firefox バグ 702121) で修正されました。
* CSS `-moz-orient` プロパティに値 `auto` を追加しました。値 `auto` は `<meter>` や `<progress>` に適用されたときに、`horizontal` と同等です (Firefox バグ 835883)。
### DOM

* `window.location` に `origin` プロパティを追加しました (Firefox バグ 828261)。
* `<input type="time">` 向けに `valueAsDate` メソッドと `valueAsNumber` メソッドを追加しました (Firefox バグ 781570)。
* `<input type="time">` に `min` 属性と `max` 属性が適用されるようになりました (Firefox バグ 781572)。
* ボリュームコントロールのために、新たな keyCode をサポートしました (Firefox バグ 674739)。
* AS/400 など昔のキーボードのレイアウト向けに、新たな keyCode を Windows および Linux でサポートしました (Firefox バグ 833719)。
* Windows で、OEM 特有のキー向けのさまざまな keyCode 値を再びサポートしました (Firefox バグ 833719)。
* 関数 `window.crypto.getRandomValues` (en-US) を実装しました (Firefox バグ 440046)。
### SVG

* `paint-order` プロパティを実装しました (Firefox バグ 828805)。
### Networking

* CSP 実装を CSP 1.0 仕様 (勧告候補になりました) に準拠させるよう更新する作業を続けています:
    + 仕様書に準拠した `Content-Security-Policy` HTTP ヘッダを (実験的な `X-Content-Security-Policy` に加えて) サポートしました (Firefox バグ 783049。**注意**: 新たなヘッダのパッチは Firefox 21 で投入しましたが、ビルド時は無効にしています (Firefox バグ 842657)。
### Worker

* `URL.createObjectURL` (en-US) 関数と `URL.revokeObjectURL` (en-US) 関数が、Worker で利用可能な関数 (en-US)に加わりました。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

* FUEL アプリケーションは Livemark Service を利用できません (Firefox バグ 834492)。Livemark Service は非推奨になり段階的に廃止され、新たな非同期インターフェイスを採用します。
* `resource:///modules/` と `resource://gre/modules/` は異なるものになりました (Firefox バグ 755724)。これは、metro 版の Firefox における作業のために行った変更です。`resource:///modules/` を使用してモジュールを読み込んでいる場合は、そうではなく `resource://gre/modules/` を使用したいのではないかを確認するべきです。また、一部のモジュールが Firefox から Toolkit に移動したことに注意してください (Firefox バグ 840287 および Firefox バグ 811548 で、`NewTabUtils.jsm` および thumbnail モジュールがそれぞれ移動しました)。
* Add-on SDK を Firefox に内蔵しました。(Firefox バグ 731779)
* 多くの非推奨 API を参照していた古い API を削除しました:
    + `mozIAsyncFavicons` で置き換え:
        - `nsIFaviconService::setFaviconUrlForPage`
        - `nsIFaviconService::setFaviconData`
        - `nsIFaviconService::getFaviconData`
        - `nsIFaviconService::getFaviconForPage`
        - `nsIFaviconService::setAndLoadFaviconForPage`
        - `nsIFaviconService::getFaviconImageForPage`
        - `nsIFaviconService::getFaviconDataAsDataURL`
    + `mozIAsyncLivemarks` で置き換え:
        - `nsILivemarkService::*`
        - `PlacesUtils.itemIsLivemark`
        - `PlacesUtils.nodeIsLivemarkContainer`
        - `PlacesUtils.nodeIsLivemarkItem`
    + 第 3 引数のみ削除:
        - `PlacesUIUtils.showBookmarkDialog`
    + Places でこれ以上の実装はありませんので、代わりに `mozIAsyncHistory` を使用してください:
        - `nsIGlobalHistory2::addURI`
        - `nsIGlobalHistory2::isVisited`
        - `nsIGlobalHistory2::setPageTitle`
    + 不要になりましたので、`onDeleteURI` または `onItemRemoved` を使用してください:
        - `nsINavHistoryObserver::OnBeforeDeleteURI`
        - `nsINavBookmarkObserver::OnBeforeItemRemoved`
    + 正しく実装されていません:
        - `nsINavHistoryFullVisitResultNode`
    + 非推奨であり、代わりに `mozIAsyncHistory::updatePlaces` を使用してください:
        - `nsINavHistoryService::AddVisit`
* 壊れやすいハックを行うことなく HTTP チャネルのリダイレクトを可能にする、nsIHttpChannel.redirectTo を追加しました。
関連情報
----

* Firefox 21 リリースノート
* Firefox 21 アドオン互換性情報
### 過去のバージョン

* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers
* Firefox 16 for developers
* Firefox 15 for developers
* Firefox 14 for developers
* Firefox 13 for developers
* Firefox 12 for developers
* Firefox 11 for developers
* Firefox 10 for developers
* Firefox 9 for developers
* Firefox 8 for developers
* Firefox 7 for developers
* Firefox 6 for developers
* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers


Firefox 83 for developers - Mozilla

Firefox 83 for developers
=========================

このページでは、開発者に影響する Firefox 83 の変更点をまとめています。Firefox 83 は、2020 年 11 月 17 日にリリースされました。

**メモ:** Mozilla hacks の Firefox 83 is upon us もご覧ください。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

* ウェブコンソール を使用するとき、`--fullpage` を使用して全画面のスクリーンショットを撮影する場合も `--dpr` 引数を無視しないようになりました (Firefox バグ 1645284)。
* 開発者が スクロール可能なオーバーフローをデバッグする (en-US) ために、インスペクター で `スクロール` バッジを使用できるようになりました。バッジを選択すると、オーバーフローを*発生させている*要素を強調して、`オーバーフロー` バッジをつけます (Firefox バグ 1669129)。
### HTML/XML

* `<link rel=icon>` で `crossorigin` 属性をサポートしました (Firefox バグ 1661075)。
* `displaystyle` 属性 をすべての MathML 要素に実装しました (Firefox バグ 1666075)。
### CSS

* ベンダー接頭辞がつく `:-moz-any()` を、標準の `:is()` CSS 疑似クラス関数の別名にしました (Firefox バグ 1666086)。
* CSS Conic Gradients をサポートしました (Firefox バグ 1632351) および (Firefox バグ 1175958)。
### JavaScript

* `Intl[@@toStringTag]` (en-US) を追加しました。既定値 `Intl` を返します (最近 ECMA 仕様書に追加されました)。(Firefox バグ 1670053)
### HTTP

*変更なし。*

### API

*変更なし。*

### WebDriver conformance (Marionette)

* `WebDriver:SwitchToShadowRoot` の予備的なサポートを削除しました。これは WebDriver の仕様書にまだ追加されていません (Firefox バグ 1662468)。
* `WebDriver:Back` および `WebDriver:Forward` で、削除された `<iframe>` によってナビゲーションが発生したときに Marionette がハングアップする不具合を修正しました (Firefox バグ 1672758)。
アドオン開発者向けの変更点
-------------

*変更なし。*

過去のバージョン
--------

* Firefox 82 for developers
* Firefox 81 for developers
* Firefox 80 for developers
* Firefox 79 for developers
* Firefox 78 for developers
* Firefox 77 for developers
* Firefox 76 for developers
* Firefox 75 for developers
* Firefox 74 for developers
* Firefox 73 for developers
* Firefox 72 for developers
* Firefox 71 for developers
* Firefox 70 for developers
* Firefox 69 for developers
* Firefox 68 for developers
* Firefox 67 for developers
* Firefox 66 for developers
* Firefox 65 for developers
* Firefox 64 for developers
* Firefox 63 for developers
* Firefox 62 for developers
* Firefox 61 for developers
* Firefox 60 for developers
* Firefox 59 for developers
* Firefox 58 for developers
* Firefox 57 for developers
* Firefox 56 for developers
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers


Firefox 43 for developers - Mozilla

Firefox 43 for developers
=========================

Firefox 43 は、米国時間 2015 年 12 月 15 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者、アドオン開発者にとっても有用な主な変更点を挙げています。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

ハイライト:

* ウェブコンソールでサーバ側のログを記録
* CSS 宣言をオーバーライドしたルールをすばやく見つける
* インスペクタのコンテキストメニュー項目 "Use in Console"
* ルールビューで "厳密に" フィルタリング
* コンソールのネットワーク項目にネットワークモニターへのリンクを追加
* マークアップビューで、擬似クラスを強制的に適用していることを示すインジケータを表示
* WebIDE の新たなサイドバー UI

Firefox 42 から Firefox 43 の間に解決した開発ツール関連のバグ一覧.

### CSS

* 接頭辞がない標準仕様の `hyphens` をサポートしました (Firefox バグ 953408)。
* `font` 一括指定プロパティを、`font-stretch` の値を受け入れるように更新しました (Firefox バグ 1057680)。
* 最新の仕様の更新に合致するよう、`:fullscreen` 擬似クラスはフルスクリーン時に、トップレベル要素だけでなく要素の集合全体を選択するようになりました (Firefox バグ 1199522)。
* `writing-mode` において非推奨な SVG 向けの値である `lr`、`lr-tb`、`rl`、`tb`、`tb-rl` を、標準プロパティのエイリアスとして CSS に追加しました (Firefox バグ 1205787)。
### HTML

* 複数のフレームを持つ ICO 画像を指定した `<img>` 要素で、画像固有の寸法は最小フレームではなく最大フレームの寸法を設定するようになりました (Firefox バグ 1201796)。
* ドキュメントのビューポートの値 (`<meta name="viewport>` で定義) を、JavaScript で動的に変更できるようになりました (Firefox バグ 976616)。
### JavaScript

#### 新規 API

* ES2016 の新規メソッドである `Array.prototype.includes()` および `TypedArray.prototype.includes()` を、デフォルトで有効にしました (Firefox バグ 1070767)。

#### `arguments` オブジェクトに関する変更点

* ES2015 仕様に合致するよう、アロー関数 は自身の `arguments` オブジェクトを持たないようになりました。`arguments` オブジェクトは Lexical にバインドされます (外側の関数から継承)。たいていの場合、残余引数 が `(...args) => args[i]` のよい代替になります。Firefox バグ 889158 をご覧ください。
* arguments オブジェクトは、残余引数 と共に使用できるようになりました (Firefox バグ 1133298)。
* 厳格モードではない関数にマップされた `arguments` オブジェクトは、関数が残余引数、デフォルト引数、分割引数 のいずれも**含まない**場合に限り提供されるようになりました (Firefox バグ 1175394)。

#### その他の変更点

* ジェネレーターおよびジェネレーターメソッドは、ES2016/ES7 に従ってコンストラクタブルではなくなりました (Firefox バグ 1191486)。
### インターフェイス/API/DOM

#### DOM & HTML DOM

*変更なし。*

#### IndexedDB

* ロケールを明示したインデックスの作成を可能にする、Locale-aware Sorting と呼ばれる新機能を追加しました。ロケールの規則に従ってデータをソートするために使用できます (Firefox バグ 871846)。これは、非標準の Firefox 独自機能です。

#### サービスワーカー

* 仕様に従い、`ExtendableEvent.waitUntil()` が `ExtendableEvent` ハンドラーの外部で呼び出された場合に、Firefox は `InvalidStateError` を発生するようになりました。加えて、複数回呼び出した `waitUntil()` は積み上げられ、結果的に promise は Extend Lifetime Promises のリストに追加されます (Firefox バグ 1180274)。
* `PushMessageData` メソッドを実装しました (Firefox バグ 1149195)。

#### WebRTC

* `HTMLCanvasElement.captureStream()` メソッドを、デフォルトで有効にしました (Firefox バグ 1177276)。
* `RTCOfferOptions` の、非標準である制約的なオプションリストを非推奨にしました。これは Firefox 44 で完全に削除する予定です。

#### その他

* Battery Status API で、最近更新された仕様で指定された `Navigator.getBattery()` 向けの Promise 構文を使用するようになりました (Firefox バグ 1050749)。
* `User-Agent` ヘッダが forbidden header names のリストから外れましたので、XHR の `XMLHttpRequest.setRequestHeader()` などで、Fetch `Headers` オブジェクトを設定できるようになりました (Firefox バグ 1188932)。
* `MediaRecorder.MediaRecorder()` コンストラクタが options Dictionary を引数としてサポートしました。記録するオーディオ/ビデオのビットレートを設定できます (Firefox バグ 1161276)。
* Performance Timeline API の `PerformanceObserver` インターフェイスを実装しました (Firefox バグ 1165796)。
* Frame Timing API を追加しました。`PerformanceRenderTiming` および `PerformanceCompositeTiming` インターフェイスを使用できます (Firefox バグ 1191178)。
* 最新の 画面方向 API を実装しました。接頭辞がない `Screen.orientation` および `ScreenOrientation` インターフェイスを使用できます (Firefox バグ 1131470)。非標準の `Screen.mozOrientation`、`Screen.onmozorientationchange`、`Screen.mozLockOrientation()`、`Screen.mozUnlockOrientation()` は将来削除する予定です。
* Linux 環境で、Windows 環境と同様に `Event.timeStamp` が `DOMHighResTimeStamp` を返すようになりました (Firefox バグ 1026803)。
* `Document.onselectionchange`、`GlobalEventHandlers.onselectstart` (en-US) イベントハンドラープロパティおよび `Selection` イベント `selectionchange`、`selectstart` を実験的にサポートしました (Firefox バグ 571294)。`selectionchange` イベントは、関連付けられた `Selection` オブジェクトが関与している場合に `Document` または特定の `HTMLInputElement` や `HTMLTextAreaElement` で発生します (Firefox バグ 1196479)。この機能は設定項目 `dom.select_events.enabled` で制御しており、既定値は Nightly を除き `false` です。
* Android 版 Firefox および Firefox OS で、`MouseEvent.offsetX` および `MouseEvent.offsetY` のサポートを有効化しました (Firefox バグ 1204841)。
* `HTMLCanvasElement.mozFetchAsStream()` メソッドを削除しました (Firefox バグ 1206030)。
* `Request()` コンストラクタは `fetch()` (en-US) と同様に、ユーザ名やパスワードを含む URL を使用した場合に `TypeError` 例外が発生するようになりました (Firefox バグ 1195820)。
### MathML

*変更なし。*

### SVG

*変更なし。*

### Audio/Video<

*変更なし。*

HTTP
----

*変更なし。*

ネットワーク
------

*変更なし。*

セキュリティ
------

* サードパーティの iframe から Web Storage (すなわち `localStorage` および `sessionStorage`) へのアクセスは、ユーザがサードパーティ Cookie を禁止している場合に拒否されるようになりました (Firefox バグ 536509)。
* ホワイトリストを Nightly および Aurora/Dev Edition 版のブラウザーで削除しました (Firefox バグ 1201023)。現状では、次のバージョン (Firefox 44) の Beta および Release 版でもホワイトリストを削除する予定です。
* `<script>` およびスタイルシートにリンクする `<link>` に、Subresource integrity を実装しました (Firefox バグ 992096)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### インターフェイス

*変更なし。*

### XUL

*変更なし。*

### JavaScript コードモジュール

*変更なし。*

### XPCOM

*変更なし。*

### プラグイン

* content をマルチプロセスに切り替える将来のリリースへの準備として、NPAPI プラグインをページ content と同じプロセスで実行できなくなりました。`dom.ipc.plugins` から始まる設定項目は使用しません。
### その他

*変更なし。*

過去のバージョン
--------

* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* Firefox 35 for developers
* Firefox 34 for developers
* Firefox 33 for developers
* Firefox 32 for developers
* Firefox 31 for developers
* Firefox 30 for developers
* Firefox 29 for developers
* Firefox 28 for developers
* Firefox 27 for developers
* Firefox 26 for developers
* Firefox 25 for developers
* Firefox 24 for developers
* Firefox 23 for developers
* Firefox 22 for developers
* Firefox 21 for developers
* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers
* Firefox 16 for developers
* Firefox 15 for developers
* Firefox 14 for developers
* Firefox 13 for developers
* Firefox 12 for developers


Firefox 113 for developers - Mozilla

Firefox 113 for developers
==========================

このページでは、開発者に影響する Firefox 113 の変更点をまとめています。Firefox 113 は、米国時間 2023 年 5 月 9 日にリリースされました。

ウェブ開発者向けの変更点一覧
--------------

### HTML

変更なし。

### CSS

* `color()`、`lab()`、`lch()`、`oklab()`、`oklch()`、`color-mix()` 関数記法を、`forced-color-adjust` プロパティと合わせてサポートしました。
 関数記法について、詳しくは CSS color 値 の文書をご覧ください。
 (Firefox bug 1352753、Firefox bug 1813497、Firefox bug 1818819、Firefox bug 1824526)
* `:nth-child of <selector>` 構文 で、定義したセレクターにも一致する、`An+B` 規則に基づく子要素のグループを対象にできるようになりました。
 詳しくは (Firefox bug 1808229) をご覧ください。
* `scripting` メディア特性をサポートしました。詳しくは (Firefox bug 1166581) をご覧ください。
* `content` プロパティで、`<gradient>`、`image-set()`、`url()` を含むすべての画像型をサポートしました。詳しくは (Firefox bug 1684958) をご覧ください。現在は、`::before` および `::after` 擬似セレクターを伴うと `<gradient>` が描画されない不具合があります。詳しくは (Firefox bug 1832901) をご覧ください。
### JavaScript

変更なし。

### API

* `CanvasRenderingContext2D.reset()` (en-US) および `OffscreenCanvasRenderingContext2D.reset()` (en-US) をサポートしました。関連づけられたレンダリングコンテキストをデフォルト状態に戻すために使用できます。
 (Firefox bug 1709347)
* Compression Streams API をサポートしました。
 この API が提供するインターフェイスは、`gzip` および `deflate` 型式を使用したデータの圧縮や展開に使用できます (Firefox bug 1823619)。
* 非推奨かつ非標準の `mozImageSmoothingEnabled` プロパティを無効にしました。
 スケーリングされた画像の平滑化については、`imageSmoothingEnabled` プロパティをご覧ください (Firefox bug 1822955)。

#### Media、WebRTC、Web Audio

* AV1 動画コーデック を Android で有効化しました。デバイスがサポートしていれば、デコードでハードウェアアクセラレーションを使用します (Firefox bug 1672276)。
* 以下の WebRTC メソッド、プロパティおよびディクショナリーをサポートしました: `RTCRtpSender.getCapabilities()` (en-US)、`RTCRtpReceiver.getCapabilities()` (en-US)、`RTCRtpSender.setStreams()` (en-US)、`RTCSctpTransport` (en-US)、`RTCPeerConnection.sctp` (en-US)、`RTCMediaSourceStats`、`RTCPeerConnection.connectionState` (en-US)、`RTCPeerConnectionStats` (en-US)。
 それぞれに対応するバグ報告は、Firefox bug 1531460、Firefox bug 1510802、Firefox bug 1278299、Firefox bug 1804678、Firefox bug 1265827、Firefox bug 1531087 です。

#### 廃止

* 非推奨かつ非標準の `CanvasRenderingContext2D.mozTextStyle` 属性を完全に削除しました。この属性は、これまで設定で無効化していました。(Firefox bug 1294362)
* 非推奨かつ非標準の `mozRTCPeerConnection`、`mozRTCIceCandidate`、`mozRTCSessionDescription` 属性を完全に削除しました (Firefox bug 1531812)。
### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* Shadow DOM の内部にある `Node` オブジェクトおよび `Node` オブジェクトの `shadowRoot` プロパティのシリアライズをサポートしました (Firefox bug 1802137)。
* `network.responseStarted` および `network.responseCompleted` イベントで、キャッシュされた応答をサポートしました (Firefox bug 1806802 および Firefox bug 1806794)。
* `browsingContext.domContentLoaded` および `browsingContext.load` イベントが、`document.open()` および `document.close()` を使用するナビゲーションを見落としていた不具合を修正しました (Firefox bug 1822772)。
* `script.callFunction` コマンドで引数として未知のオブジェクトが渡されたときに、想定された `no such handle` エラーではなく `invalid argument` エラーが発生していた不具合を修正しました (Firefox bug 1821039)。

#### Marionette

* `moz:useNonSpecCompliantPointerOrigin` 能力が非推奨になりました。Firefox 116 で完全に削除する予定です (Firefox bug 1824911)。
* `WebDriver:FindElementFromShadowRoot` および `WebDriver:FindElementsFromShadowRoot` コマンドを実装しました (Firefox bug 1700095)。
* `WebDriver:GetComputedLabel` および `WebDriver:GetComputedRole` コマンドを実装しました (Firefox bug 1585622)。
* `WebDriver:Print` コマンドの `background` 引数をサポートしました (Firefox bug 1783086)。
* `WebDriver:Print` コマンドの `orientation` 引数をサポートしました (Firefox bug 1791819)。
* `DOMTokenList` インスタンスの不具合を修正して、任意のオブジェクトではなくコレクションとして戻るようになりました (Firefox bug 1823464)。
アドオン開発者向けの変更点一覧
---------------

* 拡張機能が同じイベントに対して複数のリスナーを登録した場合に、イベントページが起動すると最初のイベントリスナーだけでなく、すべてのリスナーが呼び出されるようになりました (Firefox bug 1798655)。
* `declarativeNetRequest` (en-US) API をサポートしました (Firefox bug 1782685)。
* `browser_specific_settings` キーに `gecko_android` サブキーを追加しました。このサブキーで、拡張機能と互換性がある Android 版 Firefox のバージョンの範囲を指定できます (Firefox bug 1824237)。
過去のバージョン
--------

* Firefox 112 for developers
* Firefox 111 for developers
* Firefox 110 for developers
* Firefox 109 for developers
* Firefox 108 for developers
* Firefox 107 for developers
* Firefox 106 for developers
* Firefox 105 for developers
* Firefox 104 for developers
* Firefox 103 for developers
* Firefox 102 for developers
* Firefox 101 for developers
* Firefox 100 for developers
* Firefox 99 for developers
* Firefox 98 for developers
* Firefox 97 for developers
* Firefox 96 for developers
* Firefox 95 for developers
* Firefox 94 for developers
* Firefox 93 for developers
* Firefox 92 for developers
* Firefox 91 for developers
* Firefox 90 for developers
* Firefox 89 for developers
* Firefox 88 for developers
* Firefox 87 for developers
* Firefox 86 for developers
* Firefox 85 for developers
* Firefox 84 for developers
* Firefox 83 for developers
* Firefox 82 for developers


Firefox 3.5 開発者向け情報 - Mozilla

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 サポートを満たすように更新されました。`position`、`float`、`list-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 Timeout と Input 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 要素が `clientHeight`、`clientWidth`、`scrollHeight`、`scrollWidth` プロパティをサポートするようになりました。
* `keyset`s 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 ではコンテンツがより速く描画される」ということ以外は知る必要がありません。

関連情報
----

* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers


Firefox 39 for developers - Mozilla

Firefox 39 for developers
=========================

Firefox 39 は、米国時間 2015 年 6 月 30 日にリリースされました。このページでは、開発者に影響する Firefox 39 の変更点をまとめています。

Web 開発者向けの変更点一覧
---------------

### 開発者ツール

ハイライト:

* WebIDE で、Wi-Fi 経由で Firefox OS デバイスのデバッグが可能になりました
* WebIDE で Cordova のプロジェクトをサポートしました
* アニメーションビューで早戻し、早送り、特定の時間へのジャンプが可能になりました
* 3 次ベジェ曲線エディタにプリセットを 31 個搭載しました
* インスペクタで要素のドラッグ・アンド・ドロップが可能になりました
* Web コンソールのコマンド履歴が、セッションをまたいで維持されるようになりました
* コンソールで最後に評価された式の結果を表示する $\_ コマンド
* インライン要素のボックスモデルのハイライト機能を改善

Firefox 38 から Firefox 39 の間に解決した開発ツール関連のバグ一覧

### CSS

* `list-style-type` プロパティと短縮プロパティである `list-style` で、`<string>` 型をサポートしました (Firefox バグ 1144607)。
* CSS Scroll Snapping を実装しました (Firefox バグ 945584 および Firefox バグ 1138658)。
* CSS Animations と CSS Transitions のカスケーディングを、最新の仕様に合致するよう修正しました (Firefox バグ 1125455)。
* `writing-mode` の縦書きをサポートしました。Nightly および Developer Edition ではデフォルトで有効ですが、Beta および Release では無効化しています (Firefox バグ 1099032)。現在の実装は不完全であり、またテーブルなど一部のウィジェットでは対応していない値があります。
### HTML

* ARIA の新たなロールである `switch` をサポートしました (Firefox バグ 1136563)。
* 情報を一切明らかにせずに将来の接続を先に始めることを可能にする、`<link rel="preconnect">` を実装しました (Firefox バグ 1135160)。
### JavaScript

* `RegExp` コンストラクタは第 1 引数に `RegExp`、また第 2 引数に `flags` を指定した場合に、例外が発生しないようになりました (Firefox バグ 1108949)。
* `Object.prototype.__noSuchMethod__` プロパティは非推奨になり、コンソールに警告を表示します (Firefox バグ 1140428 および platform でのアナウンスをご覧ください)。
* `Proxy` オブジェクトの実装を、ES6 仕様へさらに準拠するよう更新しました:
    + `defineProperty` ハンドラおよび `set` ハンドラは、成功時に `true` を、strict モードで成功しない場合は `TypeError` 例外を明示的に返すことが必要になりました (Firefox バグ 1132522)。
    + `window` をターゲットとして設定した場合、これらのハンドラで `TypeError` 例外が発生します (Firefox バグ 828137)。
* アロー関数 (`=>`) を使用する際、行末 (`\n`) をアロー関数の引数の後ろに置くことができなくなりました (`() \n => {}`) (Firefox バグ 1141392)。
* `RegExp.prototype.toString` がジェネリック関数になりました (Firefox バグ 1079919)。
* `String.prototype.match()`、`String.prototype.search()`、`String.prototype.replace()` の非標準引数 `flags` が非推奨になり、コンソールに警告を表示します(Firefox バグ 1142351)。
* 最新の ES6 ドラフトに準拠させるため、`Object.assign()` の try/catch の動作を削除しました (Firefox バグ 1103344)。
### インターフェイス/API/DOM

* 実験的機能である `CanvasRenderingContext2D.addHitRegion()` メソッドで、`path` オプションをサポートしました。これは hit region を `Path2D` (en-US) オブジェクトに追加できます (Firefox バグ 1129147)。
* `FormData` オブジェクトを操作する新たなメソッドを追加しました (Firefox バグ 1085283)。また、Web workers で `FormData` をサポートしました (Firefox バグ 739173)。
* 非標準の `XMLHttpRequest.sendAsBinary()` メソッドを削除しました (Firefox バグ 853162)。
* Web Animations の実験的な実装を続けています。`AnimationPlayer.startTime` (en-US) が書き込み可能になりました (Firefox バグ 1073379)。
* Service Worker の実験的な実装を進めています。`Cache` インターフェイスおよび `CacheStorage` インターフェイスを実装しました (Firefox バグ 940273)。
* Fetch API の実験的な実装をデフォルトで有効にしました (Firefox バグ 1133861)。
* WebGL2 の実験的な実装を続けています。`WebGLSync` (en-US) を実装しました (Firefox バグ 1048721)。
* デスクトップ版 Firefox で `MouseEvent.offsetX` および `MouseEvent.offsetY` をサポートしました (Firefox バグ 69787。Android 版 Firefox および Firefox OS ではサポートしていません (Firefox 43 でサポート予定)。
### MathML

*変更なし。*

### SVG

*変更なし。*

### Audio/Video

*変更なし。*

### その他

* WOFF2 フォントのサポートを Release バージョンの Firefox でも、デフォルトで有効にしました (Nightly や Developer Edition に加えて、Beta や Release も有効) (Firefox バグ 1084026)。
* `-remote` (en-US) コマンドラインオプションを削除しました (Firefox バグ 1080319)。
* 新たに Unicode 8.0 skin tone emoji サポートしました (Firefox バグ 1153460)。
ネットワーク
------

* SSLv3 のサポートを完全に廃止しました (Firefox バグ 1106470)。
セキュリティ
------

*変更なし。*

アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

*変更なし。*

関連情報
----

* Firefox 39 リリースノート
* Firefox 39 アドオン互換性情報
過去のバージョン
--------

* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* Firefox 35 for developers
* Firefox 34 for developers
* Firefox 33 for developers
* Firefox 32 for developers
* Firefox 31 for developers
* Firefox 30 for developers
* Firefox 29 for developers
* Firefox 28 for developers
* Firefox 27 for developers
* Firefox 26 for developers
* Firefox 25 for developers
* Firefox 24 for developers
* Firefox 23 for developers
* Firefox 22 for developers
* Firefox 21 for developers
* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers
* Firefox 16 for developers
* Firefox 15 for developers
* Firefox 14 for developers
* Firefox 13 for developers
* Firefox 12 for developers
* Firefox 11 for developers
* Firefox 10 for developers
* Firefox 9 for developers
* Firefox 8 for developers


Firefox 72 for Developers - Mozilla

Firefox 72 for Developers
=========================

Firefox 72 は、米国時間 2020 年 1 月 7 日にリリースされました。このページでは、開発者に影響する Firefox 72 の変更点をまとめています。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

コンソール:

* インタラクティブ JS インタープリターのマルチラインモード で、キーボードショートカット `Ctrl` + `O` および `Ctrl` + `S` を使用してファイルを開いたり保存したりできるようになりました (Firefox バグ 1592308)。
* 非同期メッセージを視覚的に分ける設定 が可能になりました (Firefox バグ 1592969)。

JavaScript デバッガー:

* スコープパネルでオブジェクトを右クリックまたは `Ctrl` を押しながらクリックして*プロパティの設定* または *プロパティの取得* を選択すると、ウォッチポイントを設定できます (Firefox バグ 1574192)。

ネットワークモニター:

* タイミングタブで、それぞれのリソースの Queued、Started、Downloaded 時間を表示するようになりました (Firefox バグ 1580431)。

インスペクター:

* `prefers-color-scheme` メディア特性のさまざまな値の シミュレーターを有効化する設定 が可能になりました (Firefox バグ 1550804)。

#### 廃止

* *スクラッチパッド* を削除しました (Firefox バグ 1519103)。
### HTML

*変更なし。*

### CSS

* CSS Shadow Parts が有効になりました。これは `part` 属性 や `::part` 疑似要素 が含まれており、スタイル設定のためにシャドウホストが自身のシャドウツリーから選択した要素を選択的に出力ページへ公開できます (Firefox バグ 1559074)。
* CSS モーションパス を実装しました (Firefox バグ 1582554 および 実装目的 をご覧ください)。以下のプロパティが含まれます。
    + `offset`
    + `offset-path`
    + `offset-anchor`
    + `offset-distance`
    + `offset-rotate`
* 個々の座標変換関連プロパティ (`scale`、`rotate`、`translate`) を既定で有効にしました (Firefox バグ 1424900)。

#### 廃止

### SVG

*変更なし。*

### JavaScript

* Null 合体演算子 を実装しました (Firefox バグ 1566141)。
### API

#### 新規 API

* `FormDataEvent` および イベントに基づくフォームへの関与を既定で有効にしました (Firefox バグ 1594708)。
* `crossOriginIsolated` (en-US) プロパティに対応しました (Firefox バグ 1591892)。

#### DOM

* 最近の仕様変更に応じて、位置情報 API でいくつかのインターフェイス名を更新しました (Firefox バグ 1575144):
    + `Coordinates` を `GeolocationCoordinates` に変更しました。
    + `Position` を `GeolocationPosition` に変更しました。
    + `PositionError` を `GeolocationPositionError` に変更しました。
* いくつかのプロパティを、標準の文字列化子を使用するように更新しました (Firefox バグ 824857)。
    + `DOMTokenList.value`
    + `HTMLAnchorElement.href`
    + `Location.href`
    + `MediaList.mediaText`
    + `URL.href`
    + `WorkerLocation.href` (en-US)

#### DOM イベント

* `Notification.requestPermission()` および `PushManager.subscribe()` が、`click` イベントのようなユーザー操作に応じてのみ呼び出せるようになりました (Firefox バグ 1593644)。

#### メディア、Web Audio、WebRTC

* `MediaDevices.getDisplayMedia()` メソッドが、`click` イベントのようなユーザー操作に応じてのみ呼び出せるようになりました (Firefox バグ 1580944)。
* `RTCRtpContributingSource` (en-US) 辞書が `rtpTimestamp` (en-US) プロパティを持てるようになりました。これはパケットのメディアが生成またはサンプリングされた時点の source-generated time です (Firefox バグ 1583867)。

#### 廃止

* 非標準の `window.mozPaintCount` プロパティを削除しました (Firefox バグ 1591968)。
* `BatteryManager` (en-US) インターフェイスはウェブコンテンツで使用できなくなりました (Firefox バグ 1441976)。
* `Navigator.vibrate()` は別オリジンの `<iframe>` でサポートされなくなりました (Firefox バグ 1591113)。
* WebRTC は `simulcast` で `rid=` および `pt=` の引数に対応しなくなりました。"`a=simulcast: send rid=7 recv rid=8`" のような行の新しい構文は "`a=simulcast: send 7 recv 8`" です。新しい構文は Firefox 68 から対応しており、古い構文の対応を廃止する時期になりました (Firefox バグ 1470568)。
### セキュリティ

* `X-Content-Type-Options` を使用した MIME スニッフィングのオプトアウトを、`Content-type` が提供されていれば、最上位の文書でも適用するようになりました。HTML ウェブページを `text/html` 以外の MIME タイプで提供するとき、表示する代わりにダウンロードさせることができます。両方のヘッダーを正しく設定するようにしてください (Firefox バグ 1591932)。
* 採択率の低さと相互運用性の問題のため、HTTP Public Key Pinning (HPKP) の対応を廃止しました。`Public-Key-Pins` および `Public-Key-Pins-Report-Only` ヘッダーは黙って無視されるようになりました (Firefox バグ 1412438)。
### プラグイン

*変更なし。*

### WebDriver conformance (Marionette)

* `WebDriver:FindElement` および `WebDriver:FindElements` コマンドから、`Anon` および `AnonAttribute` ストラテジーを削除しました (Firefox バグ 1587627)。
* `Webdriver:TakeScreenshot` が、キャプチャーされた領域が canvas の幅、高さ、サイズの最大上限値を超えても失敗しないようになりました (Firefox バグ 1590064)。
アドオン開発者向けの変更点
-------------

### API の変更点

* `browserSettings.ftpProtocolEnabled` (en-US) プロパティを実装しました (Firefox バグ 1592687)。
* `BrowserSetting.onChange` (en-US) イベントを実装しました (Firefox バグ 1410412)。
* `captivePortal.canonicalURL` (en-US) プロパティを実装しました (Firefox バグ 1592932)。
* `browserAction.onClicked` および `pageAction.onClicked` イベントのコールバック関数が、キーボードモディファイアとともに押されたマウスボタンを示すプロパティを持つオブジェクトを含む、`OnClickData` プロパティを含むようになりました (Firefox バグ 1405031)。これは、付加的な種類のマウスクリックのサポートを可能にします。
* `browserSettings.tlsVersionRestrictionConfig` (en-US) プロパティが実装され、ブラウザーの対応している TLS の最高バージョンと最低バージョンを読み取ることができるようになりました (Firefox バグ 1593635)。
### マニフェストの変更点

*変更なし。*

関連情報
----

* Hacks ブログのリリース記事: Firefox 72 — our first song of 2020
過去のバージョン
--------

* Firefox 71 for developers
* Firefox 70 for developers
* Firefox 69 for developers
* Firefox 68 for developers
* Firefox 67 for developers
* Firefox 66 for developers
* Firefox 65 for developers
* Firefox 64 for developers
* Firefox 63 for developers
* Firefox 62 for developers
* Firefox 61 for developers
* Firefox 60 for developers
* Firefox 59 for developers
* Firefox 58 for developers
* Firefox 57 for developers
* Firefox 56 for developers
* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers
* Firefox 51 for developers
* Firefox 50 for developers
* Firefox 49 for developers
* Firefox 48 for developers
* Firefox 47 for developers
* Firefox 46 for developers
* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers


Firefox 25 for developers - Mozilla

Firefox 25 for developers
=========================

Gecko 25 を搭載した Firefox 25 は米国時間 2013 年 10 月 29 日にリリースされました。このページでは、開発者に影響する Firefox 25 の変更点をまとめています。

Web 開発者向けの変更点一覧
---------------

### Firefox 開発ツールの新機能

* インスペクタに、CSS の名称や値のオートコンプリート機能を追加しました。
* ブレークポイントがあなたのデバッグに関与しないライブラリ内で停止しないようにするため、デバッガで "ブラックボックス" スクリプトファイルが使用可能になりました。
* プロファイラで、プロファイリング結果の保存やインポートが可能になりました。Firefox 開発ツールのオプションに、"Gecko プラットフォームのデータを表示" が加わりました。
* ネットワークパネルに、URL コマンドのコピーや再送信を行うコンテキストメニューを搭載しました。
* 多数の内部変更により、開発ツールに手を加えるアドオンで書き換えが必要になるかもしれません。
### CSS

* `background-attachment` CSS プロパティの値として、キーワード `local` をサポートしました (Firefox バグ 483446)。
* オペレーティングシステムのバージョンを検出するための、非標準で Mozilla だけのメディアクエリをサポートしました: `-moz-os-version` (Firefox バグ 810399)。現在このプロパティは、Windows のみで実装されています。
* `-moz-osx-font-smoothing` (en-US) CSS プロパティを実装しました (Firefox バグ 857142)。
### HTML

* `<iframe>` の `srcdoc` 属性をサポートしました。これは、`<iframe>` のコンテンツをインラインで記載できる属性です (Firefox バグ 802895)。
* `"image/jpeg"` タイプとともに使用するとき `HTMLCanvasElement.toBlob` メソッドは、画像の品質を指定する第 3 引数を受け入れます (Firefox バグ 891884)。
### JavaScript

EcmaScript 6 (Harmony) の実装が続いています!

* `Array` に `Array.of()` メソッドを実装しました (Firefox バグ 866849)。
* `Array.prototype.find()` メソッドおよび `Array.prototype.findIndex()` メソッドをサポートしました (Firefox バグ 885553)。
* `Number.parseInt()` および `Number.parseFloat()` メソッドを実装しました (Firefox バグ 886949)。
* `Map.prototype.forEach()` メソッドおよび `Set.prototype.forEach()` メソッドを実装しました (Firefox バグ 866847)。
* `Math` へ新たに、数学的なメソッドを追加しました: `Math.log10()`, `Math.log2()`, `Math.log1p()`, `Math.expm1()`, `Math.cosh()`, `Math.sinh()`, `Math.tanh()`, `Math.acosh()`, `Math.asinh()`, `Math.atanh()`, `Math.trunc()`, `Math.sign()` and `Math.cbrt()` (Firefox バグ 717379).
* 2 進数および 8 進数の整数リテラルをサポートしました: `0b10101010`, `0B1010`, `0o777`, `0O237` が有効になりました (Firefox バグ 894026)。
* 計算機イプシロン定数 (1 に追加することで 1 ではなくなる、表現可能な最小の値) を `Number.EPSILON` として使用できます (Firefox バグ 885798)。
### インターフェイス/API/DOM

* Web Audio API (en-US) をサポートしました。以前は不完全な実装を、設定のもとで使用できました (Firefox バグ 779297)。
* Windows の IME に関するキーの一部を `KeyboardEvent.key` でサポートしました (Firefox バグ 865565)。詳しくはキー名の表をご覧ください。
* Metro 版 Firefox が、デスクトップ版と同じ方法でキーイベントを発生させるようになりました (Firefox バグ 843236)。
* 前の `keydown` イベントの `preventDefault()` が呼び出された場合は`keypress` イベントが発生しないようになりました (Firefox バグ 501496)。詳しくは `keydown` イベントのドキュメント (en-US)をご覧ください。
* `Future` インターフェイスの名称を `Promise` に変更しました (Firefox バグ 884279)。
* `HTMLIFrameElement` インターフェイスで `srcDoc`プロパティをサポートしました。これは、`<iframe>` のコンテンツをインラインで記載できるプロパティです (Firefox バグ 802895)。
* `HTMLTableElement` インターフェイスで `createTBody()` メソッドをサポートしました。これは、`createTBody()` の取得を可能にします (Firefox バグ 813034)。
* 仕様書で定められているように、`Range.collapse()` メソッドの引数 `toStart` は省略可能になり、また既定値が `false` になりました (Firefox バグ 891340)。
* `Document` および `DocumentFragment` で `ParentNode` インターフェイスをサポートしました (Firefox バグ 895974)。
* `previousElementSibling` および `nextElementSibling` を、`Element` オブジェクトだけでなく `CharacterData` オブジェクトや `DocumentType` オブジェクトでも呼び出せるようにするため、`ChildNode` に移転しました (Firefox バグ 895974)。
* `navigator.geolocation` プロパティを、仕様書に合致するよう更新しました。`null` を返さないようになります。設定 `geo.enabled` が `false` であるときは、`undefined` を返します (Firefox バグ 884921)。
* `HTMLVideoElement` インターフェイスの `videoPlaybackQuality` 属性を、`getVideoPlaybackQuality` メソッドに変更しました (Firefox バグ 889205)。
### MathML

*変更なし。*

### SVG

*変更なし。*

関連情報
----

* Firefox 25 リリースノート
* Firefox 25 アドオン互換性情報
### 過去のバージョン

* Firefox 24 for developers
* Firefox 23 for developers
* Firefox 22 for developers
* Firefox 21 for developers
* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers
* Firefox 16 for developers
* Firefox 15 for developers
* Firefox 14 for developers
* Firefox 13 for developers
* Firefox 12 for developers
* Firefox 11 for developers
* Firefox 10 for developers
* Firefox 9 for developers
* Firefox 8 for developers
* Firefox 7 for developers
* Firefox 6 for developers
* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers