[webkit-changes] [WebKit/WebKit] f3ac44: PKPaymentMethod still fails strict mode decoding w...

Abrar Rahman Protyasha noreply at github.com
Fri Mar 29 13:13:13 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f3ac44b62cc1129afd7f156269c0575ad537b252
      https://github.com/WebKit/WebKit/commit/f3ac44b62cc1129afd7f156269c0575ad537b252
  Author: Abrar Rahman Protyasha <a_protyasha at apple.com>
  Date:   2024-03-29 (Fri, 29 Mar 2024)

  Changed paths:
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm
    M Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm

  Log Message:
  -----------
  PKPaymentMethod still fails strict mode decoding when using private label cards after 273108 at main
https://bugs.webkit.org/show_bug.cgi?id=271845
rdar://124015611

Reviewed by Alex Christensen.

In 273108 at main, we addressed the strict mode decode failure for
PKPaymentMethod by falling back to secure mode decoding for downlevels,
and for relying on upstream PassKit changes which explicitly allow
decoding PKSecureElementPass.

Unfortunately, that was not the entire story. In 274384 at main, we opted
to start decoding PKSecureElementPass objects directly, which lead to
a new category of decoding failures because PassKit vends a pass object
of parent type PKPaymentPass, which makes the decoder unhappy.

This patch addresses that decode failure by making an exception for
PKSecureElementPass objects, by making PKPaymentPass an additional
allowed class.

Furthermore, since we are decoding PKSecureElementPass directly, we
rewrite arrays in the pass to NSMutableArray instances and make sure to
not convert NSURL instances in the pass to WKSecureCodingURLWrapper.

* Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm:
* Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::encodeObjectDirectly<NSObject<NSSecureCoding>>):
(IPC::decodeObjectDirectlyRequiringAllowedClasses<NSObject<NSSecureCoding>>):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list