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

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

Issue 1899873006: Make Response::body return v8-extra based stream behind flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@notify-locked-released
Patch Set: Created 4 years, 8 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 "modules/fetch/FetchRequestData.h" 5 #include "modules/fetch/FetchRequestData.h"
6 6
7 #include "bindings/core/v8/ScriptState.h"
7 #include "core/dom/ExecutionContext.h" 8 #include "core/dom/ExecutionContext.h"
8 #include "core/fetch/ResourceLoaderOptions.h" 9 #include "core/fetch/ResourceLoaderOptions.h"
9 #include "core/loader/ThreadableLoader.h" 10 #include "core/loader/ThreadableLoader.h"
10 #include "core/streams/ReadableStream.h" 11 #include "core/streams/ReadableStream.h"
11 #include "modules/credentialmanager/PasswordCredential.h" 12 #include "modules/credentialmanager/PasswordCredential.h"
12 #include "modules/fetch/BodyStreamBuffer.h" 13 #include "modules/fetch/BodyStreamBuffer.h"
13 #include "modules/fetch/DataConsumerHandleUtil.h" 14 #include "modules/fetch/DataConsumerHandleUtil.h"
14 #include "modules/fetch/DataConsumerTee.h" 15 #include "modules/fetch/DataConsumerTee.h"
15 #include "modules/fetch/FetchBlobDataConsumerHandle.h" 16 #include "modules/fetch/FetchBlobDataConsumerHandle.h"
16 #include "modules/fetch/FetchHeaderList.h" 17 #include "modules/fetch/FetchHeaderList.h"
17 #include "platform/HTTPNames.h" 18 #include "platform/HTTPNames.h"
18 #include "platform/network/ResourceRequest.h" 19 #include "platform/network/ResourceRequest.h"
19 #include "public/platform/WebURLRequest.h" 20 #include "public/platform/WebURLRequest.h"
20 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 21 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
21 22
22 namespace blink { 23 namespace blink {
23 24
24 FetchRequestData* FetchRequestData::create() 25 FetchRequestData* FetchRequestData::create()
25 { 26 {
26 return new FetchRequestData(); 27 return new FetchRequestData();
27 } 28 }
28 29
29 FetchRequestData* FetchRequestData::create(ExecutionContext* executionContext, c onst WebServiceWorkerRequest& webRequest) 30 FetchRequestData* FetchRequestData::create(ScriptState* scriptState, const WebSe rviceWorkerRequest& webRequest)
30 { 31 {
31 FetchRequestData* request = FetchRequestData::create(); 32 FetchRequestData* request = FetchRequestData::create();
32 request->m_url = webRequest.url(); 33 request->m_url = webRequest.url();
33 request->m_method = webRequest.method(); 34 request->m_method = webRequest.method();
34 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it) 35 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it)
35 request->m_headerList->append(it->key, it->value); 36 request->m_headerList->append(it->key, it->value);
36 if (webRequest.blobDataHandle()) 37 if (webRequest.blobDataHandle())
37 request->setBuffer(new BodyStreamBuffer(FetchBlobDataConsumerHandle::cre ate(executionContext, webRequest.blobDataHandle()))); 38 request->setBuffer(new BodyStreamBuffer(scriptState, FetchBlobDataConsum erHandle::create(scriptState->getExecutionContext(), webRequest.blobDataHandle() )));
38 request->setContext(webRequest.requestContext()); 39 request->setContext(webRequest.requestContext());
39 request->setReferrer(Referrer(webRequest.referrerUrl().string(), ReferrerPol icyDefault)); 40 request->setReferrer(Referrer(webRequest.referrerUrl().string(), ReferrerPol icyDefault));
40 request->setMode(webRequest.mode()); 41 request->setMode(webRequest.mode());
41 request->setCredentials(webRequest.credentialsMode()); 42 request->setCredentials(webRequest.credentialsMode());
42 request->setRedirect(webRequest.redirectMode()); 43 request->setRedirect(webRequest.redirectMode());
43 request->setMIMEType(request->m_headerList->extractMIMEType()); 44 request->setMIMEType(request->m_headerList->extractMIMEType());
44 return request; 45 return request;
45 } 46 }
46 47
47 FetchRequestData* FetchRequestData::cloneExceptBody() 48 FetchRequestData* FetchRequestData::cloneExceptBody()
(...skipping 10 matching lines...) Expand all
58 request->m_mode = m_mode; 59 request->m_mode = m_mode;
59 request->m_credentials = m_credentials; 60 request->m_credentials = m_credentials;
60 request->m_redirect = m_redirect; 61 request->m_redirect = m_redirect;
61 request->m_responseTainting = m_responseTainting; 62 request->m_responseTainting = m_responseTainting;
62 request->m_mimeType = m_mimeType; 63 request->m_mimeType = m_mimeType;
63 request->m_integrity = m_integrity; 64 request->m_integrity = m_integrity;
64 request->m_attachedCredential = m_attachedCredential; 65 request->m_attachedCredential = m_attachedCredential;
65 return request; 66 return request;
66 } 67 }
67 68
68 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) 69 FetchRequestData* FetchRequestData::clone(ScriptState* scriptState)
69 { 70 {
70 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 71 FetchRequestData* request = FetchRequestData::cloneExceptBody();
71 if (m_buffer) { 72 if (m_buffer) {
72 OwnPtr<FetchDataConsumerHandle> dest1, dest2; 73 OwnPtr<FetchDataConsumerHandle> dest1, dest2;
73 DataConsumerTee::create(executionContext, m_buffer->releaseHandle(execut ionContext), &dest1, &dest2); 74 DataConsumerTee::create(scriptState->getExecutionContext(), m_buffer->re leaseHandle(), &dest1, &dest2);
74 m_buffer = new BodyStreamBuffer(dest1.release()); 75 m_buffer = new BodyStreamBuffer(scriptState, dest1.release());
75 request->m_buffer = new BodyStreamBuffer(dest2.release()); 76 request->m_buffer = new BodyStreamBuffer(scriptState, dest2.release());
76 } 77 }
77 return request; 78 return request;
78 } 79 }
79 80
80 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) 81 FetchRequestData* FetchRequestData::pass(ScriptState* scriptState)
81 { 82 {
82 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 83 FetchRequestData* request = FetchRequestData::cloneExceptBody();
83 if (m_buffer) { 84 if (m_buffer) {
84 request->m_buffer = m_buffer; 85 request->m_buffer = m_buffer;
85 m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWebHand le(createDoneDataConsumerHandle())); 86 m_buffer = new BodyStreamBuffer(scriptState, createFetchDataConsumerHand leFromWebHandle(createDoneDataConsumerHandle()));
86 m_buffer->stream()->setIsDisturbed(); 87 m_buffer->setDisturbed();
87 } 88 }
88 return request; 89 return request;
89 } 90 }
90 91
91 FetchRequestData::~FetchRequestData() 92 FetchRequestData::~FetchRequestData()
92 { 93 {
93 } 94 }
94 95
95 FetchRequestData::FetchRequestData() 96 FetchRequestData::FetchRequestData()
96 : m_method(HTTPNames::GET) 97 : m_method(HTTPNames::GET)
(...skipping 17 matching lines...) Expand all
114 m_attachedCredential.clear(); 115 m_attachedCredential.clear();
115 } 116 }
116 117
117 DEFINE_TRACE(FetchRequestData) 118 DEFINE_TRACE(FetchRequestData)
118 { 119 {
119 visitor->trace(m_buffer); 120 visitor->trace(m_buffer);
120 visitor->trace(m_headerList); 121 visitor->trace(m_headerList);
121 } 122 }
122 123
123 } // namespace blink 124 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698