WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 233442
Add SharedBufferBuilder class
https://bugs.webkit.org/show_bug.cgi?id=233442
Summary
Add SharedBufferBuilder class
Jean-Yves Avenard [:jya]
Reported
2021-11-23 00:32:45 PST
This is part 2 of the task started in
bug 233030
"Distinguish contiguous SharedBuffer from non-contiguous one and guarantee immutability" As discussed from
https://bugs.webkit.org/show_bug.cgi?id=233030#c2
; Analogous to String being built through a StringBuilder ; a SharedBuffer would be built through a SharedBufferBuilder SharedBuffer objects themselves becoming immutable once created by the SharedBufferBuilder.
Attachments
SharedBufferBuilder for EWS
(486.98 KB, patch)
2021-11-28 23:55 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
SharedBufferBuilder for EWS
(487.32 KB, patch)
2021-11-29 00:45 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
SharedBufferBuilder for EWS
(487.32 KB, patch)
2021-11-29 02:01 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
SharedBufferBuilder for EWS
(487.57 KB, patch)
2021-11-29 04:58 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
scripthash-tests-crash-log.txt
(206.86 KB, text/plain)
2021-11-29 23:41 PST
,
Fujii Hironori
no flags
Details
Patch for EWS
(487.71 KB, patch)
2021-11-30 13:39 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(490.28 KB, patch)
2021-11-30 19:39 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch for EWS
(492.08 KB, patch)
2021-11-30 22:27 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(506.15 KB, patch)
2021-12-01 04:08 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch for EWS
(407.99 KB, patch)
2021-12-01 04:33 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(126.33 KB, patch)
2021-12-01 16:57 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(495.02 KB, patch)
2021-12-02 04:14 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(126.78 KB, patch)
2021-12-02 04:15 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(126.78 KB, patch)
2021-12-02 04:26 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(495.02 KB, patch)
2021-12-02 04:27 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(496.65 KB, patch)
2021-12-02 04:35 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(129.97 KB, patch)
2021-12-02 04:36 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(497.43 KB, patch)
2021-12-03 03:06 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(129.85 KB, patch)
2021-12-03 03:06 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(496.61 KB, patch)
2021-12-03 03:40 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(129.85 KB, patch)
2021-12-03 03:41 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(499.50 KB, patch)
2021-12-03 04:01 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(132.74 KB, patch)
2021-12-03 04:02 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(499.53 KB, patch)
2021-12-03 07:28 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS with no windows symbols resolution
(500.22 KB, patch)
2021-12-03 07:43 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(500.96 KB, patch)
2021-12-03 17:01 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(133.34 KB, patch)
2021-12-03 17:02 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(500.96 KB, patch)
2021-12-03 17:04 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(136.42 KB, patch)
2021-12-03 19:52 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(136.42 KB, patch)
2021-12-03 20:14 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(503.42 KB, patch)
2021-12-03 20:18 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(134.62 KB, patch)
2021-12-05 21:52 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(506.10 KB, patch)
2021-12-05 21:53 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(506.19 KB, patch)
2021-12-06 03:31 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(134.66 KB, patch)
2021-12-06 03:32 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(507.59 KB, patch)
2021-12-06 23:24 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(134.17 KB, patch)
2021-12-06 23:26 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(505.37 KB, patch)
2021-12-09 04:54 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(132.50 KB, patch)
2021-12-09 04:55 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(505.62 KB, patch)
2021-12-09 05:30 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch for review
(132.62 KB, patch)
2021-12-09 05:31 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(506.23 KB, patch)
2021-12-09 06:01 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for review
(132.62 KB, patch)
2021-12-09 06:04 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(490.08 KB, patch)
2021-12-09 06:42 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for review
(132.04 KB, patch)
2021-12-09 06:43 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(506.81 KB, patch)
2021-12-10 02:24 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(507.25 KB, patch)
2021-12-10 03:14 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for landing
(133.65 KB, patch)
2021-12-10 03:19 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(533.19 KB, patch)
2021-12-11 04:16 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(533.19 KB, patch)
2021-12-11 04:18 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(541.87 KB, patch)
2021-12-11 06:06 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for Landing
(133.65 KB, patch)
2021-12-11 06:11 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(538.78 KB, patch)
2021-12-12 19:03 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for landing
(133.69 KB, patch)
2021-12-12 19:04 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for EWS
(538.78 KB, patch)
2021-12-12 19:34 PST
,
Jean-Yves Avenard [:jya]
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch for EWS
(540.75 KB, patch)
2021-12-12 21:57 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch for Landing
(133.69 KB, patch)
2021-12-12 21:58 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Patch
(132.89 KB, patch)
2021-12-13 08:25 PST
,
Jean-Yves Avenard [:jya]
no flags
Details
Formatted Diff
Diff
Show Obsolete
(57)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2021-11-23 00:33:16 PST
<
rdar://problem/85693939
>
Jean-Yves Avenard [:jya]
Comment 2
2021-11-28 23:55:55 PST
Created
attachment 445253
[details]
SharedBufferBuilder for EWS
EWS Watchlist
Comment 3
2021-11-28 23:56:58 PST
Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See
https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API
Jean-Yves Avenard [:jya]
Comment 4
2021-11-29 00:45:01 PST
Created
attachment 445256
[details]
SharedBufferBuilder for EWS
Jean-Yves Avenard [:jya]
Comment 5
2021-11-29 02:01:04 PST
Created
attachment 445259
[details]
SharedBufferBuilder for EWS fix gtk/wpe
Jean-Yves Avenard [:jya]
Comment 6
2021-11-29 04:58:21 PST
Created
attachment 445267
[details]
SharedBufferBuilder for EWS fix windows/ios
Fujii Hironori
Comment 7
2021-11-29 23:41:14 PST
Created
attachment 445386
[details]
scripthash-tests-crash-log.txt
Jean-Yves Avenard [:jya]
Comment 8
2021-11-30 13:39:48 PST
Created
attachment 445465
[details]
Patch for EWS fix intermittent crash, FetchBodyConsumer::takeData() must return null if no data was previously added.
Jean-Yves Avenard [:jya]
Comment 9
2021-11-30 19:39:43 PST
Created
attachment 445505
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 10
2021-11-30 21:46:08 PST
I can reproduce imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-css.html intermittents on a clean ToT.
Jean-Yves Avenard [:jya]
Comment 11
2021-11-30 22:27:16 PST
Created
attachment 445524
[details]
Patch for EWS Fix API test and windows build
Jean-Yves Avenard [:jya]
Comment 12
2021-12-01 04:08:07 PST
Created
attachment 445549
[details]
Patch for EWS Fix intermittent crash, make passing SharedBuffer const
Jean-Yves Avenard [:jya]
Comment 13
2021-12-01 04:33:17 PST
Created
attachment 445556
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 14
2021-12-01 14:27:33 PST
the api-mac failure is unrelated ; none of the code path modified is hit during that run
Jean-Yves Avenard [:jya]
Comment 15
2021-12-01 16:57:52 PST
Created
attachment 445636
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 16
2021-12-02 04:14:41 PST
Created
attachment 445705
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 17
2021-12-02 04:15:21 PST
Created
attachment 445706
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 18
2021-12-02 04:26:06 PST
Created
attachment 445707
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 19
2021-12-02 04:27:44 PST
Created
attachment 445708
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 20
2021-12-02 04:35:28 PST
Created
attachment 445709
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 21
2021-12-02 04:36:12 PST
Created
attachment 445711
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 22
2021-12-03 03:06:10 PST
Created
attachment 445826
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 23
2021-12-03 03:06:48 PST
Created
attachment 445827
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 24
2021-12-03 03:40:39 PST
Created
attachment 445832
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 25
2021-12-03 03:41:44 PST
Created
attachment 445833
[details]
Patch rebase
Jean-Yves Avenard [:jya]
Comment 26
2021-12-03 04:01:15 PST
Created
attachment 445836
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 27
2021-12-03 04:02:04 PST
Created
attachment 445837
[details]
Patch fix gtk build (again)
Jean-Yves Avenard [:jya]
Comment 28
2021-12-03 07:28:01 PST
Created
attachment 445851
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 29
2021-12-03 07:43:27 PST
Created
attachment 445852
[details]
Patch for EWS with no windows symbols resolution
Jean-Yves Avenard [:jya]
Comment 30
2021-12-03 17:01:24 PST
Created
attachment 445922
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 31
2021-12-03 17:02:42 PST
Created
attachment 445925
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 32
2021-12-03 17:04:11 PST
Created
attachment 445926
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 33
2021-12-03 19:52:34 PST
Created
attachment 445942
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 34
2021-12-03 20:14:45 PST
Created
attachment 445949
[details]
Patch rebase
Jean-Yves Avenard [:jya]
Comment 35
2021-12-03 20:18:26 PST
Created
attachment 445950
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 36
2021-12-05 21:52:35 PST
Created
attachment 445996
[details]
Patch rebase
Jean-Yves Avenard [:jya]
Comment 37
2021-12-05 21:53:53 PST
Created
attachment 445997
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 38
2021-12-06 03:31:59 PST
Created
attachment 446021
[details]
Patch for EWS fix api ios test
Jean-Yves Avenard [:jya]
Comment 39
2021-12-06 03:32:55 PST
Created
attachment 446022
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 40
2021-12-06 23:24:43 PST
Created
attachment 446129
[details]
Patch for EWS rebase following changes in
bug 233030
Jean-Yves Avenard [:jya]
Comment 41
2021-12-06 23:26:44 PST
Created
attachment 446130
[details]
Patch
youenn fablet
Comment 42
2021-12-09 01:21:18 PST
Comment on
attachment 446130
[details]
Patch Some nits below. Overall, this seems good. Two questions though: 1. In most part of the code we go from a Ref<SharedBuffer> (1 allocation) to a UniqueRef<SharedBufferBuilder> (2 allocations). Shouldn't we just use a SharedBufferBuilder with an initiated Ref<SharedBuffer> to keep to 1 allocation? 2. I understand the difference between empty and reset but I had to look at the code to understand it. Maybe we should just have empty (and call it reset). If it is really important to have m_data be back to a RefPtr, I guess we could call take() or use something like builder = { }. View in context:
https://bugs.webkit.org/attachment.cgi?id=446130&action=review
> Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:350 > + return m_buffer.take()->tryCreateArrayBuffer();
Looking at take, it creates a shared buffer if needed so we probably do not need the m_buffer check. Maybe though it would be better for take to return a RefPtr and the caller would then do a null check? Or have a takeAndCreateIfNeeded if both patterns are equally used? Or have a takeAsArrayBuffer if that is used in several places.
> Source/WebCore/Modules/model-element/HTMLModelElement.cpp:152 > + m_data.empty();
What is the difference between reset and empty?
> Source/WebCore/inspector/NetworkResourcesData.cpp:50 > + , m_dataBuffer(makeUniqueRef<SharedBufferBuilder>())
Why making it a unique ref contrary to other places?
> Source/WebCore/inspector/NetworkResourcesData.h:125 > RefPtr<SharedBuffer> m_buffer;
Is m_buffer needed?
> Source/WebCore/loader/ResourceLoader.cpp:79 > + , m_resourceData { makeUniqueRef<SharedBufferBuilder>() }
Why UniqueRef? Why not unique_ptr to lazily allocate it or just a direct member variable?
> Source/WebCore/platform/SharedBuffer.h:301 > + explicit SharedBufferBuilder(RefPtr<SharedBuffer>&& buffer)
Is this one actually needed? Ditto for the Ref version? Or do you envision in the future usage of these? I would tend to keep the Ref<> version if so, not sure the RefPtr version is useful.
> Source/WebCore/platform/SharedBuffer.h:305 > + if (!buffer || (buffer->hasOneRef() && !buffer->isContiguous())) {
I guess I would write it as if (!buffer) return; ...
> Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:544 > + return m_data.take();
To be consistent with existing code, we should probably do: if (!m_data) return nullptr; return m_data.take();
Jean-Yves Avenard [:jya]
Comment 43
2021-12-09 02:12:40 PST
Comment on
attachment 446130
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=446130&action=review
>> Source/WebCore/inspector/NetworkResourcesData.cpp:50 >> + , m_dataBuffer(makeUniqueRef<SharedBufferBuilder>()) > > Why making it a unique ref contrary to other places?
I used a UniqueRef<SharedBufferBuilder> wherever SharedBuffer were only forward declared and the SharedBufferBuilder.h header was only included in the code. Seeing that there were a lot of efforts made to speed up compilation time, I thought it was appropriate to continue that trend. It does make the code more confusing I agree, I will remove that.
>> Source/WebCore/inspector/NetworkResourcesData.h:125 >> RefPtr<SharedBuffer> m_buffer; > > Is m_buffer needed?
I tried the keep the existing logic as much as possible. Like above, we have hasData() and hasBufferedData() doing the same thing, this smells very fishy to me. NetworkResourceData appears to have the ability to be assigned a SharedBuffer (via setBuffer) and has a getter (buffer()) for it. I didn't investigate to see how that was used.
>> Source/WebCore/loader/ResourceLoader.cpp:79 >> + , m_resourceData { makeUniqueRef<SharedBufferBuilder>() } > > Why UniqueRef? Why not unique_ptr to lazily allocate it or just a direct member variable?
as above, SharedBuffer was forward declared, so I made SharedBufferBuilder forward declared
>> Source/WebCore/platform/SharedBuffer.h:301 >> + explicit SharedBufferBuilder(RefPtr<SharedBuffer>&& buffer) > > Is this one actually needed? Ditto for the Ref version? Or do you envision in the future usage of these? > I would tend to keep the Ref<> version if so, not sure the RefPtr version is useful.
This is to replace code where we had: RefPtr<SharedBuffer> m_buffer and in the constructor: ScriptBuffer(RefPtr<SharedBuffer>&& buffer) : m_buffer(WTFMove<buffer)) This is used to initialise an `empty` but not `null` SharedBufferBuilder In various places of the code, there's a distinction between a RefPtr<SharedBufer> where both state (unset or empty (that is a size of 0) are handled differently to Ref<SharedBuffer> where. I will document that a SharedBufferBuilder is really a replacement for RefPtr<SharedBuffer>
>> Source/WebCore/platform/SharedBuffer.h:305 >> + if (!buffer || (buffer->hasOneRef() && !buffer->isContiguous())) { > > I guess I would write it as if (!buffer) return; ...
I agree.
Jean-Yves Avenard [:jya]
Comment 44
2021-12-09 03:35:18 PST
Comment on
attachment 446130
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=446130&action=review
>> Source/WebCore/Modules/model-element/HTMLModelElement.cpp:152 >> + m_data.empty(); > > What is the difference between reset and empty?
reset() is equivalent to doing RefPtr<SharedBuffer> buffer; buffer = nullptr; empty() is Ref<SharedBuffer> buffer = SharedBuffer::create(); buffer->clear(); As SharedBufferBuilder is a replacement to a RefPtr<SharedBuffer> the null state has to be differentiated from the "empty" one. In future change I hope to be able to remove this distinction, but this was needed to make the change smaller and the logic easier with no chance of introducing regression.
Jean-Yves Avenard [:jya]
Comment 45
2021-12-09 03:38:07 PST
Comment on
attachment 446130
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=446130&action=review
>>> Source/WebCore/platform/SharedBuffer.h:301 >>> + explicit SharedBufferBuilder(RefPtr<SharedBuffer>&& buffer) >> >> Is this one actually needed? Ditto for the Ref version? Or do you envision in the future usage of these? >> I would tend to keep the Ref<> version if so, not sure the RefPtr version is useful. > > This is to replace code where we had: > RefPtr<SharedBuffer> m_buffer and in the constructor: > ScriptBuffer(RefPtr<SharedBuffer>&& buffer) : m_buffer(WTFMove<buffer)) > > > This is used to initialise an `empty` but not `null` SharedBufferBuilder > In various places of the code, there's a distinction between a RefPtr<SharedBufer> where both state (unset or empty (that is a size of 0) are handled differently to Ref<SharedBuffer> where. > > I will document that a SharedBufferBuilder is really a replacement for RefPtr<SharedBuffer>
Sorry, the proper answer to this question was that I wanted to make the constructor explicit, so I needed an implementation for both RefPtr<SharedBuffer> and Ref<SharedBuffer>
Jean-Yves Avenard [:jya]
Comment 46
2021-12-09 04:54:32 PST
Created
attachment 446521
[details]
Patch for EWS Apply comments
Jean-Yves Avenard [:jya]
Comment 47
2021-12-09 04:55:40 PST
Created
attachment 446522
[details]
Patch
Jean-Yves Avenard [:jya]
Comment 48
2021-12-09 05:30:54 PST
Created
attachment 446526
[details]
Patch for EWS rebase
Jean-Yves Avenard [:jya]
Comment 49
2021-12-09 05:31:58 PST
Created
attachment 446527
[details]
Patch for review
Jean-Yves Avenard [:jya]
Comment 50
2021-12-09 06:01:28 PST
Created
attachment 446532
[details]
Patch for EWS rebase 2
Jean-Yves Avenard [:jya]
Comment 51
2021-12-09 06:04:08 PST
Created
attachment 446533
[details]
Patch for review
Jean-Yves Avenard [:jya]
Comment 52
2021-12-09 06:42:14 PST
Created
attachment 446540
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 53
2021-12-09 06:43:33 PST
Created
attachment 446542
[details]
Patch for review
youenn fablet
Comment 54
2021-12-09 13:47:12 PST
Comment on
attachment 446542
[details]
Patch for review LGTM. View in context:
https://bugs.webkit.org/attachment.cgi?id=446542&action=review
> Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:335 > + m_buffer.append(WTFMove(data));
m_buffer = WTFMove(data) might be better?
> Source/WebCore/platform/SharedBuffer.cpp:544 > + ensureBuffer();
No need to call reset here. m_buffer = SharedBuffer::create might be enough.
> Source/WebCore/platform/SharedBuffer.cpp:550 > + return m_buffer.releaseNonNull();
Could be rewritten to: return m_buffer ? m_buffer.releaseNonNull() : SharedBuffer::create();
> Source/WebCore/platform/SharedBuffer.h:314 > + : SharedBufferBuilder(RefPtr<SharedBuffer> { WTFMove(buffer) })
Here we are doing a if(!buffer) unnecessary check. If we want to share code, we could simply add a: initialize(Ref<SharedBuffer>&&) that we would call here and in the above constructor (initialize(buffer.releaseNonNull()).
> Source/WebCore/platform/SharedBuffer.h:337 > + RefPtr<SharedBuffer> get() const { return m_buffer; }
Looking a more places, I would be tempted to rename it as buffer(). Given the size of the patch, this could be done in a follow-up if you think that is valuable enough.
> Source/WebCore/platform/cf/SharedBufferCF.cpp:38 > + ASSERT(!m_contiguous);
Is it needed? I guess this is initialised in SharedBuffer m_contiguous declaration.
> Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:61 > + if (auto parsedPayload = extractCencIfNeeded(payload->makeContiguous()))
I am missing some other patches defining makeContiguous. InitData is taking a RefPtr&& which does no longer seem needed, except if doing WTFMove(payload)->makeContiguous() would make it more efficient.
> Source/WebCore/workers/ScriptBuffer.h:51 > + const SharedBuffer* buffer() const { return m_buffer.get().get(); }
.get().get() is a bit weird. I guess the first .get() could be renamed to .buffer(). But then we would have to rename m_buffer to m_bufferBuilder. Oh well, might be good enough for now.
> Source/WebCore/workers/WorkerFontLoadRequest.cpp:85 > + m_data.append(*contiguousData);
As I read it, we called takeAsContiguous so m_data is null. It seems like we could be able to optimise if we were able to call m_data constructor instead of append.
> Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp:70 > + webPage->didFinishLoadForQuickLookDocumentInMainFrame(m_buffer->take().get());
Probably s/->/./
> Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp:75 > + m_buffer->reset();
s/->/./
> Source/WebKit/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h:33 > +#include <wtf/UniqueRef.h>
No longer need for UniqueRef.h
Jean-Yves Avenard [:jya]
Comment 55
2021-12-10 02:24:36 PST
Created
attachment 446693
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 56
2021-12-10 03:14:50 PST
Created
attachment 446700
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 57
2021-12-10 03:19:18 PST
Created
attachment 446701
[details]
Patch for landing
Jean-Yves Avenard [:jya]
Comment 58
2021-12-11 04:16:23 PST
Created
attachment 446871
[details]
Patch for EWS Rebase
Jean-Yves Avenard [:jya]
Comment 59
2021-12-11 04:18:45 PST
Created
attachment 446872
[details]
Patch Rebase
Jean-Yves Avenard [:jya]
Comment 60
2021-12-11 06:06:43 PST
Created
attachment 446880
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 61
2021-12-11 06:11:53 PST
Created
attachment 446881
[details]
Patch for Landing
Jean-Yves Avenard [:jya]
Comment 62
2021-12-12 19:03:07 PST
Created
attachment 446958
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 63
2021-12-12 19:04:24 PST
Created
attachment 446959
[details]
Patch for landing
Jean-Yves Avenard [:jya]
Comment 64
2021-12-12 19:34:26 PST
Created
attachment 446960
[details]
Patch for EWS
Jean-Yves Avenard [:jya]
Comment 65
2021-12-12 21:57:27 PST
Created
attachment 446967
[details]
Patch for EWS rebase
Jean-Yves Avenard [:jya]
Comment 66
2021-12-12 21:58:41 PST
Created
attachment 446968
[details]
Patch for Landing rebase
Jean-Yves Avenard [:jya]
Comment 67
2021-12-13 08:25:24 PST
Created
attachment 447004
[details]
Patch fix GTK crash
EWS
Comment 68
2021-12-13 14:35:56 PST
Committed
r286983
(?): <
https://commits.webkit.org/r286983
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 447004
[details]
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug