Title: [223858] trunk/Source/WebCore
Revision
223858
Author
[email protected]
Date
2017-10-23 15:14:55 -0700 (Mon, 23 Oct 2017)

Log Message

[Payment Request] Take the JSC API lock before creating the PaymentResponse.details object
https://bugs.webkit.org/show_bug.cgi?id=178686

Reviewed by Keith Miller.

This fixes several flaky crashes in http/tests/paymentrequest/ after r223855.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::didAuthorizePayment):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (223857 => 223858)


--- trunk/Source/WebCore/ChangeLog	2017-10-23 21:58:42 UTC (rev 223857)
+++ trunk/Source/WebCore/ChangeLog	2017-10-23 22:14:55 UTC (rev 223858)
@@ -1,3 +1,15 @@
+2017-10-23  Andy Estes  <[email protected]>
+
+        [Payment Request] Take the JSC API lock before creating the PaymentResponse.details object
+        https://bugs.webkit.org/show_bug.cgi?id=178686
+
+        Reviewed by Keith Miller.
+
+        This fixes several flaky crashes in http/tests/paymentrequest/ after r223855.
+
+        * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
+        (WebCore::ApplePayPaymentHandler::didAuthorizePayment):
+
 2017-10-23  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: Please support HAR Export for network traffic

Modified: trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp (223857 => 223858)


--- trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp	2017-10-23 21:58:42 UTC (rev 223857)
+++ trunk/Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp	2017-10-23 22:14:55 UTC (rev 223858)
@@ -290,6 +290,7 @@
 {
     auto applePayPayment = payment.toApplePayPayment();
     auto& execState = *document().execState();
+    auto lock = JSC::JSLockHolder { &execState };
     auto details = JSC::Strong<JSC::JSObject> { execState.vm(), asObject(toJS<IDLDictionary<ApplePayPayment>>(execState, *JSC::jsCast<JSDOMGlobalObject*>(execState.lexicalGlobalObject()), applePayPayment)) };
     const auto& shippingContact = applePayPayment.shippingContact.value_or(ApplePayPaymentContact());
     m_paymentRequest->accept(WTF::get<URL>(m_identifier).string(), WTFMove(details), convert(shippingContact), shippingContact.localizedName, shippingContact.emailAddress, shippingContact.phoneNumber);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to