Intent to Protype: Back/Forward Cache NotRestoredReason API

Skip to first unread message

Yuzu Saijo

Mar 25, 2022, 12:03:37 AMMar 25

Contact emails,



(Not yet ready)


NotRestoredReason API will report the list of reasons why a page is not served from BFcache in a frame tree structure, via PerformanceNavigationTiming API.

Blink component



Today pages can be blocked from BFCache for different reasons, such as reasons required by spec and reasons specific to the browser implementation. 

For example, if a page uses a feature such as WebLock and does not release the acquired lock in the pagehide handler, Chrome does not put the page into BFCache. If developers want to make their site restored from BFCache, they have to release the lock in the pagehide handler.

Developers can gather the hit-rate of BFCache on their site, i.e. what % of history navigation is served by BFCache, by using the pageshow handler persisted parameter and PerformanceNavigationTiming.type(back-forward). However, there is no way for developers to tell what reasons are blocking their pages from BFCache in the wild. They are not able to know what actions to take to improve the hit-rate.

We would like to make it possible for sites to collect information on why BFCache is not used on a history navigation, so that they can take actions on each reason and make their page BFCache compatible.

Initial public proposal

TAG review

(Not sent yet)


Interoperability and Compatibility

Gecko: Positive feedback on the GitHub discussion (link)

WebKit: No signal

Web developers: Positive reactions in TPAC WebPerf WG (minutes)


Is this feature fully tested by web-platform-tests?


Flag name

(Not yet ready)

Requires code in //chrome?


Estimated milestones

No milestones specified

Link to entry on the Chrome Platform Status

Reply all
Reply to author
0 new messages