v136 · miscellaneous

API Deprecation Timeline

The deprecation journey of HTMLFencedFrameElement.canLoadOpaqueURL(): when it was added, when the replacement arrived, when the deprecation warning started, and when it was fully removed in Chrome 136. Includes a live probe of both APIs and a migration cheatsheet.

probing canLoadOpaqueURL()… probing canLoadAdAuctionFencedFrame()…
HTMLFencedFrameElement.canLoadOpaqueURL() was an early feature-detection helper attached to the element constructor. In 2023 it was replaced by navigator.canLoadAdAuctionFencedFrame() which lives alongside other navigator-level fenced-frame APIs. Chrome 136 removes the old API entirely.

Deprecation timeline

Chrome 97 (2022)
canLoadOpaqueURL() added
Attached to HTMLFencedFrameElement as a static method. Allowed fenced-frame implementors to probe whether opaque-URL loading was available.
Chrome 116 (2023)
Replacement API added: navigator.canLoadAdAuctionFencedFrame()
The new method lives on navigator alongside navigator.runAdAuction() and other related APIs. Better API hygiene — a capability query belongs on navigator, not an element constructor.
Chrome 116+ (2023–2024)
Deprecation warning added
Every call to HTMLFencedFrameElement.canLoadOpaqueURL() emits a DevTools deprecation warning: "HTMLFencedFrameElement.canLoadOpaqueURL() is deprecated. Use navigator.canLoadAdAuctionFencedFrame() instead."
Chrome 136 (2025)
API removed
HTMLFencedFrameElement.canLoadOpaqueURL is undefined. Any code calling it will throw TypeError: ... is not a function. Migrate to navigator.canLoadAdAuctionFencedFrame() immediately.

Live API probes

Click "Run probes" to check both APIs.

Migration cheatsheet

Old (Chrome <136 — now removed)

// ❌ Throws TypeError in Chrome 136+
if (HTMLFencedFrameElement
    .canLoadOpaqueURL()) {
  // show fenced frame ad
}

New (Chrome 116+ — use this)

// ✓ Works in Chrome 116–136+
if (navigator
    .canLoadAdAuctionFencedFrame?.()) {
  // show fenced frame ad
}
PropertyOld API (removed)New API
LocationHTMLFencedFrameElementnavigator
Call syntaxHTMLFencedFrameElement.canLoadOpaqueURL()navigator.canLoadAdAuctionFencedFrame()
Available sinceChrome 97Chrome 116
Removed inChrome 136
Safe feature-detectNo (throws)navigator.canLoadAdAuctionFencedFrame?.() ?? false