fix(service-worker): prevent duplicate fetches during concurrent update checks #61443
+25
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, multiple simultaneous calls to
checkForUpdate()
could result in redundant fetches and hashing of the update manifest, leading to unnecessary network and CPU usage.This change introduces a mechanism to track an in-progress update check using a cached promise (
ongoingCheckForUpdate
). Subsequent calls tocheckForUpdate()
while a check is in progress will return the same promise instead of triggering a new request.Once the check completes (successfully or not), the cached promise is cleared, allowing future update checks to proceed normally.
This improves efficiency and prevents overlapping update logic in applications that may invoke
checkForUpdate()
from multiple sources (e.g. polling, manual triggers).