Commit ae2840da authored by Ben Kelly's avatar Ben Kelly Committed by Commit Bot

CacheStorage: Fix crash when eager reading is enabled.

Bug: 1014486,1010624
Change-Id: I175e6390cb67be4acff89caebee33c86d07230c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863230Reviewed-by: default avatarMarijn Kruisselbrink <mek@chromium.org>
Commit-Queue: Ben Kelly <wanderview@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706012}
parent 28dc646f
......@@ -700,19 +700,26 @@ ScriptPromise Cache::MatchImpl(ScriptState* script_state,
break;
}
} else {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "Cache::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"response", CacheStorageTracedValue(result->get_response()));
UMA_HISTOGRAM_LONG_TIMES(
"ServiceWorkerCache.Cache.Renderer.Match.Hit", elapsed);
ScriptState::Scope scope(resolver->GetScriptState());
if (result->is_eager_response()) {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "Cache::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"eager_response",
CacheStorageTracedValue(
result->get_eager_response()->response));
resolver->Resolve(
CreateEagerResponse(resolver->GetScriptState(),
std::move(result->get_eager_response()),
self->blob_client_list_));
} else {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "Cache::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"response",
CacheStorageTracedValue(result->get_response()));
resolver->Resolve(Response::Create(resolver->GetScriptState(),
*result->get_response()));
}
......
......@@ -428,17 +428,24 @@ ScriptPromise CacheStorage::MatchImpl(ScriptState* script_state,
break;
}
} else {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "CacheStorage::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"response", CacheStorageTracedValue(result->get_response()));
ScriptState::Scope scope(resolver->GetScriptState());
if (result->is_eager_response()) {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "CacheStorage::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"eager_response",
CacheStorageTracedValue(
result->get_eager_response()->response));
resolver->Resolve(
CreateEagerResponse(resolver->GetScriptState(),
std::move(result->get_eager_response()),
self->blob_client_list_));
} else {
TRACE_EVENT_WITH_FLOW1(
"CacheStorage", "CacheStorage::MatchImpl::Callback",
TRACE_ID_GLOBAL(trace_id), TRACE_EVENT_FLAG_FLOW_IN,
"response",
CacheStorageTracedValue(result->get_response()));
resolver->Resolve(Response::Create(resolver->GetScriptState(),
*result->get_response()));
}
......
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