<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[161796] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/161796">161796</a></dd>
<dt>Author</dt> <dd>ap@apple.com</dd>
<dt>Date</dt> <dd>2014-01-11 20:20:13 -0800 (Sat, 11 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Mac] [Windows] Stop scheduling network requests in WebCore
https://bugs.webkit.org/show_bug.cgi?id=126789
&lt;rdar://problem/15114727&gt;

Source/WebCore: 

Reviewed by Sam Weinig.

We'll just send all requests to CFNetwork now, along with associated priorities.

* WebCore.exp.in: WebKitSystemInterface functions are changing to support priorities
for more than just pipelining.
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::scheduleLoad):
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/ResourceHandle.h: For syncronous requests, make it so that they
don't count against HTTP connection limit, to avoid the possibility of hanging the process.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):
* platform/network/cf/ResourceRequestCFNet.h:
(WebCore::toPlatformRequestPriority):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

Source/WebKit/mac: 

Reviewed by Sam Weinig.

* WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): Updated
for new WKSI function names.

Source/WebKit2: 

Reviewed by Sam Weinig.

* NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
(WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost):
We no longer need the trick with 7 connections, as synchronous requests always have
the right of way.

* UIProcess/API/C/WKContext.cpp: Removed long obsolete functions.

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
Updated for new WKSI function names.

WebKitLibraries: 

