[webkit-changes] [WebKit/WebKit] dc66f2: ApplePayEnabled set in WKPreferences is ignored

Sihui noreply at github.com
Wed Oct 9 13:53:50 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc66f2d091a96e52e1c8984c87ffedbd3f3bd4a0
      https://github.com/WebKit/WebKit/commit/dc66f2d091a96e52e1c8984c87ffedbd3f3bd4a0
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2024-10-09 (Wed, 09 Oct 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/APIPageConfiguration.cpp
    M Source/WebKit/UIProcess/API/APIPageConfiguration.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPreferences.mm

  Log Message:
  -----------
  ApplePayEnabled set in WKPreferences is ignored
https://bugs.webkit.org/show_bug.cgi?id=281117
rdar://problem/137565662

Reviewed by Ryosuke Niwa.

Both PageConfiguration and WebPreferences have data member ApplePayEnabled. In existing implementation, we always
override the WebPreferences value with PageConfiguration value (see [WKWebVeiw _setupPageConfiguration:withPool:]), i.e.
the actual ApplePayEnabled value being used is always the value in the PageConfiguration. However, it's possible that
client uses WKWebPreferences SPI to set ApplePayEnabled, where we should actually respect that value instead of the
default value in PageConfiguration.

To fix this, we change the ApplePayEnabled in PageConfiguration to be optional. If client sets the value using
WKWebViewConfiguration SPI, then we would respect this value; otherwise we would just use the value in WebPreferences
without overriding it.

Update API test WKPreferencesPrivate.DisableRichJavaScriptFeatures to cover Apple Pay JS API; the test would fail if we
don't make the change (as the flag value cannot be changed via WKWebPreferences SPI).

* Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::applePayEnabled const):
(API::PageConfiguration::setApplePayEnabled):
* Source/WebKit/UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::applePayEnabled const): Deleted.
(API::PageConfiguration::setApplePayEnabled): Deleted.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPreferences.mm:
(DisableRichJavaScriptFeatures)):

Canonical link: https://commits.webkit.org/284921@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