Firefox 102 for developers - Mozilla

Firefox 102 for developers
==========================

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

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

### HTML

変更なし。

### CSS

出力端末がコンテンツを表示した後に、その内容を変更できる能力を確認するために使用できる `update` メディア特性をデフォルトで有効にしました (Firefox バグ 1422312)。

### JavaScript

変更なし。

### API

* 非標準の IDBMutableFile (en-US)、IDBFileHandle (en-US)、IDBFileRequest (en-US) インターフェイスおよび IDBDatabase.createMutableFile() メソッドを、将来のリリースで削除する準備としてデフォルトで無効にしました (Firefox バグ 1764771)。
* Transform streams をサポートしました。`ReadableStream` から `WritableStream` へチャンクを運んで、変換処理を実行できます。
 この更新には新しい `TransformStream` および `TransformStreamDefaultController` インターフェイスと `ReadableStream.pipeThrough()` メソッドが含まれます (Firefox バグ 1767507)。
* 読み取り可能なバイトストリーム をサポートしました。基になるバイトソースからコンシューマーへ、データを効率的にゼロバイト転送できます (ストリームの内部キューをバイパスします)。
 サポートした新しいインターフェイスは `ReadableStreamBYOBReader`、`ReadableByteStreamController`、`ReadableStreamBYOBRequest` です (Firefox バグ 1767342)。

#### DOM

* Firefox 固有の `Window.sidebar` プロパティを、設定で無効にしました。将来削除する予定です (Firefox バグ 1768486)。
### WebDriver conformance

#### WebDriver BiDi

* Webdriver BiDi の `browsingContext.navigate` をいくつか改良しました。
    + ナビゲーションが誤ってタイムアウトする場合があるエッジケースを修正しました (Firefox バグ 1766217)。
    + ハッシュの変更をサポートしました (Firefox バグ 1763127)。
    + エラーページへのナビゲーションをサポートしました (Firefox バグ 1763124)。

#### Marionette

* Marionette が、ウィンドウがない Firefox のインスタンスへ接続できるようになりました (Firefox バグ 1726465)。
* ナビゲーションを開始する前に、PageLoadStrategy が "none" である `WebDriver:Navigate` が返る問題を修正しました (Firefox バグ 1754132)。
* 別のタブへ切り替えるときに `WebDriver:SwitchToWindow` で競合状態が発生する可能性がある問題を修正しました (Firefox バグ 1749666)。
アドオン開発者向けの変更点一覧
---------------

* スクリプトの実行、CSS の挿入と削除、コンテンツスクリプトの登録管理の機能を提供する `scripting` (en-US) API が、Manifest V2 で利用可能になりました (Firefox バグ 1766615)。
* Firefox で 'wasm-unsafe-eval' CSP キーワードをサポートしたことに伴って (Firefox バグ 1740263)、Manifest V3 拡張機能で WebAssembly を使用するために content\_security\_policy マニフェストキーで、このキーワードを指定することが必要になりました。後方互換性のため、Manifest V2 拡張機能は引き続きこのキーワードがなくても WebAssembly を使用できます (Firefox バグ 1766027)。
* `privacy.websites` (en-US) の `cookieConfig` プロパティで、`nonPersistentCookies` オプションが非推奨になりました (Firefox バグ 1754924)。
過去のバージョン
--------

* 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 75 for developers
* Firefox 74 for developers
* Firefox 73 for developers
* Firefox 72 for developers
* Firefox 71 for developers


Firefox 52 for developers - Mozilla

Firefox 52 for developers
=========================

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

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

### 開発者ツール

* UA の選択やネットワークの調整など、レスポンシブデザインモードを全面的に改良しました。
* アニメーションインスペクターで、タイミング関数を表示するようになりました。
* インスペクターに CSS グリッドの調査機能を搭載しました。
* about:debugging で Service Worker の状態を表示するようになりました。
* インスペクターで、選択した要素を簡単に強調表示できるようになりました。
* インスペクターで、ホワイトスペースのみのテキストノードを表示するようになりました。

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

### HTML

* `rel="noopener"` リンク種別 を実装しました (Firefox バグ 1222516)。
### CSS

#### 新機能

* `:focus-within` 擬似クラスを追加しました (Firefox バグ 1176997)。
* `<button>` 要素内で `display:flex/grid` および段組みレイアウトをサポートしました (Firefox バグ 984869)。
* 数値で表した色と currentcolor との間の補完処理を実装しました (Firefox バグ 1299741)。
* ``justify-content`: space-evenly` および ``align-content`: space-evenly` 向けに flexbox レイアウトを実装しました (Firefox バグ 1235922)。
* CSS `mask` / `clip-path` でサブピクセルアンチエイリアシングをサポートしました (Firefox バグ 1305259)。
* CSS Text 3 の、区分分断の変換規則を実装しました (Firefox バグ 1081858)。
* SVG コンテンツで、(`clip-path` プロパティで適用する) 基本的な図形のクリッピングをサポートしました (Firefox バグ 1246741)。
* `align-self`|`justify-self`: [ first | last ]? baseline 向けの Flexbox レイアウトを実装しました (Firefox バグ 1221524)。
* `touch-action` プロパティを、すべてのプラットフォームにおいてデフォルトで有効にしました。(詳しくは intent to ship mail #1 および intent to ship mail #2 をご覧ください)
* Flexbox の `align-content` の処理および単一ラインのサイズ調整が、ラインの数ではなく `flex-wrap` に依存するようになりました (Firefox バグ 1090031)。
* 補間処理ができないプロパティのアニメーションに CSS Animations を使用できるようになりました (Firefox バグ 1064937)。
* `baseline|last-baseline` を `[ first | last ]? baseline` に変更しました (Firefox バグ 1313254).
* block-axis について、`left`/`right` の使用値を `start` にしました (Firefox バグ 1221565)。
* 包含ブロックの長さが不定である、flexible tracks を伸長する際に、最小サイズや最大サイズを重視するようになりました (Firefox バグ 1309407)。
* `mask-position` および `mask-repeat` の初期値を、それぞれ `0% 0%` および `repeat` に変更しました (Firefox バグ 1308963)。
* CSS の `<color>` 値に対していくつか変更を施しました (Firefox バグ 1295456):
    + `rgba()` および `hsla()` を、`rgb()` および `hsl()` の別名として再定義しました。どちらも同じ引数構文を受け入れます。
    + `rgb(`) および `hsl()` が、アルファ値 (省略可能) を受け入れるようになりました。例: `rgb(255, 0, 0, 0.5)`
    + 色関数が、カンマ区切りではなく空白区切りの引数を受け入れるようになりました。例: `rgb(255 0 0 / 0.5)`
    + アルファ値を、数値だけでなくパーセンテージでも指定できるようになりました。例: `rgb(255 0 0 / 50%)`
    + `hsl()` 色の色相を、数値だけでなく角度でも指定できるようになりました。例: `hsl(120deg, 60%, 70%)`