Update WKSI.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceLion.a:
* libWebKitSystemInterfaceMavericks.a:
* libWebKitSystemInterfaceMountainLion.a:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreloaderResourceLoadSchedulercpp">trunk/Source/WebCore/loader/ResourceLoadScheduler.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm">trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWebCoreSystemInterfaceh">trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWebCoreSystemInterfacemm">trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkResourceHandleh">trunk/Source/WebCore/platform/network/ResourceHandle.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceHandleCFNetcpp">trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceRequestCFNetcpp">trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfResourceRequestCFNeth">trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm">trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceRequestMacmm">trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm">trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessmacNetworkResourceLoadSchedulerMacmm">trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm</a></li>
<li><a href="#trunkWebKitLibrariesChangeLog">trunk/WebKitLibraries/ChangeLog</a></li>
<li><a href="#trunkWebKitLibrariesWebKitSystemInterfaceh">trunk/WebKitLibraries/WebKitSystemInterface.h</a></li>
<li><a href="#trunkWebKitLibrarieslibWebKitSystemInterfaceLiona">trunk/WebKitLibraries/libWebKitSystemInterfaceLion.a</a></li>
<li><a href="#trunkWebKitLibrarieslibWebKitSystemInterfaceMavericksa">trunk/WebKitLibraries/libWebKitSystemInterfaceMavericks.a</a></li>
<li><a href="#trunkWebKitLibrarieslibWebKitSystemInterfaceMountainLiona">trunk/WebKitLibraries/libWebKitSystemInterfaceMountainLion.a</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/ChangeLog        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -1,3 +1,41 @@
</span><ins>+2014-01-11  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        [Mac] [Windows] Stop scheduling network requests in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=126789
+        &lt;rdar://problem/15114727&gt;
+
+        Reviewed by Sam Weinig.
+
+        We'll just send all requests to CFNetwork now, along with associated priorities.
+
+        * WebCore.exp.in: WebKitSystemInterface functions are changing to support priorities
+        for more than just pipelining.
+        * loader/ResourceLoadScheduler.cpp:
+        (WebCore::ResourceLoadScheduler::scheduleLoad):
+        * platform/ios/WebCoreSystemInterfaceIOS.mm:
+        * platform/mac/WebCoreSystemInterface.h:
+        * platform/mac/WebCoreSystemInterface.mm:
+        * platform/network/ResourceHandle.h: For syncronous requests, make it so that they
+        don't count against HTTP connection limit, to avoid the possibility of hanging the process.
+        * platform/network/cf/ResourceHandleCFNet.cpp:
+        (WebCore::ResourceHandle::createCFURLConnection):
+        (WebCore::ResourceHandle::start):
+        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
+        * platform/network/cf/ResourceRequestCFNet.cpp:
+        (WebCore::ResourceRequest::doUpdatePlatformRequest):
+        (WebCore::ResourceRequest::doUpdateResourceRequest):
+        (WebCore::initializeMaximumHTTPConnectionCountPerHost):
+        (WebCore::initializeHTTPConnectionSettingsOnStartup):
+        * platform/network/cf/ResourceRequestCFNet.h:
+        (WebCore::toPlatformRequestPriority):
+        * platform/network/mac/ResourceHandleMac.mm:
+        (WebCore::ResourceHandle::createNSURLConnection):
+        (WebCore::ResourceHandle::start):
+        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
+        * platform/network/mac/ResourceRequestMac.mm:
+        (WebCore::ResourceRequest::doUpdateResourceRequest):
+        (WebCore::ResourceRequest::doUpdatePlatformRequest):
+
</ins><span class="cx"> 2014-01-11  David Kilzer  &lt;ddkilzer@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] Fix build failure in WebCore::findEndWordBoundary()
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -1893,12 +1893,13 @@
</span><span class="cx"> _wkGetCFURLResponseMIMEType
</span><span class="cx"> _wkGetCFURLResponseURL
</span><span class="cx"> _wkGetHTTPCookieAcceptPolicy
</span><del>-_wkGetHTTPPipeliningPriority
</del><ins>+_wkGetHTTPRequestPriority
</ins><span class="cx"> _wkGetMIMETypeForExtension
</span><span class="cx"> _wkGetNSURLResponseLastModifiedDate
</span><span class="cx"> _wkGetUserToBaseCTM
</span><span class="cx"> _wkHTTPCookies
</span><span class="cx"> _wkHTTPCookiesForURL
</span><ins>+_wkHTTPRequestEnablePipelining
</ins><span class="cx"> _wkInitializeMaximumHTTPConnectionCountPerHost
</span><span class="cx"> _wkSetBaseCTM
</span><span class="cx"> _wkSetCFURLResponseMIMEType
</span><span class="lines">@@ -1906,9 +1907,9 @@
</span><span class="cx"> _wkSetCONNECTProxyForStream
</span><span class="cx"> _wkSetHTTPCookieAcceptPolicy
</span><span class="cx"> _wkSetHTTPCookiesForURL
</span><del>-_wkSetHTTPPipeliningMaximumPriority
-_wkSetHTTPPipeliningMinimumFastLanePriority
-_wkSetHTTPPipeliningPriority
</del><ins>+_wkSetHTTPRequestMaximumPriority
+_wkSetHTTPRequestMinimumFastLanePriority
+_wkSetHTTPRequestPriority
</ins><span class="cx"> _wkSetNSURLConnectionDefersCallbacks
</span><span class="cx"> _wkSetNSURLRequestShouldContentSniff
</span><span class="cx"> _wkSetPatternPhaseInUserSpace
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderResourceLoadSchedulercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ResourceLoadScheduler.cpp (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ResourceLoadScheduler.cpp        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/loader/ResourceLoadScheduler.cpp        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -162,9 +162,10 @@
</span><span class="cx">     bool hadRequests = host-&gt;hasRequests();
</span><span class="cx">     host-&gt;schedule(resourceLoader, priority);
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-    if (ResourceRequest::httpPipeliningEnabled() &amp;&amp; !isSuspendingPendingRequests()) {
</del><ins>+#if PLATFORM(MAC) || USE(CFNETWORK)
+    if (!isSuspendingPendingRequests()) {
</ins><span class="cx">         // Serve all requests at once to keep the pipeline full at the network layer.
</span><ins>+        // FIXME: Does this code do anything useful, given that we also set maxRequestsInFlightPerHost to effectively unlimited on these platforms?
</ins><span class="cx">         servePendingRequests(host, ResourceLoadPriorityVeryLow);
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -58,9 +58,10 @@
</span><span class="cx"> id (*wkCreateNSURLConnectionDelegateProxy)(void);
</span><span class="cx"> unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
</span><span class="cx"> int (*wkGetHTTPPipeliningPriority)(CFURLRequestRef);
</span><del>-void (*wkSetHTTPPipeliningMaximumPriority)(int priority);
-void (*wkSetHTTPPipeliningPriority)(CFURLRequestRef, int priority);
-void (*wkSetHTTPPipeliningMinimumFastLanePriority)(int priority);
</del><ins>+void (*wkSetHTTPRequestMaximumPriority)(int priority);
+void (*wkSetHTTPRequestPriority)(CFURLRequestRef, int priority);
+void (*wkSetHTTPRequestMinimumFastLanePriority)(int priority);
+void (*wkHTTPRequestEnablePipelining)(CFURLRequestRef);
</ins><span class="cx"> void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><span class="cx"> void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
</span><span class="cx"> void (*wkSetCookieStoragePrivateBrowsingEnabled)(BOOL);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWebCoreSystemInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -226,10 +226,11 @@
</span><span class="cx"> extern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *error);
</span><span class="cx"> extern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);
</span><span class="cx"> extern unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
</span><del>-extern int (*wkGetHTTPPipeliningPriority)(CFURLRequestRef);
-extern void (*wkSetHTTPPipeliningMaximumPriority)(int maximumPriority);
-extern void (*wkSetHTTPPipeliningPriority)(CFURLRequestRef, int priority);
-extern void (*wkSetHTTPPipeliningMinimumFastLanePriority)(int priority);
</del><ins>+extern int (*wkGetHTTPRequestPriority)(CFURLRequestRef);
+extern void (*wkSetHTTPRequestMaximumPriority)(int maximumPriority);
+extern void (*wkSetHTTPRequestPriority)(CFURLRequestRef, int priority);
+extern void (*wkSetHTTPRequestMinimumFastLanePriority)(int priority);
+extern void (*wkHTTPRequestEnablePipelining)(CFURLRequestRef);
</ins><span class="cx"> extern void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><span class="cx"> extern void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
</span><span class="cx"> extern CFHTTPMessageRef (*wkCopyCONNECTProxyResponse)(CFReadStreamRef, CFURLRef responseURL, CFStringRef proxyHost, CFNumberRef proxyPort);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWebCoreSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -105,10 +105,11 @@
</span><span class="cx"> void (*wkSetNSURLConnectionDefersCallbacks)(NSURLConnection *, BOOL);
</span><span class="cx"> void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL);
</span><span class="cx"> unsigned (*wkInitializeMaximumHTTPConnectionCountPerHost)(unsigned preferredConnectionCount);
</span><del>-int (*wkGetHTTPPipeliningPriority)(CFURLRequestRef);
-void (*wkSetHTTPPipeliningMaximumPriority)(int priority);
-void (*wkSetHTTPPipeliningPriority)(CFURLRequestRef, int priority);
-void (*wkSetHTTPPipeliningMinimumFastLanePriority)(int priority);
</del><ins>+int (*wkGetHTTPRequestPriority)(CFURLRequestRef);
+void (*wkSetHTTPRequestMaximumPriority)(int priority);
+void (*wkSetHTTPRequestPriority)(CFURLRequestRef, int priority);
+void (*wkSetHTTPRequestMinimumFastLanePriority)(int priority);
+void (*wkHTTPRequestEnablePipelining)(CFURLRequestRef);
</ins><span class="cx"> void (*wkSetCONNECTProxyForStream)(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><span class="cx"> void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
</span><span class="cx"> CFHTTPMessageRef (*wkCopyCONNECTProxyResponse)(CFReadStreamRef, CFURLRef responseURL, CFStringRef proxyHost, CFNumberRef proxyPort);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkResourceHandleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ResourceHandle.h (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ResourceHandle.h        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/ResourceHandle.h        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -272,11 +272,18 @@
</span><span class="cx">     virtual void refAuthenticationClient() OVERRIDE { ref(); }
</span><span class="cx">     virtual void derefAuthenticationClient() OVERRIDE { deref(); }
</span><span class="cx"> 
</span><del>-#if PLATFORM(MAC) &amp;&amp; !USE(CFNETWORK)
-    void createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff);
-#elif USE(CFNETWORK)
-    void createCFURLConnection(bool shouldUseCredentialStorage, bool shouldContentSniff, CFDictionaryRef clientProperties);
</del><ins>+#if PLATFORM(MAC) || USE(CFNETWORK)
+    enum class SchedulingBehavior {
+        Asynchronous,
+        Synchronous
+    };
+
+#if USE(CFNETWORK)
+    void createCFURLConnection(bool shouldUseCredentialStorage, bool shouldContentSniff, SchedulingBehavior, CFDictionaryRef clientProperties);
+#else
+    void createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff, SchedulingBehavior);
</ins><span class="cx"> #endif
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx">     friend class ResourceHandleInternal;
</span><span class="cx">     OwnPtr&lt;ResourceHandleInternal&gt; d;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceHandleCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     LOG(Network, &quot;CFNet - Destroying job %p (%s)&quot;, this, d-&gt;m_firstRequest.url().string().utf8().data());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceHandle::createCFURLConnection(bool shouldUseCredentialStorage, bool shouldContentSniff, CFDictionaryRef clientProperties)
</del><ins>+void ResourceHandle::createCFURLConnection(bool shouldUseCredentialStorage, bool shouldContentSniff, SchedulingBehavior schedulingBehavior, CFDictionaryRef clientProperties)
</ins><span class="cx"> {
</span><span class="cx">     if ((!d-&gt;m_user.isEmpty() || !d-&gt;m_pass.isEmpty()) &amp;&amp; !firstRequest().url().protocolIsInHTTPFamily()) {
</span><span class="cx">         // Credentials for ftp can only be passed in URL, the didReceiveAuthenticationChallenge delegate call won't be made.
</span><span class="lines">@@ -185,9 +185,21 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     CFMutableDictionaryRef streamProperties  = CFDictionaryCreateMutable(0, 0, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks);
</span><del>-    if (!shouldUseCredentialStorage)
</del><ins>+
+    if (!shouldUseCredentialStorage) {
+        // Avoid using existing connections, because they may be already authenticated.
</ins><span class="cx">         CFDictionarySetValue(streamProperties, CFSTR(&quot;_kCFURLConnectionSessionID&quot;), CFSTR(&quot;WebKitPrivateSession&quot;));
</span><ins>+    }
</ins><span class="cx"> 
</span><ins>+    if (schedulingBehavior == SchedulingBehavior::Synchronous) {
+        // Synchronous requests should not be subject to regular connection count limit to avoid deadlocks.
+        // If we are using all available connections for async requests, and make a sync request, then prior
+        // requests may get stuck waiting for delegate calls while we are in nested run loop, and the sync
+        // request won't start because there are no available connections.
+        // Connections are grouped by their socket stream properties, with each group having a separate count.
+        CFDictionarySetValue(streamProperties, CFSTR(&quot;_WebKitSynchronousRequest&quot;), kCFBooleanTrue);
+    }
+
</ins><span class="cx"> #if PLATFORM(IOS) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090)
</span><span class="cx">     RetainPtr&lt;CFDataRef&gt; sourceApplicationAuditData = d-&gt;m_context-&gt;sourceApplicationAuditData();
</span><span class="cx">     if (sourceApplicationAuditData)
</span><span class="lines">@@ -200,11 +212,11 @@
</span><span class="cx">         propertiesDictionary = adoptCF(CFDictionaryCreateMutableCopy(kCFAllocatorDefault, 0, clientProperties));
</span><span class="cx">     else
</span><span class="cx">         propertiesDictionary = adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
</span><ins>+
+    // FIXME: This code is different from iOS code in ResourceHandleMac.mm in that here we ignore stream properties that were present in client properties.
</ins><span class="cx">     CFDictionaryAddValue(propertiesDictionary.get(), kCFURLConnectionSocketStreamProperties, streamProperties);
</span><span class="cx">     CFRelease(streamProperties);
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     if (client() &amp;&amp; client()-&gt;usesAsyncCallbacks())
</span><span class="cx">         d-&gt;m_connectionDelegate = adoptRef(new ResourceHandleCFURLConnectionDelegateWithOperationQueue(this));
</span><span class="lines">@@ -234,7 +246,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool shouldUseCredentialStorage = !client() || client()-&gt;shouldUseCredentialStorage(this);
</span><span class="cx"> 
</span><del>-    createCFURLConnection(shouldUseCredentialStorage, d-&gt;m_shouldContentSniff, client()-&gt;connectionProperties(this).get());
</del><ins>+    createCFURLConnection(shouldUseCredentialStorage, d-&gt;m_shouldContentSniff, SchedulingBehavior::Asynchronous, client()-&gt;connectionProperties(this).get());
</ins><span class="cx"> 
</span><span class="cx">     d-&gt;m_connectionDelegate-&gt;setupConnectionScheduling(d-&gt;m_connection.get());
</span><span class="cx">     CFURLConnectionStart(d-&gt;m_connection.get());
</span><span class="lines">@@ -480,7 +492,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    handle-&gt;createCFURLConnection(storedCredentials == AllowStoredCredentials, ResourceHandle::shouldContentSniffURL(request.url()), handle-&gt;client()-&gt;connectionProperties(handle.get()).get());
</del><ins>+    handle-&gt;createCFURLConnection(storedCredentials == AllowStoredCredentials, ResourceHandle::shouldContentSniffURL(request.url()),
+        SchedulingBehavior::Synchronous, handle-&gt;client()-&gt;connectionProperties(handle.get()).get());
</ins><span class="cx"> 
</span><span class="cx">     CFURLConnectionScheduleWithRunLoop(handle-&gt;connection(), CFRunLoopGetCurrent(), synchronousLoadRunLoopMode());
</span><span class="cx">     CFURLConnectionScheduleDownloadWithRunLoop(handle-&gt;connection(), CFRunLoopGetCurrent(), synchronousLoadRunLoopMode());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceRequestCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -53,6 +53,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+// FIXME: Make this a NetworkingContext property.
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> bool ResourceRequest::s_httpPipeliningEnabled = true;
</span><span class="cx"> #else
</span><span class="lines">@@ -151,7 +152,10 @@
</span><span class="cx">     CFURLRequestSetHTTPRequestMethod(cfRequest, httpMethod().createCFString().get());
</span><span class="cx"> 
</span><span class="cx">     if (httpPipeliningEnabled())
</span><del>-        wkSetHTTPPipeliningPriority(cfRequest, toHTTPPipeliningPriority(m_priority));
</del><ins>+        wkHTTPRequestEnablePipelining(cfRequest);
+
+    wkSetHTTPRequestPriority(cfRequest, toPlatformRequestPriority(m_priority));
+
</ins><span class="cx"> #if !PLATFORM(WIN)
</span><span class="cx">     wkCFURLRequestAllowAllPostCaching(cfRequest);
</span><span class="cx"> #endif
</span><span class="lines">@@ -270,8 +274,7 @@
</span><span class="cx">     }
</span><span class="cx">     m_allowCookies = CFURLRequestShouldHandleHTTPCookies(m_cfRequest.get());
</span><span class="cx"> 
</span><del>-    if (httpPipeliningEnabled())
-        m_priority = toResourceLoadPriority(wkGetHTTPPipeliningPriority(m_cfRequest.get()));
</del><ins>+    m_priority = toResourceLoadPriority(wkGetHTTPRequestPriority(m_cfRequest.get()));
</ins><span class="cx"> 
</span><span class="cx">     m_httpHeaderFields.clear();
</span><span class="cx">     if (CFDictionaryRef headers = CFURLRequestCopyAllHTTPHeaderFields(m_cfRequest.get())) {
</span><span class="lines">@@ -392,28 +395,22 @@
</span><span class="cx"> unsigned initializeMaximumHTTPConnectionCountPerHost()
</span><span class="cx"> {
</span><span class="cx">     static const unsigned preferredConnectionCount = 6;
</span><del>-
-    // Always set the connection count per host, even when pipelining.
-    unsigned maximumHTTPConnectionCountPerHost = wkInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
-
</del><span class="cx">     static const unsigned unlimitedConnectionCount = 10000;
</span><span class="cx"> 
</span><ins>+    wkInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
+
</ins><span class="cx">     Boolean keyExistsAndHasValidFormat = false;
</span><span class="cx">     Boolean prefValue = CFPreferencesGetAppBooleanValue(CFSTR(&quot;WebKitEnableHTTPPipelining&quot;), kCFPreferencesCurrentApplication, &amp;keyExistsAndHasValidFormat);
</span><span class="cx">     if (keyExistsAndHasValidFormat)
</span><span class="cx">         ResourceRequest::setHTTPPipeliningEnabled(prefValue);
</span><span class="cx"> 
</span><del>-    if (ResourceRequest::httpPipeliningEnabled()) {
-        wkSetHTTPPipeliningMaximumPriority(toHTTPPipeliningPriority(ResourceLoadPriorityHighest));
</del><ins>+    wkSetHTTPRequestMaximumPriority(toPlatformRequestPriority(ResourceLoadPriorityHighest));
</ins><span class="cx"> #if !PLATFORM(WIN)
</span><del>-        // FIXME: &lt;rdar://problem/9375609&gt; Implement minimum fast lane priority setting on Windows
-        wkSetHTTPPipeliningMinimumFastLanePriority(toHTTPPipeliningPriority(ResourceLoadPriorityMedium));
</del><ins>+    // FIXME: &lt;rdar://problem/9375609&gt; Implement minimum fast lane priority setting on Windows
+    wkSetHTTPRequestMinimumFastLanePriority(toPlatformRequestPriority(ResourceLoadPriorityMedium));
</ins><span class="cx"> #endif
</span><del>-        // When pipelining do not rate-limit requests sent from WebCore since CFNetwork handles that.
-        return unlimitedConnectionCount;
-    }
</del><span class="cx"> 
</span><del>-    return maximumHTTPConnectionCountPerHost;
</del><ins>+    return unlimitedConnectionCount;
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -426,8 +423,8 @@
</span><span class="cx">     static const unsigned preferredConnectionCount = 6;
</span><span class="cx">     static const unsigned fastLaneConnectionCount = 1;
</span><span class="cx">     wkInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
</span><del>-    wkSetHTTPPipeliningMaximumPriority(ResourceLoadPriorityHighest);
-    wkSetHTTPPipeliningMinimumFastLanePriority(ResourceLoadPriorityMedium);
</del><ins>+    wkSetHTTPRequestMaximumPriority(ResourceLoadPriorityHighest);
+    wkSetHTTPRequestMinimumFastLanePriority(ResourceLoadPriorityMedium);
</ins><span class="cx">     _CFNetworkHTTPConnectionCacheSetLimit(kHTTPNumFastLanes, fastLaneConnectionCount);
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfResourceRequestCFNeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.h (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.h        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.h        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline int toHTTPPipeliningPriority(ResourceLoadPriority priority)
</del><ins>+inline int toPlatformRequestPriority(ResourceLoadPriority priority)
</ins><span class="cx"> {
</span><span class="cx">     switch (priority) {
</span><span class="cx">     case ResourceLoadPriorityUnresolved:
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -118,9 +118,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-void ResourceHandle::createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff)
</del><ins>+void ResourceHandle::createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff, SchedulingBehavior schedulingBehavior)
</ins><span class="cx"> #else
</span><del>-void ResourceHandle::createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff, NSDictionary *connectionProperties)
</del><ins>+void ResourceHandle::createNSURLConnection(id delegate, bool shouldUseCredentialStorage, bool shouldContentSniff, SchedulingBehavior schedulingBehavior, NSDictionary *connectionProperties)
</ins><span class="cx"> #endif
</span><span class="cx"> {
</span><span class="cx">     // Credentials for ftp can only be passed in URL, the connection:didReceiveAuthenticationChallenge: delegate call won't be made.
</span><span class="lines">@@ -162,15 +162,27 @@
</span><span class="cx">     ASSERT([NSURLConnection instancesRespondToSelector:@selector(_initWithRequest:delegate:usesCache:maxContentLength:startImmediately:connectionProperties:)]);
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+    // FIXME: This code is different from iOS code in ResourceHandleCFNet.cpp in that here we respect stream properties that were present in client properties.
</ins><span class="cx">     NSDictionary *streamPropertiesFromClient = [connectionProperties objectForKey:@&quot;kCFURLConnectionSocketStreamProperties&quot;];
</span><span class="cx">     NSMutableDictionary *streamProperties = streamPropertiesFromClient ? [[streamPropertiesFromClient mutableCopy] autorelease] : [NSMutableDictionary dictionary];
</span><span class="cx"> #else
</span><span class="cx">     NSMutableDictionary *streamProperties = [NSMutableDictionary dictionary];
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (!shouldUseCredentialStorage)
</del><ins>+    if (!shouldUseCredentialStorage) {
+        // Avoid using existing connections, because they may be already authenticated.
</ins><span class="cx">         [streamProperties setObject:@&quot;WebKitPrivateSession&quot; forKey:@&quot;_kCFURLConnectionSessionID&quot;];
</span><ins>+    }
</ins><span class="cx"> 
</span><ins>+    if (schedulingBehavior == SchedulingBehavior::Synchronous) {
+        // Synchronous requests should not be subject to regular connection count limit to avoid deadlocks.
+        // If we are using all available connections for async requests, and make a sync request, then prior
+        // requests may get stuck waiting for delegate calls while we are in nested run loop, and the sync
+        // request won't start because there are no available connections.
+        // Connections are grouped by their socket stream properties, with each group having a separate count.
+        [streamProperties setObject:@TRUE forKey:@&quot;_WebKitSynchronousRequest&quot;];
+    }
+
</ins><span class="cx"> #if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
</span><span class="cx">     RetainPtr&lt;CFDataRef&gt; sourceApplicationAuditData = d-&gt;m_context-&gt;sourceApplicationAuditData();
</span><span class="cx">     if (sourceApplicationAuditData)
</span><span class="lines">@@ -213,12 +225,14 @@
</span><span class="cx">     createNSURLConnection(
</span><span class="cx">         ResourceHandle::delegate(),
</span><span class="cx">         shouldUseCredentialStorage,
</span><del>-        d-&gt;m_shouldContentSniff || d-&gt;m_context-&gt;localFileContentSniffingEnabled());
</del><ins>+        d-&gt;m_shouldContentSniff || d-&gt;m_context-&gt;localFileContentSniffingEnabled(),
+        SchedulingBehavior::Asynchronous);
</ins><span class="cx"> #else
</span><span class="cx">     createNSURLConnection(
</span><span class="cx">         d-&gt;m_proxy.get(),
</span><span class="cx">         shouldUseCredentialStorage,
</span><span class="cx">         d-&gt;m_shouldContentSniff || d-&gt;m_context-&gt;localFileContentSniffingEnabled(),
</span><ins>+        SchedulingBehavior::Asynchronous,
</ins><span class="cx">         (NSDictionary *)client()-&gt;connectionProperties(this));
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -366,13 +380,15 @@
</span><span class="cx">     handle-&gt;createNSURLConnection(
</span><span class="cx">         handle-&gt;delegate(),
</span><span class="cx">         storedCredentials == AllowStoredCredentials,
</span><del>-        handle-&gt;shouldContentSniff() || context-&gt;localFileContentSniffingEnabled());
</del><ins>+        handle-&gt;shouldContentSniff() || context-&gt;localFileContentSniffingEnabled(),
+        SchedulingBehavior::Synchronous);
</ins><span class="cx"> #else
</span><span class="cx">     handle-&gt;createNSURLConnection(
</span><span class="cx">         handle-&gt;delegate(), // A synchronous request cannot turn into a download, so there is no need to proxy the delegate.
</span><span class="cx">         storedCredentials == AllowStoredCredentials,
</span><span class="cx">         shouldRelaxThirdPartyCookiePolicy(context, request.url()),
</span><span class="cx">         handle-&gt;shouldContentSniff() || (context &amp;&amp; context-&gt;localFileContentSniffingEnabled()),
</span><ins>+        SchedulingBehavior::Synchronous,
</ins><span class="cx">         (NSDictionary *)handle-&gt;client()-&gt;connectionProperties(handle.get()));
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceRequestMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebCore/platform/network/mac/ResourceRequestMac.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -108,8 +108,7 @@
</span><span class="cx">         m_httpMethod = method;
</span><span class="cx">     m_allowCookies = [m_nsRequest.get() HTTPShouldHandleCookies];
</span><span class="cx"> 
</span><del>-    if (ResourceRequest::httpPipeliningEnabled())
-        m_priority = toResourceLoadPriority(wkGetHTTPPipeliningPriority([m_nsRequest.get() _CFURLRequest]));
</del><ins>+    m_priority = toResourceLoadPriority(wkGetHTTPRequestPriority([m_nsRequest.get() _CFURLRequest]));
</ins><span class="cx"> 
</span><span class="cx">     NSDictionary *headers = [m_nsRequest.get() allHTTPHeaderFields];
</span><span class="cx">     NSEnumerator *e = [headers keyEnumerator];
</span><span class="lines">@@ -165,8 +164,10 @@
</span><span class="cx">         nsRequest = [[NSMutableURLRequest alloc] initWithURL:url()];
</span><span class="cx"> 
</span><span class="cx">     if (ResourceRequest::httpPipeliningEnabled())
</span><del>-        wkSetHTTPPipeliningPriority([nsRequest _CFURLRequest], toHTTPPipeliningPriority(m_priority));
</del><ins>+        wkHTTPRequestEnablePipelining([nsRequest _CFURLRequest]);
</ins><span class="cx"> 
</span><ins>+    wkSetHTTPRequestPriority([nsRequest _CFURLRequest], toPlatformRequestPriority(m_priority));
+
</ins><span class="cx">     [nsRequest setCachePolicy:(NSURLRequestCachePolicy)cachePolicy()];
</span><span class="cx">     wkCFURLRequestAllowAllPostCaching([nsRequest _CFURLRequest]);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2014-01-11  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        [Mac] [Windows] Stop scheduling network requests in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=126789
+        &lt;rdar://problem/15114727&gt;
+
+        Reviewed by Sam Weinig.
+
+        * WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): Updated
+        for new WKSI function names.
+
</ins><span class="cx"> 2014-01-10  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Tweak ProgressTrackerClient functions
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     INIT(GetFontInLanguageForRange);
</span><span class="cx">     INIT(GetGlyphTransformedAdvances);
</span><span class="cx"> #endif
</span><del>-    INIT(GetHTTPPipeliningPriority);
</del><ins>+    INIT(GetHTTPRequestPriority);
</ins><span class="cx">     INIT(GetMIMETypeForExtension);
</span><span class="cx">     INIT(GetNSURLResponseLastModifiedDate);
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -105,9 +105,10 @@
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     INIT(SetDragImage);
</span><span class="cx"> #endif
</span><del>-    INIT(SetHTTPPipeliningMaximumPriority);
-    INIT(SetHTTPPipeliningPriority);
-    INIT(SetHTTPPipeliningMinimumFastLanePriority);
</del><ins>+    INIT(SetHTTPRequestMaximumPriority);
+    INIT(SetHTTPRequestPriority);
+    INIT(SetHTTPRequestMinimumFastLanePriority);
+    INIT(HTTPRequestEnablePipelining);
</ins><span class="cx">     INIT(SetNSURLConnectionDefersCallbacks);
</span><span class="cx">     INIT(SetNSURLRequestShouldContentSniff);
</span><span class="cx">     INIT(SetPatternPhaseInUserSpace);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit2/ChangeLog        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2014-01-11  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        [Mac] [Windows] Stop scheduling network requests in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=126789
+        &lt;rdar://problem/15114727&gt;
+
+        Reviewed by Sam Weinig.
+
+        * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
+        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost):
+        We no longer need the trick with 7 connections, as synchronous requests always have
+        the right of way.
+
+        * UIProcess/API/C/WKContext.cpp: Removed long obsolete functions.
+
+        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
+        Updated for new WKSI function names.
+
</ins><span class="cx"> 2014-01-11  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unfork GraphicsContext::drawNativeImage for iOS
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessmacNetworkResourceLoadSchedulerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -39,36 +39,20 @@
</span><span class="cx"> 
</span><span class="cx"> void NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost()
</span><span class="cx"> {
</span><del>-    wkInitializeMaximumHTTPConnectionCountPerHost = WKInitializeMaximumHTTPConnectionCountPerHost;
-    wkSetHTTPPipeliningMaximumPriority = WKSetHTTPPipeliningMaximumPriority;
-    wkSetHTTPPipeliningMinimumFastLanePriority = WKSetHTTPPipeliningMinimumFastLanePriority;
-
-    // Our preferred connection-per-host limit is the standard 6, but we need to let CFNetwork handle a 7th
-    // in case a synchronous XHRs is made while 6 loads are already outstanding.
-    static const unsigned preferredConnectionCount = 7;
</del><ins>+    static const unsigned preferredConnectionCount = 6;
</ins><span class="cx">     static const unsigned unlimitedConnectionCount = 10000;
</span><span class="cx"> 
</span><del>-    // Always set the connection count per host, even when pipelining.
-    unsigned maximumHTTPConnectionCountPerHost = wkInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
</del><ins>+    WKInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
</ins><span class="cx"> 
</span><span class="cx">     Boolean keyExistsAndHasValidFormat = false;
</span><span class="cx">     Boolean prefValue = CFPreferencesGetAppBooleanValue(CFSTR(&quot;WebKitEnableHTTPPipelining&quot;), kCFPreferencesCurrentApplication, &amp;keyExistsAndHasValidFormat);
</span><del>-    
</del><span class="cx">     if (keyExistsAndHasValidFormat)
</span><span class="cx">         ResourceRequest::setHTTPPipeliningEnabled(prefValue);
</span><span class="cx"> 
</span><del>-    if (ResourceRequest::httpPipeliningEnabled()) {
-        wkSetHTTPPipeliningMaximumPriority(toHTTPPipeliningPriority(ResourceLoadPriorityHighest));
-        wkSetHTTPPipeliningMinimumFastLanePriority(toHTTPPipeliningPriority(ResourceLoadPriorityMedium));
</del><ins>+    WKSetHTTPRequestMaximumPriority(toPlatformRequestPriority(ResourceLoadPriorityHighest));
+    WKSetHTTPRequestMinimumFastLanePriority(toPlatformRequestPriority(ResourceLoadPriorityMedium));
</ins><span class="cx"> 
</span><del>-        // When pipelining do not rate-limit requests sent from WebCore since CFNetwork handles that.
-        m_maxRequestsInFlightPerHost = unlimitedConnectionCount;
-
-        return;
-    }
-
-    // We've asked for one more connection per host than we intend to use in most cases so synch XHRs can bypass that limit.
-    m_maxRequestsInFlightPerHost = maximumHTTPConnectionCountPerHost - 1;
</del><ins>+    m_maxRequestsInFlightPerHost = unlimitedConnectionCount;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -55,14 +55,6 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace WebKit;
</span><span class="cx"> 
</span><del>-extern &quot;C&quot; {
-// For binary compatibility with Safari 5.1. Should be removed eventually.
-WK_EXPORT void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory);
-WK_EXPORT void _WKContextRegisterURLSchemeAsEmptyDocument(WKContextRef context, WKStringRef urlScheme);
-WK_EXPORT void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef context, bool alwaysUseComplexTextCodePath);
-WK_EXPORT void _WKContextSetHTTPPipeliningEnabled(WKContextRef context, bool enabled);
-}
-
</del><span class="cx"> WKTypeID WKContextGetTypeID()
</span><span class="cx"> {
</span><span class="cx">     return toAPI(WebContext::APIType);
</span><span class="lines">@@ -409,24 +401,3 @@
</span><span class="cx"> {
</span><span class="cx">     WebContext::setInvalidMessageCallback(invalidMessageFunction);
</span><span class="cx"> }
</span><del>-
-// Deprecated functions.
-void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory)
-{
-    WKContextSetAdditionalPluginsDirectory(context, pluginsDirectory);
-}
-
-void _WKContextRegisterURLSchemeAsEmptyDocument(WKContextRef context, WKStringRef urlScheme)
-{
-    WKContextRegisterURLSchemeAsEmptyDocument(context, urlScheme);
-}
-
-void _WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef context, bool alwaysUseComplexTextCodePath)
-{
-    WKContextSetAlwaysUsesComplexTextCodePath(context, alwaysUseComplexTextCodePath);
-}
-
-void _WKContextSetHTTPPipeliningEnabled(WKContextRef context, bool enabled)
-{
-    WKContextSetHTTPPipeliningEnabled(context, enabled);
-}
</del></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">         INIT(GetGlyphsForCharacters);
</span><span class="cx"> #endif
</span><span class="cx">         INIT(GetVerticalGlyphsForCharacters);
</span><del>-        INIT(GetHTTPPipeliningPriority);
</del><ins>+        INIT(GetHTTPRequestPriority);
</ins><span class="cx">         INIT(GetMIMETypeForExtension);
</span><span class="cx">         INIT(GetNSURLResponseLastModifiedDate);
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -85,6 +85,7 @@
</span><span class="cx">         INIT(HitTestMediaUIPart);
</span><span class="cx"> #endif
</span><span class="cx">         INIT(InitializeMaximumHTTPConnectionCountPerHost);
</span><ins>+        INIT(HTTPRequestEnablePipelining);
</ins><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">         INIT(MeasureMediaUIPart);
</span><span class="cx">         INIT(PopupMenu);
</span><span class="lines">@@ -111,9 +112,9 @@
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">         INIT(SetDragImage);
</span><span class="cx"> #endif
</span><del>-        INIT(SetHTTPPipeliningMaximumPriority);
-        INIT(SetHTTPPipeliningPriority);
-        INIT(SetHTTPPipeliningMinimumFastLanePriority);
</del><ins>+        INIT(SetHTTPRequestMaximumPriority);
+        INIT(SetHTTPRequestPriority);
+        INIT(SetHTTPRequestMinimumFastLanePriority);
</ins><span class="cx">         INIT(SetNSURLConnectionDefersCallbacks);
</span><span class="cx">         INIT(SetNSURLRequestShouldContentSniff);
</span><span class="cx">         INIT(SetPatternPhaseInUserSpace);
</span></span></pre></div>
<a id="trunkWebKitLibrariesChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKitLibraries/ChangeLog (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKitLibraries/ChangeLog        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/WebKitLibraries/ChangeLog        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2014-01-11  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        [Mac] [Windows] Stop scheduling network requests in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=126789
+        &lt;rdar://problem/15114727&gt;
+
+        Update WKSI.
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLion.a:
+        * libWebKitSystemInterfaceMavericks.a:
+        * libWebKitSystemInterfaceMountainLion.a:
+
</ins><span class="cx"> 2014-01-10  peavo@outlook.com  &lt;peavo@outlook.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WinCairo] Crash when rendering (in pixman dll)
</span></span></pre></div>
<a id="trunkWebKitLibrariesWebKitSystemInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/WebKitLibraries/WebKitSystemInterface.h (161795 => 161796)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKitLibraries/WebKitSystemInterface.h        2014-01-12 04:13:43 UTC (rev 161795)
+++ trunk/WebKitLibraries/WebKitSystemInterface.h        2014-01-12 04:20:13 UTC (rev 161796)
</span><span class="lines">@@ -5,10 +5,21 @@
</span><span class="cx">     Public header file.
</span><span class="cx"> */
</span><span class="cx"> 
</span><del>-#import &lt;Cocoa/Cocoa.h&gt;
-#import &lt;Carbon/Carbon.h&gt;
</del><ins>+#import &lt;Foundation/Foundation.h&gt;
</ins><span class="cx"> #import &lt;dispatch/dispatch.h&gt;
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
+#import &lt;AppKit/AppKit.h&gt;
+#import &lt;Carbon/Carbon.h&gt;
+#else
+#import &lt;CoreImage/CoreImage.h&gt;
+#import &lt;CoreText/CoreText.h&gt;
+#if !TARGET_IPHONE_SIMULATOR
+#import &lt;IOSurface/IOSurface.h&gt;
+#endif
+#import &lt;WebKitSystemInterfaceIOS.h&gt;
+#endif
+
</ins><span class="cx"> @class AVAsset;
</span><span class="cx"> @class QTMovie;
</span><span class="cx"> @class QTMovieView;
</span><span class="lines">@@ -50,6 +61,7 @@
</span><span class="cx"> void WKSetMetadataURL(NSString *URLString, NSString *referrer, NSString *path);
</span><span class="cx"> void WKSetNSURLConnectionDefersCallbacks(NSURLConnection *connection, BOOL defers);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> void WKShowKeyAndMain(void);
</span><span class="cx"> #ifndef __LP64__
</span><span class="cx"> OSStatus WKSyncWindowWithCGAfterMove(WindowRef);
</span><span class="lines">@@ -60,10 +72,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void WKDisableCGDeferredUpdates(void);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> Class WKNSURLProtocolClassForRequest(NSURLRequest *request);
</span><span class="cx"> void WKSetNSURLRequestShouldContentSniff(NSMutableURLRequest *request, BOOL shouldContentSniff);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> #ifndef __LP64__
</span><span class="cx"> unsigned WKGetNSAutoreleasePoolCount(void);
</span><span class="cx"> #endif
</span><span class="lines">@@ -88,6 +102,7 @@
</span><span class="cx">     
</span><span class="cx"> NSArray *WKSpeechSynthesisGetVoiceIdentifiers(void);
</span><span class="cx"> NSString *WKSpeechSynthesisGetDefaultVoiceIdentifierForLocale(NSLocale*);
</span><ins>+#endif
</ins><span class="cx">     
</span><span class="cx"> BOOL WKShouldBlockPlugin(NSString *bundleIdentifier, NSString *bundleVersionString);
</span><span class="cx"> BOOL WKIsPluginUpdateAvailable(NSString *bundleIdentifier);
</span><span class="lines">@@ -117,6 +132,7 @@
</span><span class="cx">     void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *),
</span><span class="cx">     void *context);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> void WKDrawCapsLockIndicator(CGContextRef, CGRect);
</span><span class="cx"> 
</span><span class="cx"> void WKDrawFocusRing(CGContextRef context, CGColorRef color, int radius);
</span><span class="lines">@@ -142,6 +158,8 @@
</span><span class="cx"> NSFont *WKGetFontInLanguageForRange(NSFont *font, NSString *string, NSRange range);
</span><span class="cx"> NSFont *WKGetFontInLanguageForCharacter(NSFont *font, UniChar ch);
</span><span class="cx"> void WKSetCGFontRenderingMode(CGContextRef cgContext, NSFont *font, BOOL shouldSubpixelQuantize);
</span><ins>+#endif
+
</ins><span class="cx"> BOOL WKCGContextGetShouldSmoothFonts(CGContextRef cgContext);
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -169,8 +187,10 @@
</span><span class="cx"> 
</span><span class="cx"> CGSize WKCTRunGetInitialAdvance(CTRunRef);
</span><span class="cx"> 
</span><ins>+#if !TARGET_IPHONE_SIMULATOR
</ins><span class="cx"> CGContextRef WKIOSurfaceContextCreate(IOSurfaceRef, unsigned width, unsigned height, CGColorSpaceRef);
</span><span class="cx"> CGImageRef WKIOSurfaceContextCreateImage(CGContextRef context);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> typedef enum {
</span><span class="cx">     WKPatternTilingNoDistortion,
</span><span class="lines">@@ -185,6 +205,7 @@
</span><span class="cx"> bool WKCGContextDrawsWithCorrectShadowOffsets(CGContextRef);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> #ifndef __LP64__
</span><span class="cx"> NSEvent *WKCreateNSEventWithCarbonEvent(EventRef eventRef);
</span><span class="cx"> NSEvent *WKCreateNSEventWithCarbonMouseMoveEvent(EventRef inEvent, NSWindow *window);
</span><span class="lines">@@ -206,11 +227,13 @@
</span><span class="cx"> } WKThemeScrollBarArrowStyle;
</span><span class="cx"> 
</span><span class="cx"> OSStatus WKThemeDrawTrack(const HIThemeTrackDrawInfo* inDrawInfo, CGContextRef inContext, int inArrowStyle);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> BOOL WKCGContextIsBitmapContext(CGContextRef context);
</span><span class="cx"> bool WKCGContextIsPDFContext(CGContextRef context);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous);
</span><span class="cx"> 
</span><span class="cx"> BOOL WKAppVersionCheckLessThan(NSString *, int, double);
</span><span class="lines">@@ -237,6 +260,7 @@
</span><span class="cx"> void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync);
</span><span class="cx"> void WKQTMovieDisableComponent(uint32_t[5]);
</span><span class="cx"> NSURL *WKQTMovieResolvedURL(QTMovie* movie);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> CFStringRef WKCopyFoundationCacheDirectory(void);
</span><span class="cx"> 
</span><span class="lines">@@ -262,11 +286,14 @@
</span><span class="cx"> CFArrayRef WKCFURLRequestCopyHTTPRequestBodyParts(CFURLRequestRef);
</span><span class="cx"> void WKCFURLRequestSetHTTPRequestBodyParts(CFMutableURLRequestRef, CFArrayRef bodyParts);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> void WKSetVisibleApplicationName(CFStringRef);
</span><span class="cx"> void WKSetApplicationInformationItem(CFStringRef key, CFTypeRef value);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> CFURLRef WKCopyBundleURLForExecutableURL(CFURLRef);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> typedef enum {
</span><span class="cx">     WKMediaUIPartFullscreenButton   = 0,
</span><span class="cx">     WKMediaUIPartMuteButton,
</span><span class="lines">@@ -328,21 +355,26 @@
</span><span class="cx"> void WKQTClearMediaDownloadCache();
</span><span class="cx">     
</span><span class="cx"> mach_port_t WKInitializeRenderServer(void);
</span><del>-    
</del><ins>+#endif
+
</ins><span class="cx"> @class CALayer;
</span><span class="cx"> 
</span><span class="cx"> CALayer *WKMakeRenderLayer(uint32_t contextID);
</span><span class="cx">     
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> typedef struct __WKSoftwareCARendererRef *WKSoftwareCARendererRef;
</span><span class="cx"> 
</span><span class="cx"> WKSoftwareCARendererRef WKSoftwareCARendererCreate(uint32_t contextID);
</span><span class="cx"> void WKSoftwareCARendererDestroy(WKSoftwareCARendererRef);
</span><span class="cx"> void WKSoftwareCARendererRender(WKSoftwareCARendererRef, CGContextRef, CGRect);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> typedef struct __WKCAContextRef *WKCAContextRef;
</span><span class="cx"> 
</span><span class="cx"> WKCAContextRef WKCAContextMakeRemoteWithServerPort(mach_port_t port);
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> WKCAContextRef WKCAContextMakeRemoteForWindowServer(void);
</span><ins>+#endif
</ins><span class="cx"> void WKCAContextInvalidate(WKCAContextRef);
</span><span class="cx"> uint32_t WKCAContextGetContextId(WKCAContextRef);
</span><span class="cx"> void WKCAContextSetLayer(WKCAContextRef, CALayer *);
</span><span class="lines">@@ -358,6 +390,7 @@
</span><span class="cx"> void WKCARendererAddChangeNotificationObserver(CARenderer *, void (*callback)(void*), void* context);
</span><span class="cx"> void WKCARendererRemoveChangeNotificationObserver(CARenderer *, void (*callback)(void*), void* context);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> typedef struct __WKWindowBounceAnimationContext *WKWindowBounceAnimationContextRef;
</span><span class="cx"> 
</span><span class="cx"> WKWindowBounceAnimationContextRef WKWindowBounceAnimationContextCreate(NSWindow *window);
</span><span class="lines">@@ -369,30 +402,34 @@
</span><span class="cx"> #if defined(__x86_64__)
</span><span class="cx"> #import &lt;mach/mig.h&gt;
</span><span class="cx"> CFRunLoopSourceRef WKCreateMIGServerSource(mig_subsystem_t subsystem, mach_port_t serverPort);
</span><del>-#endif // defined(__x86_64__)
</del><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> NSUInteger WKGetInputPanelWindowStyle(void);
</span><span class="cx"> UInt8 WKGetNSEventKeyChar(NSEvent *);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> @class CAPropertyAnimation;
</span><span class="cx"> void WKSetCAAnimationValueFunction(CAPropertyAnimation*, NSString* function);
</span><span class="cx"> 
</span><span class="cx"> unsigned WKInitializeMaximumHTTPConnectionCountPerHost(unsigned preferredConnectionCount);
</span><del>-int WKGetHTTPPipeliningPriority(CFURLRequestRef);
-void WKSetHTTPPipeliningMaximumPriority(int maximumPriority);
-void WKSetHTTPPipeliningPriority(CFURLRequestRef, int priority);
-void WKSetHTTPPipeliningMinimumFastLanePriority(int priority);
</del><ins>+int WKGetHTTPRequestPriority(CFURLRequestRef);
+void WKSetHTTPRequestMaximumPriority(int maximumPriority);
+void WKSetHTTPRequestPriority(CFURLRequestRef, int priority);
+void WKSetHTTPRequestMinimumFastLanePriority(int priority);
+void WKHTTPRequestEnablePipelining(CFURLRequestRef);
</ins><span class="cx"> 
</span><span class="cx"> void WKSetCONNECTProxyForStream(CFReadStreamRef, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><span class="cx"> void WKSetCONNECTProxyAuthorizationForStream(CFReadStreamRef, CFStringRef proxyAuthorizationString);
</span><span class="cx"> CFHTTPMessageRef WKCopyCONNECTProxyResponse(CFReadStreamRef, CFURLRef responseURL, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> void WKWindowSetAlpha(NSWindow *window, float alphaValue);
</span><span class="cx"> void WKWindowSetScaledFrame(NSWindow *window, NSRect scaleFrame, NSRect nonScaledFrame);
</span><span class="cx"> 
</span><span class="cx"> void WKSyncSurfaceToView(NSView *view);
</span><span class="cx"> 
</span><span class="cx"> void WKEnableSettingCursorWhenInBackground(void);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> CFDictionaryRef WKNSURLRequestCreateSerializableRepresentation(NSURLRequest *request, CFTypeRef tokenNull);
</span><span class="cx"> NSURLRequest *WKNSURLRequestFromSerializableRepresentation(CFDictionaryRef representation, CFTypeRef tokenNull);
</span><span class="lines">@@ -400,7 +437,7 @@
</span><span class="cx"> CFDictionaryRef WKNSURLResponseCreateSerializableRepresentation(NSURLResponse *response, CFTypeRef tokenNull);
</span><span class="cx"> NSURLResponse *WKNSURLResponseFromSerializableRepresentation(CFDictionaryRef representation, CFTypeRef tokenNull);
</span><span class="cx"> 
</span><del>-#ifndef __LP64__
</del><ins>+#if !TARGET_OS_IPHONE &amp;&amp; !defined(__LP64__)
</ins><span class="cx"> ScriptCode WKGetScriptCodeFromCurrentKeyboardInputSource(void);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -415,6 +452,7 @@
</span><span class="cx"> 
</span><span class="cx"> CIFormat WKCIGetRGBA8Format(void);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> typedef enum {
</span><span class="cx">     WKSandboxExtensionTypeReadOnly,
</span><span class="cx">     WKSandboxExtensionTypeReadWrite,
</span><span class="lines">@@ -439,14 +477,19 @@
</span><span class="cx"> NSRange WKExtractWordDefinitionTokenRangeFromContextualString(NSString *contextString, NSRange range, NSDictionary **options);
</span><span class="cx"> void WKShowWordDefinitionWindow(NSAttributedString *term, NSPoint screenPoint, NSDictionary *options);
</span><span class="cx"> void WKHideWordDefinitionWindow(void);
</span><ins>+#endif
</ins><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> CFStringRef WKCopyDefaultSearchProviderDisplayName(void);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> void WKSetCrashReportApplicationSpecificInformation(CFStringRef);
</span><span class="cx"> 
</span><span class="cx"> NSURL* WKAVAssetResolvedURL(AVAsset*);
</span><span class="cx"> 
</span><ins>+#if !TARGET_OS_IPHONE
</ins><span class="cx"> NSCursor *WKCursor(const char *name);
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> dispatch_source_t WKCreateVMPressureDispatchOnMainQueue(void);
</span><span class="cx"> #if MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
</span><span class="lines">@@ -466,15 +509,6 @@
</span><span class="cx"> void WKCFURLRequestAllowAllPostCaching(CFURLRequestRef);
</span><span class="cx"> 
</span><span class="cx"> #if MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080
</span><del>-@class WebFilterEvaluator;
-
-BOOL WKFilterIsManagedSession(void);
-WebFilterEvaluator *WKFilterCreateInstance(NSURLResponse *);
-BOOL WKFilterIsBuffering(WebFilterEvaluator *);
-BOOL WKFilterWasBlocked(WebFilterEvaluator *);
-NSData *WKFilterAddData(WebFilterEvaluator *, NSData *);
-NSData *WKFilterDataComplete(WebFilterEvaluator *);
-
</del><span class="cx"> CGFloat WKNSElasticDeltaForTimeDelta(CGFloat initialPosition, CGFloat initialVelocity, CGFloat elapsedTime);
</span><span class="cx"> CGFloat WKNSElasticDeltaForReboundDelta(CGFloat delta);
</span><span class="cx"> CGFloat WKNSReboundDeltaForElasticDelta(CGFloat delta);
</span></span></pre></div>
<a id="trunkWebKitLibrarieslibWebKitSystemInterfaceLiona"></a>
<div class="binary"><h4>Modified: trunk/WebKitLibraries/libWebKitSystemInterfaceLion.a</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkWebKitLibrarieslibWebKitSystemInterfaceMavericksa"></a>
<div class="binary"><h4>Modified: trunk/WebKitLibraries/libWebKitSystemInterfaceMavericks.a</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkWebKitLibrarieslibWebKitSystemInterfaceMountainLiona"></a>
<div class="binary"><h4>Modified: trunk/WebKitLibraries/libWebKitSystemInterfaceMountainLion.a</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
</div>

</body>
</html>