Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ee38a42507ffa190f5754b9ac0a5b7de6c597636
      
https://github.com/WebKit/WebKit/commit/ee38a42507ffa190f5754b9ac0a5b7de6c597636
  Author: Matthew Finkel <[email protected]>
  Date:   2025-11-20 (Thu, 20 Nov 2025)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
    M Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm

  Log Message:
  -----------
  [pcm] Add support for testing simulated conversions
https://bugs.webkit.org/show_bug.cgi?id=302767
rdar://165025510

Reviewed by Alex Christensen.

Currently we can add a pending attribution from API tests, but we can't
simulate a conversion that results in a report being sent. This patch adds that
missing capability. In order to achieve this, I'm slightly tweaking the
behavior of an existing SPI that store the click attribution so that the
attribution is immediately added to the database. Currently, attributions are
only added to the database after the next navigation is committed. Now we don't
need to load a request if we just want to test PCM. So, along with that change,
I'm adding a new SPI that allows for simulating a click conversion.

Test: Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::simulatePrivateClickMeasurementConversion):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::simulatePrivateClickMeasurementConversion):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView 
_storePrivateClickMeasurementWithSourceID:destinationURL:reportEndpoint:]):
(-[WKWebView 
_storeSimulatedPrivateClickMeasurementConversionWithPriority:triggerData:sourceURL:destinationURL:]):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setPrivateClickMeasurementImmediately):
(WebKit::WebPageProxy::simulatePrivateClickMeasurementConversion):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::simulatePrivateClickMeasurementConversion):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::runManualPCMTest):
(TestWebKitAPI::TEST(PrivateClickMeasurement, ManualAttributionAndConversion)):
(TestWebKitAPI::TEST(PrivateClickMeasurement, MeasureSafariIsDefault)): Deleted.

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



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

Reply via email to