Changeset 172927 in webkit


Ignore:
Timestamp:
Aug 25, 2014 11:04:39 AM (10 years ago)
Author:
Antti Koivisto
Message:

Remove load scheduling code from network process
https://bugs.webkit.org/show_bug.cgi?id=136199

Reviewed by Darin Adler.

Most platforms just flush resource loads directly to the networking layer by
making the parallel load count large. Also we always pass ResourceLoadPriorityHighest
to the scheduler so no actual scheduling happens. This is effectively dead code.

Keep basic support for serializing loads. This is only used for testing.

  • NetworkProcess/HostRecord.cpp: Removed.
  • NetworkProcess/HostRecord.h: Removed.
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::servePendingRequests):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics):

  • NetworkProcess/NetworkResourceLoadScheduler.cpp:

(WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount):
(WebKit::NetworkResourceLoadScheduler::loadsActiveCount):
(WebKit::NetworkResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebKit::NetworkResourceLoadScheduler::requestTimerFired): Deleted.
(WebKit::NetworkResourceLoadScheduler::hostForURL): Deleted.
(WebKit::NetworkResourceLoadScheduler::receivedRedirect): Deleted.
(WebKit::NetworkResourceLoadScheduler::servePendingRequests): Deleted.
(WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders): Deleted.
(WebKit::NetworkResourceLoadScheduler::scheduleRemoveLoader): Deleted.
(WebKit::NetworkResourceLoadScheduler::hostsPendingCount): Deleted.
(WebKit::NetworkResourceLoadScheduler::hostsActiveCount): Deleted.

  • NetworkProcess/NetworkResourceLoadScheduler.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::continueWillSendRequest):

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::isLoadingMainResource):
(WebKit::NetworkResourceLoader::setHostRecord): Deleted.
(WebKit::NetworkResourceLoader::hostRecord): Deleted.

  • NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:

(WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
(WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.

  • NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp:

(WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
(WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
2 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/CMakeLists.txt

    r172516 r172927  
    147147set(WebKit2_SOURCES
    148148    NetworkProcess/AsynchronousNetworkLoaderClient.cpp
    149     NetworkProcess/HostRecord.cpp
    150149    NetworkProcess/NetworkConnectionToWebProcess.cpp
    151150    NetworkProcess/NetworkProcess.cpp
  • trunk/Source/WebKit2/ChangeLog

    r172920 r172927  
     12014-08-25  Antti Koivisto  <antti@apple.com>
     2
     3        Remove load scheduling code from network process
     4        https://bugs.webkit.org/show_bug.cgi?id=136199
     5
     6        Reviewed by Darin Adler.
     7
     8        Most platforms just flush resource loads directly to the networking layer by
     9        making the parallel load count large. Also we always pass ResourceLoadPriorityHighest
     10        to the scheduler so no actual scheduling happens. This is effectively dead code.
     11
     12        Keep basic support for serializing loads. This is only used for testing.
     13
     14        * NetworkProcess/HostRecord.cpp: Removed.
     15        * NetworkProcess/HostRecord.h: Removed.
     16        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
     17        (WebKit::NetworkConnectionToWebProcess::servePendingRequests):
     18        * NetworkProcess/NetworkProcess.cpp:
     19        (WebKit::NetworkProcess::getNetworkProcessStatistics):
     20        * NetworkProcess/NetworkResourceLoadScheduler.cpp:
     21        (WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
     22        (WebKit::NetworkResourceLoadScheduler::scheduleLoader):
     23        (WebKit::NetworkResourceLoadScheduler::removeLoader):
     24        (WebKit::NetworkResourceLoadScheduler::loadsPendingCount):
     25        (WebKit::NetworkResourceLoadScheduler::loadsActiveCount):
     26        (WebKit::NetworkResourceLoadScheduler::scheduleServePendingRequests): Deleted.
     27        (WebKit::NetworkResourceLoadScheduler::requestTimerFired): Deleted.
     28        (WebKit::NetworkResourceLoadScheduler::hostForURL): Deleted.
     29        (WebKit::NetworkResourceLoadScheduler::receivedRedirect): Deleted.
     30        (WebKit::NetworkResourceLoadScheduler::servePendingRequests): Deleted.
     31        (WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders): Deleted.
     32        (WebKit::NetworkResourceLoadScheduler::scheduleRemoveLoader): Deleted.
     33        (WebKit::NetworkResourceLoadScheduler::hostsPendingCount): Deleted.
     34        (WebKit::NetworkResourceLoadScheduler::hostsActiveCount): Deleted.
     35        * NetworkProcess/NetworkResourceLoadScheduler.h:
     36        * NetworkProcess/NetworkResourceLoader.cpp:
     37        (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
     38        (WebKit::NetworkResourceLoader::cleanup):
     39        (WebKit::NetworkResourceLoader::continueWillSendRequest):
     40        * NetworkProcess/NetworkResourceLoader.h:
     41        (WebKit::NetworkResourceLoader::isLoadingMainResource):
     42        (WebKit::NetworkResourceLoader::setHostRecord): Deleted.
     43        (WebKit::NetworkResourceLoader::hostRecord): Deleted.
     44        * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
     45        (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
     46        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
     47        * NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp:
     48        (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
     49        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
     50        * WebKit2.xcodeproj/project.pbxproj:
     51
    1522014-08-25  Carlos Garcia Campos  <cgarcia@igalia.com>
    253
  • trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp

    r170774 r172927  
    146146}
    147147
    148 void NetworkConnectionToWebProcess::servePendingRequests(uint32_t resourceLoadPriority)
    149 {
    150     NetworkProcess::shared().networkResourceLoadScheduler().servePendingRequests(static_cast<ResourceLoadPriority>(resourceLoadPriority));
     148void NetworkConnectionToWebProcess::servePendingRequests(uint32_t)
     149{
    151150}
    152151
  • trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp

    r170100 r172927  
    259259    StatisticsData data;
    260260
    261     data.statisticsNumbers.set("HostsPendingCount", scheduler.hostsPendingCount());
    262     data.statisticsNumbers.set("HostsActiveCount", scheduler.hostsActiveCount());
    263261    data.statisticsNumbers.set("LoadsPendingCount", scheduler.loadsPendingCount());
    264262    data.statisticsNumbers.set("LoadsActiveCount", scheduler.loadsActiveCount());
  • trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp

    r164255 r172927  
    22#include "NetworkResourceLoadScheduler.h"
    33
    4 #include "HostRecord.h"
    54#include "Logging.h"
     5#include "NetworkConnectionToWebProcess.h"
    66#include "NetworkProcess.h"
    77#include "NetworkResourceLoadParameters.h"
     
    1616namespace WebKit {
    1717
    18 static const unsigned maxRequestsInFlightForNonHTTPProtocols = 20;
    19 
    2018NetworkResourceLoadScheduler::NetworkResourceLoadScheduler()
    21     : m_nonHTTPProtocolHost(HostRecord::create(String(), maxRequestsInFlightForNonHTTPProtocols))
    22     , m_requestTimer(this, &NetworkResourceLoadScheduler::requestTimerFired)
    23 
    2419{
    25     platformInitializeMaximumHTTPConnectionCountPerHost();
    26 }
    27 
    28 void NetworkResourceLoadScheduler::scheduleServePendingRequests()
    29 {
    30     if (!m_requestTimer.isActive())
    31         m_requestTimer.startOneShot(0);
    32 }
    33 
    34 void NetworkResourceLoadScheduler::requestTimerFired(WebCore::Timer<NetworkResourceLoadScheduler>*)
    35 {
    36     servePendingRequests();
     20    platformInitializeNetworkSettings();
    3721}
    3822
    3923void NetworkResourceLoadScheduler::scheduleLoader(PassRefPtr<NetworkResourceLoader> loader)
    4024{
    41     ResourceLoadPriority priority = loader->priority();
    42     const ResourceRequest& resourceRequest = loader->request();
    43        
    44     LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::scheduleLoader resource '%s'", resourceRequest.url().string().utf8().data());
     25    ASSERT(RunLoop::isMain());
    4526
    46     HostRecord* host = hostForURL(resourceRequest.url(), CreateIfNotFound);
    47     bool hadRequests = host->hasRequests();
    48     host->scheduleResourceLoader(loader);
     27    LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::scheduleLoader resource '%s'", loader->request().url().string().utf8().data());
    4928
    50     if (priority > ResourceLoadPriorityLow || !resourceRequest.url().protocolIsInHTTPFamily() || (priority == ResourceLoadPriorityLow && !hadRequests)) {
    51         // Try to request important resources immediately.
    52         host->servePendingRequests(priority);
     29    // This request might be from WebProcess we've lost our connection to.
     30    // If so we should just skip it.
     31    if (!loader->connectionToWebProcess())
     32        return;
     33
     34    if (loader->connectionToWebProcess()->isSerialLoadingEnabled() && !m_activeLoaders.isEmpty()) {
     35        m_pendingSerialLoaders.append(loader);
    5336        return;
    5437    }
    55    
    56     // Handle asynchronously so early low priority requests don't get scheduled before later high priority ones.
    57     scheduleServePendingRequests();
    58 }
     38    m_activeLoaders.add(loader.get());
    5939
    60 HostRecord* NetworkResourceLoadScheduler::hostForURL(const WebCore::URL& url, CreateHostPolicy createHostPolicy)
    61 {
    62     if (!url.protocolIsInHTTPFamily())
    63         return m_nonHTTPProtocolHost.get();
    64 
    65     m_hosts.checkConsistency();
    66     String hostName = url.host();
    67     HostRecord* host = m_hosts.get(hostName);
    68     if (!host && createHostPolicy == CreateIfNotFound) {
    69         RefPtr<HostRecord> newHost = HostRecord::create(hostName, m_maxRequestsInFlightPerHost);
    70         host = newHost.get();
    71         m_hosts.add(hostName, newHost.release());
    72     }
    73    
    74     return host;
     40    loader->start();
    7541}
    7642
     
    7844{
    7945    ASSERT(RunLoop::isMain());
    80     ASSERT(loader);
    8146
    82     LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::removeLoadIdentifier removing loader %s", loader->request().url().string().utf8().data());
     47    LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::removeLoader resource '%s'", loader->request().url().string().utf8().data());
    8348
    84     HostRecord* host = loader->hostRecord();
    85    
    86     // Due to a race condition the WebProcess might have messaged the NetworkProcess to remove this identifier
    87     // after the NetworkProcess has already removed it internally.
    88     // In this situation we might not have a HostRecord to clean up.
    89     if (host)
    90         host->removeLoader(loader);
     49    m_activeLoaders.remove(loader);
    9150
    92     scheduleServePendingRequests();
    93 }
    94 
    95 void NetworkResourceLoadScheduler::receivedRedirect(NetworkResourceLoader* loader, const WebCore::URL& redirectURL)
    96 {
    97     ASSERT(RunLoop::isMain());
    98     LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::receivedRedirect loader originally for '%s' redirected to '%s'", loader->request().url().string().utf8().data(), redirectURL.string().utf8().data());
    99 
    100     HostRecord* oldHost = loader->hostRecord();
    101 
    102     // The load may have been cancelled while the message was in flight from network thread to main thread.
    103     if (!oldHost)
    104         return;
    105 
    106     HostRecord* newHost = hostForURL(redirectURL, CreateIfNotFound);
    107    
    108     if (oldHost->name() == newHost->name())
    109         return;
    110 
    111     oldHost->removeLoader(loader);
    112     newHost->addLoaderInProgress(loader);
    113 }
    114 
    115 void NetworkResourceLoadScheduler::servePendingRequests(ResourceLoadPriority minimumPriority)
    116 {
    117     LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::servePendingRequests Serving requests for up to %i hosts with minimum priority %i", m_hosts.size(), minimumPriority);
    118 
    119     m_requestTimer.stop();
    120    
    121     m_nonHTTPProtocolHost->servePendingRequests(minimumPriority);
    122 
    123     m_hosts.checkConsistency();
    124     Vector<RefPtr<HostRecord>> hostsToServe;
    125     copyValuesToVector(m_hosts, hostsToServe);
    126 
    127     size_t size = hostsToServe.size();
    128     for (size_t i = 0; i < size; ++i) {
    129         HostRecord* host = hostsToServe[i].get();
    130         if (host->hasRequests())
    131             host->servePendingRequests(minimumPriority);
    132         else
    133             m_hosts.remove(host->name());
    134     }
    135 }
    136 
    137 static bool removeScheduledLoadersCalled = false;
    138 
    139 void NetworkResourceLoadScheduler::removeScheduledLoaders(void* context)
    140 {
    141     ASSERT(RunLoop::isMain());
    142     ASSERT(removeScheduledLoadersCalled);
    143 
    144     NetworkResourceLoadScheduler* scheduler = static_cast<NetworkResourceLoadScheduler*>(context);
    145     scheduler->removeScheduledLoaders();
    146 }
    147 
    148 void NetworkResourceLoadScheduler::removeScheduledLoaders()
    149 {
    150     Vector<RefPtr<NetworkResourceLoader>> loadersToRemove;
    151     {
    152         MutexLocker locker(m_loadersToRemoveMutex);
    153         loadersToRemove = m_loadersToRemove;
    154         m_loadersToRemove.clear();
    155         removeScheduledLoadersCalled = false;
    156     }
    157    
    158     for (size_t i = 0; i < loadersToRemove.size(); ++i)
    159         removeLoader(loadersToRemove[i].get());
    160 }
    161 
    162 void NetworkResourceLoadScheduler::scheduleRemoveLoader(NetworkResourceLoader* loader)
    163 {
    164     MutexLocker locker(m_loadersToRemoveMutex);
    165    
    166     m_loadersToRemove.append(loader);
    167    
    168     if (!removeScheduledLoadersCalled) {
    169         removeScheduledLoadersCalled = true;
    170         callOnMainThread(NetworkResourceLoadScheduler::removeScheduledLoaders, this);
    171     }
    172 }
    173 
    174 uint64_t NetworkResourceLoadScheduler::hostsPendingCount() const
    175 {
    176     uint64_t count = m_nonHTTPProtocolHost->pendingRequestCount() ? 1 : 0;
    177 
    178     HostMap::const_iterator end = m_hosts.end();
    179     for (HostMap::const_iterator i = m_hosts.begin(); i != end; ++i) {
    180         if (i->value->pendingRequestCount())
    181             ++count;
    182     }
    183 
    184     return count;
     51    while (!m_pendingSerialLoaders.isEmpty() && m_activeLoaders.isEmpty())
     52        scheduleLoader(m_pendingSerialLoaders.takeLast());
    18553}
    18654
    18755uint64_t NetworkResourceLoadScheduler::loadsPendingCount() const
    18856{
    189     uint64_t count = m_nonHTTPProtocolHost->pendingRequestCount();
    190 
    191     HostMap::const_iterator end = m_hosts.end();
    192     for (HostMap::const_iterator i = m_hosts.begin(); i != end; ++i)
    193         count += i->value->pendingRequestCount();
    194 
    195     return count;
    196 }
    197 
    198 uint64_t NetworkResourceLoadScheduler::hostsActiveCount() const
    199 {
    200     uint64_t count = 0;
    201 
    202     if (m_nonHTTPProtocolHost->activeLoadCount())
    203         count = 1;
    204 
    205     HostMap::const_iterator end = m_hosts.end();
    206     for (HostMap::const_iterator i = m_hosts.begin(); i != end; ++i) {
    207         if (i->value->activeLoadCount())
    208             ++count;
    209     }
    210 
    211     return count;
     57    return m_pendingSerialLoaders.size();
    21258}
    21359
    21460uint64_t NetworkResourceLoadScheduler::loadsActiveCount() const
    21561{
    216     uint64_t count = m_nonHTTPProtocolHost->activeLoadCount();
    217 
    218     HostMap::const_iterator end = m_hosts.end();
    219     for (HostMap::const_iterator i = m_hosts.begin(); i != end; ++i)
    220         count += i->value->activeLoadCount();
    221 
    222     return count;
     62    return m_activeLoaders.size();
    22363}
    22464
  • trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h

    r156550 r172927  
    2727#define NetworkResourceLoadScheduler_h
    2828
    29 #include <WebCore/ResourceLoadPriority.h>
    3029#include <WebCore/Timer.h>
    31 #include <wtf/HashMap.h>
    3230#include <wtf/HashSet.h>
    3331#include <wtf/text/StringHash.h>
     
    3533#if ENABLE(NETWORK_PROCESS)
    3634
    37 namespace WebCore {
    38 class URL;
    39 }
    40 
    4135namespace WebKit {
    4236
    43 class HostRecord;
    4437class NetworkResourceLoader;
    4538
     
    5043    NetworkResourceLoadScheduler();
    5144   
    52     // Adds the request to the queue for its host.
    5345    void scheduleLoader(PassRefPtr<NetworkResourceLoader>);
    54 
    55     // Called by the WebProcess when a ResourceLoader is being cleaned up.
    5646    void removeLoader(NetworkResourceLoader*);
    5747
    58     // Called within the NetworkProcess on a background thread when a resource load has finished.
    59     void scheduleRemoveLoader(NetworkResourceLoader*);
    60 
    61     void receivedRedirect(NetworkResourceLoader*, const WebCore::URL& redirectURL);
    62     void servePendingRequests(WebCore::ResourceLoadPriority = WebCore::ResourceLoadPriorityVeryLow);
    63 
    6448    // For NetworkProcess statistics reporting.
    65     uint64_t hostsPendingCount() const;
    6649    uint64_t loadsPendingCount() const;
    67     uint64_t hostsActiveCount() const;
    6850    uint64_t loadsActiveCount() const;
    6951
    7052private:
    71     enum CreateHostPolicy {
    72         CreateIfNotFound,
    73         FindOnly
    74     };
    75    
    76     HostRecord* hostForURL(const WebCore::URL&, CreateHostPolicy = FindOnly);
    77    
    78     void scheduleServePendingRequests();
    79     void requestTimerFired(WebCore::Timer<NetworkResourceLoadScheduler>*);
     53    static void platformInitializeNetworkSettings();
    8054
    81     void platformInitializeMaximumHTTPConnectionCountPerHost();
    82 
    83     static void removeScheduledLoaders(void* context);
    84     void removeScheduledLoaders();
    85 
    86     typedef HashMap<String, RefPtr<HostRecord>, StringHash> HostMap;
    87     HostMap m_hosts;
    88 
    89     typedef HashSet<RefPtr<NetworkResourceLoader>> NetworkResourceLoaderSet;
    90     NetworkResourceLoaderSet m_loaders;
    91 
    92     RefPtr<HostRecord> m_nonHTTPProtocolHost;
    93 
    94     bool m_isSerialLoadingEnabled;
    95 
    96     WebCore::Timer<NetworkResourceLoadScheduler> m_requestTimer;
    97    
    98     Mutex m_loadersToRemoveMutex;
    99     Vector<RefPtr<NetworkResourceLoader>> m_loadersToRemove;
    100 
    101     unsigned m_maxRequestsInFlightPerHost;
     55    HashSet<RefPtr<NetworkResourceLoader>> m_activeLoaders;
     56    Vector<RefPtr<NetworkResourceLoader>> m_pendingSerialLoaders;
    10257};
    10358
  • trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp

    r171743 r172927  
    114114    ASSERT(RunLoop::isMain());
    115115    ASSERT(!m_handle);
    116     ASSERT(!m_hostRecord);
    117116}
    118117
     
    162161
    163162    // Tell the scheduler about this finished loader soon so it can start more network requests.
    164     NetworkProcess::shared().networkResourceLoadScheduler().scheduleRemoveLoader(this);
     163    NetworkProcess::shared().networkResourceLoadScheduler().removeLoader(this);
    165164
    166165    if (m_handle) {
     
    270269#endif
    271270
    272     RunLoop::main().dispatch(bind(&NetworkResourceLoadScheduler::receivedRedirect, &NetworkProcess::shared().networkResourceLoadScheduler(), this, m_suggestedRequestForWillSendRequest.url()));
    273 
    274271    m_request = m_suggestedRequestForWillSendRequest;
    275272    m_suggestedRequestForWillSendRequest = ResourceRequest();
  • trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h

    r170928 r172927  
    2929#if ENABLE(NETWORK_PROCESS)
    3030
    31 #include "HostRecord.h"
    3231#include "MessageSender.h"
    3332#include "NetworkConnectionToWebProcessMessages.h"
     33#include "NetworkResourceLoadParameters.h"
    3434#include "ShareableResource.h"
    3535#include <WebCore/ResourceHandleClient.h>
     
    130130    bool isSynchronous() const;
    131131    bool isLoadingMainResource() const { return m_isLoadingMainResource; }
    132    
    133     void setHostRecord(HostRecord* hostRecord) { ASSERT(RunLoop::isMain()); m_hostRecord = hostRecord; }
    134     HostRecord* hostRecord() const { ASSERT(RunLoop::isMain()); return m_hostRecord.get(); }
    135132
    136133    template<typename T>
     
    198195    RefPtr<NetworkConnectionToWebProcess> m_connection;
    199196   
    200     RefPtr<HostRecord> m_hostRecord;
    201197    RefPtr<WebCore::SharedBuffer> m_bufferedData;
    202198};
  • trunk/Source/WebKit2/NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm

    r170503 r172927  
    3838namespace WebKit {
    3939
    40 void NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost()
     40void NetworkResourceLoadScheduler::platformInitializeNetworkSettings()
    4141{
    4242    static const unsigned preferredConnectionCount = 6;
    43     static const unsigned unlimitedRequestCount = 10000;
    4443
    45     unsigned maximumHTTPConnectionCountPerHost = WKInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
     44    WKInitializeMaximumHTTPConnectionCountPerHost(preferredConnectionCount);
    4645
    4746    Boolean keyExistsAndHasValidFormat = false;
     
    5352        WKSetHTTPRequestMaximumPriority(toPlatformRequestPriority(ResourceLoadPriorityHighest));
    5453        WKSetHTTPRequestMinimumFastLanePriority(toPlatformRequestPriority(ResourceLoadPriorityMedium));
    55         m_maxRequestsInFlightPerHost = unlimitedRequestCount;
    56     } else {
    57         // Use WebKit scheduler when we can't use request priorities with CFNetwork.
    58         m_maxRequestsInFlightPerHost = maximumHTTPConnectionCountPerHost;
    5954    }
    6055}
  • trunk/Source/WebKit2/NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp

    r157254 r172927  
    3232namespace WebKit {
    3333
    34 void NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost()
     34void NetworkResourceLoadScheduler::platformInitializeNetworkSettings()
    3535{
    36     // Soup has its own queue control; it wants to have all requests given to
    37     // it, so that it is able to look ahead, and schedule them in a good way.
    38     // See the comment in ResourceRequestSoup.cpp
    39     static const unsigned unlimitedConnectionCount = 10000;
    40 
    41     // FIXME: Take advantage of Web-platform specific knowledge that can help
    42     // prioritization better than libsoup alone can do.
    43     // See https://bugs.webkit.org/show_bug.cgi?id=110115#c13
    44     m_maxRequestsInFlightPerHost = unlimitedConnectionCount;
    4536}
    4637
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r172691 r172927  
    833833                512A9769180E09B80039A149 /* DatabaseProcessProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 512A9767180E09B80039A149 /* DatabaseProcessProxyMessageReceiver.cpp */; };
    834834                512A976A180E09B80039A149 /* DatabaseProcessProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 512A9768180E09B80039A149 /* DatabaseProcessProxyMessages.h */; };
    835                 512C06881638F67E00ABB911 /* HostRecord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 512C06861638F67E00ABB911 /* HostRecord.cpp */; };
    836                 512C06891638F67E00ABB911 /* HostRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 512C06871638F67E00ABB911 /* HostRecord.h */; };
    837835                512C069016390E6900ABB911 /* NetworkResourceLoadSchedulerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 512C068F16390E6900ABB911 /* NetworkResourceLoadSchedulerMac.mm */; };
    838836                512E34E4130B4D0500ABD19A /* WKApplicationCacheManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517A33B3130B308C00F80CB5 /* WKApplicationCacheManager.cpp */; };
     
    28622860                512A9767180E09B80039A149 /* DatabaseProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseProcessProxyMessageReceiver.cpp; sourceTree = "<group>"; };
    28632861                512A9768180E09B80039A149 /* DatabaseProcessProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseProcessProxyMessages.h; sourceTree = "<group>"; };
    2864                 512C06861638F67E00ABB911 /* HostRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HostRecord.cpp; path = NetworkProcess/HostRecord.cpp; sourceTree = "<group>"; };
    2865                 512C06871638F67E00ABB911 /* HostRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HostRecord.h; path = NetworkProcess/HostRecord.h; sourceTree = "<group>"; };
    28662862                512C068F16390E6900ABB911 /* NetworkResourceLoadSchedulerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkResourceLoadSchedulerMac.mm; sourceTree = "<group>"; };
    28672863                512E3520130B550100ABD19A /* WebApplicationCacheManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebApplicationCacheManagerProxy.cpp; sourceTree = "<group>"; };
     
    51835179                                51FCB18017BBFE0300394CD8 /* AsynchronousNetworkLoaderClient.cpp */,
    51845180                                51FCB18117BBFE0300394CD8 /* AsynchronousNetworkLoaderClient.h */,
    5185                                 512C06861638F67E00ABB911 /* HostRecord.cpp */,
    5186                                 512C06871638F67E00ABB911 /* HostRecord.h */,
    51875181                                513A16491630A9BF005D7D22 /* NetworkConnectionToWebProcess.cpp */,
    51885182                                513A164A1630A9BF005D7D22 /* NetworkConnectionToWebProcess.h */,
     
    71757169                                BC06F43A12DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h in Headers */,
    71767170                                C0CE72AD1247E78D00BC0EC4 /* HandleMessage.h in Headers */,
    7177                                 512C06891638F67E00ABB911 /* HostRecord.h in Headers */,
    71787171                                37F90DE31376560E0051CF68 /* HTTPCookieAcceptPolicy.h in Headers */,
    71797172                                BCCF6B2512C93E7A008F9C35 /* ImageOptions.h in Headers */,
     
    88458838                                BC06F44B12DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.cpp in Sources */,
    88468839                                BC06F43B12DBCCFB002D78DE /* GeolocationPermissionRequestProxy.cpp in Sources */,
    8847                                 512C06881638F67E00ABB911 /* HostRecord.cpp in Sources */,
    88488840                                BC64696F11DBE603006455B0 /* APIArray.cpp in Sources */,
    88498841                                BCBCB0CD1215E33A00DE59CA /* ImmutableDictionary.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.