Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3376205b5d9b7ccf64b938731f37a9f086406b15
      
https://github.com/WebKit/WebKit/commit/3376205b5d9b7ccf64b938731f37a9f086406b15
  Author: Chris Dumez <cdu...@apple.com>
  Date:   2024-10-24 (Thu, 24 Oct 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/testing/MockPaymentCoordinator.cpp
    M Source/WebCore/testing/MockPaymentCoordinator.h

  Log Message:
  -----------
  REGRESSION(285507@main): [ macOS iOS Debug ] ASSERTION FAILED: showCount == 
hideCount in virtual WebCore::MockPaymentCoordinator result of crash in ApplePay
https://bugs.webkit.org/show_bug.cgi?id=282003
rdar://138506302

Reviewed by Per Arne Vollan.

In 285507@main, MockPaymentCoordinator was made ref-counted, which means its
lifetime can now get extended. This means that when a MockPaymentCoordinator
get replaced with another, 2 MockPaymentCoordinator instance can be alive at
the same time, temporarily.

The assertion in the MockPaymentCoordinator destructor checks that the
coordinator has shown as many dialogs as it has hidden. However, this check
relies on global static variables. This used to work fine when only one
MockPaymentCoordinator could be alive at the same time. However, now that
this is no longer true, the assertion can be hit because a new 
MockPaymentCoordinator
instance may have shown a dialog before the previous MockPaymentCoordinator
got a chance to get destroyed.

To address the issue, I converted this global variables into data members.

* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::~MockPaymentCoordinator):
(WebCore::MockPaymentCoordinator::dispatchIfShowing):
(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::cancelPayment):
(WebCore::MockPaymentCoordinator::completePaymentSession):
(WebCore::MockPaymentCoordinator::abortPaymentSession):
(WebCore::MockPaymentCoordinator::cancelPaymentSession):
* Source/WebCore/testing/MockPaymentCoordinator.h:

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



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

Reply via email to