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( ...@@ -788,18 +788,19 @@ void ServiceWorkerVersion::RemoveControlleeFromBackForwardCacheMap(
void ServiceWorkerVersion::OnControlleeDestroyed( void ServiceWorkerVersion::OnControlleeDestroyed(
const std::string& client_uuid) { const std::string& client_uuid) {
if (!IsBackForwardCacheEnabled() || if (!IsBackForwardCacheEnabled() ||
!ServiceWorkerContext::IsServiceWorkerOnUIEnabled()) !ServiceWorkerContext::IsServiceWorkerOnUIEnabled()) {
RemoveControllee(client_uuid); RemoveControllee(client_uuid);
} else {
if (base::Contains(controllee_map_, client_uuid)) { if (base::Contains(controllee_map_, client_uuid)) {
RemoveControllee(client_uuid); RemoveControllee(client_uuid);
} else if (base::Contains(bfcached_controllee_map_, client_uuid)) { } else if (base::Contains(bfcached_controllee_map_, client_uuid)) {
RemoveControlleeFromBackForwardCacheMap(client_uuid); RemoveControlleeFromBackForwardCacheMap(client_uuid);
} }
// It is possible that the controllee belongs to neither |controllee_map_| or // It is possible that the controllee belongs to neither |controllee_map_|
// |bfcached_controllee_map_|. This happens when a BackForwardCached // or |bfcached_controllee_map_|. This happens when a BackForwardCached
// controllee is deleted after eviction, which has already removed it from // controllee is deleted after eviction, which has already removed it from
// |bfcached_controllee_map_|. // |bfcached_controllee_map_|.
}
} }
void ServiceWorkerVersion::EvictBackForwardCachedControllees() { 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