Diff
Modified: trunk/Source/WebKit/ChangeLog (278467 => 278468)
--- trunk/Source/WebKit/ChangeLog 2021-06-04 16:36:34 UTC (rev 278467)
+++ trunk/Source/WebKit/ChangeLog 2021-06-04 17:06:11 UTC (rev 278468)
@@ -1,3 +1,22 @@
+2021-06-04 Alex Christensen <achristen...@webkit.org>
+
+ Pass NetworkLoadParameters to NetworkDataTaskCocoa constructor
+ https://bugs.webkit.org/show_bug.cgi?id=226628
+
+ Reviewed by Sam Weinig.
+
+ No change in behavior. Just pass a parameters object instead of splitting them into separate parameters.
+
+ * NetworkProcess/NetworkActivityTracker.h:
+ (WebKit::NetworkActivityTracker::getPlatformObject const):
+ (WebKit::NetworkActivityTracker::getPlatformObject): Deleted.
+ * NetworkProcess/NetworkDataTask.cpp:
+ (WebKit::NetworkDataTask::create):
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+ (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
+ (WebKit::NetworkDataTaskCocoa::didReceiveResponse):
+
2021-06-04 Wenson Hsieh <wenson_hs...@apple.com>
[iOS] Long pressing images on 9gag.com fails to present context menus
Modified: trunk/Source/WebKit/NetworkProcess/NetworkActivityTracker.h (278467 => 278468)
--- trunk/Source/WebKit/NetworkProcess/NetworkActivityTracker.h 2021-06-04 16:36:34 UTC (rev 278467)
+++ trunk/Source/WebKit/NetworkProcess/NetworkActivityTracker.h 2021-06-04 17:06:11 UTC (rev 278468)
@@ -77,7 +77,7 @@
void complete(CompletionCode);
#if HAVE(NW_ACTIVITY)
- nw_activity_t getPlatformObject() { return m_networkActivity.get(); }
+ nw_activity_t getPlatformObject() const { return m_networkActivity.get(); }
#endif
private:
Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp (278467 => 278468)
--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2021-06-04 16:36:34 UTC (rev 278467)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp 2021-06-04 17:06:11 UTC (rev 278468)
@@ -53,8 +53,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.webPageProxyID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.shouldPreconnectOnly, parameters.isMainFrameNavigation, parameters.isMainResourceNavigationForAnyFrame, parameters.networkActivityTracker, parameters.isNavigatingToAppBoundDomain, parameters.shouldRelaxThirdPartyCookieBlocking, parameters.pcmDataCarried);
+ return NetworkDataTaskCocoa::create(session, client, parameters);
#endif
#if USE(SOUP)
return NetworkDataTaskSoup::create(session, client, parameters.request, parameters.webFrameID, parameters.webPageID, parameters.storedCredentialsPolicy, parameters.contentSniffingPolicy, parameters.contentEncodingSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.shouldPreconnectOnly, parameters.isMainFrameNavigation);
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h (278467 => 278468)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h 2021-06-04 16:36:34 UTC (rev 278467)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h 2021-06-04 17:06:11 UTC (rev 278468)
@@ -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, WebPageProxyIdentifier webPageProxyID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, std::optional<NetworkActivityTracker> networkActivityTracker, std::optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking, std::optional<WebCore::PrivateClickMeasurement::PcmDataCarried> pcmDataCarried)
+ static Ref<NetworkDataTask> create(NetworkSession& session, NetworkDataTaskClient& client, const NetworkLoadParameters& parameters)
{
- return adoptRef(*new NetworkDataTaskCocoa(session, client, request, frameID, pageID, webPageProxyID, storedCredentialsPolicy, shouldContentSniff, shouldContentEncodingSniff, shouldClearReferrerOnHTTPSToHTTPRedirect, shouldPreconnectOnly, dataTaskIsForMainFrameNavigation, dataTaskIsForMainResourceNavigationForAnyFrame, networkActivityTracker, isNavigatingToAppBoundDomain, shouldRelaxThirdPartyCookieBlocking, pcmDataCarried));
+ return adoptRef(*new NetworkDataTaskCocoa(session, client, parameters));
}
~NetworkDataTaskCocoa();
@@ -85,7 +85,7 @@
void setPriority(WebCore::ResourceLoadPriority) override;
private:
- NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::FrameIdentifier, WebCore::PageIdentifier, WebPageProxyIdentifier, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, std::optional<NetworkActivityTracker>, std::optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking, std::optional<WebCore::PrivateClickMeasurement::PcmDataCarried>);
+ NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const NetworkLoadParameters&);
bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&);
void applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(RetainPtr<NSURLRequest>&, bool shouldContentSniff, bool shouldContentEncodingSniff);
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (278467 => 278468)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2021-06-04 16:36:34 UTC (rev 278467)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2021-06-04 17:06:11 UTC (rev 278468)
@@ -56,7 +56,7 @@
#if USE(APPLE_INTERNAL_SDK)
#import <WebKitAdditions/NetworkDataTaskCocoaAdditions.h>
#else
-#define NETWORK_DATA_TASK_COCOA_ADDITIONS
+#define NETWORK_DATA_TASK_COCOA_ADDITIONS UNUSED_VARIABLE(pcmDataCarried);
static WebCore::RegistrableDomain contextString(NSURLRequest *) { return { }; }
#endif
@@ -291,19 +291,19 @@
return session.sessionID().isAlwaysOnLoggingAllowed();
}
-NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const WebCore::ResourceRequest& requestWithCredentials, WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID, WebPageProxyIdentifier webPageProxyID, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, WebCore::ContentSniffingPolicy shouldContentSniff, WebCore::ContentEncodingSniffingPolicy shouldContentEncodingSniff, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly shouldPreconnectOnly, bool dataTaskIsForMainFrameNavigation, bool dataTaskIsForMainResourceNavigationForAnyFrame, std::optional<NetworkActivityTracker> networkActivityTracker, std::optional<NavigatingToAppBoundDomain> isNavigatingToAppBoundDomain, WebCore::ShouldRelaxThirdPartyCookieBlocking shouldRelaxThirdPartyCookieBlocking, std::optional<WebCore::PrivateClickMeasurement::PcmDataCarried> pcmDataCarried)
- : NetworkDataTask(session, client, requestWithCredentials, storedCredentialsPolicy, shouldClearReferrerOnHTTPSToHTTPRedirect, dataTaskIsForMainFrameNavigation)
- , m_sessionWrapper(makeWeakPtr(static_cast<NetworkSessionCocoa&>(session).sessionWrapperForTask(webPageProxyID, requestWithCredentials, storedCredentialsPolicy, isNavigatingToAppBoundDomain)))
- , m_frameID(frameID)
- , m_pageID(pageID)
- , m_webPageProxyID(webPageProxyID)
- , m_isForMainResourceNavigationForAnyFrame(dataTaskIsForMainResourceNavigationForAnyFrame)
+NetworkDataTaskCocoa::NetworkDataTaskCocoa(NetworkSession& session, NetworkDataTaskClient& client, const NetworkLoadParameters& parameters)
+ : NetworkDataTask(session, client, parameters.request, parameters.storedCredentialsPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect, parameters.isMainFrameNavigation)
+ , m_sessionWrapper(makeWeakPtr(static_cast<NetworkSessionCocoa&>(session).sessionWrapperForTask(parameters.webPageProxyID, parameters.request, parameters.storedCredentialsPolicy, parameters.isNavigatingToAppBoundDomain)))
+ , m_frameID(parameters.webFrameID)
+ , m_pageID(parameters.webPageID)
+ , m_webPageProxyID(parameters.webPageProxyID)
+ , m_isForMainResourceNavigationForAnyFrame(parameters.isMainResourceNavigationForAnyFrame)
, m_isAlwaysOnLoggingAllowed(computeIsAlwaysOnLoggingAllowed(session))
- , m_shouldRelaxThirdPartyCookieBlocking(shouldRelaxThirdPartyCookieBlocking)
+ , m_shouldRelaxThirdPartyCookieBlocking(parameters.shouldRelaxThirdPartyCookieBlocking)
{
- auto request = requestWithCredentials;
+ auto request = parameters.request;
auto url = ""
- if (storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::Use && url.protocolIsInHTTPFamily()) {
+ if (m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::Use && url.protocolIsInHTTPFamily()) {
m_user = url.user();
m_password = url.password();
request.removeCredentials();
@@ -328,16 +328,17 @@
bool shouldBlockCookies = false;
#if ENABLE(RESOURCE_LOAD_STATISTICS)
- shouldBlockCookies = storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStateless;
+ shouldBlockCookies = m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStateless;
if (auto* networkStorageSession = session.networkStorageSession()) {
if (!shouldBlockCookies)
- shouldBlockCookies = networkStorageSession->shouldBlockCookies(request, frameID, pageID, m_shouldRelaxThirdPartyCookieBlocking);
+ shouldBlockCookies = networkStorageSession->shouldBlockCookies(request, frameID(), pageID(), m_shouldRelaxThirdPartyCookieBlocking);
}
#endif
restrictRequestReferrerToOriginIfNeeded(request);
- // FIXME: Once we are done with NETWORK_DATA_TASK_COCOA_ADDITIONS, make nsRequest a RetainPtr and get rid of protectedNSRequest.
+ // FIXME: Once we are done with NETWORK_DATA_TASK_COCOA_ADDITIONS, make nsRequest a RetainPtr and get rid of protectedNSRequest and pcmDataCarried.
NSURLRequest *nsRequest = request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::UpdateHTTPBody);
+ auto pcmDataCarried = parameters.pcmDataCarried;
NETWORK_DATA_TASK_COCOA_ADDITIONS
@@ -344,17 +345,17 @@
auto protectedNSRequest = retainPtr(nsRequest);
m_session->appBoundNavigationTestingData().updateAppBoundNavigationTestingData(request, contextString(protectedNSRequest.get()));
- applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(protectedNSRequest, shouldContentSniff == WebCore::ContentSniffingPolicy::SniffContent && !url.isLocalFile(), shouldContentEncodingSniff == WebCore::ContentEncodingSniffingPolicy::Sniff);
+ applySniffingPoliciesAndBindRequestToInferfaceIfNeeded(protectedNSRequest, parameters.contentSniffingPolicy == WebCore::ContentSniffingPolicy::SniffContent && !url.isLocalFile(), parameters.contentEncodingSniffingPolicy == WebCore::ContentEncodingSniffingPolicy::Sniff);
m_task = [m_sessionWrapper->session dataTaskWithRequest:protectedNSRequest.get()];
- WTFBeginSignpost(m_task.get(), "DataTask", "%{public}s pri: %.2f preconnect: %d", url.string().ascii().data(), toNSURLSessionTaskPriority(request.priority()), shouldPreconnectOnly == PreconnectOnly::Yes);
+ WTFBeginSignpost(m_task.get(), "DataTask", "%{public}s pri: %.2f preconnect: %d", url.string().ascii().data(), toNSURLSessionTaskPriority(request.priority()), parameters.shouldPreconnectOnly == PreconnectOnly::Yes);
RELEASE_ASSERT(!m_sessionWrapper->dataTaskMap.contains([m_task taskIdentifier]));
m_sessionWrapper->dataTaskMap.add([m_task taskIdentifier], this);
LOG(NetworkSession, "%lu Creating NetworkDataTask with URL %s", (unsigned long)[m_task taskIdentifier], [protectedNSRequest URL].absoluteString.UTF8String);
- if (shouldPreconnectOnly == PreconnectOnly::Yes) {
+ if (parameters.shouldPreconnectOnly == PreconnectOnly::Yes) {
#if ENABLE(SERVER_PRECONNECT)
m_task.get()._preconnect = true;
#else
@@ -369,7 +370,7 @@
if (shouldBlockCookies) {
#if !RELEASE_LOG_DISABLED
if (m_session->shouldLogCookieInformation())
- RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::logCookieInformation: pageID=%" PRIu64 ", frameID=%" PRIu64 ", taskID=%lu: Blocking cookies for URL %s", this, pageID.toUInt64(), frameID.toUInt64(), (unsigned long)[m_task taskIdentifier], [protectedNSRequest URL].absoluteString.UTF8String);
+ RELEASE_LOG_IF(isAlwaysOnLoggingAllowed(), Network, "%p - NetworkDataTaskCocoa::logCookieInformation: pageID=%" PRIu64 ", frameID=%" PRIu64 ", taskID=%lu: Blocking cookies for URL %s", this, pageID().toUInt64(), frameID().toUInt64(), (unsigned long)[m_task taskIdentifier], [protectedNSRequest URL].absoluteString.UTF8String);
#else
LOG(NetworkSession, "%lu Blocking cookies for URL %s", (unsigned long)[m_task taskIdentifier], [protectedNSRequest URL].absoluteString.UTF8String);
#endif
@@ -383,8 +384,8 @@
updateTaskWithFirstPartyForSameSiteCookies(m_task.get(), request);
#if HAVE(NW_ACTIVITY)
- if (networkActivityTracker)
- m_task.get()._nw_activity = networkActivityTracker.value().getPlatformObject();
+ if (parameters.networkActivityTracker)
+ m_task.get()._nw_activity = parameters.networkActivityTracker->getPlatformObject();
#endif
}