Title: [278714] trunk/Source/WebCore
Revision
278714
Author
[email protected]
Date
2021-06-10 11:53:20 -0700 (Thu, 10 Jun 2021)

Log Message

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:

Modified Paths

Removed Paths

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();
         });
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to