diff --git a/third_party/blink/renderer/core/inspector/network_resources_data.cc b/third_party/blink/renderer/core/inspector/network_resources_data.cc index 694d430c47be3..c184bed01d218 100644 --- a/third_party/blink/renderer/core/inspector/network_resources_data.cc +++ b/third_party/blink/renderer/core/inspector/network_resources_data.cc @@ -474,6 +474,13 @@ bool NetworkResourcesData::EnsureFreeSpace(uint64_t size) { return false; while (content_size_ + size > maximum_resources_content_size_) { + if (request_ids_deque_.empty()) { + // `content_size_` can be desynced from `request_ids_deque_` after + // `Clear(preserved_loader_id)` re-adds preserved bytes without + // re-queuing their request ids. Bail out instead of popping an empty + // (capacity-0, nullptr-backed) deque. + return false; + } String request_id = request_ids_deque_.TakeFirst(); ResourceData* resource_data = ResourceDataForRequestId(request_id); if (resource_data)