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

Side by Side Diff: Source/modules/serviceworkers/FetchResponseData.cpp

Issue 617003003: Make WebServiceWorkerResponse support ResponseType (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addresses comments from PS4 and fixes some cache tests Created 6 years, 2 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "FetchResponseData.h" 6 #include "FetchResponseData.h"
7 7
8 #include "core/fetch/CrossOriginAccessControl.h" 8 #include "core/fetch/CrossOriginAccessControl.h"
9 #include "modules/serviceworkers/FetchHeaderList.h" 9 #include "modules/serviceworkers/FetchHeaderList.h"
10 #include "public/platform/WebServiceWorkerResponse.h" 10 #include "public/platform/WebServiceWorkerResponse.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 namespace {
15 WebServiceWorkerResponse::ResponseType fetchTypeToWebType(FetchResponseData: :Type fetchType)
horo 2014/10/01 01:38:11 + 1 line
horo 2014/10/01 01:38:11 No need to indent.
jkarlin 2014/10/01 11:26:57 Done.
jkarlin 2014/10/01 11:26:57 Done.
16 {
17 WebServiceWorkerResponse::ResponseType webType = WebServiceWorkerRespons e::DefaultType;
18 switch (fetchType) {
19 case FetchResponseData::BasicType:
20 webType = WebServiceWorkerResponse::BasicType;
21 break;
22 case FetchResponseData::CORSType:
23 webType = WebServiceWorkerResponse::CORSType;
24 break;
25 case FetchResponseData::DefaultType:
26 webType = WebServiceWorkerResponse::DefaultType;
27 break;
28 case FetchResponseData::ErrorType:
29 webType = WebServiceWorkerResponse::ErrorType;
30 break;
31 case FetchResponseData::OpaqueType:
32 webType = WebServiceWorkerResponse::OpaqueType;
33 break;
34 }
35 return webType;
36 }
37
38 } // namespace
39
14 FetchResponseData* FetchResponseData::create() 40 FetchResponseData* FetchResponseData::create()
15 { 41 {
16 // "Unless stated otherwise, a response's url is null, status is 200, status 42 // "Unless stated otherwise, a response's url is null, status is 200, status
17 // message is `OK`, header list is an empty header list, and body is null." 43 // message is `OK`, header list is an empty header list, and body is null."
18 return new FetchResponseData(DefaultType, 200, "OK"); 44 return new FetchResponseData(DefaultType, 200, "OK");
19 } 45 }
20 46
21 FetchResponseData* FetchResponseData::createNetworkErrorResponse() 47 FetchResponseData* FetchResponseData::createNetworkErrorResponse()
22 { 48 {
23 // "A network error is a response whose status is always 0, status message 49 // "A network error is a response whose status is always 0, status message
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 // list is an empty list, and body is null." 103 // list is an empty list, and body is null."
78 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); 104 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, "");
79 response->m_internalResponse = this; 105 response->m_internalResponse = this;
80 return response; 106 return response;
81 } 107 }
82 108
83 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response) 109 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response)
84 { 110 {
85 if (m_internalResponse) { 111 if (m_internalResponse) {
86 m_internalResponse->populateWebServiceWorkerResponse(response); 112 m_internalResponse->populateWebServiceWorkerResponse(response);
113 response.setResponseType(fetchTypeToWebType(m_type));
87 return; 114 return;
88 } 115 }
116
89 response.setURL(url()); 117 response.setURL(url());
90 response.setStatus(status()); 118 response.setStatus(status());
91 response.setStatusText(statusMessage()); 119 response.setStatusText(statusMessage());
120 response.setResponseType(fetchTypeToWebType(m_type));
92 for (size_t i = 0; i < headerList()->size(); ++i) { 121 for (size_t i = 0; i < headerList()->size(); ++i) {
93 const FetchHeaderList::Header* header = headerList()->list()[i].get(); 122 const FetchHeaderList::Header* header = headerList()->list()[i].get();
94 response.appendHeader(header->first, header->second); 123 response.appendHeader(header->first, header->second);
95 } 124 }
96 response.setBlobDataHandle(blobDataHandle()); 125 response.setBlobDataHandle(blobDataHandle());
97 } 126 }
98 127
99 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage) 128 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage)
100 : m_type(type) 129 : m_type(type)
101 , m_status(status) 130 , m_status(status)
102 , m_statusMessage(statusMessage) 131 , m_statusMessage(statusMessage)
103 , m_headerList(FetchHeaderList::create()) 132 , m_headerList(FetchHeaderList::create())
104 { 133 {
105 } 134 }
106 135
107 void FetchResponseData::trace(Visitor* visitor) 136 void FetchResponseData::trace(Visitor* visitor)
108 { 137 {
109 visitor->trace(m_headerList); 138 visitor->trace(m_headerList);
110 visitor->trace(m_internalResponse); 139 visitor->trace(m_internalResponse);
111 } 140 }
112 141
113 } // namespace blink 142 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698