Diff
Modified: trunk/Source/WebCore/ChangeLog (278713 => 278714)
--- trunk/Source/WebCore/ChangeLog 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/ChangeLog 2021-06-10 18:53:20 UTC (rev 278714)
@@ -1,5 +1,32 @@
2021-06-10 Chris Dumez <[email protected]>
+ Replace ReadableStreamChunk struct with a WTF::Span
+ https://bugs.webkit.org/show_bug.cgi?id=226879
+
+ Reviewed by Alex Christensen.
+
+ Replace ReadableStreamChunk struct with a WTF::Span now that we support
+ Span and they are essentially the same thing.
+
+ * Headers.cmake:
+ * Modules/cache/DOMCache.cpp:
+ (WebCore::DOMCache::addAll):
+ (WebCore::DOMCache::put):
+ * Modules/fetch/FetchBodyConsumer.cpp:
+ (WebCore::FetchBodyConsumer::resolve):
+ * Modules/fetch/FetchResponse.cpp:
+ (WebCore::FetchResponse::BodyLoader::didReceiveData):
+ (WebCore::FetchResponse::BodyLoader::consumeDataByChunk):
+ * Modules/fetch/FetchResponse.h:
+ * Modules/streams/ReadableStreamChunk.h: Removed.
+ * Modules/streams/ReadableStreamSink.cpp:
+ (WebCore::ReadableStreamToSharedBufferSink::enqueue):
+ * Modules/streams/ReadableStreamSink.h:
+ * WebCore.xcodeproj/project.pbxproj:
+ * workers/service/context/ServiceWorkerFetch.cpp:
+
+2021-06-10 Chris Dumez <[email protected]>
+
Enable WebPage's release logging in ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=226510
Modified: trunk/Source/WebCore/Headers.cmake (278713 => 278714)
--- trunk/Source/WebCore/Headers.cmake 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Headers.cmake 2021-06-10 18:53:20 UTC (rev 278714)
@@ -142,7 +142,6 @@
Modules/speech/SpeechRecognitionUpdate.h
Modules/speech/SpeechRecognizer.h
- Modules/streams/ReadableStreamChunk.h
Modules/streams/ReadableStreamSink.h
Modules/streams/ReadableStreamSource.h
Modified: trunk/Source/WebCore/Modules/cache/DOMCache.cpp (278713 => 278714)
--- trunk/Source/WebCore/Modules/cache/DOMCache.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/cache/DOMCache.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -32,7 +32,6 @@
#include "HTTPParsers.h"
#include "JSFetchRequest.h"
#include "JSFetchResponse.h"
-#include "ReadableStreamChunk.h"
#include "ScriptExecutionContext.h"
#include <wtf/CompletionHandler.h>
#include <wtf/URL.h>
@@ -289,7 +288,7 @@
}
size_t recordPosition = taskHandler->addRecord(toConnectionRecord(request.get(), response, nullptr));
- response.consumeBodyReceivedByChunk([taskHandler = WTFMove(taskHandler), recordPosition, data = "" response = makeRef(response)] (ExceptionOr<ReadableStreamChunk*>&& result) mutable {
+ response.consumeBodyReceivedByChunk([taskHandler = WTFMove(taskHandler), recordPosition, data = "" response = makeRef(response)] (auto&& result) mutable {
if (taskHandler->isDone())
return;
@@ -298,8 +297,8 @@
return;
}
- if (auto chunk = result.returnValue())
- data->append(chunk->data, chunk->size);
+ if (auto* chunk = result.returnValue())
+ data->append(chunk->data(), chunk->size());
else
taskHandler->addResponseBody(recordPosition, response, WTFMove(data));
});
@@ -382,8 +381,8 @@
return;
}
- if (auto chunk = result.returnValue())
- data->append(chunk->data, chunk->size);
+ if (auto* chunk = result.returnValue())
+ data->append(chunk->data(), chunk->size());
else
this->putWithResponseData(WTFMove(promise), WTFMove(request), WTFMove(response), RefPtr<SharedBuffer> { WTFMove(data) });
});
Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp (278713 => 278714)
--- trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -34,7 +34,6 @@
#include "HTTPParsers.h"
#include "JSBlob.h"
#include "JSDOMFormData.h"
-#include "ReadableStreamChunk.h"
#include "TextResourceDecoder.h"
#include <wtf/StringExtras.h>
#include <wtf/URLParser.h>
@@ -273,8 +272,8 @@
return;
}
- if (auto chunk = result.returnValue())
- data->append(chunk->data, chunk->size);
+ if (auto* chunk = result.returnValue())
+ data->append(chunk->data(), chunk->size());
else
resolveWithTypeAndData(WTFMove(promise), type, contentType, data->data(), data->size());
});
Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp (278713 => 278714)
--- trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -354,7 +354,7 @@
ASSERT(m_response.m_readableStreamSource || m_consumeDataCallback);
if (m_consumeDataCallback) {
- ReadableStreamChunk chunk { data, size };
+ Span chunk { data, size };
m_consumeDataCallback(&chunk);
return;
}
@@ -400,7 +400,7 @@
if (!data)
return;
- ReadableStreamChunk chunk { data->data(), data->size() };
+ Span chunk { data->data(), data->size() };
m_consumeDataCallback(&chunk);
}
Modified: trunk/Source/WebCore/Modules/fetch/FetchResponse.h (278713 => 278714)
--- trunk/Source/WebCore/Modules/fetch/FetchResponse.h 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/fetch/FetchResponse.h 2021-06-10 18:53:20 UTC (rev 278714)
@@ -33,6 +33,7 @@
#include "ReadableStreamSink.h"
#include "ResourceResponse.h"
#include <_javascript_Core/TypedArrays.h>
+#include <wtf/Span.h>
#include <wtf/WeakPtr.h>
namespace JSC {
@@ -44,7 +45,6 @@
class AbortSignal;
class FetchRequest;
-struct ReadableStreamChunk;
class ReadableStreamSource;
class FetchResponse final : public FetchBodyOwner, public CanMakeWeakPtr<FetchResponse> {
@@ -94,7 +94,7 @@
bool isBlobBody() const { return !isBodyNull() && body().isBlob(); }
bool isBlobFormData() const { return !isBodyNull() && body().isFormData(); }
- using ConsumeDataByChunkCallback = WTF::Function<void(ExceptionOr<ReadableStreamChunk*>&&)>;
+ using ConsumeDataByChunkCallback = Function<void(ExceptionOr<Span<const uint8_t>*>&&)>;
void consumeBodyReceivedByChunk(ConsumeDataByChunkCallback&&);
WEBCORE_EXPORT ResourceResponse resourceResponse() const;
Deleted: trunk/Source/WebCore/Modules/streams/ReadableStreamChunk.h (278713 => 278714)
--- trunk/Source/WebCore/Modules/streams/ReadableStreamChunk.h 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamChunk.h 2021-06-10 18:53:20 UTC (rev 278714)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2018 Oleksandr Skachkov <[email protected]>.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-struct ReadableStreamChunk {
- const uint8_t* data;
- size_t size;
-};
-
-}
Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamSink.cpp (278713 => 278714)
--- trunk/Source/WebCore/Modules/streams/ReadableStreamSink.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamSink.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -50,7 +50,7 @@
return;
if (m_callback) {
- ReadableStreamChunk chunk { buffer.data(), buffer.length() };
+ Span chunk { buffer.data(), buffer.length() };
m_callback(&chunk);
}
}
Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamSink.h (278713 => 278714)
--- trunk/Source/WebCore/Modules/streams/ReadableStreamSink.h 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamSink.h 2021-06-10 18:53:20 UTC (rev 278714)
@@ -27,15 +27,14 @@
#pragma once
#include "ExceptionOr.h"
-#include "ReadableStreamChunk.h"
#include <wtf/Function.h>
#include <wtf/RefCounted.h>
+#include <wtf/Span.h>
namespace WebCore {
class BufferSource;
class ReadableStream;
-struct ReadableStreamChunk;
class SharedBuffer;
class ReadableStreamSink : public RefCounted<ReadableStreamSink> {
@@ -49,7 +48,7 @@
class ReadableStreamToSharedBufferSink final : public ReadableStreamSink {
public:
- using Callback = WTF::Function<void(ExceptionOr<ReadableStreamChunk*>&&)>;
+ using Callback = Function<void(ExceptionOr<Span<const uint8_t>*>&&)>;
static Ref<ReadableStreamToSharedBufferSink> create(Callback&& callback) { return adoptRef(*new ReadableStreamToSharedBufferSink(WTFMove(callback))); }
void pipeFrom(ReadableStream&);
void clearCallback() { m_callback = { }; }
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (278713 => 278714)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-06-10 18:53:20 UTC (rev 278714)
@@ -2739,7 +2739,6 @@
8AB4BC77126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB4BC76126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h */; };
8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */; };
8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */; };
- 8BD37A68201BB39C0011734A /* ReadableStreamChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD37A67201BB39C0011734A /* ReadableStreamChunk.h */; settings = {ATTRIBUTES = (Private, ); }; };
8E4C96DD1AD4483500365A50 /* JSFetchResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E4C96D91AD4483500365A50 /* JSFetchResponse.h */; };
8EC6C963201A251600FBFA53 /* GapLength.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC6C961201A250100FBFA53 /* GapLength.h */; settings = {ATTRIBUTES = (Private, ); }; };
8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F6756191288B17B0047ACA3 /* EventQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -11473,7 +11472,6 @@
8AF4E55411DC5A36000ED3DE /* PerformanceNavigation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceNavigation.idl; sourceTree = "<group>"; };
8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceTiming.h; sourceTree = "<group>"; };
8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceTiming.idl; sourceTree = "<group>"; };
- 8BD37A67201BB39C0011734A /* ReadableStreamChunk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReadableStreamChunk.h; sourceTree = "<group>"; };
8E33CD93201A29C100E39093 /* GapLength.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GapLength.cpp; sourceTree = "<group>"; };
8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFetchResponse.cpp; sourceTree = "<group>"; };
8E4C96D91AD4483500365A50 /* JSFetchResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFetchResponse.h; sourceTree = "<group>"; };
@@ -19960,7 +19958,6 @@
9908B0F21BCACF9100ED3572 /* ReadableStreamBYOBReader.js */,
41189EF71AD8232800B95672 /* ReadableStreamBYOBRequest.idl */,
9908B0F01BCACF9100ED5672 /* ReadableStreamBYOBRequest.js */,
- 8BD37A67201BB39C0011734A /* ReadableStreamChunk.h */,
41189EF71AD8232800B90A0D /* ReadableStreamDefaultController.idl */,
9908B0F01BCACF9100ED0F65 /* ReadableStreamDefaultController.js */,
419FAFAD1ABABCD5005B828B /* ReadableStreamDefaultReader.idl */,
@@ -34838,7 +34835,6 @@
A84D827C11D333ED00972990 /* RawDataDocumentParser.h in Headers */,
416E6FE81BBD12DF000A6043 /* ReadableByteStreamInternalsBuiltins.h in Headers */,
416E6FE91BBD12E5000A6043 /* ReadableStreamBuiltins.h in Headers */,
- 8BD37A68201BB39C0011734A /* ReadableStreamChunk.h in Headers */,
4129C9A91F59C56B009D7403 /* ReadableStreamDefaultController.h in Headers */,
416E6FE81BBD12DF000A3F64 /* ReadableStreamInternalsBuiltins.h in Headers */,
4129C9AF1F59CF5B009D7403 /* ReadableStreamSink.h in Headers */,
Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (278713 => 278714)
--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -427,8 +427,8 @@
return;
}
- if (auto chunk = result.returnValue())
- compiler->addBytes(chunk->data, chunk->size);
+ if (auto* chunk = result.returnValue())
+ compiler->addBytes(chunk->data(), chunk->size());
else
compiler->finalize(globalObject);
});
Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp (278713 => 278714)
--- trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp 2021-06-10 18:26:08 UTC (rev 278713)
+++ trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp 2021-06-10 18:53:20 UTC (rev 278714)
@@ -34,7 +34,6 @@
#include "FetchRequest.h"
#include "FetchResponse.h"
#include "MIMETypeRegistry.h"
-#include "ReadableStreamChunk.h"
#include "ResourceRequest.h"
#include "ServiceWorker.h"
#include "ServiceWorkerClientIdentifier.h"
@@ -120,8 +119,8 @@
return;
}
- if (auto chunk = result.returnValue())
- client->didReceiveData(SharedBuffer::create(chunk->data, chunk->size));
+ if (auto* chunk = result.returnValue())
+ client->didReceiveData(SharedBuffer::create(chunk->data(), chunk->size()));
else
client->didFinish();
});