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