Firefox 65 for developers
この記事では、開発者に影響を与える Firefox 65 の変更点について説明します。Firefox 65 は 2019 年 1 月 29 日に出荷されました。
ウェブ開発者のための変更
>開発者ツール
- Flexbox インスペクター をデフォルトで有効にしました。
- JavaScript デバッガー で、XHR のブレークポイントをサポートしました (Firefox バグ 821610)。
- アクセシビリティツリーでアイテムを右クリックすると、JSON ビューアに移動して ツリーを JSON として表示 できます。
- アクセシビリティピッカーの 色のコントラスト 表示機能を、文字列の背景が複雑 (例えばグラデーションや複雑な画像) である場合はコントラスト値の範囲を表示するように改良しました。
- ネットワークモニター のヘッダータブに、選択した要求のリファラーポリシーを表示するようになりました (Firefox バグ 1496742)。
- スタックトレースを表示するとき (例えばコンソールのログや JavaScript デバッガー)、自身のコードに集中できるようにするため、フレームワークのメソッドの呼び出しを認識してデフォルトで折りたたむようにしました。
- ネイティブの端末と同じように、JavaScript コンソールの履歴を見つけるための逆検索が可能になりました (Windows/Linux では
F9、macOS ではCtrl+Rを押下して検索文字列を入力します。さらにCtrl+R/Ctrl+Sで結果を切り替えます)。 - JavaScript コンソールの
$0ショートカット (ページで現在調査している要素を参照します) で自動補完が可能になりました。例えば$0.textContentのようなプロパティの自動補完候補を得るために$0.teと入力できます。 - インスペクターのルールビューで編集した箇所が、変更点パネルに表示されるようになりました (Firefox バグ 1503920)。
HTML
- イベントが無効な HTML 要素に配信されるようになりました。例えば、
<button>、<fieldset>、<input>、<select>、<textarea>要素にdisabled属性が設定されていた場合です (Firefox バグ 329509)。 - Chrome や Safari に合わせて、
<iframe>要素でsrc属性を削除するとabout:blankを読み込むようにしました (Firefox バグ 1507842)。以前は、srcを削除してもiframeの内容に影響はありませんでした。 <script>要素でreferrerpolicy属性をサポートしました (Firefox バグ 1460920)。
CSS
-
image-renderingプロパティの値crisp-edgesの接頭辞を削除しました (Firefox バグ 1496617)。 -
値が
autoであるscrollbar-colorが、2 つの色ではなくautoとして解釈するようになりました (Firefox バグ 1501418)。 -
break-*プロパティを実装して、古いpage-break-*プロパティをそれらの別名にしました (Firefox バグ 775618):page-break-beforeはbreak-beforeの別名になりました。page-break-afterはbreak-afterの別名になりました。page-break-insideはbreak-insideの別名になりました。
-
overflow-wrapプロパティの値anywhereを実装しました (Firefox バグ 1505786)。 -
新しいステップ位置のキーワードである
jump-start、jump-end、jump-none、jump-both(steps()イージング関数 内で使用可能) を実装しました (Firefox バグ 1496619)。これはframes()イージング関数の削除と同時に行いました。この関数は過去に同様の機能を実装していたものであり、非推奨になりました。 -
ほかのブラウザーとの互換性のために、
-webkit-appearanceで新しい値をいくつか追加しました。特に、以下の値です。meter。これはユーザーエージェントのスタイルシートで、<meter>要素のデフォルトの値として使用されます。既存の値meterbarは、meterの別名になりました (Firefox バグ 1501483)。progress-bar。これはユーザーエージェントのスタイルシートで、<progress>要素のデフォルトの値として使用されます。既存の値progressbarは、progress-barの別名になりました (Firefox バグ 1501506)。textarea。これはユーザーエージェントのスタイルシートで、<textarea>要素のデフォルトの値として使用されます。既存の値textfield-multilineは、textareaの別名になりました (Firefox バグ 1507905)。
-
ほかのブラウザーの動作に合わせるため、
user-selectの動作を変更しました (Firefox バグ 1506547)。具体的には以下のとおりです:-
要素で
user-select: allを設定したとき、子孫要素で設定したuser-selectのほかの値を上書きしないようになりました。例えば、以下のコードをご覧ください:html<div style="-webkit-user-select: all"> All <div style="-webkit-user-select: none">None</div> </div>noneを設定した<div>は、選択不可になります。以前はこの値が、親要素の値allで上書きされました。 -
contenteditableである要素の内部にあるcontenteditableではない要素が、選択可能になりました。 -
user-selectの動作が、shadow DOM の内部・外部ともに同じになりました。 -
独自仕様である値
-moz-textを削除しました。
-
-
CSS 環境変数 (
env()関数) を実装しました (Firefox バグ 1462233)。
廃止
- 設定項目
layout.css.shape-outside.enabledを削除しました。about:configでshape-outside、shape-margin、shape-image-thresholdを無効化できなくなりました (Firefox バグ 1504387)。 user-selectプロパティの、Firefox 限定の値である-moz-all、-moz-text、tri-state、element、elements、toggleを削除しました。Firefox バグ 1492958 および Firefox バグ 1506547 をご覧ください。- 前述のとおり、
frames()イージング関数を削除しました (Firefox バグ 1496619)。
SVG
変更なし。
JavaScript
Intl.RelativeTimeFormatをサポートしました (Firefox バグ 1504334)。- 文字列の length の最大値を
2**28 - 1(~256MB) から2**30 - 2(~1GB) に変更しました (Firefox バグ 1509542)。 - 常にトップレベルのグローバルオブジェクトを参照する
globalThisプロパティを実装しました (Firefox バグ 1317422)。
API
新しい API
- Readable Streams をデフォルトで有効にしました (Firefox バグ 1505122)。
- Storage Access API をデフォルトで有効にしました (Firefox バグ 1513021)。
DOM
Performance.toJSON()を Web Workers に公開しました (Firefox バグ 1504958)。XMLHttpRequest要求で、要求した content type がBlobかつ要求メソッドがGETではない場合に、NetworkErrorが発生するようになりました (Firefox バグ 1502599)。- Fullscreen API で、
-moz-接頭辞がつく多くの機能が非推奨になりました。また、これらを発見すると JavaScript コンソールで非推奨の警告を表示するようになりました (Firefox バグ 1504946)。 createImageBitmap()で、SVG 画像 (SVGImageElement) を画像のソースとしてサポートしました。
DOM イベント
- 今後、
Window.open()はイベントごとに 1 回だけ呼び出し可能になります (Firefox バグ 675574)。 - CJKT ユーザーに対してブラウザー間の互換性を高めるため、IME で変換している間に
keyupおよびkeydownイベントが発生するようになりました (Firefox バグ 354358)。
ウェブワーカー
SharedWorkerGlobalScope.onconnectのイベントオブジェクトがMessageEventのインスタンスになりました。また、dataプロパティがnullからから文字列に変わりました (Firefox バグ 1508824)。
フェッチとサービスワーカー
Response.redirect()メソッドが、最初の引数で有効な URL が指定されていない場合に、正しくTypeErrorを発生させるようになりました (Firefox バグ 1503276)。ServiceWorkerContainer.register()およびWorkerGlobalScope.importScripts()(Service worker で使用している場合) メソッドが、有効な JavaScript MIME type のファイルを受け入れるようになりました (Firefox バグ 1354577)。FetchEvent.replacesClientIdおよびFetchEvent.resultingClientIdプロパティをサポートしました (Firefox バグ 1264177)。ServiceWorkerGlobalScope.onmessageerrorおよびServiceWorkerContainer.onmessageerrorハンドラープロパティを実装しました (Firefox バグ 1399446)。HEADまたはGETメソッドの Fetch リクエストで、Originヘッダーを設定しないようにしました (Firefox バグ 1508661)。
メディア、ウェブオーディオ、WebRTC
- WebRTC の
RTCIceCandidateStatsディクショナリーを、最新の仕様に合わせて更新しました (Firefox バグ 1324788、Firefox バグ 1489040)。 MediaRecorderのpauseおよびresumeイベント (また、対応するイベントハンドラープロパティ) は、ブラウザーの互換性では実装済みとしていましたが、以前は実装されていませんでした。これらを実装しました (Firefox バグ 1458538, Firefox バグ 1514016)。
Canvas と WebGL
- WebGL の
EXT_texture_compression_bptcおよびEXT_texture_compression_rgtcテクスチャー圧縮拡張を、WebGL1 および WebGL2 のコンテキストに公開しました (Firefox バグ 1507263)。
廃止
- Mutation events を、シャドウツリーで無効化しました (Firefox バグ 1489858)。
MediaStreamの非標準プロパティであるcurrentTimeを削除しました (Firefox バグ 1502927)。- 設定項目
dom.webcomponents.shadowdom.enabledおよびdom.webcomponents.customelements.enabledを削除しました。Shadow DOM および Custom Elements はabout:configで無効化できません (Firefox バグ 1503019)。 - 非標準の DOM
textイベント (ブラウザーのエディター UI に、IME のコンポジション文字列や選択範囲を伝えるために発生します) を削除しました (Firefox バグ 1288640)。 keypressイベントが非表示キー では 発生しなくなりました (Firefox バグ 968056)。ただしEnterキーと、Shift+EnterおよびCtrl+Enterの組み合わせは除きます (これらはブラウザー間の互換性のために維持します)。
セキュリティ
- CORS の制限が要求ヘッダーに強制されるようになりました (Firefox バグ 1483815。詳しくは whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 をご覧ください)。
ネットワーク
変更なし。
プラグイン
変更なし。
WebDriver conformance (Marionette)
API の変更点
WebDriver:ElementSendKeysが対話性の確認で<input type=file>をより緩やかに扱うようになり、not interactableエラーメッセージを発生させずに要素を非表示にできるようになりました。厳密な対話性の確認を行いたい場合はstrictFileInteractabilityを使用できます (Firefox バグ 1502864)。
バグ修正
- ウィンドウ操作コマンドの
WebDriver:FullscreenWindow、WebDriver:MinimizeWindow、WebDriver:MaximizeWindow、WebDriver:SetWindowRectが、より安定的になりました (Firefox バグ 1492499)。特殊な状況で無限ハングアップが発生しなくなりましたが、ウィンドウが 5 秒以内に要求した状態に達しなければタイムアウトします (Firefox バグ 1521527)。 WebDriver:ElementClickが、クリックする要素の中心点を正しく計算するようになりました。寸法が 1 ピクセル四方でも対話できます (Firefox バグ 1499360)。
その他
unexpected alert openエラーで、より有益なメッセージを提供するようになりました (Firefox バグ 1502268)。
その他
-
WebP 画像をサポートしました (Firefox バグ 1294490)。
- また、特定の状況でブラウザー間の互換性を向上するために、WebP の MIMEType (
image/webp) を HTML ファイルのAccept標準 HTTP 要求ヘッダーに追加しました (Firefox バグ 1507691)。
- また、特定の状況でブラウザー間の互換性を向上するために、WebP の MIMEType (
-
Windows で、AV1 コーデックをデフォルトでサポートしました (Firefox バグ 1452146)。
アドオン開発者向けの変更
>API の変更
タブ
- tabs API を、タブサクセサーをサポートするように強化しました。タブがサクセサーを持つことができ、サクセサーはタブが閉じられたときにアクティブになるタブの ID です (Firefox バグ 1500479。詳しくは this blog post をご覧ください)。特に、以下の値です:
tabs.Tab型がsuccessorIdプロパティを持つようになりました。これは、タブのサクセサーの ID を登録および取得するために使用できます。tabs.onActivatedイベントリスナーのコールバックで、新しい引数previousTabIdを使用できます。これは、以前アクティブであったタブがまだ開かれていれば、その ID が入ります。tabs.update()関数のupdatePropertiesオブジェクトに、新しい省略可能のプロパティsuccessorTabIdを追加しました。ID を更新するために使用できます。successorTabIdは、tabs.get()やtabs.query()といった関数でも返ります。- 新たに
tabs.moveInSuccession()で、タブサクセサーをまとめて操作できます。
Manifest の変更
変更なし。
その他
- Webextension themes の
headerURL/theme_frameプロパティを、Android 版 Firefox でサポートしました (Firefox バグ 1429488)。
関連情報
旧バージョン
- Firefox 64 for developers
- Firefox 63 for developers
- Firefox 62 for developers
- Firefox 61 for developers
- Firefox 60 for developers
- Firefox 59 for developers
- Firefox 58 for developers
- Firefox 57 for developers
- Firefox 56 for developers
- Firefox 55 for developers
- Firefox 54 for developers
- Firefox 53 for developers
- Firefox 52 for developers
- Firefox 51 for developers
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers