Title: [290152] trunk/Source/WebCore
- Revision
- 290152
- Author
- [email protected]
- Date
- 2022-02-18 12:27:21 -0800 (Fri, 18 Feb 2022)
Log Message
Keep promise in scope when calling DeferredPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=236454
Patch by Gabriel Nava Marino <[email protected]> on 2022-02-18
Reviewed by Darin Adler.
Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.
* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::resolveWithFormData):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (290151 => 290152)
--- trunk/Source/WebCore/ChangeLog 2022-02-18 20:21:56 UTC (rev 290151)
+++ trunk/Source/WebCore/ChangeLog 2022-02-18 20:27:21 UTC (rev 290152)
@@ -1,3 +1,16 @@
+2022-02-18 Gabriel Nava Marino <[email protected]>
+
+ Keep promise in scope when calling DeferredPromise::reject
+ https://bugs.webkit.org/show_bug.cgi?id=236454
+
+ Reviewed by Darin Adler.
+
+ Keep promise in scope when calling DeferredPromise::reject, as createDOMException
+ could go through a path that invokes GC on its owner and the promise.
+
+ * Modules/fetch/FetchBodyConsumer.cpp:
+ (WebCore::FetchBodyConsumer::resolveWithFormData):
+
2022-02-18 Tim Horton <[email protected]>
Client-set minimum effective device width is not respected if AllowViewportShrinkToFitContent is enabled
Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp (290151 => 290152)
--- trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp 2022-02-18 20:21:56 UTC (rev 290151)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp 2022-02-18 20:27:21 UTC (rev 290152)
@@ -269,8 +269,9 @@
if (!context)
return;
- m_formDataConsumer = makeUnique<FormDataConsumer>(formData, *context, [this, promise = WTFMove(promise), contentType, builder = SharedBufferBuilder { }](auto&& result) mutable {
+ m_formDataConsumer = makeUnique<FormDataConsumer>(formData, *context, [this, capturedPromise = WTFMove(promise), contentType, builder = SharedBufferBuilder { }](auto&& result) mutable {
if (result.hasException()) {
+ auto promise = WTFMove(capturedPromise);
promise->reject(result.releaseException());
return;
}
@@ -278,7 +279,7 @@
auto& value = result.returnValue();
if (value.empty()) {
auto buffer = builder.takeAsContiguous();
- resolveWithData(WTFMove(promise), contentType, buffer->data(), buffer->size());
+ resolveWithData(WTFMove(capturedPromise), contentType, buffer->data(), buffer->size());
return;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes