Commit de42b2eb authored by Yuzu Saijo's avatar Yuzu Saijo Committed by Commit Bot

[bfcache] Fix ServiceWorkerVersion::OnControlleeDestroyed

This CL fixes a bug where RemoveControllee can be called twice in

ServiceWorkerVersion: :OnControlleeDestroyed.
Change-Id: I7ea604f09a36e6bf1b63d45bee9623ba13d8e555
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1900795Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Commit-Queue: Yuzu Saijo <yuzus@chromium.org>
Cr-Commit-Position: refs/heads/master@{#712952}
parent 8e745b96
......@@ -788,18 +788,19 @@ void ServiceWorkerVersion::RemoveControlleeFromBackForwardCacheMap(
void ServiceWorkerVersion::OnControlleeDestroyed(
const std::string& client_uuid) {
if (!IsBackForwardCacheEnabled() ||
!ServiceWorkerContext::IsServiceWorkerOnUIEnabled())
!ServiceWorkerContext::IsServiceWorkerOnUIEnabled()) {
RemoveControllee(client_uuid);
if (base::Contains(controllee_map_, client_uuid)) {
RemoveControllee(client_uuid);
} else if (base::Contains(bfcached_controllee_map_, client_uuid)) {
RemoveControlleeFromBackForwardCacheMap(client_uuid);
} else {
if (base::Contains(controllee_map_, client_uuid)) {
RemoveControllee(client_uuid);
} else if (base::Contains(bfcached_controllee_map_, client_uuid)) {
RemoveControlleeFromBackForwardCacheMap(client_uuid);
}
// It is possible that the controllee belongs to neither |controllee_map_|
// or |bfcached_controllee_map_|. This happens when a BackForwardCached
// controllee is deleted after eviction, which has already removed it from
// |bfcached_controllee_map_|.
}
// It is possible that the controllee belongs to neither |controllee_map_| or
// |bfcached_controllee_map_|. This happens when a BackForwardCached
// controllee is deleted after eviction, which has already removed it from
// |bfcached_controllee_map_|.
}
void ServiceWorkerVersion::EvictBackForwardCachedControllees() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment