Changeset 200235 in webkit
- Timestamp:
- Apr 29, 2016 1:15:10 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r200234 r200235 1 2016-04-29 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 FetchResponse should return a ReadableStream even if disturbed 4 https://bugs.webkit.org/show_bug.cgi?id=156911 5 6 Reviewed by Darin Adler. 7 8 * web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing test. 9 1 10 2016-04-29 Ryosuke Niwa <rniwa@webkit.org> 2 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt
r199825 r200235 1 1 2 FAIL Getting a body reader after consuming as blob assert_not_equals: got disallowed value null 3 FAIL Getting a body reader after consuming as text assert_not_equals: got disallowed value null 4 FAIL Getting a body reader after consuming as json assert_not_equals: got disallowed value null 5 FAIL Getting a body reader after consuming as arrayBuffer assert_not_equals: got disallowed value null 2 PASS Getting a body reader after consuming as blob 3 PASS Getting a body reader after consuming as text 4 PASS Getting a body reader after consuming as json 5 PASS Getting a body reader after consuming as arrayBuffer 6 6 -
trunk/Source/WebCore/ChangeLog
r200232 r200235 1 2016-04-29 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 FetchResponse should return a ReadableStream even if disturbed 4 https://bugs.webkit.org/show_bug.cgi?id=156911 5 6 Reviewed by Darin Adler. 7 8 Covered by rebased test. 9 10 * Modules/fetch/FetchResponse.cpp: 11 (WebCore::FetchResponse::createReadableStreamSource): Asserting in case response is disturbed. 12 * bindings/js/JSFetchResponseCustom.cpp: 13 (WebCore::JSFetchResponse::body): Creating a locked empty readable stream if response is disturbed. 14 * bindings/js/ReadableStreamController.cpp: 15 (WebCore::createReadableStream): Constructing a readable stream even if source is null. 16 (WebCore::getReadableStreamReader): Retrieving the reader from a readable stream. Stream must not be locked. 17 * bindings/js/ReadableStreamController.h: 18 1 19 2016-04-29 Yoav Weiss <yoav@yoav.ws> 2 20 -
trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp
r199641 r200235 294 294 { 295 295 ASSERT(!m_readableStreamSource); 296 if (body().isEmpty() || isDisturbed()) 296 ASSERT(!isDisturbed()); 297 298 if (body().isEmpty()) 297 299 return nullptr; 298 300 -
trunk/Source/WebCore/bindings/js/JSFetchResponseCustom.cpp
r199641 r200235 39 39 { 40 40 #if ENABLE(STREAMS_API) 41 if (!m_body) 42 m_body.set(state.vm(), this, createReadableStream(state, globalObject(), wrapped().createReadableStreamSource())); 41 if (!m_body) { 42 JSC::JSValue readableStream; 43 if (wrapped().isDisturbed()) { 44 readableStream = createReadableStream(state, globalObject(), nullptr); 45 // Let's get the reader to lock it. 46 getReadableStreamReader(state, readableStream); 47 } else { 48 ReadableStreamSource* source = wrapped().createReadableStreamSource(); 49 readableStream = source ? createReadableStream(state, globalObject(), source) : JSC::jsNull(); 50 } 51 m_body.set(state.vm(), this, readableStream); 52 } 43 53 return m_body.get(); 44 54 #else -
trunk/Source/WebCore/bindings/js/ReadableStreamController.cpp
r199641 r200235 87 87 JSC::JSValue createReadableStream(JSC::ExecState& state, JSDOMGlobalObject* globalObject, ReadableStreamSource* source) 88 88 { 89 if (!source)90 return JSC::jsNull();91 92 89 JSC::JSLockHolder lock(&state); 93 90 94 JSC::JSValue jsSource = toJS(&state, globalObject, source);91 JSC::JSValue jsSource = source ? toJS(&state, globalObject, source) : JSC::jsUndefined(); 95 92 JSC::Strong<JSC::Unknown> protect(state.vm(), jsSource); 96 93 … … 107 104 } 108 105 106 JSC::JSValue getReadableStreamReader(JSC::ExecState& state, JSC::JSValue readableStream) 107 { 108 ASSERT(readableStream.isObject()); 109 110 JSC::JSValue getReader = readableStream.getObject()->get(&state, JSC::Identifier::fromString(&state, "getReader")); 111 ASSERT(!state.hadException()); 112 113 JSC::JSValue reader = callFunction(state, getReader, readableStream, JSC::MarkedArgumentBuffer()); 114 ASSERT(!state.hadException()); 115 116 return reader; 117 } 118 109 119 } // namespace WebCore 110 120 -
trunk/Source/WebCore/bindings/js/ReadableStreamController.h
r199641 r200235 68 68 69 69 JSC::JSValue createReadableStream(JSC::ExecState&, JSDOMGlobalObject*, ReadableStreamSource*); 70 JSC::JSValue getReadableStreamReader(JSC::ExecState&, JSC::JSValue); 70 71 71 72 inline JSDOMGlobalObject* ReadableStreamController::globalObject() const
Note: See TracChangeset
for help on using the changeset viewer.