* Firefox の子インデックス付き擬似クラス (`:nth-child`, `:first-child` など) の実装が CSS selectors level 4 仕様に合わせて更新されました。これらの擬似クラスは親要素の子ではなく、適切な兄弟要素に一致するようになりました。これにより、親要素がない場合や、親要素が `Element` でない場合にも、これらの擬似クラスを使用することができるようになりました (Firefox バグ 1300374.

#### CSS グリッド

* CSS グリッド を実装しました。

#### 変更および削除

* CSS3 マルチカラム関連プロパティの接頭辞を削除しました (また、`-moz` 接頭辞付きのプロパティを別名として再追加しました) (Firefox バグ 1300895)。
* 無名のフレックスアイテム内で、フレックスコンテナーの絶対配置の子を折り返さないようになりました (Firefox バグ 1269045)。
* グリッドコンテナーのベースラインを実装しました。 (Firefox バグ 1151204)。
* スタイルシステムから、`<flex>` 値を最小値として使用する箇所を削除しました (Firefox バグ 1305244)。
* 設定項目 `layout.css.masking.enabled` を削除しました (Firefox バグ 1308239)。
* 独自の `-moz-images-in-menus` および `-moz-images-in-buttons` メディア特性 を削除しました (Firefox バグ 1302157)。
* 色のプロパティから `-moz-use-text-color` を削除しました。代わりに `currentcolor` を使用してください (Firefox バグ 1306214)。
* [css-grid] グリッドアイテムに 'max-width' を設定するとテキストがはみ出す問題を修正しました (Firefox バグ 1330380)。
### JavaScript

#### 新機能

* async functions をサポートしました。`async function`、`async function expression`、`await` キーワードを追加しました (Firefox バグ 1185106)。
* 関数に対して、ES2017 の trailing commas を実装しました (Firefox バグ 1303788)。
* rest parameter の分割代入 を実装しました (Firefox バグ 1243717)。
* べき乗演算子 (\*\*) をデフォルトで有効にしました (Firefox バグ 1291212)。
* `DateTimeFormat` や `Date.toLocaleString()` といった日付関連の API の `timeZone` オプションで、IANA タイムゾーン名称 が使用可能になりました (Firefox バグ 837961)。

#### 変更および削除

* 配列の分割代入 で、trailing comma を持つ rest parameters を使用した場合に `SyntaxError` が発生するようになりました (Firefox バグ 1041341)。
* オブジェクトの分割代入 で、`__proto__` プロパティの重複が可能になりました (Firefox バグ 1204024)。
* `Array.prototype.toLocaleString()` を、Intl API のパラメーター "`locales`" および "`options`" をサポートするように再実装しました (Firefox バグ 1130636)。
* `TypedArray` コンストラクターで、新しい typed array を生成するため iterable を受け入れるようになりました (Firefox バグ 1232266)。
* `TypedArray.from()`、`TypedArray.of()`、`TypedArray.prototype.filter()`、`TypedArray.prototype.map()`、`TypedArray.prototype.slice()`、`TypedArray.prototype.subarray()` が、値 `this` が有効な Typed Array のコンストラクターであることを要求するようになりました (Firefox バグ 1122396)。
* 非標準の `ArrayBuffer.slice()` メソッド (`ArrayBuffer.prototype.slice()` ではありません) が非推奨になり、使用すると警告が発生します (Firefox バグ 1316913)。
* Unicode コードポイントエスケープ が、識別子として使用可能になりました (例: "`let \u{61} = 123`"。Firefox バグ 1314037 をご覧ください)。
* ES2015 に従って、`\u2e2f` および `ⸯ` を識別子として使用したときに例外が発生するようになりました。詳しくは Firefox バグ 917436 および Firefox バグ 1197230 をご覧ください。
### WebAssembly

* Gecko で WebAssembly をサポートしました。
### DOM

* Selection API を全面的に提供しました。新たに `selectstart` および `selectionchange` イベントに対応しました (Firefox バグ 1309612)。
* `Event.composed` プロパティをサポートしました。この論理値は、イベントが shadow root を経由して標準 DOM に伝達できるかを示します (Firefox バグ 1292063)。
* HTML 要素、`<svg>` 要素、`<math>` 要素に限り、`Element.requestFullscreen()` を呼び出してフルスクリーンモードに移行できるようになりました (Firefox バグ 1305928)。
* Touch event を、Windows デスクトップ環境で再び有効化しました (Firefox バグ 1244402)。これはいくつかの主要サイトで問題が発生したため、Firefox 24 で無効化していました (Firefox バグ 888304)。
* `focusin` および `focusout` イベントを実装しました (Firefox バグ 687787)。
* `isSecureContext` プロパティを実装しました (Firefox バグ 1269052)。
* ウェブアプリマニフェスト のインストールイベントを appinstalled に改名しました (`Window/appinstalled_event` をご覧ください)。サービスワーカーのインストールイベント (`oninstall` をご覧ください) との混同を避けるためです。詳しくは Firefox バグ 1309099 をご覧ください。
* Drag and drop API の `DataTransfer.types` プロパティが、`DOMStringList` ではなく文字列の凍結された配列を返すようになりました (Firefox バグ 1298243)。
* `loadstart` および `loadend` イベントが `<img>` 要素で発生するようになりました (Firefox バグ 1264769。
* Notifications API の `Notification.requireInteraction` を実装しました (Firefox バグ 862395)。
* `Window.open()` メソッドで、`noopener` ウィンドウ機能特性 が使用可能になりました (Firefox バグ 1267339)。これは、`rel="noopener"` リンクタイプ の機能を反映します。
* Web Components API の `CustomElementRegistry.get()` メソッドを実装しました (Firefox バグ 1275838)。
* Pointer Event の `width` および `height` プロパティのデフォルト値が 1 になりました (Firefox バグ 1304315)。
* 最新の仕様書 における変更点を含むように、File and Directory Entries API を更新しました (詳しくは Firefox バグ 1284987 をご覧ください)。
* `UIEvent` で定義されていた `cancelBubble` プロパティが、 `Event` インターフェイスで定義するようになりました。詳しくは Firefox バグ 1298970 をご覧ください。

#### 変更および削除

* 通話を制御する Firefox OS の API (Contacts、MobileConnection、Icc など) を削除しました (Firefox バグ 1311206)。
* Firefox OS の `Identity` インターフェイスを削除しました (Firefox バグ 1309030)。
* Firefox OS の Voicemail API (`MozVoicemail`、`MozVoicemailEvent`、`MozVoicemailStatus`、`Navigator.mozVoicemail`) を削除しました (Firefox バグ 1309723)。
* Firefox OS の Cell Broadcast API (`MozCellBroadcast`、`MozCellBroadcastEvent`、`MozCellBroadcastMessage`、`Navigator.mozCellBroadcast`) を削除しました (Firefox バグ 1306772)。
* Firefox OS の TV broadcast 関連 API を削除しました (Firefox バグ 1306778)。
* Firefox OS の FM Radio API (`FMRadio`、`Navigator.mozFMRadio`) を削除しました (Firefox バグ 1306779)。
### サービスワーカーと Fetch

* `Headers.getAll()` を削除しました。また `Headers.get()` が、指定したヘッダーの (最初の値だけではなく) すべての値を取り出すようになりました (Firefox バグ 1278275)。これは、最新の Fetch API 仕様の更新内容に準拠しています。
### Web Audio API

* `ConstantSourceNode` インターフェイスを追加しました。これは、すべて同じ値であるサンプルのストリームを常に出力するオーディオソースを表します。複雑なオーディオフローを単純化するためにこのインターフェイスをどのように使用するかを示す例を、Controlling multiple parameters with ConstantSourceNode (en-US) でご覧ください。
### WebRTC

* ICE 接続が一時的に不通になったとき、`RTCPeerConnection.iceConnectionState` (en-US) プロパティが `"disconnected"` に設定されるようになりました。これは一時的な問題で間もなく解決する見込みであり、後に接続が `"connected"` 状態に戻ることを示します (Firefox バグ 852665)。
* `MediaDevices.devicechange_event` イベントと、これに対応するハンドラーは、 Firefox 51 で Mac に限り実装してデフォルトで無効化していましたが、Windows および Linux でも実装して、すべてのプラットフォームでデフォルトで有効にしました。
* `MediaStream.active` プロパティをサポートしました。これはストリームで少なくとも 1 つのトラックが現在再生中であるかを示す、読み取り専用の Boolean 型プロパティです。
* Firefox 52 より前のバージョンでは `MediaStreamTrack.stop()` メソッドで、ローカルトラック (すなわち、`getUserMedia()` で取得したトラック) しか停止できませんでした。Firefox 52 で、WebRTC 接続と関連付けられた `MediaStream`、Web Audio API ストリーム、`CanvasCaptureMediaStream` (en-US) など、さまざまなトラックを停止できるようになりました。
* 以前は Firefox のイベントループによってひとつのパスで `TextTrack` の `mode` を繰り返し変更すると、複数の `change` イベントが親メディア要素の `textTracks` で指定された `TextTrackList` (en-US) に発行されていました。Firefox 52 から、ひとつのイベントに統合するようになりました (Firefox バグ 882674)。
### Audio/Video/Media

* `<audio>` または `<video>` 要素を扱っていてエラーが発生したときに `HTMLMediaElement.error` で指定される `MediaError` (en-US) オブジェクトが、`message` (en-US) プロパティを持つようになりました。これは、発生したエラーの具体的な説明を提供します。この文字列はエラーの事象について詳細情報を提供して、なぜ誤っているかの見識を与えます (Firefox バグ 1299072)。このフィールドは Firefox 51 から nightly ビルドに含まれていましたが、release を含むすべてのビルドで有効化しました。
### その他の API

* Firefox 50 で追加した (ただし常にエラーを返す) `FileSystemFileEntry.createWriter()` メソッドを削除しました (Firefox バグ 1315185)。
* Firefox OS 独自の Apps installation/management API を、プラットフォームから削除しました (Firefox バグ 1261019)。
* Firefox OS 独自の Web Telephony API を、プラットフォームから削除しました (Firefox バグ 1309719)。
* Firefox OS 独自の Web Bluetooth API を、プラットフォームから削除しました (Firefox バグ 1310020)。
* Battery Status API が、chrome/特権付きコードに限り使用可能になりました (Firefox バグ 1313580)。
* `ImageBitmapRenderingContext.transferImageBitmap()` を `ImageBitmapRenderingContext.transferFromImageBitmap()` (en-US) に改名しました (Firefox バグ 1304767)。
* `mozDash` および `mozDashOffset` メンバーを、`CanvasRenderingContext2D` から削除しました (Firefox バグ 931389)。
### HTTP

* `Referrer-Policy` ヘッダーで `same-origin`、`strict-origin`、`strict-origin-when-cross-origin` ディレクティブをサポートしました (Firefox バグ 1276836)。
* `script-src` のように、`'strict-dynamic'` source expression を `Content-Security-Policy` のディレクティブでサポートしました (Firefox バグ 1299483)。
* Strict Secure Cookies specification に従って、安全ではないサイト (`http:`) が "secure" ディレクティブで Cookie を設定する ことができなくなりました (Firefox バグ 976073)。
* HTTP/2 ヘッダー圧縮方式 HPACK の最大テーブルサイズを 4 KB から 64 KB に拡張しました (Firefox バグ 1296280)。
* `Large-Allocation` (en-US) ヘッダーを追加しました (Firefox バグ 1304140)。
### SVG

* SVG ドキュメントは、SVGDocument に代わり `XMLDocument` インターフェイスを使用して表すようになりました。これは SVG 2 仕様で変更されました。
### セキュリティ

* ログインページ (すなわち `<input type="password">` フィールドを含むページ) でログイン情報が安全でない方法で送信されると思われる場合に、Firefox はユーザーに警告するため、ページ内のパスワードフィールドの下に警告メッセージを表示します (Firefox バグ 1319119)。また、安全でないログインフォームではオートフィルが無効になります (Firefox バグ 1217152)。詳しくは 安全でないパスワード をご覧ください。
* SHA-1 SSL 証明書のサポートを廃止しました。SHA-1 証明書を使用する安全なページに移動すると、Untrusted Connection エラーが発生します (Firefox バグ 1330043)。
プラグイン
-----

Flash を除くすべての NPAPI プラグインのサポートを廃止しました。Flash の使用も将来、段階的に廃止します。

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

### WebExtensions

新規 API:

* `sessions` API
* `topSites` API
* `omnibox` API
* `runtime.onInstalled` および `runtime.onStartup` (en-US) イベント
* webRequest の非同期イベントハンドラー
* `bookmarks.onMoved`、`bookmarks.onCreated`、`bookmarks.onChanged` イベント
* commands マニフェストキー の `_execute_browser_action` および `_execute_page_action`
* content\_scripts マニフェストキーの `match_about_blank`
### インターフェイス

* ドロップされた複数のアイテムを扱うための `nsIDroppedLinkHandler.dropLinks` メソッドおよび `nsIDroppedLinkItem` インターフェイスを追加しました (Firefox バグ 92737)。
### XUL

* `tabbrowser.loadTabs(uris, params)` メソッドのオーバーロードを追加しました (Firefox バグ 92737)。
* `browser.droppedLinkHandler` 関数のシグネチャを変更しました (Firefox バグ 92737)。
過去のバージョン
--------

* 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 25 for developers
* Firefox 24 for developers
* Firefox 23 for developers
* Firefox 22 for developers


Firefox 19 for developers - Mozilla

Firefox 19 for developers
=========================

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

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

### JavaScript

* `Map` (en-US) オブジェクトおよび `Set` (en-US) オブジェクトは、`size()` メソッドを持つオブジェクトから `size` プロパティを持つオブジェクトに変わりました。(Firefox バグ 807001)
* `Map` (en-US) オブジェクトおよび `Set` (en-US) オブジェクトに `clear()` メソッドが追加されました。(Firefox バグ 805003)
### CSS

* Viewport に対して相対的な `<length>` の単位である `vh`、`vw`、`vmin`、および `vmax` をサポートしました (Firefox バグ 503720)。
* CSS Flexbox の接頭辞を外しましたが、引き続きデフォルトでは無効にしています (Firefox バグ 801098)。
* `-moz-initial` 値の接頭辞を外しました (Firefox バグ 806068)。`-moz-initial` は当分の間、エイリアスとして残します。しかし、Web 開発者は `initial` に移行することを強く推奨します。
* CSS の `text-transform` プロパティで、日本語や中国語など固定幅の表意文字を使用したテキスト内にラテン文字をなめらかに追加できるようにするためのキーワードである `full-width` をサポートしました(Firefox バグ 774560)。
* CSS の `page-break-inside` を実装しました (Firefox バグ 685012)。
* CSS の `calc()` 関数を、(`<gradient>` の) `<color-stop>` で使用できるようになりました。
* CSS の `@page` @-規則をサポートしました (Firefox バグ 115199)。擬似クラス `:first`、`:right`、および `:left` はまだ実装されていないことに注意してください。
* 擬似クラス `:-moz-placeholder` は、擬似*要素* `::-moz-placeholder` に置き換えられました (Firefox バグ 737786)。
### DOM

* `element.getElementsByTagName` メソッドは `HTMLCollection` を返すようになりました (Firefox バグ 799464)。
* `File` に `mozLastModifiedDate` プロパティを実装しました (Firefox バグ 793955)。
* `File` の `lastModifiedDate` プロパティは、最終更新日が不明である場合に現在の日付を返すようになりました。(Firefox バグ 793459)
* `CanvasRenderingContext2D` に `isPointInStroke` メソッドを実装しました (Firefox バグ 803124)。
* `HTMLCanvasElement` の `toBlob` メソッドを実装しました (Firefox バグ 648610)。
* `Node.isSupported` メソッドおよび `document.implementation.hasFeature()` メソッドは、常に `true` を返すように変更しました (Firefox バグ 801425)。
* `document.createElement(null)` を呼び出すと、`null` は文字列化されて `document.createElement("null")` であるかのように動作します。
### XForms

Firefox 19 で、XForms のサポートを**削除しました**。

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

**メモ:** Firefox 19 での重要な変更点は、`nsresult` が強い型付けになったことです。これは戻り値の処理ミスによって発生するバグの発見を容易にしますが、この点を誤って仮定している場合に既存のコードで不具合が発生する可能性があります。

* `getBrowserSelection()` が、テキスト入力フィールドで選択されているテキストを返すようになりました。このため、ユーザがパスワードフィールドではないテキスト入力フィールドでテキストを選択したときに、`gContextMenu.isTextSelected` が `true` になります (Firefox バグ 565717)。
* Dict.jsm: `Dict()` が JSON 文字列を受け入れるようになりました。`Dict.toJSON()` メソッドが追加され、これは JSON 文字列を返します (Firefox バグ 727967)。
### インタフェースの変更点

`nsIImgLoadingContent`

`addObserver()` メソッドのパラメータ (aObserver) が `imgIDecoderObserver` から `imgINotificationObserver` に替わりました。`imgINotificationObserver` の `notify()` メソッドはスクリプト可能ではありませんので、`imgITools` の `createScriptedObserver()` を使用しなければなりません。

`nsIChannel`

`contentLength` プロパティの型を `long` から `int64_t` に変更しました。

関連情報
----

* Firefox 19 リリースノート
* Firefox 19 のアドオン互換性に関わる修正のまとめ
### 過去のバージョン

* 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 28 for developers - Mozilla

Firefox 28 for developers
=========================

Firefox 28 は米国時間 2014 年 3 月 18 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者やアドオン開発者にとっても有益な主な変更点を紹介します。

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

### 開発者ツール

* `console.exception` プロパティを追加しました (Firefox バグ 922214)。
* `console.assert` プロパティを追加しました (Firefox バグ 760193)。
* アプリマネージャー: 新しいマニフェストエディタを追加しました。
* アプリマネージャー: アプリのデバッグ用のツールボックスを、アプリマネージャーの UI 内に組み込みました。
* ウェブコンソール: "スプリットコンソール" モードを追加しました。Escape キーを押すと、他のツール内にコンソールをすばやく開きます。
* ウェブコンソール: 出力エリア用の Dark テーマを追加しました。
* デバッガー: ミニファイされた JavaScript の整形。
* デバッガー: 変数にマウスポインターを乗せるか変数をクリックすると、現在の値をポップアップで表示します。
* インスペクター: ルールビューでのカラーピッカーや、さまざまなツールチップを追加しました。
* ブラウザツールボックス: アドオンやプラットフォームの開発者が、ブラウザ自身を対象にしてほぼすべての開発ツールを使用できるようになりました。

詳しくはこちらの投稿をご覧ください。

### CSS

* 複数行の フレックスボックスの基本概念 をサポートしました (Firefox バグ 939901)。
* 東アジア言語における長い表記ののカウンタースタイルを実装しました (Firefox バグ 934072)。
* `background-blend-mode` プロパティをサポートしました (Firefox バグ 841601)。
* `font-variant-ligatures` プロパティに値 `none` を追加しました (Firefox バグ 913264)。
* 疑似要素で `:hover` ユーザーアクション疑似クラスをサポートしました (Firefox バグ 922669)。
### HTML

* `<input type=color>` および `<input type=number>` を実装しましたが、デフォルトでは無効です。
### JavaScript

* ECMAScript 2015 の実装が続いています。
    + `Array` の新たなメソッド、 `Array.prototype.entries()` および `Array.prototype.keys()` を実装しました (Firefox バグ 894658)。
* A bug causing that `Object.getOwnPropertyNames()` did not see unresolved properties of `Error` objects has been fixed (Firefox バグ 724768).
### インターフェイス/API/DOM

* `HTMLVideoElement.canPlayType('video/webm')` が `maybe` を返すようになりました (Firefox バグ 884275)。
* `DocumentFragment.getElementById()` メソッドを実装しました。例: `document.createDocumentFragment().getElementById()` (Firefox バグ 933193)
* `KeyboardEvent.repeat` 属性を実装しました (Firefox バグ 600117)。
* `File` コンストラクターを実装しました。例: `new File(["foo"], "foo.txt")` (Firefox バグ 819900)
* プライバシーの理由により、`navigator.plugins` (en-US) が enumerable ではなくなりました (Firefox バグ 757726)。
* `Window.screenX` 属性および `Window.screenY` 属性が CSS ピクセル値を返すようになりました (デバイスピクセル値は返しません) (Firefox バグ 943668)。
* `CanvasRenderingContext2D.drawSystemFocusRing()` メソッドおよび `CanvasRenderingContext2D.drawCustomFocusRing()` (en-US) メソッドを実装しました。これらを有効にするには、設定項目 `canvas.focusring.enabled` を `true` に設定しなければなりません (Firefox バグ 540456)。
* `willReadFrequently` コンテキスト属性が "`2d`" キャンバスコンテキストで実装されました (`HTMLCanvasElement.getContext()` を参照) (Firefox バグ 884226)。
* `NavigatorID` の属性やメソッドのうち、 `appCodeName`, `product`, `taintEnabled()` (en-US) が `WorkerNavigator` に実装され、ワーカーで利用できるようになりました。 (Firefox バグ 925847)。
* `previousElementSibling` および `nextElementSibling` の各プロパティが互換性の問題により、 `DocumentType` から削除されました (Firefox バグ 932501)。
### MathML

* `mathvariant` 属性をサポートしました (Firefox バグ 114365)。
### SVG

*変更なし。*

### Audio/Video

* WebM で Opus をサポートしました (Firefox バグ 938686)。
* VP9 ビデオデコーダをサポートしました (Firefox バグ 833023)。
### ネットワーク

* `SPDY/2` のサポートを廃止しました。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

* DeferredTask.jsm のインターフェイスを変更しました。また `isPending()`、`start()`、`flush()`、`cancel()` の各メソッドを削除しました (Firefox バグ 940408)。
セキュリティ
------

* sandbox 化した iframe では、CSP が適用されていませんでした。これを修正しました (Firefox バグ 886164)。
* CSP 1.1 の試験的なディレクティブ `script-nonce` を実装しました。この機能を有効にするには、設定項目 `security.csp.experimentalEnabled` を `true` に設定してください (Firefox バグ 855326)。
関連情報
----

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

* 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 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 63 for developers - Mozilla

Firefox 63 for developers
=========================

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

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

### 開発者ツール

* インスペクター のフォントタブに、ページ上のフォントの設定を簡単に確認および編集できるエディターを追加しました。詳しくは フォントを編集する をご覧ください。
* アクセシビリティインスペクター をデフォルトで有効化しました (Firefox バグ 1482454)。
* アクセシビリティインスペクター でオブジェクトにマウスポインターを載せると、アイテムを強調表示 して、ページ上の情報バーにアイテムのロールや名前を表示するようになりました (Firefox バグ 1473030)。
* ウェブコンソール で、コマンドラインをコンソール出力の直後に表示するようになりました (Firefox バグ 1136299)。
* ネットワークモニター で、URL が既知のトラッカーに属することを示すアイコンを追加しました。セキュリティアイコン をご覧ください (Firefox バグ 1333994)。
* `devtools.aboutdebugging.showSystemAddons` の既定値が `false` になりました。これは、`about:debugging` ページにシステムアドオンを表示しないことを意味します。`about:config` で、この設定を変更できます (Firefox バグ 1425347)。
* レスポンシブデザインモード のツールバーをわかりやすくして、ビューポートを左寄せにするオプションを追加しました。
* ページインスペクターに、カスタム要素の クラス定義へのリンク を表示する機能を追加しました (Firefox バグ 1443923)。
### HTML

* `<img>` 要素の `decoding` 属性をサポートしました (Firefox バグ 1416328)。`HTMLImageElement.decoding` もご覧ください。

#### 廃止

* `sidebar` リンクタイプ (`rel="sidebar"`) のサポートを廃止しました。アンカータグがこの属性を含んでいても、属性が無視されます (Firefox バグ 1452645)。
### CSS

* `:defined` 疑似クラスをサポートしました (Firefox バグ 1331334)。
* Flexbox レイアウト で `row-gap`、`column-gap`、`gap` をサポートしました (Firefox バグ 1398483)。
* webkit 接頭辞付きの画素密度に関する @media クエリー のサポートを再び有効化しました (Firefox バグ 1444139)。
* Firefox で CSS フレックスボックスレイアウト (Flexbox) の `align-self`、`align-content`、`align-items`、`justify-content` プロパティをサポートしました (Firefox バグ 1472843)。
* `offset-path` の `path()` 関数を実装しました (Firefox バグ 1429298)。
* Media Queries Level 4 仕様で改良された構文 を実装しました (Firefox バグ 1472843)。
* `offset-*` プロパティを `inset-block-start`、`inset-block-end`、`inset-inline-start`、`inset-inline-end` に改名しました (Firefox バグ 1464782)。
* prefers-reduced-motion メディア特性をサポートしました (Firefox バグ 1365045、Firefox バグ 1475462)。
* `resize` プロパティにフロー関連の値 (`block`、`inline`) を追加しました (Firefox バグ 1464786)。
* `align-self`、`align-content`、`justify-content` で、`safe` および `unsafe` 値の flexbox レイアウトを実装しました (Firefox バグ 1297774)。
* 適切な 論理的プロパティ がアニメーション可能になりました (Firefox バグ 1309752)。

#### 廃止

* `offset-block-start`、`offset-block-end`、`offset-inline-start`、`offset-inline-end` を削除しました。これらは前述のとおり `inset-*` に改名されました (Firefox バグ 1464782)。
### SVG

*変更なし。*

### JavaScript

* `Symbol.prototype.description` プロパティを実装しました (Firefox バグ 1472170)。
* `Object.fromEntries()` メソッドを実装しました (Firefox バグ 1469019)。
* undefined であるオブジェクトのプロパティにアクセスしようとしたときのエラーメッセージを改善しました。`x` が undefined である状況で `x.y` にアクセスしようとすると、コンソールが従来の `TypeError: x is undefined` に代わって、より具体的な `x is undefined; can't access its "y" property` を返します (Firefox バグ 1259822)。

#### 廃止

* WebAssembly Module で、実験的な IndexedDB のシリアライズのサポートを廃止しました (Firefox バグ 1469395)。
### API

#### 新規 API

* Shadow DOM (Firefox バグ 1471947) および Custom Elements (Firefox バグ 1471948) API をデフォルトで有効にしました。詳しくは Web components をご覧ください。
* Media Capabilities API (en-US) を実装しました (Firefox バグ 1409664)。
* Async Clipboard API を実装して、デフォルトですべてのチャンネルで有効化しました。Chrome および Firefox では現在 `writeText()` および `readText()` メソッドのみ実装しています。ただし、`readText()` が ブラウザー拡張機能 に限り使用可能であることが Chrome とは異なります。
* `SecurityPolicyViolationEvent` (en-US) インターフェイスをサポートしました。`Content-Security-Policy` に違反したときにイベントを送信できます (Firefox バグ 1472661)。

#### DOM

* Web Animations API で、以下の部分をデフォルトで有効にしました (Firefox バグ 1476158)。
    + `Animation` の `ready` および `finished` プロパティ。`Animation` オブジェクトの `ready` および `finished` `Promise` を指定します。
    + `Animation` オブジェクトの `effect` プロパティ。
    + `KeyframeEffect` (en-US) および `AnimationEffect` インターフェイス。
* `Element.toggleAttribute()` メソッドを実装しました (Firefox バグ 1469592)。
* 以前は非標準であった `Event.returnValue` プロパティを、互換性のためにサポートしました (Firefox バグ 1452569)。
* ウェブ互換性を向上するために `Window.event` プロパティを実装しました。現在は標準化されています (Firefox バグ 218415)。ただし複数のウェブ互換性の問題 (例えば Firefox バグ 1479964) により、すぐに設定項目 `dom.window.event.enabled` で Nightly 以外のチャンネルでは無効化しました (Firefox バグ 1493869)。
* Firefox の動作を Edge や Chrome に合わせるため、`navigator.platform` プロパティが 64 ビット版 Windows で実行している場合でも `"Win32"` を返すようになりました (Firefox バグ 1472618)。
* Firefox 63 より前のバージョンでは、`rel="noopener"` を持つ新しいウィンドウを開くリンク、および `noopener` 機能を有効にして `Window.open()` を呼び出した場合にすべてのウィンドウ機能を無効にしており、必要な標準機能を明示的に再有効化しなければなりませんでした。Firefox 63 ではこれらのウィンドウでほかのウィンドウと同じ機能が有効になり、不要な機能を明示的に無効化しなければなりません (Firefox バグ 1419960)。

#### DOM イベント

* キーボードの*右側*にある
 `Alt`
 キーの扱いが、Windows で改善しました。ユーザーの現在のキーボードレイアウトで
 `Alt`
 キーが
 `AltGr`
 モディファイアキーにマッピングされている場合に、`KeyboardEvent.key` が `"AltGraph"` として値を返します。これは最近 Chrome に導入された動作に合致します (Firefox バグ 900750)。

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

* マイクへのアクセスが、同じコンテンツプロセス内でも複数のタブで同時に動作するようになりました (Firefox バグ 1404977)。
* `RTCDataChannel` を、以前からサポートしていた旧来の sctp-sdp-05 データ形式に加えて、sctp-sdp-21 データ形式をサポートするように更新しました。
* Web Audio API の `ConstantSourceNode` ノード型で、仕様書に合わせるためデフォルトのチャンネル数を 1 から 2 に変更しました (Firefox バグ 1413283)。
* Web Audio API の `AudioScheduledSourceNode` インターフェイス (および拡張によって、このインターフェイスを基にしたすべてのノード) でノードの開始時間として負の値が指定されたときに、正しい例外が発生するようになりました。そのエラーは `RangeError` です (Firefox バグ 1413284)。
* `AudioParam` オブジェクトの `value` で許可される最小値と最大値を、それぞれ単精度浮動小数点数で最小の負の値 (-340,282,346,638,528,859,811,704,183,484,516,925,440) と最大の正の値 (+340,282,346,638,528,859,811,704,183,484,516,925,440) に変更しました (Firefox バグ 1476695)。
* アクティブなストリームのコーデックを変更できる、{domxref("SourceBuffer.changeType")}} メソッドをデフォルトで有効にしました。これは Media Source Extensions API の一部です (Firefox バグ 1481166)。
* `AudioParam.setValueCurveAtTime()` メソッドを、引数の値が次第に変わることを示すために浮動小数点数値の配列を受け入れるように更新しました。以前は `Float32Array` (en-US) であることが必要でした (Firefox バグ 1421091)。
* また `AudioParam.setValueCurveAtTime()` が、`values` の配列に有限ではない値が存在する場合に、`TypeError` を正しく返すようになりました (Firefox バグ 1472095)。
* さらに `setValueCurveAtTime()` で、時間が経過した後に指定した値のカーブに従ってパラメーターが終了したとき、パラメーターの値がカーブの値のリストの最後の値に設定されるようになりました (Firefox バグ 1308436)。
* ほかのディクショナリーや仕様書に合わせて、`RTCRTPStreamStats` ディクショナリーを `RTCRtpStreamStats` (en-US) に改名しました (Firefox バグ 1480498)。
* `RTCRtpStreamStats` ディクショナリーの `kind` (en-US) プロパティをサポートしました (Firefox バグ 1481851)。
* `RTCRtpStreamStats` (en-US) ディクショナリーの `isRemote` プロパティが推奨になりました。Firefox 65 で削除する予定です。このプロパティにアクセスすると、コンソールに警告を表示します。詳しくは Advancing WebRTC ブログの投稿 をご覧ください (Firefox バグ 1393306)。

#### Canvas と WebGL

* `HTMLCanvasElement.getContext()` に、新しい `powerPreference` コンテキスト属性を追加しました。macOS ではパフォーマンスを重視しない WebGL のアプリケーションやアプレットが、マルチ GPU のシステムで高性能な GPU ではなく低消費電力の GPU を要求することができます (Firefox バグ 1349799)。

#### 廃止

* 廃止済みおよび Firefox 限定の非標準メソッドである `Window.back()` および `Window.forward()` を削除しました。代わりに `window.history.back()` および `window.history.forward()` メソッドを使用してください (Firefox バグ 1479486)。
* メモリーリークを発生させるおそれがあるため、`createObjectURL()` および `revokeObjectURL()` メソッドが `ServiceWorker` のインスタンスで使用できなくなりました (Firefox バグ 1264182)。
* 仕様書で非推奨とされたため限定的にサポートしていた、`PannerNode` のドップラー効果のサポートを Web Audio API から削除しました。`AudioListener` の `dopplerFactor` および `speedOfSound` プロパティと、`PannerNode` の `setVelocity()` メソッドを削除しました (Firefox バグ 1148354)。
### CSSOM

*変更なし。*

### HTTP

* `Clear-Site-Data` ヘッダーを実装して、設定で無効化しないようにしました (Firefox バグ 1470111)。
### セキュリティ

* サイトで Content Security Policy が設定されている場合に、favicon も CSP に従うようになりました (Firefox バグ 1297156)。
* CSP の違反レポートを生成するとき、`script-src` ディレクティブの `'report-sample'` 式を認識するようになりました。このディレクディブは、違反が発生した場所の短いサンプルをレポートに含めるべきであることを示します。以前は、Firefox は常にサンプルを含めていました (Firefox バグ 1473218)。
* Firefox が NSS 3.39 を使用するようになりました (Firefox バグ 1470914)。
### プラグイン

*変更なし。*

### WebDriver conformance (Marionette)

#### 新機能

* Marionette が `WebDriver:NewSession` の応答で `setWindowRect` capability (en-US) を返すようになりました。これは、ブラウザーのウィンドウの移動やリサイズが可能である場合 (例えばモバイルアプリケーション以外の Firefox) に true になります (Firefox バグ 1470659)。
* `unhandledPromptBehavior` capability をサポートしました。これは、WebDriver 仕様の特定の prompt behavior を定義できます (Firefox バグ 1264259)。
* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` コマンドに、ユーザープロンプトの処理を追加しました (Firefox バグ 1439995)。

#### API の変更点

* `WebDriver:` 接頭辞がない、非推奨のコマンドエンドポイントを削除しました (Firefox バグ 1451725)。
* `WebDriver:NewSession` コマンドが、`platformName` について WebDriver 仕様で定義されている推奨文字列 (`linux`、`mac`、`windows`) を返すようになりました (Firefox バグ 1470646)。

#### バグ修正

* Firefox が最前面のアプリケーションではないとき、要素との対話でフォーカスに関するイベントが失われる問題を修正しました (Firefox バグ 1398111)。
* `WebDriver:ReleaseActions` がダブルクリックのトラッカーをリセットしないため、一連のアクションで `pointerDown` および `pointerUp` アクションを実行するとダブルクリックが発生する問題を修正しました (Firefox バグ 1422583)。
* `pause` アクションを繰り返し実行するとハングアップする問題を修正しました (Firefox バグ 1447449)。
* `WebDriver:ExecuteScript` や `WebDriver:ExecuteAsyncScript` が返す要素コレクションで循環参照エラーが発生する場合がある問題を修正しました (Firefox バグ 1447977)。
* `WebDriver:AcceptAlert` および `WebDriver:DismissAlert` コマンドの競合を防ぐため、ユーザープロンプトが閉じられるまで待つようになりました (Firefox バグ 1479368)。
* フレームのスクリプトから発生したログが `MarionettePrefs.logLevel` で制限されず、すべて記録される問題を修正しました (Firefox バグ 1482829)。
* 幅または高さが 32767 ピクセルを超えるウィンドウのスクリーンショットを取得するとき、`WebDriver:TakeScreenshot` でエラーが発生する問題を修正しました (Firefox バグ 1485730)。
* 送信したテキストが空文字列である場合に、`WebDriver:SendAlertText` がユーザープロンプトの値を置き換えない問題を修正しました (Firefox バグ 1486485)。
### その他

* `PerformanceObserver.observe()` の動作を、指定したエントリータイプの配列に有効な値が見つからない場合や、配列が空または存在しない場合に、単に何もしないように修正しました。以前は、Firefox は誤って `TypeError` を発生させていました (Firefox バグ 1403027)。
* OpenSearch で、検索 URL の型として `application/json` を、`application/x-suggestions+json` の別名として受け入れるようになりました (Firefox バグ 1425827)。
アドオン開発者向けの変更点
-------------

### API の変更点

#### テーマ

* `browserAction` バッジのデフォルトの文字色が、背景とのコントラストを最大化するため、自動的に黒色か白色に設定されるようになりました (Firefox バグ 1474110)。
* `theme` (en-US) マニフェストキーの `accentcolor` および `textcolor` プロパティが省略可能になりました (Firefox バグ 1413144)。
* `browserAction.getBadgeTextColor()` (en-US) および `browserAction.setBadgeTextColor()` (en-US) で、ブラウザーのアクションバッジの文字色を取得および設定できるようになりました (Firefox バグ 1424620)。
* `manifest.json` のテーマ `colors` キーで、新しいタブの文字色を設定する `ntp_text` プロパティと、新しいタブの色を設定する `ntp_background` プロパティをサポートしました (Firefox バグ 1347204)。
* ブックマークサイドバーなど、サイドバーの色をテーマで定義可能になりました (Firefox バグ 1418602)。関連プロパティ:
    + `sidebar`: サイドバーの背景色。
    + `sidebar_text`: サイドバーの文字色。
    + `sidebar_highlight`: サイドバーで選択したアイテムの背景色。
    + `sidebar_highlight_text`: サイドバーで選択したアイテムの文字色。
* `management.install()` (en-US) メソッドで、ブラウザー拡張機能が署名付きブラウザーテーマをインストールできます (Firefox バグ 1369209)。

#### 検索

* インストール済みの検索エンジンの一覧を取得したり、それらで検索を行ったりすることが可能な、新しい `search` (en-US) API が使用可能になりました (Firefox バグ 1352598)。
* `topSites.get()` (en-US) で、サイトが返すさまざまなリストのオプションを設定可能な `options` 引数をサポートしました (Firefox バグ 1445836)。

#### タブ

* `tabs.onHighlighted` (en-US) で複数選択をサポートしました (Firefox バグ 1474440)。
* `tabs.highlight` (en-US) で、`highlightInfo` オブジェクトに省略可能なフィールドである `populate` を追加しました。既定値は `true` です。`false` に設定するとパフォーマンスを向上させるため、返される `windows.Window` がタブのリストを持たないようになります (Firefox バグ 1489814)。
* `tabs.update` (en-US) で、`updateProperties` 引数内に `highlighted: true` を含むことによる、タブの選択状態の変化をサポートしました (Firefox バグ 1479129)。
* `tabs.update` (en-US) で、`updateProperties` 引数内に `highlighted: true` および `active: false` を含むことにより、フォーカスがあるタブを変えずにタブの選択状態を変更できるようになりました (Firefox バグ 1486050)。
* `tabs.query` で、複数のタブが選択されている場合に `tabs.Tab` オブジェクトの配列を返すようになりました (Firefox バグ 1465170)。
* `tabs.Tab` プロパティが、ブラウザーウィンドウでどのタブが選択 (ハイライト) されているかを適切に反映するようになりました。また `tabs.highlight` (en-US) で、複数のタブのハイライト状態の変化をサポートしました (Firefox バグ 1464862)。
* `tabs.onUpdated` (en-US) に渡される `extraParameters` の `isarticle` プロパティを `isArticle` に改名しました。古い名前は残されていますが、非推奨です。この変更は Firefox 62 に適用されました (Firefox バグ 1461695)。
* `tabs.onUpdated` (en-US) イベントを使用して、`changeInfo` オブジェクトの `attention` プロパティでタブがユーザーの注意を引いていることを検出できます (Firefox バグ 1396684)。

#### メニュー

* `menus` API に `menus.getTargetElement()` (en-US) を追加しました。このメソッドは `targetElementId` 引数が参照する、クリックされた要素を返します (Firefox バグ 1325814)。
* `menus.create()` (en-US) で非表示のメニュー項目を作成できるようになりました。また、`menus.update()` (en-US) で項目の表示・非表示を切り替えられるようになりました (Firefox バグ 1482529)。
* `menus` API を使用して作成した項目でアクセスキーをサポートしました (Firefox バグ 1320462)。
* `menus.create()` (en-US) および `menus.update()` (en-US) の `targetUrlPatterns` 引数で、通常はマッチパターンで許可されないものを含む任意の URL スキームをサポートしました (Firefox バグ 1280370)。
* タブのコンテキストメニューがクリックされたとき、そのタブが現在アクティブなタブではない場合でも "activeTab" パーミッション が認められるようになりました (Firefox バグ 1446956)。

#### その他

* `commands.onCommand` (en-US) が ユーザー入力 (en-US) として扱われるようになりました (Firefox バグ 1408129)。
* `webRequest` API で、投機的接続のフィルターが可能になりました (Firefox バグ 1479565)。
* `webRequest.SecurityInfo` (en-US) に `keaGroupName` および `signatureSchemeName` プロパティを追加しました。この変更は Firefox 62 に適用されました (Firefox バグ 1471959)。
* `cookies.Cookie` が、Cookie の SameSite 状態を示すプロパティを含むようになりました。`cookies.SameSiteStatus` (en-US) 列挙型が SameSite 状態の値を定義します (Firefox バグ 1351663)。
* URL のマッチパターンが、"data" URL スキームへ明白にマッチするようになりました (Firefox バグ 1280370)。
関連情報
----

* Firefox 63.0, See All New Features, Updates and Fixes
過去のバージョン
--------

* 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 34 for developers
* Firefox 33 for developers
* Firefox 32 for developers


Firefox 96 for developers - Mozilla

Firefox 96 for developers
=========================

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

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

### HTML

変更なし。

### CSS

* CSS の色の値 として使用する `hwb()` (en-US) 関数を実装しました。`hwb()` 関数表記は、色相・白さ・黒さで表現した色を表します。省略可能なアルファ値は、色の透明度を表します (Firefox バグ 1352755)。
* Firefox で `color-scheme` プロパティをサポートしました。これは、要素がどの配色で快適に表示できるかを示すことができます。一般的なオプションは "ライト" と "ダーク"、または "昼間モード" と "夜間モード" です (Firefox バグ 1576289)。
* `counter-reset` プロパティで、*逆順の* CSS カウンター を生成する `reversed()` 関数をサポートしました。これは、降順の番号つき要素を意図するものです。
 これは `list-item` カウンターと合わせて、番号つきリストを自動的に、リスト内の要素の数から始まる逆順にするために使用します。
 (`list-item` は `<ol>` を使用して生成したリストのような番号つきリストへ自動的に適用されるカウンターです)。
 Firefox はこの機能を、`<ol>` の `reversed` 属性 をサポートするため内部的に使用しています
 (Firefox バグ 1706346)。
### JavaScript

変更なし。

### HTTP

* 同じドメインであるが異なるスキーム (例えば http と https) で送信された Cookie が、SameSite (en-US) ディレクティブについて別のサイトから送信されたものとみなすようになりました。
 加えて、`SameSite` 属性が指定されていない Cookie は暗黙的に `SameSite=Lax`が指定されたとみなすようになり (以前の既定値は `SameSite=None`)、また `SameSite=None` を指定した Cookie は安全なコンテキストが必要になりました (Firefox バグ 1617609)。
### API

* `navigator.canShare()` を Android でサポートしました。特定のターゲットに対して `navigator.share()` が成功するかをコードから確認できます。
 この機能は、デスクトップオペレーティングシステムでは設定項目で制御されています
 (Firefox バグ 1666203)。
* Web Locks API をデフォルトで有効にしました。複数のタブや worker で実行されている Web アプリが、使用するリソースを調整できます (Firefox バグ 1740044)。

#### Canvas

* WebP 画像形式のエンコーダーをサポートしました。
 canvas 要素が、以下のメソッドを使用して内容物を WebP データとしてエクスポートできます: `HTMLCanvasElement.toDataURL()`、`HTMLCanvasElement.toBlob()`、`OffscreenCanvas.toBlob` (en-US)
 (Firefox バグ 1511670)。

#### DOM

* `IntersectionObserver()` コンストラクターが、関連づけられたパラメーターオプションで空文字列が渡された場合に、例外を発生させるのに代わって既定値 `rootMargin` を設定するようになりました (Firefox バグ 1738791)。

#### Media、WebRTC、Web Audio

* 複数の非推奨な非標準の静的フィールドを WebRTC Statistics API から削除しました。`bitrateMean`、`bitrateStdDev`、`framerateMean`、`framerateStdDev`、`droppedFrames` が含まれます
 (Firefox バグ 1367562)。
### WebDriver conformance (Marionette)

* 指定した要素が持っている shadow root (open または close 状態) を取り出すコマンド `WebDriver:GetElementShadowRoot` を追加しました (Firefox バグ 1700073)。
* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` で、要素の `ShadowRoot` を返そうとしたときに `cyclic object value` のエラーが発生する不具合を修正しました (Firefox バグ 1489490)。
* `WebDriver:Print` を、文書を PDF として出力するときにページの範囲をサポートするように拡張しました (Firefox バグ 1678347)。
アドオン開発者向けの変更点一覧
---------------

* コンテンツスクリプトからグローバルまたは frame 要素のウィンドウのフレーム ID を取得する `runtime.getFrameId` (en-US) を追加しました (Firefox バグ 1733104)。
過去のバージョン
--------

* 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 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 34 for developers - Mozilla

Firefox 34 for developers
=========================

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

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

### 開発者ツール

ハイライト:

* Storage Inspector: Web ページが保存したデータを確認できる新ツール
* Performance tool: プロファイラの UI の改良とフレームレートのタイムライン
* Frame switching: 開発ツールがページ内の特定の iframe を指すようにする
* console.table をサポート (en-US)
* インスペクタで jQuery のイベントの確認が可能

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

### CSS

* CSS Fonts Level 3 の実験的な実装を進めています。以下の機能を新たに実装しました:
    + `font-variant-position` のフォールバックアルゴリズム。フォントから与えられる上付き文字および下付き文字のメトリックを基に、不足しているグリフの代替を生成します (Firefox バグ 1024804)。
    + 設定項目 `layout.css.font-features.enabled` を削除しました。以下のプロパティはデフォルトで有効になります:
        - 短縮プロパティになった、CSS Font Level 3 版の `font-variant`。
        - 個別のプロパティである `font-variant-caps`、`font-variant-numeric`、`font-variant-position`、`font-variant-east-asian`、`font-variant-ligatures`、`font-variant-alternates`。
        - `font-kerning` プロパティおよび `font-synthesis` プロパティ。
        - `font-feature-settings` プロパティおよび `font-language-override` プロパティの接頭辞を削除。接頭辞つきのプロパティも、移行を容易にするためしばらく使用可能です。
* `min-width` および `min-height` に、以前とは異なる動作で値 `auto` を追加しました (Firefox バグ 984711 および Firefox バグ 1015474)。
* `filter` プロパティの関数タイプの値を、実験的に実装しました。ただし、デフォルトで無効です。これは設定項目 `layout.css.filters.enabled` で制御します (Firefox バグ 948265)。
* `display`、`position`、`overflow` および類似のプロパティの変更とともに開始する CSS Transitions の開始処理を修正しました (Firefox バグ 887541)。
### HTML

*変更なし。*

### JavaScript

* ES6 のオブジェクトリテラルにおける computed property names の構文を実装しました (Firefox バグ 924688)。
    + これは getter および setter のメソッド名も同様に含まれており (Firefox バグ 1048384)、また 分割代入と共に使用することもできます。
* ES6 の、オブジェクトのメソッド定義における短縮記法を実装しました (Firefox バグ 924672)。
* ES6 の `Object` のメソッドである `Object.assign()` を実装しました (Firefox バグ 937855)。
* ES6 の template strings および `String.raw()` メソッドをサポートしました (Firefox バグ 1038259、Firefox バグ 1039774)。
* ES6 の新たなオブジェクトである `WeakSet` を実装しました (Firefox バグ 792439)。
* 最近の仕様の変更に合致するよう、ES6 の Symbol (Nightly チャンネルのみ有効) を更新しました (Firefox バグ 1042602):
    + symbol を数値に変換しようとしたときに、`TypeError` が発生するようになりました。
    + 寛容な等価性を使用するとき、`Object(sym) == sym` は `true` を返すようになりました。
* 実験的な実装であった `TypedArray.prototype.move()` メソッド (以前の Nightly および Aurora チャンネルでのみ有効) を、ES6 標準の `TypedArray.prototype.copyWithin()` メソッドの実装で置き換えました (Firefox バグ 1021379)。
* Strict モードで、ES6 の仕様に応じてオブジェクトリテラルでの重複するプロパティ名に対して `SyntaxError` が発生しないようになりました (Firefox バグ 1041128)。
* 正規表現において (`String.replace` を含む)、量指定子が妨げたために捕獲式集合が調査されなかったときのマッチ文字列が、空文字列から `undefined` に変わりました (Firefox バグ 369778 およびサンプルコードを参照)。Web 互換性のため、RegExp.$N は引き続き空文字列を返します (Firefox バグ 1053944)。
* 分割代入で、ES6 の Spread Operatorをサポートしました (Firefox バグ 933276)。
* 分割代入で、配列のような手順に代わりイテレータの手順を使用するようになりました (Firefox バグ 933276)。
* `Proxy.revocable()` を実装しました (Firefox バグ 978279)。
### インターフェイス/API/DOM

* `Element.matches()` メソッドを追加しました。このメソッドの機能は、非標準の `mozMatchesSelector()` と同じです (Firefox バグ 886308)。
* `Performance.now()` メソッドを Web workers で使用可能になりました (Firefox バグ 908390)。
* 非標準の `MozNamedAttrMap` インターフェイスを標準の `NamedNodeMap` に改名しました。また、`Element.attributes` はこれを使用するように改造しました (Firefox バグ 1055467)。
* `Path2D.addPath()` メソッドを追加しました (Firefox バグ 985801)。
* 非標準の Device Storage API を、Android にインストールされた特権アプリ向けにも有効化しました (Firefox バグ 886627)。
* Web Crypto API をデフォルトで有効にしました (Firefox バグ 1074001)。
* `MediaStreamTrack.stop()` メソッドを追加しました (Firefox バグ 1057955)。
* EME の実験的な実装を続けています。`MediaKeySession.getUsableKeyIds()` メソッドを追加しました (Firefox バグ 1057171)。
* WebRTC (en-US) に関する変更点:
    + `RTCPeerConnection` とともに動作する、`RTPSender` および `RTPReceiver` を試験的に実装しました (Firefox バグ 1032835)。
    + `Navigation.getUserMedia()` に、アプリケーションウィンドウの共有機能を追加しました (Firefox バグ 1036653)。また、`MediaTrackConstraintSet` で `browserWindow` および `scrollWithPage` をサポートしました。これは、タブ選択ダイアログを表示せずに共有しなければならないウィンドウの、タブを選択可能にします (Firefox バグ 1041700)。
    + MediaSourceEnum で制限を定義するために使用する値として、`"browser"` をサポートしました (Firefox バグ 1041493)。
* Web Components で、イベントのリターゲティングを実装しました (Firefox バグ 887541)。
* `Headers` インターフェイスを実装しました (Firefox バグ 1029620)。設定項目 `dom.fetch.enabled` で制御されており、初期値は `false` です。
* Web Animations の実験的な実装について、`AnimationEffect` インターフェイスを実装しました。`AnimationEffect.name` プロパティを持ちます (Firefox バグ 1045993)。Web Animations は既定で無効であり、設定項目 `dom.animations-api.core.enabled` で制御しています。
* CSSOM View のスムーズスクロールメソッドを追加しました: `Window.scroll()`、`Window.scrollTo()`、`Window.scrollBy()` (Firefox バグ 1022818)。
* 非標準の `MozSmsSegmentInfo` は、グローバルオブジェクトで不可視になりました (Firefox バグ 916607)。
### MathML

*変更なし。*

### SVG

*変更なし。*

### Audio/Video

*変更なし。*

セキュリティとネットワーク
-------------

* SSLv3 がデフォルトで無効になりました (Firefox バグ 1030963)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

* localstore.rdf を削除しました (Firefox バグ 559505)。
### Add-on SDK

#### ハイライト

* 新規 API: dev/panel で Firefox の開発ツールを拡張できます。
* jpm のベータ版をリリースしました。
* `require("sdk/self").data.url("my-file")` の別名として、`"./my-file"` を全面的に導入しました。
* 個々のタブにスタイルシートを適用する機能を追加しました。

#### 詳細

Firefox 33 から Firefox 34 の間に行われた GitHub コミット。この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。

Firefox 33 から Firefox 34 の間に解決したバグ. この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。

関連情報
----

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

* 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 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 67 for developers - Mozilla

Firefox 67 for developers
=========================

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

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

### 開発者ツール

* デバッガーの更新:
    + カラムブレークポイント で、デバッガーに一時停止させたい行の特定の箇所 (またはカラム) を選択できます (Firefox バグ 1528417)。
    + ログポイント (en-US) で、コードの実行を一時停止したりコードを変更することなく、実行中に特定の情報をコンソールに記録できます。
    + マップスコープ機能 (en-US) で、元のソースの編集を表示できます。
    + デバッガーで、worker (en-US) のスレッドを直接デバッグできます。
* ウェブコンソール の更新:
    + キーボードを使用して、コンソールの詳細情報を移動できます (Firefox バグ 1424159)。
    + macOS では Cmd + K で、コンソールの内容を消去するようになりました (Firefox バグ 1532939)。
    + ユーザーがコンソールの出力を消去するとき、エラーメッセージのキャッシュも消去するようになりました (Firefox バグ 717611)。
    + import を使用して、既存のモジュールを現在のページにインポートできるようになりました (Firefox バグ 1517546)。
    + ユーザーが **リンクの場所をコピー** できるコマンドを、コンテキストメニューに追加しました (Firefox バグ 1457111)。
    + コンソール内のリンクをクリックしたときの動作が、content ウィンドウの場合と同じになりました (Firefox バグ 1466040)。
    + コンソールでコードファイルへのリンクをクリックすると、デバッガーが把握しているファイルであればデバッガーに移動するようになりました (Firefox バグ 1447244)。
    + ユーザーがコンソールの内容をフィルタリングしたとき、フィルターをクリアするアイコンをテキストボックスに表示するようになりました (Firefox バグ 1525821)。
* ネットワークモニター の改良:
    + ネットワークモニターの ヘッダー パネルで、既知のトラッカーに関するリソースの通知を表示するようになりました (Firefox バグ 1485416)。
    + ネットワークモニターの 要求の列 で、表示する列や列の並べ替えを制御できます。このコンテキストメニューに、リストの並べ替えをリセットするコマンドを追加しました (Firefox バグ 1454962)。
    + ネットワークモニターで、作業しやすいように 列の幅を変更する ことが可能になりました (Firefox バグ 1358414)。

#### 廃止

* 以下の開発ツールのパネルを削除しました (詳しくは Deprecated tools をご覧ください):
    + Canvas デバッガー (Firefox バグ 1403938)
    + シェーダーエディター (Firefox バグ 1342237)
    + WebAudio エディター(Firefox バグ 1403944)
* 以下の開発ツールのパネルを非推奨にしました (詳しくは Deprecated tools をご覧ください):
    + WebIDE (Firefox バグ 1539462)
    + Connect... ページ (Firefox バグ 1539462)
### HTML

* `autocomplete="new-password"` を設定した `<input>` 要素は、過去に保存したパスワードのオートコンプリートを行わないようになりました (Firefox バグ 1119063)。
### CSS

* `revert` キーワードを実装しました (Firefox バグ 1215878)。
* `word-break` プロパティの値 `break-word` をサポートしました (Firefox バグ 1296042)。
* `prefers-color-scheme` メディア特性をサポートしました (Firefox バグ 1494034)。
* 巨大なカーソルを使用するマルウェアの可能性を軽減するため、サイズが 32px より大きい独自 `cursor` は許可しません (Firefox バグ 1445844)。

#### 廃止

* 独自仕様である `-moz-binding` プロパティを、chrome およびユーザーエージェントのスタイルシートしか使用できないように制限しました (Firefox バグ 1523712)。
### SVG

*変更なし。*

### JavaScript

* `String.prototype.matchAll` を実装して、デフォルトで有効にしました (Firefox バグ 1435829、Firefox バグ 1531830)。
* 動的なモジュールの `import()` の提案のサポートを、デフォルトで有効にしました (Firefox バグ 1517546)。
* シバン構文 の提案を実装しました (Firefox バグ 1519097)。
### API

#### DOM

* `Response.statusText` の既定値が `""` になりました (Firefox バグ 1508996)。
* `Document.requestStorageAccess` で、拒否される呼び出しに対するユーザーの行動も、許可される場合と同様に保存するようになりました (Firefox バグ 1522912)。

#### DOM イベント

* CSS トランジション (Firefox バグ 1530239) およびアニメーション (Firefox バグ 1531605) のイベントが、無効な要素 (例えば form) でも発生するようになりました。
* `InputEvent.data` および `InputEvent.dataTransfer` を実装しました (Firefox バグ 998941)。
* `InputEvent.inputType` の値 `insertFromPasteAsQuotation` をサポートしました (Firefox バグ 1532527)。

#### Workers/Service workers

* `WorkerGlobalScope.importScripts()` でインポートしたスクリプトで、厳密な MIME type の確認を強制するようになりました (Firefox バグ 1514680)。

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

* The AV1 動画コーデック を Linux でサポートしました。
* dav1d が AV1 の既定のメディアデコーダーになりました (Firefox バグ 1533742 および Firefox バグ 1535038 をご覧ください)。
* 新しいトラックを追加するためストリームを指定せずに `RTCPeerConnection.addTrack()` (en-US) を呼び出したとき、予期するとおりに動作するようになりました。ストリームがないトラックをコネクションに追加します。それぞれのピアは、トラックとストリームの関係を管理する責任を持ちます (Firefox バグ 1231414)。
* `MediaDeviceInfo.groupId` プロパティを実装しました (Firefox バグ 1213453)。これは Firefox 39 から存在していましたが、実際は関連するデバイスを同じグループ ID に集めていませんでした。
* `RTCIceCandidate.usernameFragment` (en-US) プロパティを実装しました (Firefox バグ 1490658)。
* `VTTCue` オブジェクトの `positionAlign` プロパティで `center` ではなく `auto` を既定値として使用するように、WebVTT を修正しました。キューボックスの配置が、内部のテキストの配置に合うようになります (Firefox バグ 1528420)。

#### Canvas と WebGL

* `EXT_float_blend` (en-US) WebGL 拡張をデフォルトで有効にしました (Firefox バグ 1535808)。

#### 廃止

* 非推奨の `ShadowRoot.getElementsByTagName`、`ShadowRoot.getElementsByTagNameNS`、`ShadowRoot.getElementsByClassName` プロパティ (Shadow DOM v0 の一部) を削除しました (Firefox バグ 1535438)。
* モバイル端末を検出するためにタッチ機能のサポート状況を使用するウェブサイトとの互換性を向上するため、デスクトップ版で `document.createEvent("TouchEvent")`、`document.createTouch()`、`document.createTouchList()`、および `ontouch*` イベントハンドラープロパティを無効にしました (Firefox バグ 1412485)。このような場合は、タッチスクリーンを持つラップトップ PC でウェブサイトが誤った、または予期せぬ動作をしていました。
### セキュリティ

* Notifications が 安全なコンテキスト に限り使用可能になりました (Firefox バグ 1429432)。
* `<iframe>` で、外部プロトコル URL の読み込みをブロックするようになりました (Firefox バグ 1527882)。
### WebDriver conformance (Marionette)

#### API の変更点

* `WebDriver:SendAlertText` が WebDriver 仕様書 に適合しました (Firefox バグ 1502360)。

#### バグ修正

* プラットフォーム間の `focus` 関係の不一致を理由として、`WebDriver:NewWindow` がタイムアウトしないようになりました (Firefox バグ 1523234)。

#### その他

* `WebDriver:ExecuteScript` および `WebDriver:ExecuteAsyncScript` が内部で `Promises` を使用するようになりました (Firefox バグ 1398095)。
* `WebDriver:NewSession` が、機能オブジェクトの一部として Firefox の `BuildID` 文字列を返すようになりました (Firefox バグ 1525829)。
アドオン開発者向けの変更点
-------------

### API の変更点

* ``BrowserSetting` (en-US)` の値を変更するために `proxy.settings.set()` メソッドを使用すると、拡張機能がユーザーからプライベートウィンドウへのアクセスを許可されている場合を除いて、例外が発生するようになりました (Firefox バグ 1525447)。
### マニフェストの変更点

* プライベートブラウジングのウィンドウやタブにおける拡張機能の動作を定義する、incognito マニフェストキーを追加しました (Firefox バグ 1511636)。
* `toolbar_field_highlight` で、URL バーで現在選択されている文字列を示すために使用する背景色を設定できます (Firefox バグ 1450114)。
* `toolbar_field_highlight_text` で、URL バーで現在選択されている文字列を示すために使用する文字色を設定できます (Firefox バグ 1450114)。
関連情報
----

* Firefox 67.0 Release Notes
過去のバージョン
--------

* 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 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers


Firefox 5 for developers - Mozilla

Firefox 5 for developers
========================

Firefox 5 は Gecko 5.0 ベースのブラウザで、2011 年 6 月 21 日にリリースされました。このページは Firefox 5 のリリースにあたり、開発者に影響する変更について情報をまとめたものです。

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

### HTML

* すべての HTML 要素が `accessKey` 属性を持つようになりました。また、`blur()`, `click()`, `focus()` メソッドもすべての要素に定義されました。これらの属性やメソッドは `HTMLElement` に定義されています。
* HTML5 仕様への準拠により、文字エンコーディング UTF-7 と UTF-32 のサポートが削除されました。
* Quirks モードにおいて、空の `<map>` がマッチされず、空でない `<map>` にスキップしてしまう問題が修正されました。詳細は `<map>` 要素のページにある Gecko の実装に関する注意書き (en-US) をご覧ください。
* Android 版 Firefox mobile が `@font-face` で WOFF を利用できるようになりました。
* セキュリティ対策により、WebGL で もとのドメイン外からのテクスチャが読み込まれなくなりました。将来的に HTTP access control のサポートが行われ、セキュリティを確保したかたちでクロステクスチャが実現できるでしょう。

#### Canvas の修正

* `<canvas>` 2D コンテキストの `createImageData()` メソッドに `ImageData` オブジェクト指定できるようになりました。このメソッドは指定したオブジェクトと同じ大きさの 新しい `ImageData` オブジェクトを作成 (en-US) しますが、すべてのピクセルが透明な黒で描画されます。これは実装されたと書かれていたのですが、そうではありませんでした。
* `CanvasGradient` の `addColorStop()` メソッドの呼び出しで非有限なカラーストップが指定された際、`INDEX_SIZE_ERR` が適切に投げられるようになりました (これまでは `SYNTAX_ERR` が投げられていました)。
* `HTMLCanvasElement` の `toDataURL()` メソッド実装が修正され、指定した MIME 型をマッチングの前に小文字に変換するようになりました。
* `getImageData()` が修正され、canvas の境界を超えた矩形を受け入れるようになりました。canvas 外にあるピクセルは透明な黒として返されます。
* `drawImage()` と `createImageData()` が仕様に準拠し、負の引数を処理するようになりました。この処理は、適切な軸にそって矩形を反転させます。**We need an article about CSS sizing and how this works.**
* `createImageData()` の呼び出しで非有限な値が指定された際、`NOT_SUPPORTED_ERR` が適切に投げられるようになりました。
* 1px より小さな矩形が指定された際、`createImageData()` と `getImageData()` は適切に 1px 相当の ImageData を返すようになりました。
* `createRadialGradient()` の半径に負の値を指定した際、`INDEX_SIZE_ERR` が適切に投げられるようになりました。
* `createPattern()` や `drawImage()` の呼び出しで、画像に `null` や `undefined` が指定された際、`TYPE_MISMATCH_ERR` が適切に投げられるようになりました。
* `globalAlpha` に不正な値が指定されても `SYNTAX_ERR` が投げられないようになりました。このような場合は適切にただ無視されます。
* `translate()`, `transform()`, `rect()`, `clearRect()`, `fillRect()`, `strokeRect()`, `lineTo()`, `moveTo()`, `quadraticCurveTo()`, `arc()` に不正な値が指定されても例外が投げられないようになりました。このような場合は適切にただ無視されます。
* `shadowOffsetX`, `shadowOffsetY`, `shadowBlur` に不正な値が指定された際、それらはただ無視されるようになりました。
* `rotate`, `scale` に不正な値が指定された際、それらはただ無視されるようになりました。
### CSS

CSS Animations

CSS Animations がサポートされました。`-moz-` 接頭辞をつければ利用可能です。

### DOM

* `selection` オブジェクトの `modify()` (en-US) メソッドが変更され、単語の選択で単語の後にある空白を含まなくなりました。この変更はプラットフォームごとの一貫性を向上させ、また WebKit の挙動とも一致します。
* アクティブでないタブにおいて `window.setTimeout()` メソッドのタイムアウトが 1 秒に 1 回 を超えないようになりました。また、入れ子のタイムアウトが HTML5 仕様で定められた最小値 4ms になりました (これまでは 10ms でした)。
* 上記と同様に、アクティブでないタブにおける `window.setInterval()` も 1 秒に 1 回以下になりました。
* `XMLHttpRequest` が `loadend` イベントをサポート for progress listeners. このイベントはすべての転送が終了した際 (つまり、`abort`, `error`, `load` イベントの後) に発生します。このイベントを利用すると、転送の成功・失敗に関わらず実行されるタスクを処理できます。
* `Blob` オブジェクトと `File` オブジェクトの `slice()` メソッドが削除され、代わりに提案中のメソッドに置き換えられました。提案中のメソッドは JavaScript の `Array.slice()`, `String.slice()` メソッドにより近いものです。現時点では `mozSlice()` という名前がつけられています。
* `window.navigator.language` の値が `Accept-Language` HTTP ヘッダ の値から決定されるようになりました。
* DOM 仕様の要件により、`Node.prefix` プロパティが readonly になりました。
### JavaScript

* 正規表現を関数のように呼び出せなくなりました。この変更は WebKit チームと互換性の確保について話し合った結果行われたものです。(WebKit bug 28285 をお読みください。この機能は長いこと存在していたものの、少なくとも MDC ではドキュメント化されていませんでした。)
* `Function.prototype.isGenerator()` メソッドがサポートされました。個のメソッドによってある関数が generator であるかを調べられます。
* chrome コード内に生成された DOM 文書が sandbox 内のスクリプトに現れなくなりました。
* 予約語 `class`, `enum`, `export`, `extends`, `import`, `super` はこれまで Strict Mode のみで予約されていましたが、Strict Mode ではない通常のモードでも予約語扱いになりました。
* JSON パーサが書き直され、スピードと準拠度が向上しました。この書き直しには Firefox バグ 572279 の修正も含まれています。
### SVG

* `class (en-US)` SVG アトリビュートを動的に変化させられるようになりました。
* `SVGLengthList` (en-US), `SVGNumberList` (en-US), `SVGPathSegList`, `SVGPointList` (en-US) など、オブジェクトのリストを表す SVG DOM インターフェースがインデックスされ、配列のようにアクセス可能となりました。加えて、リスト中の項目数を表す `length` も持ちます。
### HTTP

* Firefox は `Keep-Alive` HTTP ヘッダを送信しないようになります。私たちはこのヘッダを正しく整形していませんでした。また、`Connection` や `Proxy-Connection` ヘッダに "keep-alive" を指定していたため重複しており、意味がなかったのです。
* HTTP のトランザクションモデルを変更し、持続的接続プール内の接続を再利用するというより高度なものになりました。Necko はプールを FIFO と扱うのではなく、プール内の接続を congestion window (CWND) の大きい順に並べ替えます。Window のサイズ拡大を避けることで、多くのケースで HTTP トランザクションの確認応答時間 (RTT) を減少させることができるでしょう。
* Firefox は `Content-Disposition` HTTP レスポンスヘッダについて、`filename`, `filename*` パラメタがどちらも与えられている場合にそれらをより効果的に処理するようになりました。これは `filename` が先に与えられている場合でも `filename*` をまず調べすべての名前を読み取ることで実現しています。これまでは最初にマッチしたパラメタが使われており、後により適切な名前が与えられていた場合でもそれが使われなかったのです。詳細は Firefox バグ 588781 をお読みください。
### MathML

* embellished operators がサポートされました。
### 開発者ツール

* Web コンソールの `Console` オブジェクト に `debug()` メソッドが導入されました。これは `log()` のエイリアスで、導入によっていくつかの Web サイトとの互換性が向上します。
アドオン開発者向けの変更点一覧
---------------

すでに開発済みのアドオンを Firefox 5 向けにアップデートを行う方法については Firefox 5 へのアドオンのアップデート方法をご覧ください。

**メモ:** Firefox 5 は他のメジャーリリース版の Firefox と同様に、再コンパイルされたバイナリコンポーネントが必要となります。詳しくはバイナリインターフェースをご覧ください。

### JavaScript コードモジュールに対する変更点

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

* `Dict.jsm`コードモジュールが追加されました。このモジュールはキーと値のペアの辞書に対する API を提供します。

#### NetUtil.jsm

* `asyncFetch()` メソッドは今回から`nsIInputStream` として入力ソースの特定をサポートします。
### インターフェースの変更点

* `nsIHttpChannelInternal` インターフェースはチャネルの端点のアドレスとポートの情報にアクセスする新しい属性を持っています。この情報は主にデバッグに用いることができます。
* `<canvas>` エレメントの `width` と `height` 属性は今回から符号付き整数から符合なし整数に変わり、IDL におけるリフレクトを行います（`HTMLCanvasElement` (en-US) をご覧ください）。
* `nsIAppStartup2` と `nsIAppStartup_MOZILLA_2_0` インターフェースは`nsIAppStartup` インターフェースに統合されました。
* `nsIDocShell_MOZILLA_2_0_BRANCH は` `nsIDocShell` インターフェースに統合されました。
* `nsIFocusManager_MOZILLA_2_0_BRANCH` インターフェースは `nsIFocusManager` インターフェースに統合されました。
* `nsIHTMLEditor_MOZILLA_2_0_BRANCH` インターフェースは `nsIHTMLEditor` インターフェースに統合されました。

#### 新しいインターフェース

* `nsIDOMAnimationEvent` が追加されました。 `AnimationEvent`

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

次にあげるインターフェースはもはや必要がないと判断されました。

* `nsICiter` （Firefox バグ 633066 をご覧ください）
* `nsIDOM3Document` （Firefox バグ 639849 をご覧ください。）
* `nsIFIXptrEvaluator`
* `nsISelectElement` （Firefox バグ 619996 をご覧ください。）
### デバッグの補助

* 新しい `DebugOnly<T>` ヘルパーはデバッグモードにおけるビルドにおいてのみ変数の定義を可能にしました。
### JavaScript API (SpiderMonkey)

* `jsdouble` の値を C の符号付き整数型と符合なし整数型に変換するために `JS_DoubleToInt32()` と `JS_DoubleToUint32()` が追加されました。
### ビルドシステムの変更点

* `mozconfig` ファイルがなくても Firefox をビルドできるようになり、 `--enable-application` setting (en-US) が "browser" のデフォルトになりました。コードをダウンロード後、`configure && make` (or `make -f client.mk`) を行うだけで Firefox をビルドできます。
参考
--

* Firefox 5 の後方互換性に関わる修正のまとめ
* 高速リリースサイクルに関するよくある質問

* 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 106 for developers - Mozilla

Firefox 106 for developers
==========================

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

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

### HTML

* `<source>` 要素が、`<picture>` 要素の子要素であるときに `height` および `width` 属性をサポートするようになりました。
 これは、`dom.picture_source_dimension_attributes.enabled` の 設定 を使用して有効にする実験的機能です (Firefox バグ 1694741)。

#### 廃止

### MathML

* MathML の `<semantics>` および `<maction>` (en-US) 要素が、デフォルトで最初の子要素のみ表示するようになりました (Firefox バグ 1588733)。
### CSS

* @supports アットルールで `font-tech()` および `font-format()` 関数をサポートしました。
 これらの関数で、指定したフォント技術やフォント形式をブラウザーがサポートしているかを確認できます。また、確認結果に基づいて CSS スタイルを適用できます (Firefox バグ 1786493)。

#### 廃止

### JavaScript

#### 廃止

### HTTP

#### 廃止

### セキュリティ

#### 廃止

### API

#### DOM

* `HTMLMetaElement.media` プロパティをサポートしました。このプロパティは、`media` の値 (例: `max-width: 600px`) に応じてさまざまなテーマカラーを設定できます。
 `media` プロパティを持つ meta 要素を使用すると、ブラウザーは指定したメディアクエリー向けのページまたは UI の色を設定するために、`theme-color` と合わせて `content` の値を使用できます (Firefox バグ 1706179)。

#### Media、WebRTC、Web Audio

#### 廃止

### WebAssembly

#### 廃止

### WebDriver conformance (WebDriver BiDi, Marionette)

#### WebDriver BiDi

* `script.getRealms` の基本的なサポートを追加しました。現在は、window レルムと sandbox レルムを含む `WindowRealmInfo` 型に限定されています (Firefox バグ 1766240)。
* `browsingContext.load` イベントをサポートしました。これは、ブラウジングコンテキストのウィンドウの `load` イベントをきっかけにして発生します (Firefox バグ 1756619)。
* シリアライズしたリモートの値向けの強い参照を保持するための、オブジェクト参照ストアを追加しました (Firefox バグ 1770736)。
* オブジェクト参照ストアで作成したリモート参照のデシリアライズをサポートしました (Firefox バグ 1788124)。
* `script.evaluate`、`script.callFunction`、`script.disown` コマンドを完全サポートしました (Firefox バグ 1778976)。

#### Marionette

* Actions 向けに `wheel` 入力ソースをサポートしました。これはホイールタイプの入力デバイスに関連づけられます (Firefox バグ 1746601)。
* GeckoView ベースのアプリケーション (例: Android 版 Firefox) のタブを開くおよび閉じる操作をサポートしました (Firefox バグ 1506782)。
アドオン開発者向けの変更点一覧
---------------

* `"background"` マニフェストキーの `"persistent"` プロパティを `false` に設定することが、Manifest V2 において (バックグラウンドページを非永続化するため) デフォルトで可能になりました。
* `"content_security_policy"` マニフェストキーの `object-src` ディレクティブが省略可能になりました (Firefox バグ 1766881)。詳しくは `"content_security_policy"` のページで object-src ディレクティブ をご覧ください。
### 廃止

### その他

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

* 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 75 for developers


Firefox 56 for developers - Mozilla

Firefox 56 for developers
=========================

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

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

### 開発者ツール

* CSS グリッドインスペクターで負の行数を表示するようになりました (Firefox バグ 1369942)。
* 新しい CSS グリッドレイアウトパネルが使用可能になり、CSS グリッドのデバッグの容易さが向上しました (Firefox バグ 1181227)。詳しくは Powerful New Additions to the CSS Grid Inspector in Firefox Nightly をご覧ください。
### HTML

* ラベル付け可能なフォームコントロールに `labels` プロパティを実装しました。例えば `HTMLInputElement.labels` です (Firefox バグ 556743)。
* `<link rel="preload">` を実装しました。詳しくは リンク種別: preload をご覧ください (Firefox バグ 1222633)。現在は Firefox だけがキャッシュ可能なリソースの先読みに対応していることに注意してください。
### CSS

* Mozilla の独自仕様である `<color>` 値 `-moz-win-accentcolor` と `-moz-win-accentcolortext` (Firefox バグ 1344910)、および独自仕様のメディアクエリーである `-moz-windows-accent-color-in-titlebar` を実装しました (Firefox バグ 1379938)。
### SVG

*変更なし。*

### JavaScript

* Intl API を、Android 版 Firefox で有効化しました (Firefox バグ 1344625)。
### API

#### 新規 API

*変更なし。*

#### DOM

* Mac で別の半透明ではないアプリケーションの背後にウィンドウがあるとき、`Document.hidden` が true を返すようになりました (Firefox バグ 1236512)。
* `Gamepad.displayId` プロパティを実装しました (Firefox バグ 1375816)。
* `PerformanceTiming.secureConnectionStart` (en-US) プロパティを実装しました (Firefox バグ 772589)。
* Firefox は `iso-2022-jp` の `TextDecoder()` がインスタンス化されたときに黙って `iso-2022-jp-2` シーケンスを受け入れていました。しかし他のブラウザーはこれに対応しておらず、またこれを使用するページもないようですので、API を単純化するためにこの動作を削除しました (Firefox バグ 715833)。
* `setTimeout()` および `setInterval()` の 4ms 制限の動作を、Timeouts throttled to >=4ms で説明しているとおり、他のブラウザーに合わせるよう更新しました (Firefox バグ 1378586)。
* ページ可視性 API の `Document.onvisibilitychange` (en-US) ハンドラーを追加しました (Firefox バグ 1333912)。
* `Window.showModalDialog()` メソッドを削除しました (Firefox バグ 981796)。
* `HTMLFormElement.action`、`HTMLInputElement.formAction`、`HTMLButtonElement.formAction` プロパティの実装を、仕様書に従って正しい形式のサブミッション URL を返すように変更しました (Firefox バグ 1366361)。

#### DOM イベント

* `onwheel` が `HTMLElement` で使用可能になりました。以前は使用不可でした (Firefox バグ 1370550)。

#### メディアと WebRTC

* 設定変更の管理を支援するため、接続のローカル側およびリモート側の現行および未実行の構成を調査することが可能な `RTCPeerConnection` のプロパティを Firefox でサポートしました: `currentLocalDescription` (en-US)、`pendingLocalDescription` (en-US)、`currentRemoteDescription` (en-US)、`pendingRemoteDescription` (en-US)。
* Android で、メディアのハードウェアエンコーディングを既定で有効化しました。Firefox 55 でも使用可能でしたが、デフォルトで無効でした (Firefox バグ 1386974)。VP8 メディアのエンコードをサポートするデバイスでは、高効率なエンコーディングが可能になります。これはユーザーのデバイスのバッテリーやプロセッサーの消費を節約して、一般的にパフォーマンスが向上します。

#### Canvas と WebGL

* `CanvasRenderingContext2D.drawImage()` メソッドを、`imageSmoothingEnabled` が `false` であってもダウンスケーリングする際にスムージングを行うよう更新しました。これは仕様書では必須にされていませんが、Chrome の動作に合わせています。Firefox バグ 1360415 をご覧ください。
* `SVGImageElement` (en-US) を `CanvasImageSource` (en-US) として使用可能になりました。例えば `drawImage()` を呼び出すときに画像リソースとして使用できます (Firefox バグ 1382027)。
### セキュリティ

*変更なし。*

### プラグイン

* Android 版 Firefox で、すべてのプラグインのサポートを廃止しました (bug 1381916)。
### その他

* URL エンコーディングの問題を避けるため、Gecko は URL を内部で punycode としてエンコードするようになりました (Firefox バグ 945240 および Firefox バグ 942074 の議論を参照)。
* Windows および macOS 版の Firefox で、`-headless` フラグを使用して ヘッドレスモード で実行することが可能になりました (Firefox バグ 1355150 および Firefox バグ 1355147)。
ウェブプラットフォームから廃止
---------------

### HTML

* `<isindex>` 要素を HTML パーサーおよびフォーム送信から削除しました(Firefox バグ 1266495)。
* `<applet>` 要素を削除しました (Firefox バグ 1279218)。
### API

*変更なし。*

### SVG

*変更なし。*

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

### WebExtensions

* browsingData.RemovalOptions (en-US) に、Cookie のための "hostnames" オプションを追加しました。
* browsingData.settings() (en-US) および browsingData.removeCookies() (en-US) を、Android 版 Firefox でサポートしました。
* browserSettings.cacheEnabled (en-US) をサポートしました。
* browser\_style (en-US) の使用方法を変更しました。
* chrome\_settings\_overrides.search\_provider.is\_default をサポートしました。
* contextMenus を menus に改名しました。
* cookies.set() (en-US) および cookies.remove() (en-US) がプライベートブラウジングモードで動作するようになりました。
* devtools.panels.elements.onSelectionChanged (en-US) をサポートしました。
* downloads.open() (en-US) が、ユーザーアクションから呼び出すことのみ可能になりました。
* FindProxyForURL の戻り値 "DIRECT" が、引数をとらないようになりました。
* history.onVisited (en-US) が、既知の場合に限ってページのタイトルを持つようになりました。
* management.get() (en-US) および management.getAll() (en-US) をサポートしました。
* menus で "tools\_menu" コンテキストをサポートしました。
* menus.OnClickData (en-US) が "linkText" を持つようになりました。
* menus.create() (en-US) が "icons" オプションを持つようになりました。
* notifications.onShown (en-US) をサポートしました。
* pageAction.show() (en-US) および pageAction.hide() (en-US) を、Android 版 Firefox でサポートしました。
* permissions で "unlimitedStorage" をサポートしました。
* privacy.services (en-US) が passwordSavingEnabled プロパティを持つようになりました。
* privacy.websites.referrersEnabled (en-US) をサポートしました。
* protocol\_handlers で "gopher" をサポートしました。
* proxy.registerProxyScript() を proxy.register() (en-US) に改名しました。
* proxy.unregister() (en-US) をサポートしました。
* runtime.onInstalled で `temporary` フラグをサポートしました。
* tabs.print() (en-US)、tabs.PageSettings (en-US)、tabs.printPreview() (en-US)、tabs.saveAsPDF() (en-US) をサポートしました。
* tabs.Tab.lastAccessed をサポートしました。
* theme.reset() (en-US) をサポートしました。
* windows.create() (en-US) および windows.update() (en-US) で、ウィンドウの初期タイトルをサポートしました。
過去のバージョン
--------

* 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 25 for developers


Firefox 3 における SVG の改良 - Mozilla

Firefox 3 における SVG の改良
======================

Firefox 3 では、以前のバージョンの Firefox よりも改善された Scalable Vector Graphics (SVG) サポートが追加されました。これらの機能は、別の場所で文書化されていますが、この記事は、便利な一覧を提供することで、どの機能が Firefox 3 で追加されたのかを判別しやすくします。

* `foreignObject` 要素のサポート (Firefox バグ 326966、仕様、参考
* `pattern` 要素のサポート (仕様)
* `mask` 要素のサポート (仕様)
* SVG フィルタのサポート (仕様)
    + `filter`
    + `feDistantLight`
    + `fePointLight`
    + `feSpotLight`
    + `feBlend`
    + `feColorMatrix`
    + `feConvolveMatrix`
    + `feComponentTransfer`, `feFuncR`, `feFuncG`, `feFuncB`, `feFuncA`
    + `feComposite`
    + `feConvolveMatrix`
    + `feDiffuseLighting`
    + `feDisplacementMap`
    + `feDistantLight`
    + `feFlood`
    + `feGaussianBlur`
    + `feImage`
    + `feMerge`, `feMergeNode`
    + `feMorphology`
    + `feOffset`
    + `fePointLight`
    + `feSpecularLighting`
    + `feTurbulence`
    + `feTile`
* `<a>` element handling in SVG has had several bugs fixed; see Firefox バグ 267664, Firefox バグ 268135, Firefox バグ 316248, Firefox バグ 317270 and Firefox バグ 320724.
* The SVG DOM Methods `getNumberOfChars()`, `getComputedTextLength()`, `getSubStringLength()`, `getStartPositionOfChar()`, `getEndPositionOfChar()`, `getRotationOfChar()`, and `getCharNumAtPosition()` have been implemented.
* `xml:space` 属性の実装 (仕様)
* fallback `fill`/`stroke` are now supported (spec)
* `em` and `ex` units are now supported for indicating lengths (Firefox バグ 305859).
関連情報
----

* SVG
* Firefox での SVG
* Firefox 3 for developers


Firefox 3 のためのウェブアプリケーションの更新 - Mozilla

Firefox 3 のためのウェブアプリケーションの更新
============================

来たる Firefox 3 では、あなたが利用したいであろう新機能と同様に、ウェブサイトやウェブアプリケーションに影響するであろう多くの変更が施されています。この記事は Firefox 3 を最大限活用するためにあなたのコンテンツを更新する作業の出発点となるでしょう。

DOM の変更
-------

外部の文書から移入したノードは、現在の文書に挿入する前に `document.importNode()` を使ってクローンを作る (あるいは `document.adoptNode()` を使って取り込む) べきです。`Node.ownerDocument` 問題の詳細については W3C DOM FAQ を参照してください。

Firefox では現在このルールを強制していません。Firefox 3 の開発中には強制していた時期もありましたが、このルールを強制すると多くのサイトが機能しなくなってしまうため取りやめになりました。将来的な互換性を高めるため、ウェブ開発者にはこのルールに従ってコードを修正することを推奨します。

HTML の変更
--------

### 文字セット継承に対する変更

Firefox 3 では、frame や iframe が親の文字セットを継承できてしまうセキュリティ上のバグが修正されています。これにより、場合によっては問題が起こる可能性があります。フレームが親の文字セットを継承できるのは、フレームと親がともに同じサーバーから読み込まれている場合に限られます。もしあなたのページが、他のサーバーから読み込まれたフレームが同じ文字セットを継承することを前提に作られているなら、フレームの HTML を更新して文字セットを明確に指定するべきです。

### SCRIPT 要素に対する変更

`text/html` 文書における `<script>` 要素は、たとえ 間に内容を含めなくても、HTML 4 文書における閉じタグである `</script>` を必要とするようになりました。以前のバージョンの Firefox では、以下のようにすることが可能でした。

```html
<script … />
```

マークアップは HTML の仕様に従わなければならず (それが実際に HTML である場合)、以下のように実際に閉じなければならなくなりました。

```html
<script …></script>
```

これは互換性とセキュリティの両方を改善します。

CSS の変更
-------

### em、ex 単位に基づいた font-size に対する変更

em、ex 単位での font-size の値はユーザの最小フォントサイズ設定の影響を受けていました。例えば、フォントが最小フォントサイズより大きく表示されるなら、em と ex 単位で font-size を指定されたフォントは最小フォントサイズ設定に従って拡大されるでしょう。これは割合に基づいたフォントサイズの振る舞いと矛盾していました。

em 及び ex 単位での font-size の値は、ユーザの最小フォントサイズの影響を受けることなく、"意図されたフォントサイズ" に基づくようになりました。言い換えれば、フォントサイズは常にデザイナーの意図に従って計算され、その後に最小フォントサイズのための調整が行われるようになったということです。

Firefox バグ 434718、特にその 添付ファイル 322943 をデモとしてを参照してください (違いを見るためには、最小フォントサイズ >= 6 で見る必要があります)。 (これはバグテンプレートについて言っているのではありません。このリンクは Bugzilla のバグではなく、Bugzilla の添付ファイルを指しています。添付ファイルの番号をバグ番号として使用すると、意味を成しません。) Firefox 2 では、em ベースのフォントサイズが最小フォントサイズに「跳ね返る」ため、2 つのボックスカスケードの動作が異なります)。

セキュリティに関する変更
------------

### クロームへのアクセス

Firefox のこれまでのバージョンでは、ウェブページは `chrome://` プロトコルを使ってクロームからスクリプトや画像を読み込むことが可能でした。特に、このような仕様によって、アドオンがインストールされているかどうかをサイトが判別することが可能でした。これは、ブラウザーにセキュリティ機能を追加するアドオンを回避して、ユーザのセキュリティを侵害するのに利用される恐れがありました。

Firefox 3 では、ウェブコンテンツは `chrome://browser/` および `chrome://toolkit/` 以下にあるコンテンツに限ってアクセスできます。これらのファイルはウェブコンテンツからアクセスされることを意図したものです。他のクロームコンテンツはすべて、ウェブからのアクセスが禁止されます。

ただし、拡張機能が、内部のコンテンツをウェブからアクセス可能にする方法があります。その方法とは、以下のように、`chrome.manifest` ファイルに特別なフラグを指定することです。
```

content mypackage location/ contentaccessible=yes
```

これは頻繁に必要となるものではありませんが、ウェブからのアクセスが必要な、まれなケースのために用意されています。Firefox はユーザに拡張が `contentaccessible` フラグをこのような方法で用いることで潜在的セキュリティリスクになることを警告するかもしれないことに注意してください。

**メモ:** Firefox 2 では `contentaccessible` フラグが認識されない (フラグを含む行全体が無視されてしまう) ことから、アドオンを Firefox 2 と Firefox 3 の両方に対応させたい場合は、以下のように指定します。```
 content mypackage location/
 content mypackage location/ contentaccessible=yes

### ファイルアップロードフィールド

Firefox のこれまでのバージョンでは、ユーザがファイルをアップロードするために送信する際、そのファイルのフルパスがウェブアプリケーションに公開されてしまう場合がありました。このプライバシーの懸念は、Firefox 3 で、ファイル名のみをウェブアプリケーションに公開するよう仕様を変更することで解決されました。

### フレーム内でのリモート JAR の使用

他のドメインから読み込んだ JAR ファイル内のコードの使用は、フレーム内では許可されなくなりました。これによって潜在的な攻撃ベクトルを軽減することができます。

### file: URI の同一オリジンポリシーの変更

file: URI の同一オリジンポリシーが Firefox 3 で変更されました。これはコンテンツに影響する可能性があります。詳しくは file: URI の同一オリジンポリシーを参照してください。

JavaScript の変更
--------------

Firefox 3 は JavaScript 1.8 をサポートします。ウェブサイトやウェブアプリケーションの更新が必要となりうる重要な変更点としては、時代遅れであり非標準の `Script` オブジェクトがサポートされなくなることが挙げられます。これは `<script>` タグではなく、標準化されることのなかった JavaScript オブジェクトのことです。どちらにしても使用していた可能性は低いでしょうから、これが問題になることは恐らくないでしょう。

関連情報
----

* 開発者向け Firefox 3
* JavaScript 1.8 の新機能
* Firefox 3 のための拡張機能の更新


WAI ARIA ライブリージョン/API 対応 - Mozilla

WAI ARIA ライブリージョン/API 対応
========================

**警告:** これらの注釈は、スクリーンリーダーの開発者向けです。 開発者は、ARIA ライブリージョン開発者のドキュメントを使用する必要があります。

Firefox 3 には、Mozilla エンジンがドキュメントのライブ変更を公開する方法に対する重要な改善が含まれています。

これらの機能は、ARIA ライブリージョンマークアップでマークアップされたページと、追加のマークアップを追加しなかったページの両方で、スクリーンリーダー開発者がライブリージョンサポートの品質とパフォーマンスを向上させるのに役立ちます。

ARIA のライブリージョンのマークアップについては、ARIA の仕様またはライブリージョンのレポートをお読みください。

いつものように、私たちはコミュニティフォーラムの変更に関する質問や提案には門を開いています。

ウェブページの異変に対して発行されるイベント
----------------------

| 文書内の変更点 | ATK/AT-SPI イベント | IAccessible2 イベント |
| --- | --- | --- |
| オブジェクトが非表示または削除されようとしている | children\_changed::remove （親で発行され、イベントデータは削除されるアクセシブルオブジェクトの子インデックスを指している） | EVENT\_OBJECT\_HIDE\* （実際にアクセス可能なオブジェクトが消えようとしている時に発行される） |
| オブジェクトが表示または挿入される | children\_changed::add （親で発行され、イベントデータは挿入されたアクセシブルオブジェクトの子インデックスを指します。） | EVENT\_OBJECT\_SHOW\* （実際の新しいアクセシブルオブジェクトで発行される） |
| オブジェクトが異なるオブジェクトに置き換わった（特にオブジェクトのインターフェイスや役割が変更された場合に起こります） | children\_changed::remove の直後に children\_change::add | EVENT\_OBJECT\_HIDE の直後に EVENT\_OBJECT\_SHOW |
| テキストが削除された | text\_changed::delete | IA2\_EVENT\_TEXT\_REMOVED （オフセットと削除されたテキストを使用するために IAccessibleText::get\_oldText を使用します） |
| テキストが挿入された | text\_changed::insert | IA2\_EVENT\_TEXT\_INSERTED （オフセットと挿入されたテキストを取得するために IAccessibleText::get\_newText を使用します） |
| テキストが置き換えられた | text\_changed::delete の直後に text\_changed::insert | IA2\_EVENT\_TEXT\_REMOVED の直後に IA2\_EVENT\_TEXT\_INSERTED |

\* MSAA の CREATE/DESTROY は使用しません。これは、画面の内側を読むリーダーからのリクエストによるもので、これらのイベントは、重要なシステムでクラッシュを発生させるため避けられます - SHOW/HIDE はこれらのイベントと同等です。

イベントから作者提供の ARIA ライブリージョンセマンティクスの取得
-----------------------------------

ある祖先要素 (最も近い祖先の勝利) に定義されている場合、ページ内の任意の変更イベントに対して、作成者はイベントオブジェクトから以下のオブジェクト属性を取得できます。

| オブジェクトの属性名 | 取りうる値 | 既定値 | 必要な場合の ARIA マークアップ | 意味 |
| --- | --- | --- | --- | --- |
| `container-live` | `"off" | "polite" | "assertive"` | `"off"` | 祖先要素への `aria-live` | 中断 |
| `container-relevant` | `'additions'` `'removals'` `'text' | "all"` | `"additions text"` | 祖先要素への `aria-relevant` | どのような型の変異が使用可能なのでしょうか？セクション](#events\_fired\_for\_web\_page\_mutations\_the\_mutation\_events\_list)を参照して、イベントの型とこの属性の値を照合し、作者がそのイベントをユーザーに表示すべきと考えたかどうかを判断してください。 |
| `container-busy` | `"true" | "false" | "error"` | `"false"` | 祖先要素への `aria-busy` | 現在の変更は、まだ完全に完了していません。A11y API の BUSY 状態に対する状態変化イベントは、現在 BUSY とマークされているコンテナオブジェクトが BUSY でなくなった時点で発行されます。これは、アトミックリージョンにおいて特に重要です。アトミック領域全体は、それが最終的にビジーでなくなったときに一度だけ表示される必要があります。 |
| `container-atomic` | `"true" | "false"` | `"false"` | 祖先要素への `aria-atomic` | この変更は、常に一度に表示されるべきリージョン内に存在するかどうか。もしそうなら、 member-of リレーションはリージョンのルートを指します（次の章を参照）。 |
| `member-of` | もし `container-atomic=true` ならば、祖先のアクセシブルなオブジェクトを指します（したがって、実際にはオブジェクト属性ではなく、アクセス可能なリレーションとなります）。 | 指定されなかった場合はアトミック領域ではありません。 | 祖先要素への `aria-atomic` | このオブジェクトが存在するアトミックコンテナーのルートを指します。これは常に現在のオブジェクトの祖先となります。 |
| `event-from-input` | `"true" | "false"` （以下で詳述します） | ブラウザーは計算できません。 | 作者の協力は必要ありません。 | このイベントの根本的な原因は、ユーザーの明示的な入力だったのでしょうか？ |

"container-" 接頭辞は、この属性が、そのノードの類似した名前の最終的な計算プロパティが何であるかを記述するため、そのように名付けられています。これは、 AT がこの情報を取得するために、親ノードの連鎖をたどる必要がないことを意味しています。現時点では、 `container-`\_name\_attribute が設定されていないプロパティに対して、 AT は W3C 仕様で定義されている既定値でフォールバックするコードを持たなければなりません。

イベントがユーザーの入力であったかどうかを判断する
-------------------------

これですべてのイベントは、そのイベントがユーザーの入力によって発生したのか、それともウェブページが引き起こしたものなのかについての情報を提供するようになりました。この情報は、それぞれのプラットフォームで異なる形で取得されます。プラットフォームによっては、非同期イベントを使用するものもあるからです。

IAccessible2 では、この情報はオブジェクト属性 "event-from-input" から取得され、 "true" または "false" に設定されることになります。もし、それが表示されていない場合は、何かが間違っていて、 Mozilla はこの情報を提供することができなかったということです。この情報は、 EVENT\_SHOW、EVENT\_HIDE、IA2\_EVENT\_TEXT\_INSERTED、IA2\_EVENT\_TEXT\_REMOVED に対してのみ利用できます。

ATK/AT-SPI では、この情報はイベント名を調べることによって取得さ れます。イベント名に ":system" が付与されている場合、それはユーザー入力によるものではありません。 children-changedと text-changedイベントについては、":system "文字列が計算されます。

なぜこれが有益なのでしょうか？ AJAX ページの大部分は、ライブリージョンマークアップを提供しませんが、それでも可能な限り使用可能である必要があります。画面の内側からリーダーにとって、ページ上の変更でユーザーを中断させるタイミングを決めるのは困難です。もし、スクリーンリーダーが自動的に多くを読み取ったら、ウェブページは使用するのに煩わしすぎるでしょう。スクリーンリーダーが何らかの読み取りをしない場合、ユーザーは重要な情報を見逃してしまう可能性があります。

この情報はヒューリスティックに有益な情報を使用すると考えられています。多くの場合、ユーザーのキーストロークによって直接発生したページの変更は、読み取られるべきです。これらはユーザーが行っていることと同期しているため、ユーザーを混乱させることなく読み取ることができる可能性が高い。ユーザーが次のキーを押すと、音声はそのキーのエコーに移動します。スクリーンリーダーでは、変更の型、変更の大きさ、変更が発生した場所など、他にも考慮したい要素があります。これは、スクリーンリーダーの技術革新の可能性がある分野です。

| 直近の出来事 | ユーザーからの入力？ |
| --- | --- |
| キー押下 | はい |
| マウスクリック | はい |
| マウスホバー | いいえ |
| ページ読み込みイベント | いいえ |

フォーカスの変化、タイマーのコールバック、 XMLHttpRequest のコールバックなど、それ以外のものはすべて中立です。それらは、それらが起こった元の理由がユーザー入力によるものであった場合のみ、ユーザー入力としてカウントされます。

スクリーンリーダーが何を提示すべきか？
-------------------

WAI-ARIA スクリーンリーダー実装者ガイド (en-US)のライブリージョンの節をお読みください。


Firefox 3 での DOM の改良 - Mozilla

Firefox 3 での DOM の改良
====================

Firefox 3 では、特に、他のブラウザーによる独自 DOM 拡張 のサポートに関するものを含む、多くの Document Object Model (DOM) 実装が追加されました。この記事は、これらの実装の一覧と詳細なドキュメントへのリンクを提供します。

* Internet Explorer の `clientTop` と `clientLeft` DOM 拡張がサポートされました。
* `window.fullScreen` プロパティは、たとえウェブコンテンツから読み出されても常に正確に計算されるようになりました。以前は不正確に `false` を返していたでしょう。(Firefox バグ 127013)
* `getClientRects` と `getBoundingClientRect` DOM 拡張がサポートされました。(Firefox バグ 174397 を参照)
* Internet Explorer の `elementFromPoint` DOM 拡張がサポートされました。 (Firefox バグ 199692)
* Internet Explorer の `oncut`、`oncopy`、 `onpaste` DOM 拡張がサポートされました (Firefox バグ 280959)。
* 特権コード限定のゲッター `Node.nodePrincipal`、`Node.baseURIObject`、`document.documentURIObject` が追加されました。Chrome コードは、(`XPCNativeWrapper` の `wrappedJSObject` などの) ラップされていないコンテンツオブジェクトに対して、これらのプロパティに触れては (取得または設定をしては) いけません。詳細は Firefox バグ 324464 を参照してください。
* Web Applications 1.0 (HTML5) の `getElementsByClassName()` DOM メソッドがサポートされました。
* Web Applications 1.0 (HTML5) の `window.postMessage` DOM メソッドがサポートされました。このメソッドは、制限された、同じドメインに限らないウィンドウ間でのクライアントサイド通信を行う選択フォームを可能にします。
* アクセラレーションキーが押された場合、`keypress` イベントの `charCode` の値は ASCII 文字に変更されます。それ以外の場合、 `charCode` はそのままの文字です (`Shift` 状態を除く)。Gecko Keypress Event を参照してください。
### 関連情報

* Firefox 3 for developers
* CSS improvements in Firefox 3
* DOM


Firefox 3 で修正された重要なバグ - Mozilla

Firefox 3 で修正された重要なバグ
=====================

この記事は、ドキュメントで必ずしも明白に説明されていない、Firefox 3 で修正された重要なバグの修正の一覧を提供します。

* オーバーレイをパース中にエラーが発生した場合、オーバーレイは適用されません。パースエラーがエラーコンソールへ記録されます。 (Firefox バグ 335755)
* バグが修正され、メニューやメニューに似た要素に対して適用された場合でもバインディングの内部に `<menupopup>` 要素を設置できるようになりました。(Firefox バグ 345896)
* ボタンの `dlgType` プロパティが正しく動作するようになりました。 (Firefox バグ 308591)
* `event.initEvent` の引数 `canBubble` が正しく動作するようになり、浮上しないイベントを発生させられるようになりました。 (Firefox バグ 330190)
* `DOMAttrModified` イベントが名前空間付きの属性を適切に処理するようになりました。 (Firefox バグ 362391)
* `<?xml-stylesheet ?>` のような XML 処理命令が、 XUL 文書の DOM へと追加されるようになりました。したがって、 `document.firstChild` が必ずしもルート要素であることを保証しないことになります。代わりに `document.documentElement` を使用してください。また、 `<?xml-stylesheet ?>` や `<?xul-overlay ?>` 処理命令は、文書の前置き以外の場所では効果を発揮しないようになりました。 (Firefox バグ 319654)
* XUL 要素や文書に対する `getElementsByAttributeNS()` 関数が追加されました。 (Firefox バグ 239976)
* XUL 文書から要素を移動したり削除したりしても、イベントリスナーが保持されます。 (Firefox バグ 286619)
* 変異イベントが非表示ドキュメントでも発生するようになりました。 (Firefox バグ 201236)
* 要素が間違った順番で描画されることによるさまざまな問題が修正されました。 (Firefox バグ 317375)
* `getElementsByTagName()` が、タグ名に名前空間接頭辞を含む要素を持つサブツリーにおいて正しく動作するように修正されました。 (Firefox バグ 206053).
* `DOMNodeInserted` および `DOMNodeRemoved` イベントが正しいノードに適用されるようになりました。 (Firefox バグ 367164).
* 正規表現の特殊文字である `\d` が Basic Latin アルファベットの数字（`[0-9]` と同じ）だけに一致するように修正されました。 (Firefox バグ 378738)
* image-sniffing-services カテゴリーにより、拡張機能として実装された画像デコーダーが正しくない MIME タイプで送られた画像を正しくデコードできるようになります（Firefox バグ 391667）。
* フォームコントロール上で右クリックしても、既定ではコンテキストメニューを表示しないようになりました (Firefox バグ 404536。この機能を個別に有効にする方法については、フォームコントロールにコンテキストメニューを提供するを参照してください。
### 関連情報

* Firefox 3 for developers


Firefox 3 のための拡張機能の更新 - Mozilla

Firefox 3 のための拡張機能の更新
=====================

この記事は、拡張機能を更新して Firefox 3 に対応させたいと考える開発者のために役立つ情報を提供します。

読み進める前に、私たちからひとつだけ参考になるヒントをお教えしましょう。もしあなたの拡張機能に必要な変更がインストールマニフェスト内の `maxVersion` 項目の更新だけで、なおかつ addons.mozilla.org に拡張機能を登録している場合、新しいバージョンの拡張機能をアップロードする必要はありません！ AMO 上の「開発者用コントロールパネル」を使って `maxVersion` を更新するだけで作業は完了です。この方法なら、拡張機能が再度レビューに回ることもありません。

Step 1: インストールマニフェストを更新する
-------------------------

最初のステップ、そして、ほとんどの拡張機能にとって必要となるたったひとつのステップは、Firefox 3 との互換性を示すために インストールマニフェスト (`install.rdf`) を更新する作業です。

ファイルを開いて、互換性がある Firefox の最高バージョンを示す行を見つけます。Firefox 2 向けの拡張機能であれば、以下のように書かれているはずです。

```xml
<em:maxVersion>2.0.*</em:maxVersion>
```

これを Firefox 3 との互換性を示すように変更します。

```xml
<em:maxVersion>3.0.*</em:maxVersion>
```

次にアドオンを再インストールします。

なお、Firefox 3 ではバージョン番号の余計な「.0」が廃止されますので、「3.0.0.\*」の代わりに「3.0.\*」と書くだけで済みます。

これまでに、一部の拡張機能に影響すると思われる API の変更がいくつも行われています (まだ今後も変更は行われるでしょう)。私たちは現在、これらの変更の完全なリストを作成中です。

**メモ:** もし拡張機能が、まだ `Install.js` スクリプトをインストールマニフェスト の代わりに、使っている場合は、今回インストールマニフェストに移行していただく必要があります。Firefox 3 は XPI ファイル内の `install.js` スクリプトをサポートしません。

### インストールマニフェストに翻訳を追加する

Firefox 3 は、翻訳された説明文を指定するための新しいプロパティを、インストールマニフェスト内でサポートしています。今までの方法も引き続き動作しますが、この新しい方法を利用すれば、アドオンが無効化されていたりインストールが保留されている場合も、各言語で説明文を表示できるようになります。詳しくは 拡張機能の説明の翻訳 をご覧ください。

Step 2: 安全な更新を提供しているか確認する
-------------------------

あなたが独自にアドオンを配布していて、addons.mozilla.org のような安全なアドオン提供サービスを利用していない場合、アドオンの更新に安全な方法を用いる必要があります。つまり、SSL を利用したウェブサイト上で更新を提供するか、暗号鍵を使って更新情報に署名する必要があります。詳しくは 安全な更新 をご覧ください。

Step 3: 変更された API に対応する
-----------------------

いくつかの API は様々な方法で変更が行われています。それらの中で、多くの拡張機能に影響を与えることが予想される最も大幅な変更を以下にまとめました。

### DOM

 外部ドキュメントからのノードは、現在のドキュメントに挿入する前に `document.importNode()` を使ってクローンを作る (あるいは
 `document.adoptNode()` を使って取り込む) べきです。`Node.ownerDocument` 問題の詳細については
 W3C DOM FAQ を参照してください。

 Firefox では現在このルールを強制していません。Firefox 3 の開発中には強制していた時期もありましたが、このルールを強制すると多くのサイトが機能しなくなってしまうため取りやめになりました。
 将来的な互換性を高めるためウェブ開発者にはこのルールに従ってコードを修正することを推奨します。

### ブックマークと履歴

あなたの拡張機能から何らかの方法でブックマークや履歴のデータにアクセスしている場合、Firefox 3 と互換性を持たせるには多くの作業が必要です。これらの情報にアクセスするための古い API は、Places という新しいアーキテクチャに置き換えられました。既存の拡張機能を Places API に対応させる方法については、Places への移行ガイド で詳しく解説しています。

### ダウンロードマネージャー

RDF データ形式から Storage API への移行にあたって、ダウンロードマネージャーの API にも若干変更が加えられました。これに関する移行作業は非常に簡単なはずです。また、複数のダウンロードマネージャーリスナーをサポートするため、ダウンロードの進捗状況を監視する API にも変更がありました。詳しくは `nsIDownloadManager`、`nsIDownloadProgressListener`、ダウンロードの監視 を参照してください。

### パスワードマネージャー

あなたの拡張機能からパスワードマネージャーを利用してユーザのログイン情報にアクセスしている場合、新しいログインマネージャー API を利用するように更新する必要があります。

* nsILoginManager の使い方 という記事には、パスワードマネージャーとログインマネージャーの両方を用いることで、Firefox 3 とそれ以前のバージョンの両方で機能拡張を動作させるデモなど、コードサンプルが載っています。
* `nsILoginInfo`
* `nsILoginManager`

拡張機能の中で独自のパスワードストレージを提供したい場合は、組み込みのパスワードマネージャーストレージを上書きすることもできます。詳しくは ログインマネージャー用ストレージモジュールの作成 をご覧ください。

#### ポップアップ (メニュー、コンテキストメニュー、ツールチップ、パネル)

XUL のポップアップシステムは Firefox 3 で大幅に変更されました。ポップアップシステムには、メインメニュー、コンテキストメニュー、ポップアップパネルが含まれます。新しいシステムの仕組みについては ポップアップの使用 ガイドをご覧ください。特筆すべき点は、`popup.showPopup` が非推奨となり、新しい `popup.openPopup` と `popup.openPopupAtScreen` に置き換えられたことです。

#### 自動補完

`nsIAutoCompleteController` インターフェイスの `handleEnter()` メソッドは、テキストが自動補完ポップアップから選択されたか、ユーザが自分で入力した後 Enter キーを押したかを示す引数を受け付けるよう変更が行われました。

### DOMParser

* `DOMParser` がインスタンス化されると、呼び出したコードのプリンシパルと、コンストラクターが呼び出したウィンドウの `documentURI` と `baseURI` を継承するようになります。
* 呼び出し元が UniversalXPConnect の権限を持っている場合、`new DOMParser()` に引数を渡すことができます。渡される引数が 3 つ以下の場合、残りの引数は既定で `null` になります。
    + 最初の引数は使用するプリンシパルです。これは通常継承されるデフォルトプリンシパルを上書きします。
    + 2 番目の引数には、使用する `documentURI` を指定します。
    + 3 番目の引数は、使用する `baseURI` です。
* `createInstance()` などのコントラクトを使用して `DOMParser` を初期化し、 `DOMParser` の `init()` メソッドを呼び出さない場合、解釈処理を開始しようとすると、自動的に `DOMParser` が生成されてプリンシパルが `null` に、 `documentURI` と `baseURI` が `null` ポインターで初期化されることになります。
### 内部文字列 API の使用中止

内部文字列 API がエクスポートされなくなったので、外部文字列 API に移行する必要があります。有用な情報については、これらの記事を参照してください。

* Mozilla の外部文字列ガイド
* XPCOM Glue
* 内部連携から凍結連携への移行について
### 削除されたインタフェース

以下のインタフェースは、Firefox 3 の基盤である Gecko 1.9 から削除されました。あなたの拡張機能でいずれかを使用している場合、コードを更新する必要があるでしょう。

* `nsIDOMPaintListener`
* `nsIDOMScrollListener`
* `nsIDOMMutationListener`
* `nsIDOMPageTransitionListener`
* `nsICloseAllWindows` (Firefox バグ 386200 参照)
### Step 4: 関連するクローム周りの変更を確認する

コードに修正を加える必要があるかもしれない小さな変更がクロームに対して行われました。

### 新しいボックス

"browser-bottombox" と呼ばれる新しい `vbox` が追加されました。これは、ブラウザーウィンドウの下部にあるページ内検索バーとステータスバーを含むものです。この変更は見た目には影響しませんが、あなたの拡張機能がこれらの要素に関するクロームにオーバーレイを行っている場合、影響を受ける可能性があります。

例えばこれまで、次のように、ステータスバーの直前にクロームをオーバーレイしていた場合、

```xml
<window id="main-window">
  <something insertbefore="status-bar" />
</window>
```

今後は次のようにオーバーレイを行う必要があります。

```xml
<vbox id="browser-bottombox">
  <something insertbefore="status-bar" />
</vbox>
```

また、以下のテクニックを使って、Firefox 2 と Firefox 3 の両方でオーバーレイを動作させることもできます。

```xml
<window id="main-window">
  <vbox id="browser-bottombox" insertbefore="status-bar">
    <something insertbefore="status-bar" />
  </vbox>
</window>
```

### ボックスの変更

"appcontent" ボックスにオーバーレイして文書コンテンツの上にクロームを浮かせようとする拡張機能は、その素材を表示しなくなりました。新しい `<xul:panel>` XUL 要素を使うように拡張機能を更新する必要があります。もし、パネルが遅延後に自動的に消えないようにしたい場合は、 `noautohide` 属性を `true` に設定してください。

### その他の変更

*もし、拡張機能を Firefox 3 対応にするために必要な小さい変更があったら、ここに追加してください。*

* `chrome://browser/base/utilityOverlay.js` は、セキュリティ上の理由からサポートされなくなりました。これまでこのスクリプトを利用していた場合は、`chrome://browser/content/utilityOverlay.js` へ切り替えてください。
* `nsIAboutModule` の実装には、`getURIFlags` メソッドのサポートが必要になりました。詳しくは nsIAboutModule.idl を参照してください。これは新しい `about:` URI を提供する拡張機能に影響します。 (Firefox バグ 337746)
* `<xul:tabbrowser>` 要素は「ツールキット」の一部ではなくなりました (Firefox バグ 339964)。このため、この要素は今後 XUL アプリケーションや拡張機能の中では利用できません。ただし、Firefox のメインウィンドウ (browser.xul) では今後も使われます。
* `nsISupports_proxies` の変更と、おそらくスレッド関連インターフェイスへの変更については、ドキュメントを用意する必要があります。
* XUL ファイル内で `<?xml-stylesheet ?>` などの XML 処理命令を用いている場合、 Firefox バグ 319654 で行われた以下の変更に注意してください。
    1. XML PI が XUL ドキュメントの DOM に追加されました。これは、 `document.firstChild` が必ずしもルート要素を返すとは限らない、ということを意味します。スクリプト内でルートドキュメントを得るには、代わりに `document.documentElement` を用いてください。
    2. `<?xml-stylesheet ?>` と `<?xul-overlay ?>` 処理命令は、ドキュメントの前文以外の場所に書かれた場合、動作しなくなりました。
* `window.addEventListener("load", myFunc, true)` がウェブコンテンツが読み込まれた際 (ブラウザーのページ読み込み時) に呼び出されなくなりました。これは、 Firefox バグ 296639 によって inner ウィンドウと outer ウィンドウの関係が変わったことによります。簡単な修正方法は `gBrowser.addEventListener("load", myFunc, true)` を使うことで、ここ書かれている通りです。この方法は Firefox 2 でも有効です。
* `content.window.getSelection()` は、文字列を返す、非推奨となった `content.document.getSelection()` とは異なり、オブジェクトを返します (`toString()` を使えば文字列に変換できます)。
* `event.preventBubble()` は Firefox 3 で非推奨となり、Firefox 3 で削除されました。Firefox 2 でも動作する `event.stopPropagation()` を使ってください。
* `setTimeout()` を使って開始されるタイマーは、Firefox バグ 52209 のために行われた修正によって、モーダル形式のウィンドウではブロックされるようになりました。代わりに `nsITimer` を使ってください。
* 信頼できないソース（例：ウェブサイト）が拡張のクロームにアクセスできるようにする必要がある場合は、新しい `contentaccessible` フラグ を使わなければなりません。


フルページズーム - Mozilla

フルページズーム
========

フルページズーム (あるいは単にフルズーム) は Firefox 3 の新機能です。

### 例 (XUL:browser)

以下の例は、現在フォーカスがあたっているブラウザーウィンドウでの利用をデモしています。これは Firefox 拡張機能での典型的な利用方法です。

```js
var zoom = ZoomManager.getZoomForBrowser(gBrowser.selectedBrowser);
ZoomManager.enlarge();
ZoomManager.setZoomForBrowser(gBrowser.selectedBrowser, ZoomManager.MIN);
```

### 例 (XUL:iframe)

注: これはおそらく古いものです。

フルズーム機能を XUL:iframe でも同様に使用することができます。しかし、iframe には markupDocumentViewer プロパティがないため、最初に以下のようにする必要があります。

```js
var zoom = 1.5;
var iframe = document.getElementById("authorFrame");
var contViewer = iframe.docShell.contentViewer;
var docViewer = contViewer.QueryInterface(
  Components.interfaces.nsIMarkupDocumentViewer,
);
docViewer.fullZoom = zoom;
```

### 参考資料

* Ted Mielczarek による Page zoom extension fullpagezoom.xpi 最新の Firefox 3.0 ナイトリー用
* フルズームに関する bugzilla のバグ
* `nsIMarkupDocumentViewer` インターフェイスのドキュメント。


アドオンバー - Mozilla

アドオンバー
======

Firefox 4 よりウィンドウの下部に新しいツールバーを実装する為、ブラウザウィンドウの下部からステータスバーが削除されます。この新しいツールバーは ID "addon-bar" を持った、標準の XUL `<toolbar>` です。アドオンはこのバーにコンテンツを挿入することが可能であり、また、ユーザーはツールバーのカスタマイズ中にボタンをアドオンバーにドラッグすることができます。これがアドオンバーと旧ステータスバーの間の主な相違点です。標準のツールバーであるため、どの XUL 要素でもアドオンバーに配置することができます。

**メモ:** 当面は、Firefox にはステータスバーが存在することを期待するアドオンがうまく動作するようにするためのシムが噛ませてあります。但しこれは一時的な措置であり、じきに削除されます。アドオンをアップデートしてください。

アドオンバーに要素を加える
-------------

アドオンバーは ID "addon-bar" を持つ XUL ツールバーです。次のコードは、一番最近使われたウィンドウを探し出し、XUL `<label>` 要素を用いて単に "Hello world!" のテキストを表示する新しいアイテムをアドオンバーに加えます。

```js
// 一番最近使われたウィンドウを探す

var mediator = Components.classes[
  "@mozilla.org/appshell/window-mediator;1"
].getService(Components.interfaces.nsIWindowMediator);
var doc = mediator.getMostRecentWindow("navigator:browser").document;

// そのウィンドウのアドオンバーを取得する
var addonBar = doc.getElementById("addon-bar");

// 新しいツールバーアイテムを構築する
var newItem = doc.createElement("toolbaritem");
var itemLabel = doc.createElement("label");

// アイテムをツールバーに追加しテキストラベルをセットする
newItem.appendChild(itemLabel);
addonBar.appendChild(newItem);
itemLabel.value = "Hello world!";
```

To add the button only once create a bool pref to check if it is the first run. For example:

```js
var firstrun = Services.prefs.getBoolPref("extensions.YOUREXT.firstrun");

var curVersion = "0.0.0";

if (firstrun) {
  Services.prefs.setBoolPref("extensions.YOUREXT.firstrun", false);
  Services.prefs.setCharPref("extensions.YOUREXT.installedVersion", curVersion);
  /\* Code related to firstrun \*/
} else {
  try {
    var installedVersion = Services.prefs.getCharPref(
      "extensions.YOUREXT.installedVersion",
    );
    if (curVersion > installedVersion) {
      Services.prefs.setCharPref(
        "extensions.YOUREXT.installedVersion",
        curVersion,
      );
      /\* Code related to upgrade \*/
    }
  } catch (ex) {
    /\* Code related to a reinstall \*/
  }
}
```

Firefox の各バージョンでのオーバーレイの使用方法
----------------------------

 Firefox 3.6 とそれ以前のバージョンとの互換性を保持したままアドオンバーのサポートを追加するには、2 つのオーバーレイを使用する必要があります。
 The chrome.manifest file can specify which file is used by which Firefox version by using manifest flags:
```

overlay chrome://browser/content/browser.xul chrome://myaddon/content/myaddon/overlayold.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion<4.0
overlay chrome://browser/content/browser.xul chrome://myaddon/content/myaddon/overlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion>=4.0
```

注記: the appversion has to be at least 2 digits long or it won't work with versions of Gecko before 1.8.0.13 and 1.8.1.5.

### デフォルトでボタンを追加

参照 : Adding a button by default

見た目の違い
------

* ブラウザーがステータス情報によりバー領域の大半を占拠することがなくなるので、すべての領域をアドオンが使えるようになります。
* 既定ではアドオンバーは空 (empty) であり、隠されています (hidden) 。ユーザーがこれを可視状態にするには、明示的にそうしなければなりません。
* 再起動不要のアドオンがアドオンバーに直接インストールされたとき、アドオンバーが可視でなければアドオンバーは自動的に可視になります。
* 再起動不要のアドオンがアンインストールされてアドオンバー内のアイテムの数がゼロになったときには、アドオンバーは自動的に隠されます。
関連情報
----

* Firefox 4 add-on bar for developers by Mike Kaply


Firefox の ICC カラーコレクション - Mozilla

Firefox の ICC カラーコレクション
=======================

色補正のサポートは Firefox 3 で導入されましたが、デフォルトでは無効になっています。これを有効にするには、about:config ウィンドウを少し修正する必要があります。 Firefox 3.5 では、以前のバージョンではデフォルトで無効になっていた問題が解決されました。現在 International Color Consortium (ICC) タグの画像は、デフォルトで色補正されています。

下の画像は 3 つのセクションに分割されています。 左上隅には、Firefox 2 でレンダリングされた画像が表示されます。右上隅には、Firefox 3 での画像のレンダリング方法が表示されます。下には、Photoshop でレンダリングされた画像が表示されます。

![iccsample.jpg](/ja/docs/Mozilla/Firefox/Releases/3.5/ICC_color_correction_in_Firefox/iccsample.jpg)

ご覧のように、Firefox 3 と Photoshop は埋め込まれた色補正プロファイルをサポートしているため、イメージを同じようにレンダリングします。 Firefox 2 はプロファイルを無視し、色が一致しません。

カラーコレクションの設定
------------

色補正は次のように、`gfx.color_management.mode`プリファレンスの値を設定することで制御できます。

| 値 | 詳細 |
| --- | --- |
| 0 | カラーマネジメントは無効 **(Firefox 3. のデフォルト)** |
| 1 | フルカラー管理 |
| 2 | タグづけされた画像のみカラーマネジメントを適用 **( Firefox 3.5. のデフォルト)** |

フルカラー管理とは、プラグインを除いて、Firefox でレンダリングされたすべての色が修正されたことを意味します。

### カラープロファイルの指定

`gfx.color_management.display_profile`環境設定の値を、使用するカラープロファイルへのパスに設定することによって、ハードウェアに使用する特定のカラープロファイルを指定することもできます。

カラープロファイルにパスが指定されていない場合、Firefox はオペレーティングシステムを照会し、設定されたカラープロファイルを使用します。

### デフォルトのレンダリングインテントの指定

さらに `gfx.color_management.rendering_intent` 環境設定の値を設定して、デフォルトのレンダリングインテントを指定することもできます。デフォルトでは、この値に-1 を指定しない限り、images で指定されたインテントは無視されます。

次の表に、使用可能な値を示します。

| 値 | 詳細 |
| --- | --- |
| -1 | 埋め込まれたインテントを使用する。 デフォルトでは、イメージの埋め込みインテントは無視されます。 |
| 0 | 知覚。 画像の色調範囲全体にわたって詳細を保持するように、画像をレンダリングするように Firefox に指示します。 典型的な場合、特に写真やその他の写真の場合、一般的な画像の表示に便利です。 |
| 1 | メディア相対比色。 これは、レンダリング媒体の白色点（表示画面など）が基準媒体の白色点にマッピングされるように、カラースペクトルを再スケーリングする。 これは、参照媒体より小さな色域を有する媒体にマッピングされた色に対して最も有用である。 |
| 2 | 飽和。 これは、色相の精度を保つことを犠牲にして、色の鮮やかさを維持する。 これは、チャートやダイアグラム、色調の正確な複製がそれほど重要ではないうちに、色が「ポップ」するその他のメディアに特に便利です。 |
| 3 | ICC-絶対比色分析。 これは、スポットカラーや、色域内の色を変更しないので、あるメディアを別のものでシミュレートする場合に最も便利です。 |

**メモ:** Firefox 3.5 では、perceptual、media-relative、および saturation のインテントがすべて同じようにレンダリングされます。

### 警告

Firefox 3.5 で導入された新しい QCMS カラーマネジメントシステムは、バージョン 4 ではなく、ICC カラープロファイルのバージョン 2 のみをサポートしています。画像が暗すぎることがあります。bug 488800 とICC version 4 profile test を参照してください。

関連情報
----

* So Many Colors (blog post)
* Firefox 3: Color profile support (blog post)
* Color Profiles in Firefox 3 (blog post)
* International Color Consortium


Updating extensions for Firefox 3.1 - Mozilla

Updating extensions for Firefox 3.1
===================================

この記事は、自分の拡張機能を Firefox 3.1 で正しく動作するよう更新しようとしている拡張機能開発者のために役立つ情報を提供します。

更新の基本
-----

この節では、Firefox の新しいバージョンに向けて拡張機能を更新する際に必ず行わなければならないことの基本を説明します。

### 拡張機能のテスト

まずはじめに、拡張機能の `install.rdf` ファイルを編集して、(Firefox 3.1 beta 2 でテストを行っている場合は) `maxVersion` を 3.1b2 に更新し、それに合わせて `version` を上げましょう。

Firefox のプロファイルを新規作成し、テストが常用のプロファイルに影響しないようにします。 Firefox が含まれるディレクトリに移動して、以下のコマンドを実行します。
```

firefox -createProfile testBeta2
```

Mac では、Firefox のアプリケーションバンドル内へはるばる移動する必要があります。
```

cd /Applications/Firefox.app/Contents/MacOS/
firefox -createProfile testBeta2
```

コマンドライン上で以下のコマンドを実行し、新規プロファイルで Firefox を起動します。
```

firefox -P testBeta2
```

自分の拡張機能を徹底的にテストします。 JavaScript のあらゆる警告や例外を通知するために、以下の設定項目を true に設定しておくことをお勧めします。

* `javascript.options.strict`
* `javascript.options.showInConsole`
### 拡張機能の更新

テスト中に何か問題を発見した場合は、コードを更新して問題を修正しましょう。 この記事には、若干の更新作業が必要な箇所についての役立つ情報が載っています。

テストが完了したら、今度は常用のプロファイルを使って、再度その拡張機能を使ってみます。 この作業は、保存されている既存のデータとの互換性を確認するのに役立ちます。

### addons.mozilla.org に登録されている拡張機能の更新

ついに、更新した拡張機能を公開するときが来ました。 もし自分の拡張機能に一切コードの変更が必要ない場合は、AMO のダッシュボードにログインして、互換性のあるバージョンを更新するだけで済みます。 何らかの変更を加えた場合は、新しいバージョンを AMO にアップロードする必要があります。

詳しくは AMO へのアドオンの登録 を参照してください。

Places データベースへのアクセス
-------------------

Firefox 3.1 以前は、Storage API を使って Places データベースへ直接アクセスする場合、以下のように少々工夫が必要でした。

```js
var places = Components.classes["@mozilla.org/file/directory\_service;1"]
  .getService(Components.interfaces.nsIProperties)
  .get("ProfD", Components.interfaces.nsIFile);
places.append("places.sqlite");
var db = Components.classes["@mozilla.org/storage/service;1"]
  .getService(Components.interfaces.mozIStorageService)
  .openDatabase(places);
```

これは `places.sqlite` データベースファイルへのパスを自力で作成し、Storage アクセスのためのファイルを開くものでした。

Firefox 3.1 には、Places データベースへアクセスするための便利な方法を提供する、専用のサービスが追加されており、上記の方法は Firefox 3.1 以降では機能しません。

```js
var db = Components.classes[
  "@mozilla.org/browser/nav-history-service;1"
].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection;
```

テキストボックスの検索
-----------

`textbox` の種類のひとつ、`timed` は廃止予定となりました。代わりに `search` を使ってください。

Firefox 3 では、以下のようなコードが使われていたはずです。
```

<textbox type="timed" timeout="1000" oncommand="alert(this.value);"/>
```

Firefox 3.1 では、これを以下のように書き換える必要があります。
```

<textbox type="search" timeout="1000" oncommand="alert(this.value);"/>
```

JSON
----

JSON.jsm JavaScript モジュールは Firefox 3.1 では削除され、ネイティブの JSON オブジェクトサポートに置き換えられました。 詳しくは、Firefox で JSON を使用する をご覧ください。JSON のより一般的な概要と、各種バージョンの Firefox で JSON を使う方法については、JSON のページからリンクされている記事を参照してください。

Firefox 3 と Firefox 3.1 の両方について互換性を確保するには、以下のように記述します。

```js
if (typeof JSON == "undefined") {
  Components.utils.import("resource://gre/modules/JSON.jsm");
  JSON.parse = JSON.fromString;
  JSON.stringify = JSON.toString;
}
```

JSON がネイティブサポートされていない場合は JSON.jsm JavaScript モジュールをインポートして、そのモジュールによって提供されているメソッドをネイティブ JSON で使われているものにマッピングします。これによって、同じ呼び出しが可能になります。

また、`nsIJSON` インタフェースを直接利用することでも、この問題を回避できます。

クローム登録に関する変更
------------

Firefox 3.1 では、リモートのクロームを利用可能にするセキュリティホールが修正されています。 これは、`chrome.manifest` ファイルに Web サイトを参照するリソースが含まれているすべてのアドオンに影響します。

この問題は Firefox バグ 466582 で詳しく説明されています。`nsIProtocolHandler` インタフェースに追加された新しいフラグ `URI_IS_LOCAL_RESOURCE` によって、そのプロトコルがクロームとして登録しても安全であることを示すことができます。 独自のプロトコルハンドラを作成し、それを `chrome.manifest` 内で登録しようとするアドオンは、正しく動作するようにこのフラグを追加する必要があります。

カスタマイズ可能なツールバー
--------------

Firefox 3.1 では、カスタマイズ可能なツールバーの挙動が次のように変更されました。<xul:toolbar/> バインディングは、関連付けられた <xul:toolbarpalette/> からツールバー削除、もしくはツールバーへ追加するようになりました。これまでは、項目を複製してツールバーへコピーしていました。 つまり、パレットには、ツールバー上に存在しないアイテムしか含めることができません。これまでの挙動では、ツールバー上に表示されているかどうかに関わらず、カスタマイズ可能なすべての要素が含まれていました。 これは、<xul:toolbarpalette/> からカスタマイズ可能なすべてのツールバー項目を取得できることに依存した処理を行っていたり、ツールバーのカスタマイズ中に動的にパレットへ項目を挿入し、それらを利用可能にしようとしているアドオンで問題となる可能性があります。 詳しくは、Firefox バグ 407725 と Firefox バグ 467045 をご覧ください。

興味深い新機能
-------

### すべてのタブのイベントを監視する

Firefox 3.1 では、すべてのタブを監視するプログレスリスナーを追加、削除できるようになりました。 詳しくは、すべてのタブのイベントを監視する をご覧ください。

テーマ開発者の方へ
---------

* Firefox 3.1 でのテーマ関連の変更 を確認してください。
* Mozillazine フォーラムの Theme changes for FF3.1 を参照して、3.0 から 3.1 の間に行われた、テーマ開発者に影響するすべての変更の概要、一覧を確認してください。 このスレッドでは、CSS の新機能 (nth-child、-moz-box-shadow など)、既存の UI 部品への変更、UI 全体の改善、Firefox 3.1 の新機能 (audio/video のサポート、プライベートブラウジング、セッション復元機能の拡張、ボックス・ウィンドウ・テキストシャドウ) が議論されています。