Commit ce61e8ef authored by ddkilzer@apple.com's avatar ddkilzer@apple.com

<http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* WebCore.exp.in: Export wkSetHTTPPipeliningMaximumPriority().
* platform/mac/WebCoreSystemInterface.h:
(wkSetHTTPPipeliningMaximumPriority): Added function pointer
declaration.
* platform/mac/WebCoreSystemInterface.mm:
(wkSetHTTPPipeliningMaximumPriority): Added function pointer.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::initializeMaximumHTTPConnectionCountPerHost): Call
wkSetHTTPPipeliningMaximumPriority() to set the maximum HTTP
pipelining priority.
* platform/network/cf/ResourceRequestCFNet.h:
(WebCore::toResourceLoadPriority): Renamed from
mapHTTPPipeliningPriorityToResourceLoadPriority().  Updated to
to handle Unresolved case.
(WebCore::toHTTPPipeliningPriority): Renamed from
mapResourceLoadPriorityToHTTPPipeliningPriority().  Updated to
handle Unresolved case.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest): Switched to
use toResourceLoadPriority().
(WebCore::ResourceRequest::doUpdatePlatformRequest): Switched to
use toHTTPPipeliningPriority().  Moved
shouldForceHTTPPipeliningPriorityHigh() check into the argument
of toHTTPPipeliningPriority() instead of hard-coding a
now-incorrect value.

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added initialization for
wkSetHTTPPipeliningMaximumPriority().

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added initialization for
wkSetHTTPPipeliningMaximumPriority().

WebKitLibraries:

* WebKitSystemInterface.h:
(WKSetHTTPPipeliningMaximumPriority): Added declaration.
(WKExtractWordDefinitionTokenRangeFromContextualString): Added
missing declaration from r81890.
(WKShowWordDefinitionWindow): Ditto.
(WKHideWordDefinitionWindow): Ditto.
* libWebKitSystemInterfaceLeopard.a: Updated.
* libWebKitSystemInterfaceSnowLeopard.a: Updated.

