2009-02-03 David Hyatt <hyatt@apple.com>
Avoid creating extra copies of NSURLRequests for non-HTTP URLs. Only mark platform requests
as needing updating when HTTP fields change if the scheme of the URL is actually HTTP or HTTPS.
Thus cuts down significantly on the number of copied NSURLRequests and is about a 1% gain on the PLT.
Reviewed by Darin Adler
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest):
* platform/KURL.cpp:
(WebCore::KURL::invalidate):
(WebCore::KURL::KURL):
* platform/KURL.h:
(WebCore::KURL::isHTTPOrHTTPS):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setCachePolicy):
(WebCore::ResourceRequestBase::setTimeoutInterval):
(WebCore::ResourceRequestBase::setMainDocumentURL):
(WebCore::ResourceRequestBase::setHTTPMethod):
(WebCore::ResourceRequestBase::setHTTPHeaderField):
(WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
(WebCore::ResourceRequestBase::setHTTPBody):
(WebCore::ResourceRequestBase::setAllowHTTPCookies):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40553 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index 7d3cf48..ccbb1da 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -3581,6 +3581,10 @@
void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, FrameLoadType loadType, bool mainResource, bool cookiePolicyURLFromRequest)
{
+ // These modifications are only necessary for HTTP and HTTPS.
+ if (!request.url().protocolInHTTPFamily())
+ return;
+
applyUserAgent(request);
if (loadType == FrameLoadTypeReload) {