As of Firefox 116, I intend to turn the fontBoundingBox{Ascent,Descent} 
attributes of the Canvas2D TextMetrics interface on by default.
This was developed behind the dom.textMetrics.fontBoundingBox.enabled 
preference.
Status in other browsers is:
   Chrome - shipping
   Safari - shipping
Bug to turn on by default: 
https://bugzilla.mozilla.org/show_bug.cgi?id=1801198
Standard: 
https://html.spec.whatwg.org/multipage/canvas.html#textmetrics
Note that the standard also lists some more TextMetrics attributes that 
we have implemented behind additional (default-disabled) prefs; I'm not 
proposing to ship these at this stage as there are still some 
outstanding concerns around interoperability. Shipping the 
fontBoundingBox* attributes will match what Chrome currently exposes on 
their release channel, and AFAICT is the most-requested of these.
JK
- - -
Original "Intent to Prototype" email, from 2020-01-17 (as I can't find 
it in the Google Groups archive to link to...)
- - -
The TextMetrics interface represents the dimensions of a piece of text 
in the canvas, as created by the CanvasRenderingContext2D.measureText() 
method.
Currently, Gecko only supports the .width attribute, but authors would 
also like to determine the actual dimensions that the rendered text 
would have in both x- and y-directions, as well as overall font metrics 
to assist with line spacing, etc.
Safari supports the full set of TextMetrics attributes as currently 
documented in the HTML spec. Chrome has recently shipped support for the 
actualBoundingBox attributes; it has support for additional font-metrics 
attributes behind the "experimental web features" flag.
Bug: 
https://bugzilla.mozilla.org/show_bug.cgi?id=1102584
Standard: 
https://html.spec.whatwg.org/multipage/canvas.html#textmetrics
Note that there are a number of open issues regarding the spec (see 
https://github.com/w3ctag/design-reviews/issues/302#issuecomment-427996200). 
For this reason, I propose to implement these attributes behind several 
prefs, and initially enable only the actualBoundingBox* attributes by 
default (matching what Chrome has shipped); the others will be 
preffed-off, but can be selectively enabled by authors who want to 
experiment with them.
Testing: Some (limited) tests are in 
web-platform/tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.*
Platform coverage: All
Restricted to secure contexts: No. The existing TextMetrics interface is 
not restricted, and other browsers support the extended attributes in 
all contexts.
Target Release: 74
Preferences behind which this will be implemented:
   dom.textMetrics.actualBoundingBox.enabled  (default: true)
   dom.textMetrics.baselines.enabled          (default: false)
   dom.textMetrics.emHeight.enabled           (default: false)
   dom.textMetrics.fontBoundingBox.enabled    (default: false)