Firefox 153 がリリースされた。Local Network Access 制限の既定有効化、popover=hint、モジュールの text import attributes、Error.stackTraceLimit が含まれる。拡張機能はローカルファイルへ既定でアクセスできなくなり、別権限で利用者が許可する。HTTP Compression Dictionaries も段階展開される。
Local Network Access
ローカルネットワーク上の機器や、端末上のアプリ/サービスへ接続する前に、サイトは許可を求める。以前は無効だった制限が、全ユーザー向けに既定で有効になった。
js
// 許可が無いと失敗しうる例(プライベート/ローカル向けホスト)
const res = await fetch("http://192.168.1.1/");popover=hint
Popover API に popover="hint" が入った。ツールチップのように auto ポップオーバーを閉じずに重ねて出せる。未対応ブラウザでは popover="manual" 相当にフォールバックする。
html
<button popovertarget="menu">メニュー</button>
<div id="menu" popover="auto">操作一覧</div>
<button id="help">ヘルプ</button>
<div id="tip" class="tooltip" popover="hint">短い説明</div>
<script>
const help = document.getElementById("help");
const tip = document.getElementById("tip");
help.addEventListener("pointerenter", () => tip.showPopover());
help.addEventListener("pointerleave", () => tip.hidePopover());
</script>text import attributes
モジュールシステムでテキストファイルを文字列として import できる。応答の Content-Type は無視され、内容は常にテキストとして扱う。
js
import readme from "./readme.txt" with { type: "text" };
console.log(readme.slice(0, 80));Error.stackTraceLimit
Error.stackTraceLimit で、キャプチャする JavaScript のエラースタック深さの上限を読み書きできる。既定より小さくするとスタック取得の負荷を抑えられる。
js
Error.stackTraceLimit = 10;
try {
throw new Error("demo");
} catch (e) {
console.log(String(e.stack).split("\n").length);
}