Diff
Modified: trunk/Source/WebCore/ChangeLog (272238 => 272239)
--- trunk/Source/WebCore/ChangeLog 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebCore/ChangeLog 2021-02-02 22:44:36 UTC (rev 272239)
@@ -1,3 +1,13 @@
+2021-02-02 Kate Cheney <[email protected]>
+
+ PCM: Indicate if network load data is user identifiable
+ https://bugs.webkit.org/show_bug.cgi?id=221113
+ <rdar://problem/71348187>
+
+ Reviewed by John Wilander.
+
+ * loader/PrivateClickMeasurement.h:
+
2021-02-02 Wenson Hsieh <[email protected]>
Add scaffolding to request image extraction after a delay when hovering over images
Modified: trunk/Source/WebCore/loader/PrivateClickMeasurement.h (272238 => 272239)
--- trunk/Source/WebCore/loader/PrivateClickMeasurement.h 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebCore/loader/PrivateClickMeasurement.h 2021-02-02 22:44:36 UTC (rev 272239)
@@ -41,6 +41,8 @@
public:
using PriorityValue = uint32_t;
+ enum class PcmDataCarried : bool { NonPersonallyIdentifiable, PersonallyIdentifiable };
+
struct SourceID {
static constexpr uint32_t MaxEntropy = 255;
Modified: trunk/Source/WebKit/ChangeLog (272238 => 272239)
--- trunk/Source/WebKit/ChangeLog 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/ChangeLog 2021-02-02 22:44:36 UTC (rev 272239)
@@ -1,3 +1,23 @@
+2021-02-02 Kate Cheney <[email protected]>
+
+ PCM: Indicate if network load data is user identifiable
+ https://bugs.webkit.org/show_bug.cgi?id=221113
+ <rdar://problem/71348187>
+
+ Reviewed by John Wilander.
+
+ * NetworkProcess/NetworkDataTask.cpp:
+ (WebKit::NetworkDataTask::create):
+ * NetworkProcess/NetworkLoadParameters.h:
+ * NetworkProcess/NetworkResourceLoadParameters.cpp:
+ (WebKit::NetworkResourceLoadParameters::encode const):
+ (WebKit::NetworkResourceLoadParameters::decode):
+ * NetworkProcess/PrivateClickMeasurementManager.cpp:
+ (WebKit::PrivateClickMeasurementManager::fireConversionRequest):
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+ (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
+
2021-02-02 Alex Christensen <[email protected]>
Remove all use of _UIEventAttribution
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2021-02-02 22:44:36 UTC (rev 272239)
@@ -54,7 +54,7 @@
ASSERT(!parameters.request.url().protocolIsBlob());
#if PLATFORM(COCOA)
// FIXME: Just pass parameters to the NetworkDataTaskCocoa constructor.
- return NetworkDataTaskCocoa::create(session, client, parameters.request, parameters.webFrameID, parameters.webPageID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.shouldPreconnectOnly, parameters.isMainFrameNavigation, parameters.isMainResourceNavigationForAnyFrame, parameters.networkActivityTracker, parameters.isNavigatingToAppBoundDomain, parameters.shouldRelaxThirdPartyCookieBlocking);
+ return NetworkDataTaskCocoa::create(session, client, parameters.request, parameters.webFrameID, parameters.webPageID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.shouldPreconnectOnly, parameters.isMainFrameNavigation, parameters.isMainResourceNavigationForAnyFrame, parameters.networkActivityTracker, parameters.isNavigatingToAppBoundDomain, parameters.shouldRelaxThirdPartyCookieBlocking, parameters.pcmDataCarried);
#endif
#if USE(SOUP)
return NetworkDataTaskSoup::create(session, client, parameters.request, parameters.webFrameID, parameters.webPageID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.isMainFrameNavigation);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadParameters.h (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadParameters.h 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadParameters.h 2021-02-02 22:44:36 UTC (rev 272239)
@@ -66,6 +66,7 @@
PreconnectOnly shouldPreconnectOnly { PreconnectOnly::No };
Optional<NetworkActivityTracker> networkActivityTracker;
Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain { NavigatingToAppBoundDomain::No };
+ Optional<WebCore::PrivateClickMeasurement::PcmDataCarried> pcmDataCarried;
};
} // namespace WebKit
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2021-02-02 22:44:36 UTC (rev 272239)
@@ -122,6 +122,7 @@
#endif
encoder << isNavigatingToAppBoundDomain;
+ encoder << pcmDataCarried;
}
Optional<NetworkResourceLoadParameters> NetworkResourceLoadParameters::decode(IPC::Decoder& decoder)
@@ -311,6 +312,12 @@
return WTF::nullopt;
result.isNavigatingToAppBoundDomain = *isNavigatingToAppBoundDomain;
+ Optional<Optional<WebCore::PrivateClickMeasurement::PcmDataCarried>> pcmDataCarried;
+ decoder >> pcmDataCarried;
+ if (!pcmDataCarried)
+ return WTF::nullopt;
+ result.pcmDataCarried = *pcmDataCarried;
+
return result;
}
Modified: trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp 2021-02-02 22:44:36 UTC (rev 272239)
@@ -163,6 +163,7 @@
loadParameters.options = options;
loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = true;
loadParameters.shouldRestrictHTTPResponseAccess = false;
+ loadParameters.pcmDataCarried = WebCore::PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable;
RELEASE_LOG_INFO(PrivateClickMeasurement, "About to fire an attribution request.");
m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Log, "[Private Click Measurement] About to fire an attribution request."_s);
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h 2021-02-02 22:44:36 UTC (rev 272239)
@@ -46,9 +46,9 @@
class NetworkDataTaskCocoa final : public NetworkDataTask {
public:
- static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker> networkActivityTracker, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking)
+ static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& request, WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker> networkActivityTracker, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking, Optional<WebCore::PrivateClickMeasurement::PcmDataCarried> pcmDataCarried)
{
- return adoptRef(*new NetworkDataTaskCocoa(session, client, request, frameID, pageID, storedCredentialsPolicy, shouldContentSniff, shouldContentEncodingSniff, shouldClearReferrerOnHTTPSToHTTPRedirect, shouldPreconnectOnly, dataTaskIsForMainFrameNavigation, dataTaskIsForMainResourceNavigationForAnyFrame, networkActivityTracker, isNavigatingToAppBoundDomain, shouldRelaxThirdPartyCookieBlocking));
+ return adoptRef(*new NetworkDataTaskCocoa(session, client, request, frameID, pageID, storedCredentialsPolicy, shouldContentSniff, shouldContentEncodingSniff, shouldClearReferrerOnHTTPSToHTTPRedirect, shouldPreconnectOnly, dataTaskIsForMainFrameNavigation, dataTaskIsForMainResourceNavigationForAnyFrame, networkActivityTracker, isNavigatingToAppBoundDomain, shouldRelaxThirdPartyCookieBlocking, pcmDataCarried));
}
~NetworkDataTaskCocoa();
@@ -84,7 +84,7 @@
void setH2PingCallback(const URL&, CompletionHandler<void(Expected<WTF::Seconds, WebCore::ResourceError>&&)>&&) override;
private:
- NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::FrameIdentifier, WebCore::PageIdentifier, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker>, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking);
+ NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::FrameIdentifier, WebCore::PageIdentifier, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker>, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking, Optional<WebCore::PrivateClickMeasurement::PcmDataCarried>);
bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&);
void applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(__strong NSURLRequest*&, bool shouldContentSniff, bool shouldContentEncodingSniff);
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (272238 => 272239)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2021-02-02 22:38:24 UTC (rev 272238)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2021-02-02 22:44:36 UTC (rev 272239)
@@ -53,6 +53,12 @@
#import <pal/spi/cocoa/NSURLConnectionSPI.h>
#endif
+#if USE(APPLE_INTERNAL_SDK)
+#import <WebKitAdditions/NetworkDataTaskCocoaAdditions.h>
+#else
+#define NETWORK_DATA_TASK_COCOA_ADDITIONS
+#endif
+
namespace WebKit {
#if USE(CREDENTIAL_STORAGE_WITH_NETWORK_SESSION)
@@ -285,7 +291,7 @@
return session.sessionID().isAlwaysOnLoggingAllowed();
}
-NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker> networkActivityTracker, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking)
+NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, Optional<NetworkActivityTracker> networkActivityTracker, Optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking, Optional<WebCore::PrivateClickMeasurement::PcmDataCarried> pcmDataCarried)
: NetworkDataTask(session, client, requestWithCredentials, storedCredentialsPolicy, shouldClearReferrerOnHTTPSToHTTPRedirect, dataTaskIsForMainFrameNavigation)
, m_sessionWrapper(makeWeakPtr(static_cast<NetworkSessionCocoa&>(session).sessionWrapperForTask(requestWithCredentials, storedCredentialsPolicy, isNavigatingToAppBoundDomain)))
, m_frameID(frameID)
@@ -330,6 +336,9 @@
restrictRequestReferrerToOriginIfNeeded(request);
NSURLRequest *nsRequest = request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::UpdateHTTPBody);
+
+ NETWORK_DATA_TASK_COCOA_ADDITIONS
+
applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(nsRequest, shouldContentSniff == WebCore::ContentSniffingPolicy::SniffContent && !url.isLocalFile(), shouldContentEncodingSniff == WebCore::ContentEncodingSniffingPolicy::Sniff);
m_task = [m_sessionWrapper->session dataTaskWithRequest:nsRequest];