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