Skip to content
Permalink
Browse files
PCM should include the bundle ID of the app from which it originated
https://bugs.webkit.org/show_bug.cgi?id=230576
<rdar://83065221>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-22
Reviewed by Kate Cheney.

Source/WebCore:

This adds infrastructure to store the bundle ID of the application.
In another patch I'm going to use that to prevent PCMs from one app from overwriting PCMs from another app during attribution.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isolatedCopy const):
* loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::attributionTriggerData const):
(WebCore::PrivateClickMeasurement::sourceApplicationBundleID const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::attributionTriggerData): Deleted.

Source/WebKit:

* NetworkProcess/DatabaseUtilities.cpp:
(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase const):
(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase): Deleted.
* NetworkProcess/DatabaseUtilities.h:
* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::Database):
(WebKit::PCM::Database::insertPrivateClickMeasurement):
(WebKit::PCM::Database::privateClickMeasurementToStringForTesting const):
(WebKit::PCM::Database::attributionToStringForTesting const):
(WebKit::PCM::Database::addBundleIDColumnIfNecessary):
(WebKit::PCM::Database::columnsForTable):
(WebKit::PCM::Database::addMissingColumnToTable):
* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
* UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:applicationBundleID:]):
(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:]): Deleted.
* UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setEphemeralUIEventAttribution:]):
(-[WKWebView _setEphemeralUIEventAttribution:forApplicationWithBundleID:]):

Tools:

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(pollUntilPCMIsMigrated):

LayoutTests:

* http/tests/contentextensions/block-private-click-measurement-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt:
* http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt:
* http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-null-content-expected.txt:
* http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-wrong-content-type-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt:

Canonical link: https://commits.webkit.org/242013@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
Alex Christensen authored and webkit-commit-queue committed Sep 22, 2021
1 parent ea273d0 commit 0a7f1105c29dbc8218d31f30a61cfd624465d3e3
Showing with 458 additions and 53 deletions.
  1. +24 −0 LayoutTests/ChangeLog
  2. +1 −0 LayoutTests/http/tests/contentextensions/block-private-click-measurement-expected.txt
  3. +1 −0 ...sts/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt
  4. +1 −0 ...ts/http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt
  5. +1 −0 ...ests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt
  6. +1 −0 .../privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt
  7. +1 −0 .../privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt
  8. +1 −0 ...ivateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt
  9. +1 −0 LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt
  10. +1 −0 ...sts/privateClickMeasurement/private-click-measurement-with-source-nonce-null-content-expected.txt
  11. +1 −0 ...ivateClickMeasurement/private-click-measurement-with-source-nonce-wrong-content-type-expected.txt
  12. +1 −0 ...http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt
  13. +1 −0 .../http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt
  14. +1 −0 LayoutTests/http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt
  15. +1 −0 LayoutTests/http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt
  16. +1 −0 LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt
  17. +18 −0 LayoutTests/platform/ios/http/tests/contentextensions/block-private-click-measurement-expected.txt
  18. +10 −0 ...sts/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt
  19. +15 −0 ...os/http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt
  20. +12 −0 ...ests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt
  21. +12 −0 .../privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt
  22. +12 −0 .../privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt
  23. +12 −0 ...ivateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt
  24. +16 −0 ...form/ios/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt
  25. +16 −0 ...sts/privateClickMeasurement/private-click-measurement-with-source-nonce-null-content-expected.txt
  26. +16 −0 ...ivateClickMeasurement/private-click-measurement-with-source-nonce-wrong-content-type-expected.txt
  27. +12 −0 ...http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt
  28. +12 −0 .../http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt
  29. +12 −0 ...atform/ios/http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt
  30. +12 −0 ...latform/ios/http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt
  31. +10 −0 ...ests/platform/ios/http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt
  32. +23 −0 Source/WebCore/ChangeLog
  33. +7 −1 Source/WebCore/html/HTMLAnchorElement.cpp
  34. +1 −0 Source/WebCore/loader/PrivateClickMeasurement.cpp
  35. +13 −3 Source/WebCore/loader/PrivateClickMeasurement.h
  36. +30 −0 Source/WebKit/ChangeLog
  37. +13 −3 Source/WebKit/NetworkProcess/DatabaseUtilities.cpp
  38. +1 −1 Source/WebKit/NetworkProcess/DatabaseUtilities.h
  39. +74 −26 Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp
  40. +5 −1 Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h
  41. +1 −0 Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
  42. +1 −1 Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
  43. +2 −1 Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
  44. +9 −0 Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
  45. +15 −0 Tools/ChangeLog
  46. +11 −11 Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
  47. +4 −4 Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm
  48. +12 −1 Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm
@@ -1,3 +1,27 @@
2021-09-22 Alex Christensen <achristensen@webkit.org>

PCM should include the bundle ID of the app from which it originated
https://bugs.webkit.org/show_bug.cgi?id=230576
<rdar://83065221>

Reviewed by Kate Cheney.

* http/tests/contentextensions/block-private-click-measurement-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt:
* http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt:
* http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-null-content-expected.txt:
* http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-wrong-content-type-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt:

2021-09-22 Gabriel Nava Marino <gnavamarino@apple.com>

