[webkit-changes] [WebKit/WebKit] a917e0: Add a mechanism to remember the last IP address of...
Wenson Hsieh
noreply at github.com
Fri Oct 14 09:41:35 PDT 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a917e03c36b8b0f2f016449b9b9e0318fbb3eb38
https://github.com/WebKit/WebKit/commit/a917e03c36b8b0f2f016449b9b9e0318fbb3eb38
Author: Wenson Hsieh <wenson_hsieh at apple.com>
Date: 2022-10-14 (Fri, 14 Oct 2022)
Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h
M Source/WebCore/platform/network/DNS.cpp
M Source/WebCore/platform/network/DNS.h
M Source/WebKit/NetworkProcess/NetworkDataTask.cpp
M Source/WebKit/NetworkProcess/NetworkDataTask.h
M Source/WebKit/NetworkProcess/NetworkProcess.cpp
M Source/WebKit/NetworkProcess/NetworkSession.cpp
M Source/WebKit/NetworkProcess/NetworkSession.h
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
Log Message:
-----------
Add a mechanism to remember the last IP address of the response for the main resource request
https://bugs.webkit.org/show_bug.cgi?id=246128
rdar://100831206
Reviewed by John Wilander.
Add a mechanism to keep track of the last IP address, corresponding to the main resource request's
response; this information is stashed in a side table on the network session, alongside the existing
map of first party host to CNAME.
* Source/WTF/wtf/PlatformHave.h:
Remove this feature flag, since the oldest macOS version we currently support (Big Sur) contains
this SPI.
* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebCore/platform/network/DNS.cpp:
(WebCore::IPAddress::fromString):
Add a helper method to create an `IPAddress` from an IP address string (IPv4 or IPv6).
* Source/WebCore/platform/network/DNS.h:
(WebCore::IPAddress::IPAddress):
Add another explicit constructor that takes `WTF::HashTableEmptyValueType`, so that we can store
`IPAddress` as a value in a `HashMap`; see below.
(WTF::HashTraits<WebCore::IPAddress>::emptyValue):
Additionally add a `HashTraits` template class for `IPAddress`, which allows us to store
`WebCore::IPAddress` as a hash table value by implementing `emptyValue()`.
* Source/WebKit/NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::networkSession const):
* Source/WebKit/NetworkProcess/NetworkDataTask.h:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resetParametersToDefaultValues):
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setFirstPartyHostCNAMEDomain):
(WebKit::NetworkSession::firstPartyHostCNAMEDomain):
(WebKit::NetworkSession::resetFirstPartyDNSData):
(WebKit::NetworkSession::setFirstPartyHostIPAddress):
(WebKit::NetworkSession::firstPartyHostIPAddress):
(WebKit::NetworkSession::resetCNAMEDomainData): Deleted.
Rename `resetCNAMEDomainData` to `resetFirstPartyDNSData`, since we now use it to clear both first
party CNAME information as well as first party IP address information.
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::lastRemoteIPAddress):
Add a helper function to grab the last resolved IP address of the network data task; this is
intended to be used after we get a response.
(WebKit::NetworkDataTaskCocoa::shouldApplyCookiePolicyForThirdPartyCNAMECloaking const):
(WebKit::NetworkDataTaskCocoa::updateFirstPartyInfoForSession):
Update the first party IP address, alongside the first party CNAME for the main resource.
(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::hasCNAMEAndCookieTransformSPI): Deleted.
Remove this helper function, since we no longer need `-respondsToSelector` checks for
`_resolvedCNAMEChain` and `_cookieTransformCallback`.
Canonical link: https://commits.webkit.org/255537@main
More information about the webkit-changes
mailing list