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