Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a4c2e8d62285d948d697c7f53e6e7e24b8540114
      
https://github.com/WebKit/WebKit/commit/a4c2e8d62285d948d697c7f53e6e7e24b8540114
  Author: Youenn Fablet <[email protected]>
  Date:   2024-08-23 (Fri, 23 Aug 2024)

  Changed paths:
    M Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp
    M Source/WebCore/Modules/fetch/FetchBodyConsumer.h
    M Source/WebCore/Modules/fetch/FormDataConsumer.cpp
    M Source/WebCore/Modules/fetch/FormDataConsumer.h

  Log Message:
  -----------
  Make FormDataConsumer RefCounted
https://bugs.webkit.org/show_bug.cgi?id=278518
rdar://134491795

Reviewed by Chris Dumez.

To apply the hardening of protecting a weak pointer, we make FormDataConsumer 
RefCounted.
We can then protect it in FormDataConsumer::consumeFile and 
FormDataConsumer::consumeBlob.

We update FetchBodyConsumer to store a RefPtr<FormDataConsumer>.
We can no longer pass a reference to FetchBodyConsumer in FormDataConsumer 
callback since FormDataConsumer can outlive FetchBodyConsumer.
So we remove the reference and we store m_type in the first FormDataConsumer 
callback.

For the second callback, the FetchBodyConsumer reference was used to cancel the 
FormDataConsumer if we were not able to enqueue data in the ReadableStream.
We are now updating the callback to return true (to continue the load) or false 
(to stop the load).
We update FetchBodyConsumer and FormDataConsumer accordingly.

Covered by existing tests.

* Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::resolveWithFormData):
(WebCore::FetchBodyConsumer::consumeFormDataAsStream):
* Source/WebCore/Modules/fetch/FetchBodyConsumer.h:
* Source/WebCore/Modules/fetch/FormDataConsumer.cpp:
(WebCore::FormDataConsumer::create):
(WebCore::FormDataConsumer::FormDataConsumer):
(WebCore::FormDataConsumer::~FormDataConsumer):
(WebCore::FormDataConsumer::read):
(WebCore::FormDataConsumer::consumeFile):
(WebCore::FormDataConsumer::consumeBlob):
(WebCore::FormDataConsumer::consume):
* Source/WebCore/Modules/fetch/FormDataConsumer.h:

Canonical link: https://commits.webkit.org/282653@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to