RenderListMarker::imageChanged RenderBox image handling
@@ -15,3 +15,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -7,3 +7,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -12,3 +12,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 3
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 3
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -13,3 +13,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -13,3 +13,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -13,3 +13,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 4
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -9,3 +9,4 @@ Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -7,3 +7,4 @@ Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: com.apple.WebKit.WebKitTestRunner
@@ -0,0 +1,18 @@
CONSOLE MESSAGE: Blocked by content extension
CONSOLE MESSAGE: Cannot load image https://127.0.0.1:8443/privateClickMeasurement/resources/redirectToConversion.py?conversionData=12 due to access control checks.
Tests that private click measurement redirects to well-known location don't trigger a conversion if they are blocked by content blockers.



--------
Frame: '<!--frame1-->'
--------
Attribution not received - timed out.

Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,10 @@
Tests that triggering of private click measurement attributions through cross-site redirects do not work.


Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,15 @@
CONSOLE MESSAGE: [Private Click Measurement] Conversion was not accepted because the URL path contained unrecognized parts.
CONSOLE MESSAGE: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.
CONSOLE MESSAGE: Fetch API cannot load https://127.0.0.1:8443/.well-known/private-click-measurement/trigger-attribution/whatever due to access control checks.
Tests triggering of private click measurement attributions with fetch on pagehide.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests triggering of ephemeral private click measurement attributions.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests triggering of private click measurement attributions in a new window.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 3
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests triggering of private click measurement attributions with priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 3
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests triggering of private click measurement attributions without priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 0
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,16 @@
Tests that stored attributions cannot be converted in an ephemeral session.



--------
Frame: '<!--frame1-->'
--------
Attribution not received - timed out.

Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,16 @@
Tests that the presence of a source nonce triggers a token signing request.



--------
Frame: '<!--frame1-->'
--------
Token signing request not received - timed out.

Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,16 @@
Tests that the presence of a source nonce triggers a token signing request.



--------
Frame: '<!--frame1-->'
--------
Token signing request not received - timed out.

Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests that a second attribution with higher priority replaces an older with lower priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 4
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests that a second attribution with lower priority does not replace an older with higher priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests that the attribution is updated if it gets a second attribution with higher priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,12 @@
Tests that the attribution is not updated if it gets a second attribution with lower priority.


Attributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
Attribution trigger data: 12
Attribution priority: 4
Attribution earliest time to send: Within 24-48 hours
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -0,0 +1,10 @@
Tests storage of private click measurement.


Unattributed Private Click Measurements:
WebCore::PrivateClickMeasurement 1
Source site: 127.0.0.1
Attribute on site: localhost
Source ID: 3
No attribution trigger data.
Application bundle identifier: org.webkit.WebKitTestRunnerApp
@@ -1,3 +1,26 @@
2021-09-22 Alex Christensen <achristensen@webkit.org>

PCM should include the bundle ID of the app from which it originated
https://bugs.webkit.org/show_bug.cgi?id=230576
<rdar://83065221>

Reviewed by Kate Cheney.

This adds infrastructure to store the bundle ID of the application.
In another patch I'm going to use that to prevent PCMs from one app from overwriting PCMs from another app during attribution.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isolatedCopy const):
* loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::attributionTriggerData const):
(WebCore::PrivateClickMeasurement::sourceApplicationBundleID const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::attributionTriggerData): Deleted.

2021-09-22 Chris Dumez <cdumez@apple.com>

Drop makeRef() and use Ref { } instead
@@ -47,6 +47,7 @@
#include "RegistrableDomain.h"
#include "RenderImage.h"
#include "ResourceRequest.h"
#include "RuntimeApplicationChecks.h"
#include "RuntimeEnabledFeatures.h"
#include "SVGImage.h"
#include "ScriptController.h"
@@ -449,7 +450,12 @@ std::optional<PrivateClickMeasurement> HTMLAnchorElement::parsePrivateClickMeasu
return std::nullopt;
}

auto privateClickMeasurement = PrivateClickMeasurement { SourceID(attributionSourceID.value()), SourceSite(WTFMove(documentRegistrableDomain)), AttributionDestinationSite(destinationURL) };
#if PLATFORM(COCOA)
auto bundleID = applicationBundleIdentifier();
#else
String bundleID;
#endif
auto privateClickMeasurement = PrivateClickMeasurement { SourceID(attributionSourceID.value()), SourceSite(WTFMove(documentRegistrableDomain)), AttributionDestinationSite(destinationURL), bundleID };

auto attributionSourceNonceAttr = attributeWithoutSynchronization(attributionsourcenonceAttr);
if (!attributionSourceNonceAttr.isEmpty()) {
@@ -101,6 +101,7 @@ PrivateClickMeasurement PrivateClickMeasurement::isolatedCopy() const
copy.m_ephemeralSourceNonce = crossThreadCopy(m_ephemeralSourceNonce);
copy.m_sourceUnlinkableToken = m_sourceUnlinkableToken.isolatedCopy();
copy.m_sourceSecretToken = crossThreadCopy(m_sourceSecretToken);
copy.m_sourceApplicationBundleID = m_sourceApplicationBundleID.isolatedCopy();
return copy;
}

0 comments on commit 0a7f110

Please sign in to comment.