Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Unified Diff: third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp

Issue 2516353002: Introduce url_list to the Response scheme of CacheStorage. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp
diff --git a/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp b/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp
index d835e25e66235919548132294a8b438e201df6c9..34da2108bd242314bbb247acb520eebb5da2a3b5 100644
--- a/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp
+++ b/third_party/WebKit/Source/modules/fetch/FetchResponseData.cpp
@@ -81,7 +81,7 @@ FetchResponseData* FetchResponseData::createBasicFilteredResponse() const {
// name is `Set-Cookie` or `Set-Cookie2`."
FetchResponseData* response =
new FetchResponseData(BasicType, m_status, m_statusMessage);
- response->m_url = m_url;
+ response->setURLList(m_urlList);
for (size_t i = 0; i < m_headerList->size(); ++i) {
const FetchHeaderList::Header* header = m_headerList->list()[i].get();
if (FetchUtils::isForbiddenResponseHeaderName(header->first))
@@ -117,7 +117,7 @@ FetchResponseData* FetchResponseData::createCORSFilteredResponse(
// list."
FetchResponseData* response =
new FetchResponseData(CORSType, m_status, m_statusMessage);
- response->m_url = m_url;
+ response->setURLList(m_urlList);
for (size_t i = 0; i < m_headerList->size(); ++i) {
const FetchHeaderList::Header* header = m_headerList->list()[i].get();
const String& name = header->first;
@@ -159,11 +159,19 @@ FetchResponseData* FetchResponseData::createOpaqueRedirectFilteredResponse()
// https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect
FetchResponseData* response =
new FetchResponseData(OpaqueRedirectType, 0, "");
- response->m_url = m_url;
+ response->setURLList(m_urlList);
response->m_internalResponse = const_cast<FetchResponseData*>(this);
return response;
}
+const KURL* FetchResponseData::url() const {
+ // "A response has an associated url. It is a pointer to the last response URL
+ // in response’s url list and null if response’s url list is the empty list."
+ if (m_urlList.isEmpty())
+ return nullptr;
+ return &m_urlList.back();
+}
+
String FetchResponseData::mimeType() const {
return m_mimeType;
}
@@ -182,6 +190,10 @@ String FetchResponseData::internalMIMEType() const {
return m_mimeType;
}
+void FetchResponseData::setURLList(const Vector<KURL>& urlList) {
+ m_urlList = urlList;
+}
+
FetchResponseData* FetchResponseData::clone(ScriptState* scriptState) {
FetchResponseData* newResponse = create();
newResponse->m_type = m_type;
@@ -189,7 +201,7 @@ FetchResponseData* FetchResponseData::clone(ScriptState* scriptState) {
newResponse->m_terminationReason = wrapUnique(new TerminationReason);
*newResponse->m_terminationReason = *m_terminationReason;
}
- newResponse->m_url = m_url;
+ newResponse->setURLList(m_urlList);
newResponse->m_status = m_status;
newResponse->m_statusMessage = m_statusMessage;
newResponse->m_headerList = m_headerList->clone();
@@ -243,8 +255,7 @@ void FetchResponseData::populateWebServiceWorkerResponse(
headerSetToWebVector(m_corsExposedHeaderNames));
return;
}
-
- response.setURL(url());
+ response.setURLList(m_urlList);
response.setStatus(status());
response.setStatusText(statusMessage());
response.setResponseType(fetchTypeToWebType(m_type));

Powered by Google App Engine
This is Rietveld 408576698