git-svn-id: svn://svn.chromium.org/blink/trunk@82900 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 3e840f7a
2011-04-04 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
Reviewed by Alexey Proskuryakov.
* WebCore.exp.in: Export wkSetHTTPPipeliningMaximumPriority().
* platform/mac/WebCoreSystemInterface.h:
(wkSetHTTPPipeliningMaximumPriority): Added function pointer
declaration.
* platform/mac/WebCoreSystemInterface.mm:
(wkSetHTTPPipeliningMaximumPriority): Added function pointer.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::initializeMaximumHTTPConnectionCountPerHost): Call
wkSetHTTPPipeliningMaximumPriority() to set the maximum HTTP
pipelining priority.
* platform/network/cf/ResourceRequestCFNet.h:
(WebCore::toResourceLoadPriority): Renamed from
mapHTTPPipeliningPriorityToResourceLoadPriority(). Updated to
to handle Unresolved case.
(WebCore::toHTTPPipeliningPriority): Renamed from
mapResourceLoadPriorityToHTTPPipeliningPriority(). Updated to
handle Unresolved case.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest): Switched to
use toResourceLoadPriority().
(WebCore::ResourceRequest::doUpdatePlatformRequest): Switched to
use toHTTPPipeliningPriority(). Moved
shouldForceHTTPPipeliningPriorityHigh() check into the argument
of toHTTPPipeliningPriority() instead of hard-coding a
now-incorrect value.
2011-04-04 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
......@@ -1366,6 +1366,7 @@ _wkSetCONNECTProxyForStream
_wkSetCookieStoragePrivateBrowsingEnabled
_wkSetDragImage
_wkSetHTTPCookiesForURL
_wkSetHTTPPipeliningMaximumPriority
_wkSetHTTPPipeliningPriority
_wkSetNSURLConnectionDefersCallbacks
_wkSetNSURLRequestShouldContentSniff
......
......@@ -155,6 +155,7 @@ extern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *
extern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);
extern unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
extern int (*wkGetHTTPPipeliningPriority)(NSURLRequest *);
extern void (*wkSetHTTPPipeliningMaximumPriority)(int maximumPriority);
extern void (*wkSetHTTPPipeliningPriority)(NSMutableURLRequest *, int priority);
extern void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
extern void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
......
......@@ -91,6 +91,7 @@ void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL);
id (*wkCreateNSURLConnectionDelegateProxy)(void);
unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
int (*wkGetHTTPPipeliningPriority)(NSURLRequest *);
void (*wkSetHTTPPipeliningMaximumPriority)(int priority);
void (*wkSetHTTPPipeliningPriority)(NSMutableURLRequest *, int priority);
void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
......
......@@ -29,6 +29,7 @@
#include "ResourceRequest.h"
#if PLATFORM(MAC)
#include "ResourceLoadPriority.h"
#include "WebCoreSystemInterface.h"
#endif
......@@ -218,6 +219,7 @@ unsigned initializeMaximumHTTPConnectionCountPerHost()
#if PLATFORM(MAC)
if (isHTTPPipeliningEnabled()) {
wkSetHTTPPipeliningMaximumPriority(ResourceLoadPriorityHighest);
// When pipelining do not rate-limit requests sent from WebCore since CFNetwork handles that.
return unlimitedConnectionCount;
}
......
......@@ -41,34 +41,37 @@ void getResourceRequest(ResourceRequest&, CFURLRequestRef);
CFURLRequestRef cfURLRequest(const ResourceRequest&);
#endif
inline ResourceLoadPriority mapHTTPPipeliningPriorityToResourceLoadPriority(int priority)
inline ResourceLoadPriority toResourceLoadPriority(int priority)
{
switch (priority) {
case -1:
return ResourceLoadPriorityUnresolved;
case 0:
return ResourceLoadPriorityLow;
return ResourceLoadPriorityVeryLow;
case 1:
return ResourceLoadPriorityMedium;
return ResourceLoadPriorityLow;
case 2:
return ResourceLoadPriorityHigh;
return ResourceLoadPriorityMedium;
case 3:
return ResourceLoadPriorityUnresolved;
return ResourceLoadPriorityHigh;
default:
ASSERT_NOT_REACHED();
return ResourceLoadPriorityLowest;
}
}
inline int mapResourceLoadPriorityToHTTPPipeliningPriority(ResourceLoadPriority priority)
inline int toHTTPPipeliningPriority(ResourceLoadPriority priority)
{
switch (priority) {
case ResourceLoadPriorityUnresolved:
return -1;
case ResourceLoadPriorityVeryLow:
case ResourceLoadPriorityLow:
return 0;
case ResourceLoadPriorityMedium:
case ResourceLoadPriorityLow:
return 1;
case ResourceLoadPriorityHigh:
case ResourceLoadPriorityMedium:
return 2;
case ResourceLoadPriorityUnresolved:
case ResourceLoadPriorityHigh:
return 3;
}
......
......@@ -71,7 +71,7 @@ void ResourceRequest::doUpdateResourceRequest()
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
if (isHTTPPipeliningEnabled() && !shouldForceHTTPPipeliningPriorityHigh())
m_priority = mapHTTPPipeliningPriorityToResourceLoadPriority(wkGetHTTPPipeliningPriority(m_nsRequest.get()));
m_priority = toResourceLoadPriority(wkGetHTTPPipeliningPriority(m_nsRequest.get()));
#endif
NSDictionary *headers = [m_nsRequest.get() allHTTPHeaderFields];
......@@ -121,8 +121,8 @@ void ResourceRequest::doUpdatePlatformRequest()
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
if (isHTTPPipeliningEnabled()) {
int priority = mapResourceLoadPriorityToHTTPPipeliningPriority(m_priority);
wkSetHTTPPipeliningPriority(nsRequest, shouldForceHTTPPipeliningPriorityHigh() ? 2 : priority);
int priority = toHTTPPipeliningPriority(shouldForceHTTPPipeliningPriorityHigh() ? ResourceLoadPriorityHigh : m_priority);
wkSetHTTPPipeliningPriority(nsRequest, priority);
}
#endif
......
2011-04-04 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
Reviewed by Alexey Proskuryakov.
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added initialization for
wkSetHTTPPipeliningMaximumPriority().
2011-04-04 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dan Bernstein.
......
......@@ -76,6 +76,7 @@ void InitWebCoreSystemInterface(void)
INIT(SetCONNECTProxyForStream);
INIT(SetCookieStoragePrivateBrowsingEnabled);
INIT(SetDragImage);
INIT(SetHTTPPipeliningMaximumPriority);
INIT(SetHTTPPipeliningPriority);
INIT(SetNSURLConnectionDefersCallbacks);
INIT(SetNSURLRequestShouldContentSniff);
......
2011-04-04 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
Reviewed by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added initialization for
wkSetHTTPPipeliningMaximumPriority().
2011-04-04 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
......
......@@ -84,6 +84,7 @@ void InitWebCoreSystemInterface(void)
INIT(SetCONNECTProxyForStream);
INIT(SetCookieStoragePrivateBrowsingEnabled);
INIT(SetDragImage);
INIT(SetHTTPPipeliningMaximumPriority);
INIT(SetHTTPPipeliningPriority);
INIT(SetNSURLConnectionDefersCallbacks);
INIT(SetNSURLRequestShouldContentSniff);
......
2011-04-04 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
Reviewed by Alexey Proskuryakov.
* WebKitSystemInterface.h:
(WKSetHTTPPipeliningMaximumPriority): Added declaration.
(WKExtractWordDefinitionTokenRangeFromContextualString): Added
missing declaration from r81890.
(WKShowWordDefinitionWindow): Ditto.
(WKHideWordDefinitionWindow): Ditto.
* libWebKitSystemInterfaceLeopard.a: Updated.
* libWebKitSystemInterfaceSnowLeopard.a: Updated.
2011-04-04 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam Roben.
......
......@@ -352,6 +352,7 @@ void WKSetCAAnimationValueFunction(CAPropertyAnimation*, NSString* function);
unsigned WKInitializeMaximumHTTPConnectionCountPerHost(unsigned preferredConnectionCount);
int WKGetHTTPPipeliningPriority(NSURLRequest *);
void WKSetHTTPPipeliningMaximumPriority(int maximumPriority);
void WKSetHTTPPipeliningPriority(NSMutableURLRequest *, int priority);
void WKSetCONNECTProxyForStream(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment