Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

PSA: HTMLFencedFrameElement.canLoadOpaqueURL() to be removed

184 views
Skip to first unread message

Xiaochen Zhou

unread,
May 8, 2025, 1:06:06 PMMay 8
to blink-dev, Shivani Sharma, Andrew Verge
The functionality of canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023. Calling the canLoadOpaqueURL() API has resulted in a deprecation console warning ever since pointing developers to the new API.

The behavior of canLoadOpaqueURL() is not spec’d so this does not involve spec changes (only the explainer needs an update). The chromestatus metrics shows there has been no usage of it for the last 6 months.

The removal of canLoadOpaqueURL() will start from M138. We would be happy to send out a formal Intent to Remove if anyone deems it worthwhile.

Mike Taylor

unread,
May 9, 2025, 4:25:50 PMMay 9
to Xiaochen Zhou, blink-dev, Shivani Sharma, Andrew Verge

On 5/8/25 9:56 AM, Xiaochen Zhou wrote:

The functionality of canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023. Calling the canLoadOpaqueURL() API has resulted in a deprecation console warning ever since pointing developers to the new API.

The behavior of canLoadOpaqueURL() is not spec’d so this does not involve spec changes (only the explainer needs an update). The chromestatus metrics shows there has been no usage of it for the last 6 months.
How did we end up shipping an API that is not specified?

The removal of canLoadOpaqueURL() will start from M138. We would be happy to send out a formal Intent to Remove if anyone deems it worthwhile.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/203e9d51-b81f-42f6-8363-994111ba00f2n%40chromium.org.

Shivani Sharma

unread,
May 9, 2025, 6:22:04 PMMay 9
to Mike Taylor, Xiaochen Zhou, blink-dev, Shivani Sharma, Andrew Verge
On Fri, May 9, 2025 at 4:25 PM Mike Taylor <mike...@chromium.org> wrote:

On 5/8/25 9:56 AM, Xiaochen Zhou wrote:

The functionality of canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023. Calling the canLoadOpaqueURL() API has resulted in a deprecation console warning ever since pointing developers to the new API.

The behavior of canLoadOpaqueURL() is not spec’d so this does not involve spec changes (only the explainer needs an update). The chromestatus metrics shows there has been no usage of it for the last 6 months.
How did we end up shipping an API that is not specified?

Looking back into the code history: the replaced method navigator.canLoadAdAuctionFencedFrame() was introduced via this CL in Mar 2023, which also deprecated canLoadOpaqueURL(). The new method was launched via the overall fenced frames I2S in June 2023. It looks like canLoadOpaqueURL wasn't spec'd as it was deprecated even before launch, but was never removed from the code. 
Hope that clarifies and apologies for the confusion.


The removal of canLoadOpaqueURL() will start from M138. We would be happy to send out a formal Intent to Remove if anyone deems it worthwhile.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/203e9d51-b81f-42f6-8363-994111ba00f2n%40chromium.org.


--
Shivani

Mike Taylor

unread,
May 12, 2025, 5:48:40 PMMay 12
to Shivani Sharma, Xiaochen Zhou, blink-dev, Shivani Sharma, Andrew Verge

On 5/9/25 6:21 PM, Shivani Sharma wrote:


On Fri, May 9, 2025 at 4:25 PM Mike Taylor <mike...@chromium.org> wrote:

On 5/8/25 9:56 AM, Xiaochen Zhou wrote:

The functionality of canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023. Calling the canLoadOpaqueURL() API has resulted in a deprecation console warning ever since pointing developers to the new API.

The behavior of canLoadOpaqueURL() is not spec’d so this does not involve spec changes (only the explainer needs an update). The chromestatus metrics shows there has been no usage of it for the last 6 months.
How did we end up shipping an API that is not specified?

Looking back into the code history: the replaced method navigator.canLoadAdAuctionFencedFrame() was introduced via this CL in Mar 2023, which also deprecated canLoadOpaqueURL(). The new method was launched via the overall fenced frames I2S in June 2023. It looks like canLoadOpaqueURL wasn't spec'd as it was deprecated even before launch, but was never removed from the code. 
Hope that clarifies and apologies for the confusion.

Thanks for the history - much appreciated. Given that usage is zero, good luck. :)

(IMHO, we should spec web-exposed methods that we ship, even if they're internally considered as deprecated.)

Reply all
Reply to author
Forward
0 new messages