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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/FetchDataLoader.cpp

Issue 2319033002: Add WARN_UNUSED_RESULT to BytesConsumer read methods. (Closed)
Patch Set: rebase Created 4 years, 3 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
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/BytesConsumerTestUtil.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "modules/fetch/FetchDataLoader.h" 5 #include "modules/fetch/FetchDataLoader.h"
6 6
7 #include "core/html/parser/TextResourceDecoder.h" 7 #include "core/html/parser/TextResourceDecoder.h"
8 #include "modules/fetch/BytesConsumer.h" 8 #include "modules/fetch/BytesConsumer.h"
9 #include "wtf/PtrUtil.h" 9 #include "wtf/PtrUtil.h"
10 #include "wtf/text/StringBuilder.h" 10 #include "wtf/text/StringBuilder.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 } 56 }
57 57
58 void onStateChange() override 58 void onStateChange() override
59 { 59 {
60 while (true) { 60 while (true) {
61 const char* buffer; 61 const char* buffer;
62 size_t available; 62 size_t available;
63 switch (m_consumer->beginRead(&buffer, &available)) { 63 switch (m_consumer->beginRead(&buffer, &available)) {
64 case BytesConsumer::Result::Ok: 64 case BytesConsumer::Result::Ok:
65 m_blobData->appendBytes(buffer, available); 65 m_blobData->appendBytes(buffer, available);
66 m_consumer->endRead(available); 66 if (m_consumer->endRead(available) != BytesConsumer::Result::Ok) {
67 m_client->didFetchDataLoadFailed();
68 return;
69 }
67 break; 70 break;
68 case BytesConsumer::Result::ShouldWait: 71 case BytesConsumer::Result::ShouldWait:
69 return; 72 return;
70 case BytesConsumer::Result::Done: { 73 case BytesConsumer::Result::Done: {
71 auto size = m_blobData->length(); 74 auto size = m_blobData->length();
72 m_client->didFetchDataLoadedBlobHandle(BlobDataHandle::create(st d::move(m_blobData), size)); 75 m_client->didFetchDataLoadedBlobHandle(BlobDataHandle::create(st d::move(m_blobData), size));
73 return; 76 return;
74 } 77 }
75 case BytesConsumer::Result::Error: 78 case BytesConsumer::Result::Error:
76 m_client->didFetchDataLoadFailed(); 79 m_client->didFetchDataLoadFailed();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 void onStateChange() override 121 void onStateChange() override
119 { 122 {
120 while (true) { 123 while (true) {
121 const char* buffer; 124 const char* buffer;
122 size_t available; 125 size_t available;
123 switch (m_consumer->beginRead(&buffer, &available)) { 126 switch (m_consumer->beginRead(&buffer, &available)) {
124 case BytesConsumer::Result::Ok: 127 case BytesConsumer::Result::Ok:
125 if (available > 0) { 128 if (available > 0) {
126 unsigned bytesAppended = m_rawData->append(buffer, available ); 129 unsigned bytesAppended = m_rawData->append(buffer, available );
127 if (!bytesAppended) { 130 if (!bytesAppended) {
128 m_consumer->endRead(0); 131 auto unused = m_consumer->endRead(0);
132 ALLOW_UNUSED_LOCAL(unused);
129 m_consumer->cancel(); 133 m_consumer->cancel();
130 m_client->didFetchDataLoadFailed(); 134 m_client->didFetchDataLoadFailed();
131 return; 135 return;
132 } 136 }
133 DCHECK_EQ(bytesAppended, available); 137 DCHECK_EQ(bytesAppended, available);
134 } 138 }
135 m_consumer->endRead(available); 139 if (m_consumer->endRead(available) != BytesConsumer::Result::Ok) {
140 m_client->didFetchDataLoadFailed();
141 return;
142 }
136 break; 143 break;
137 case BytesConsumer::Result::ShouldWait: 144 case BytesConsumer::Result::ShouldWait:
138 return; 145 return;
139 case BytesConsumer::Result::Done: 146 case BytesConsumer::Result::Done:
140 m_client->didFetchDataLoadedArrayBuffer(DOMArrayBuffer::create(m _rawData->toArrayBuffer())); 147 m_client->didFetchDataLoadedArrayBuffer(DOMArrayBuffer::create(m _rawData->toArrayBuffer()));
141 return; 148 return;
142 case BytesConsumer::Result::Error: 149 case BytesConsumer::Result::Error:
143 m_client->didFetchDataLoadFailed(); 150 m_client->didFetchDataLoadFailed();
144 return; 151 return;
145 } 152 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 185
179 void onStateChange() override 186 void onStateChange() override
180 { 187 {
181 while (true) { 188 while (true) {
182 const char* buffer; 189 const char* buffer;
183 size_t available; 190 size_t available;
184 switch (m_consumer->beginRead(&buffer, &available)) { 191 switch (m_consumer->beginRead(&buffer, &available)) {
185 case BytesConsumer::Result::Ok: 192 case BytesConsumer::Result::Ok:
186 if (available > 0) 193 if (available > 0)
187 m_builder.append(m_decoder->decode(buffer, available)); 194 m_builder.append(m_decoder->decode(buffer, available));
188 m_consumer->endRead(available); 195 if (m_consumer->endRead(available) != BytesConsumer::Result::Ok) {
196 m_client->didFetchDataLoadFailed();
197 return;
198 }
189 break; 199 break;
190 case BytesConsumer::Result::ShouldWait: 200 case BytesConsumer::Result::ShouldWait:
191 return; 201 return;
192 case BytesConsumer::Result::Done: 202 case BytesConsumer::Result::Done:
193 m_builder.append(m_decoder->flush()); 203 m_builder.append(m_decoder->flush());
194 m_client->didFetchDataLoadedString(m_builder.toString()); 204 m_client->didFetchDataLoadedString(m_builder.toString());
195 return; 205 return;
196 case BytesConsumer::Result::Error: 206 case BytesConsumer::Result::Error:
197 m_client->didFetchDataLoadFailed(); 207 m_client->didFetchDataLoadFailed();
198 return; 208 return;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 251
242 void onStateChange() override 252 void onStateChange() override
243 { 253 {
244 bool needToFlush = false; 254 bool needToFlush = false;
245 while (true) { 255 while (true) {
246 const char* buffer; 256 const char* buffer;
247 size_t available; 257 size_t available;
248 switch (m_consumer->beginRead(&buffer, &available)) { 258 switch (m_consumer->beginRead(&buffer, &available)) {
249 case BytesConsumer::Result::Ok: 259 case BytesConsumer::Result::Ok:
250 m_outStream->addData(buffer, available); 260 m_outStream->addData(buffer, available);
251 m_consumer->endRead(available); 261 if (m_consumer->endRead(available) != BytesConsumer::Result::Ok) {
262 m_outStream->abort();
263 m_client->didFetchDataLoadFailed();
264 return;
265 }
252 needToFlush = true; 266 needToFlush = true;
253 break; 267 break;
254 case BytesConsumer::Result::ShouldWait: 268 case BytesConsumer::Result::ShouldWait:
255 if (needToFlush) 269 if (needToFlush)
256 m_outStream->flush(); 270 m_outStream->flush();
257 return; 271 return;
258 case BytesConsumer::Result::Done: 272 case BytesConsumer::Result::Done:
259 if (needToFlush) 273 if (needToFlush)
260 m_outStream->flush(); 274 m_outStream->flush();
261 m_outStream->finalize(); 275 m_outStream->finalize();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 { 323 {
310 return new FetchDataLoaderAsString(); 324 return new FetchDataLoaderAsString();
311 } 325 }
312 326
313 FetchDataLoader* FetchDataLoader::createLoaderAsStream(Stream* outStream) 327 FetchDataLoader* FetchDataLoader::createLoaderAsStream(Stream* outStream)
314 { 328 {
315 return new FetchDataLoaderAsStream(outStream); 329 return new FetchDataLoaderAsStream(outStream);
316 } 330 }
317 331
318 } // namespace blink 332 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/BytesConsumerTestUtil.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698