Commit aa496d1d authored by Matt Falkenhagen's avatar Matt Falkenhagen Committed by Commit Bot

loader: Make Resource::LastResourceResponse() work when no redirects.

Change-Id: I30dd3f55cc8832512f52062d9b5bff085887f392
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2415918Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809636}
parent 67064cf3
......@@ -155,12 +155,12 @@ void ResourceLoadObserverForFrame::DidReceiveResponse(
if (RuntimeEnabledFeatures::SignedExchangeSubresourcePrefetchEnabled(
document_->GetExecutionContext()) &&
resource->LastResourceResponse()) {
resource->RedirectChainSize() > 0) {
// See if the outer response (which must be the last response in
// the redirect chain) had provided alternate links for the prefetch.
alternate_resource_info =
AlternateSignedExchangeResourceInfo::CreateIfValid(
resource->LastResourceResponse()->HttpHeaderField(
resource->LastResourceResponse().HttpHeaderField(
http_names::kLink),
response.HttpHeaderField(http_names::kLink));
}
......
......@@ -477,10 +477,14 @@ const ResourceRequestHead& Resource::LastResourceRequest() const {
return redirect_chain_.back().request_;
}
const ResourceResponse* Resource::LastResourceResponse() const {
const ResourceResponse& Resource::LastResourceResponse() const {
if (!redirect_chain_.size())
return nullptr;
return &redirect_chain_.back().redirect_response_;
return GetResponse();
return redirect_chain_.back().redirect_response_;
}
size_t Resource::RedirectChainSize() const {
return redirect_chain_.size();
}
void Resource::SetRevalidatingRequest(const ResourceRequestHead& request) {
......
......@@ -169,7 +169,9 @@ class PLATFORM_EXPORT Resource : public GarbageCollected<Resource>,
return resource_request_;
}
const ResourceRequestHead& LastResourceRequest() const;
const ResourceResponse* LastResourceResponse() const;
const ResourceResponse& LastResourceResponse() const;
// Returns zero if there are no redirects.
size_t RedirectChainSize() const;
virtual void SetRevalidatingRequest(const ResourceRequestHead&);
......
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