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

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: Rebase 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"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 // "An opaque filtered response is a filtered response whose type is 75 // "An opaque filtered response is a filtered response whose type is
76 // |opaque|, status is 0, status message is the empty byte sequence, header 76 // |opaque|, status is 0, status message is the empty byte sequence, header
77 // list is an empty list, and body is null." 77 // list is an empty list, and body is null."
78 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, ""); 78 FetchResponseData* response = new FetchResponseData(OpaqueType, 0, "");
79 response->m_internalResponse = this; 79 response->m_internalResponse = this;
80 return response; 80 return response;
81 } 81 }
82 82
83 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response) 83 void FetchResponseData::populateWebServiceWorkerResponse(WebServiceWorkerRespons e& response)
84 { 84 {
85 if (m_internalResponse) { 85 if (m_internalResponse)
86 m_internalResponse->populateWebServiceWorkerResponse(response); 86 m_internalResponse->populateWebServiceWorkerResponse(response);
87
88 WebServiceWorkerResponse::ResponseType type = WebServiceWorkerResponse::Defa ultType;
89 switch (m_type) {
90 case BasicType:
91 type = WebServiceWorkerResponse::BasicType;
92 break;
93 case CORSType:
94 type = WebServiceWorkerResponse::CORSType;
95 break;
96 case DefaultType:
97 type = WebServiceWorkerResponse::DefaultType;
98 break;
99 case ErrorType:
100 type = WebServiceWorkerResponse::ErrorType;
101 break;
102 case OpaqueType:
103 type = WebServiceWorkerResponse::OpaqueType;
104 break;
105 }
106
107 // Note that this overrides any internal response's type.
108 response.setResponseType(type);
109
110 if (m_internalResponse)
jsbell 2014/09/30 22:14:44 Splitting up the m_internalResponse logic (populat
jkarlin 2014/10/01 00:11:00 Done.
87 return; 111 return;
88 } 112
89 response.setURL(url()); 113 response.setURL(url());
90 response.setStatus(status()); 114 response.setStatus(status());
91 response.setStatusText(statusMessage()); 115 response.setStatusText(statusMessage());
92 for (size_t i = 0; i < headerList()->size(); ++i) { 116 for (size_t i = 0; i < headerList()->size(); ++i) {
93 const FetchHeaderList::Header* header = headerList()->list()[i].get(); 117 const FetchHeaderList::Header* header = headerList()->list()[i].get();
94 response.appendHeader(header->first, header->second); 118 response.appendHeader(header->first, header->second);
95 } 119 }
96 response.setBlobDataHandle(blobDataHandle()); 120 response.setBlobDataHandle(blobDataHandle());
97 } 121 }
98 122
99 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage) 123 FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicStr ing statusMessage)
100 : m_type(type) 124 : m_type(type)
101 , m_status(status) 125 , m_status(status)
102 , m_statusMessage(statusMessage) 126 , m_statusMessage(statusMessage)
103 , m_headerList(FetchHeaderList::create()) 127 , m_headerList(FetchHeaderList::create())
104 { 128 {
105 } 129 }
106 130
107 void FetchResponseData::trace(Visitor* visitor) 131 void FetchResponseData::trace(Visitor* visitor)
108 { 132 {
109 visitor->trace(m_headerList); 133 visitor->trace(m_headerList);
110 visitor->trace(m_internalResponse); 134 visitor->trace(m_internalResponse);
111 } 135 }
112 136
113 } // namespace blink 137 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698