Skip to content

Commit

Permalink
Generate IPC serialization for enumerations under WebCore/applepay/
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=264408

Reviewed by Chris Dumez.

Move ApplePaySessionPaymentRequest::ShippingType enumeration outside the
ApplePaySessionPaymentRequest class scope and specify its underlying type alias
uint8_t, providing a type alias inside that class.

This allows specifying IPC serialization for this enumeration as well as the
ApplePayLaterAvailability and ApplePayShippingContactEditingMode enumerations,
enabling removal of the now-redundant EnumTraits specializations.

* Source/WebCore/Modules/applepay/ApplePayLaterAvailability.h:
* Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h:
* Source/WebCore/Modules/applepay/ApplePayShippingContactEditingMode.h:
* Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in:

Canonical link: https://commits.webkit.org/270596@main
  • Loading branch information
zdobersek authored and cdumez committed Nov 11, 2023
1 parent ecd3922 commit 6b051ce
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 51 deletions.
15 changes: 0 additions & 15 deletions Source/WebCore/Modules/applepay/ApplePayLaterAvailability.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@

#if ENABLE(APPLE_PAY_LATER_AVAILABILITY)

#include <wtf/Forward.h>

namespace WebCore {

enum class ApplePayLaterAvailability : uint8_t {
Expand All @@ -39,17 +37,4 @@ enum class ApplePayLaterAvailability : uint8_t {

} // namespace WebCore

namespace WTF {

template<> struct EnumTraits<WebCore::ApplePayLaterAvailability> {
using values = EnumValues<
WebCore::ApplePayLaterAvailability,
WebCore::ApplePayLaterAvailability::Available,
WebCore::ApplePayLaterAvailability::UnavailableItemIneligible,
WebCore::ApplePayLaterAvailability::UnavailableRecurringTransaction
>;
};

} // namespace WTF

#endif // ENABLE(APPLE_PAY_LATER_AVAILABILITY)
29 changes: 8 additions & 21 deletions Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,19 @@
#include "ApplePayShippingMethod.h"
#include "PaymentContact.h"
#include "PaymentInstallmentConfigurationWebCore.h"
#include <wtf/EnumTraits.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>

namespace WebCore {

enum class ApplePaySessionPaymentRequestShippingType : uint8_t {
Shipping,
Delivery,
StorePickup,
ServicePickup,
};

class ApplePaySessionPaymentRequest {
public:
WEBCORE_EXPORT ApplePaySessionPaymentRequest();
Expand Down Expand Up @@ -92,12 +98,7 @@ class ApplePaySessionPaymentRequest {
const MerchantCapabilities& merchantCapabilities() const { return m_merchantCapabilities; }
void setMerchantCapabilities(const MerchantCapabilities& merchantCapabilities) { m_merchantCapabilities = merchantCapabilities; }

enum class ShippingType {
Shipping,
Delivery,
StorePickup,
ServicePickup,
};
using ShippingType = ApplePaySessionPaymentRequestShippingType;
ShippingType shippingType() const { return m_shippingType; }
void setShippingType(ShippingType shippingType) { m_shippingType = shippingType; }

Expand Down Expand Up @@ -229,18 +230,4 @@ class ApplePaySessionPaymentRequest {

} // namespace WebCore

namespace WTF {

template<> struct EnumTraits<WebCore::ApplePaySessionPaymentRequest::ShippingType> {
using values = EnumValues<
WebCore::ApplePaySessionPaymentRequest::ShippingType,
WebCore::ApplePaySessionPaymentRequest::ShippingType::Shipping,
WebCore::ApplePaySessionPaymentRequest::ShippingType::Delivery,
WebCore::ApplePaySessionPaymentRequest::ShippingType::StorePickup,
WebCore::ApplePaySessionPaymentRequest::ShippingType::ServicePickup
>;
};

} // namespace WTF

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@

#if ENABLE(APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)

#include <wtf/EnumTraits.h>

namespace WebCore {

enum class ApplePayShippingContactEditingMode : uint8_t {
Expand All @@ -39,17 +37,4 @@ enum class ApplePayShippingContactEditingMode : uint8_t {

} // namespace WebCore

namespace WTF {

template<> struct EnumTraits<WebCore::ApplePayShippingContactEditingMode> {
using values = EnumValues<
WebCore::ApplePayShippingContactEditingMode,
WebCore::ApplePayShippingContactEditingMode::Available,
WebCore::ApplePayShippingContactEditingMode::Enabled,
WebCore::ApplePayShippingContactEditingMode::StorePickup
>;
};

} // namespace WTF

#endif // ENABLE(APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,31 @@ struct WebCore::MediaRecorderPrivateOptions {
[Nested] class WebCore::ProtectionSpace::PlatformData {
RetainPtr<NSURLProtectionSpace> nsSpace;
};

#if ENABLE(APPLE_PAY_LATER_AVAILABILITY)
header: <WebCore/ApplePayLaterAvailability.h>
enum class WebCore::ApplePayLaterAvailability : uint8_t {
Available,
UnavailableItemIneligible,
UnavailableRecurringTransaction,
};
#endif

#if ENABLE(APPLE_PAY)
header: <WebCore/ApplePaySessionPaymentRequest.h>
enum class WebCore::ApplePaySessionPaymentRequestShippingType : uint8_t {
Shipping,
Delivery,
StorePickup,
ServicePickup,
};
#endif

#if ENABLE(APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE)
header: <WebCore/ApplePayShippingContactEditingMode.h>
enum class WebCore::ApplePayShippingContactEditingMode : uint8_t {
Available,
Enabled,
StorePickup,
};
#endif

0 comments on commit 6b051ce

Please sign in to comment.