v136 · miscellaneous
Remove HTMLFencedFrameElement.canLoadOpaqueURL().
canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023, and calling it has resulted in a deprecation console warning ever since pointing developers to the new API. It does not make sense to have the function attached to `HTMLFencedFrameElement` and instead should be attached to the `navigator` object (which contains other fenced
concepts
-
Fenced Frame Removal
canLoadOpaqueURL() — an early-design feature-detection helper for fenced frames — is removed. Sites should rely on the standard load handshake instead.
-
Migration probe
Field-deploy checklist: probes the removed method, probes the replacement, and calls the replacement. Three rows = one decision.
-
Legacy Codebase Scanner
Paste any JS/TS that touches fenced frames; the scanner flags every
canLoadOpaqueURLcall site with a line number and emits a paste-ready replacement patch. -
API Deprecation Timeline
An interactive timeline of the full lifecycle — added in Chrome 97, replacement in 116, deprecation warnings, removal in 136 — with live probes of both APIs and a side-by-side migration cheatsheet showing the old
HTMLFencedFrameElement.canLoadOpaqueURL()vs the newnavigator.canLoadAdAuctionFencedFrame().
why it shipped
This can already be done with its replacement: `navigator.canLoadAdAuctionFencedFrame()`. Because the `navigator` object contains other fenced frame and ad auction related functions, it is better to have this API live there.