firebase-js-sdk icon indicating copy to clipboard operation
firebase-js-sdk copied to clipboard

FR: WebSockets left open on pagehide prevent use of back/forward cache on Chrome

Open cjung89 opened this issue 9 months ago • 2 comments

Operating System

macOS 15.3.1

Environment (if applicable)

Chrome 134.0.6998.89

Firebase SDK Version

v4.12.1

Firebase SDK Product(s)

Database

Project Tooling

Unknown/ N/A as this is being detected from end-user side

Detailed Problem Description

Database SDK's WebSocket connection doesn't consistently close when a page becomes hidden (visibilitychange or pagehide), preventing Chrome from using Back/Forward Cache (bfcache). This forces full reloads, degrading the user experience. To improve bfcache compatibility, the SDK could close the WebSocket connection within the pagehide event (or when visibilitychange state is hidden). I'm not sure, but I think this could be addressed in PersistentConnection by modifying the onVisible_ to call close() when visibility becomes hidden, and ensuring shouldReconnect_ prevents immediate reconnection when the page is not visible.

Steps and code to reproduce issue

  1. Navigate to https://www.aajtak.in/ and wait for page to load
  2. In Application tab, select Back/forward cache and then select "Test back/forward cache"
Image

cjung89 avatar Mar 17 '25 16:03 cjung89

+1 noticed a number of other sites that can benefit from bfcache if this is resolved. Thanks @cjung89.

hadyan avatar Mar 19 '25 09:03 hadyan

@Jlacher FYI

gilbertococchi avatar Jun 06 '25 11:06 gilbertococchi