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

  1. Fenced Frame Removal

    canLoadOpaqueURL() — an early-design feature-detection helper for fenced frames — is removed. Sites should rely on the standard load handshake instead.

  2. Migration probe

    Field-deploy checklist: probes the removed method, probes the replacement, and calls the replacement. Three rows = one decision.

  3. Legacy Codebase Scanner

    Paste any JS/TS that touches fenced frames; the scanner flags every canLoadOpaqueURL call site with a line number and emits a paste-ready replacement patch.

  4. 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 new navigator.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.

references