OLD | NEW |
---|---|
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 Loading... | |
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 |
OLD | NEW |