Changeset 140016 in webkit


Ignore:
Timestamp:
Jan 17, 2013, 11:47:00 AM (13 years ago)
Author:
Lucas Forschler
Message:

Merged r139935. <rdar://problem/12951765>

Location:
tags/Safari-537.26.1/Source
Files:
22 edited
3 copied

Legend:

Unmodified
Added
Removed
  • tags/Safari-537.26.1/Source/WebCore/ChangeLog

    r140008 r140016  
     12013-01-17  Lucas Forschler  <lforschler@apple.com>
     2
     3        Merge r139935
     4
     5    2013-01-16  Brady Eidson  <beidson@apple.com>
     6
     7            Synchronous XMLHTTPRequests need to go to the NetworkProcess.
     8            <rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826
     9
     10            Reviewed by Sam Weinig and Alexey Proskuryakov.
     11
     12            No new tests (No changes to any config that is currently tested)
     13
     14            * loader/FrameLoader.cpp:
     15            (WebCore::FrameLoader::loadResourceSynchronously): Consult the LoaderStrategy when strategies are
     16              being used.
     17
     18            * loader/LoaderStrategy.cpp:
     19            (WebCore::LoaderStrategy::loadResourceSynchronously): Defaults to using ResourceHandle directly.
     20            * loader/LoaderStrategy.h:
     21
     22            Break out the StoredCredentials enum to a new header:
     23            * platform/network/ResourceHandle.h:
     24            * platform/network/ResourceHandleTypes.h:
     25            * GNUmakefile.list.am:
     26            * Target.pri:
     27            * WebCore.exp.in:
     28            * WebCore.vcproj/WebCore.vcproj:
     29            * WebCore.xcodeproj/project.pbxproj:
     30
    1312013-01-17  Lucas Forschler  <lforschler@apple.com>
    232
  • tags/Safari-537.26.1/Source/WebCore/GNUmakefile.list.am

    r139611 r140016  
    58065806        Source/WebCore/platform/network/ResourceHandle.h \
    58075807        Source/WebCore/platform/network/ResourceHandleInternal.h \
     5808        Source/WebCore/platform/network/ResourceHandleTypes.h \
    58085809        Source/WebCore/platform/network/ResourceLoadInfo.h \
    58095810        Source/WebCore/platform/network/ResourceLoadPriority.h \
  • tags/Safari-537.26.1/Source/WebCore/Target.pri

    r139533 r140016  
    23032303    platform/network/ResourceErrorBase.h \
    23042304    platform/network/ResourceHandle.h \
     2305    platform/network/ResourceHandleTypes.h \
    23052306    platform/network/ResourceLoadInfo.h \
    23062307    platform/network/ResourceLoadPriority.h \
  • tags/Safari-537.26.1/Source/WebCore/WebCore.exp.in

    r140000 r140016  
    285285__ZN7WebCore14FrameSelectionC1EPNS_5FrameE
    286286__ZN7WebCore14LoaderStrategy21resourceLoadSchedulerEv
     287__ZN7WebCore14LoaderStrategy25loadResourceSynchronouslyEPNS_17NetworkingContextERKNS_15ResourceRequestENS_17StoredCredentialsERNS_13ResourceErrorERNS_16ResourceResponseERN3WTF6VectorIcLm0EEE
    287288__ZN7WebCore14PluginDocument10pluginNodeEv
    288289__ZNK7WebCore5Frame25trackedRepaintRectsAsTextEv
     
    298299__ZN7WebCore14ResourceBufferD2Ev
    299300__ZN7WebCore14ResourceHandle20forceContentSniffingEv
     301__ZN7WebCore14ResourceHandle25loadResourceSynchronouslyEPNS_17NetworkingContextERKNS_15ResourceRequestENS_17StoredCredentialsERNS_13ResourceErrorERNS_16ResourceResponseERN3WTF6VectorIcLm0EEE
    300302__ZN7WebCore14ResourceHandle26synchronousLoadRunLoopModeEv
    301303__ZN7WebCore14ResourceHandle6createEPNS_17NetworkingContextERKNS_15ResourceRequestEPNS_20ResourceHandleClientEbb
  • tags/Safari-537.26.1/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r139533 r140016  
    3273832738                                </File>
    3273932739                                <File
     32740                                        RelativePath="..\platform\network\ResourceHandleTypes.h"
     32741                                        >
     32742                                </File>
     32743                                <File
    3274032744                                        RelativePath="..\platform\network\ResourceHandleClient.h"
    3274132745                                        >
  • tags/Safari-537.26.1/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r139533 r140016  
    16581658                51E3F9C70DA059DC00250911 /* Storage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E3F9C50DA059DC00250911 /* Storage.cpp */; };
    16591659                51E3F9D60DA05E1D00250911 /* JSStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E3F9D40DA05E1D00250911 /* JSStorage.cpp */; };
     1660                51E4143416A6596300C633C7 /* ResourceHandleTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E4143216A6595100C633C7 /* ResourceHandleTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
    16601661                51E6821016387302003BBF3C /* LoaderStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E6820F16387302003BBF3C /* LoaderStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
    16611662                51EC92650CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */; };
     
    89858986                51E3F9D40DA05E1D00250911 /* JSStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSStorage.cpp; sourceTree = "<group>"; };
    89868987                51E3F9D50DA05E1D00250911 /* JSStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSStorage.h; sourceTree = "<group>"; };
     8988                51E4143216A6595100C633C7 /* ResourceHandleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandleTypes.h; sourceTree = "<group>"; };
    89878989                51E6820F16387302003BBF3C /* LoaderStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoaderStrategy.h; sourceTree = "<group>"; };
    89888990                51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementErrorCallback.cpp; sourceTree = "<group>"; };
     
    1592715929                                514C76650CE923A1007EF3CD /* ResourceHandleClient.h */,
    1592815930                                514C76660CE923A1007EF3CD /* ResourceHandleInternal.h */,
     15931                                51E4143216A6595100C633C7 /* ResourceHandleTypes.h */,
    1592915932                                492863981253B8FC00F792D6 /* ResourceLoadInfo.h */,
    1593015933                                E4295FA312B0614E00D1ACE0 /* ResourceLoadPriority.h */,
     
    2610726110                                977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
    2610826111                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
     26112                                51E4143416A6596300C633C7 /* ResourceHandleTypes.h in Headers */,
    2610926113                        );
    2611026114                        runOnlyForDeploymentPostprocessing = 0;
  • tags/Safari-537.26.1/Source/WebCore/loader/FrameLoader.cpp

    r139589 r140016  
    7777#include "InspectorController.h"
    7878#include "InspectorInstrumentation.h"
     79#include "LoaderStrategy.h"
    7980#include "Logging.h"
    8081#include "MIMETypeRegistry.h"
     
    8384#include "PageCache.h"
    8485#include "PageTransitionEvent.h"
     86#include "PlatformStrategies.h"
    8587#include "PluginData.h"
    8688#include "PluginDatabase.h"
     
    25822584       
    25832585        if (!documentLoader()->applicationCacheHost()->maybeLoadSynchronously(newRequest, error, response, data)) {
     2586#if USE(PLATFORM_STRATEGIES)
     2587            platformStrategies()->loaderStrategy()->loadResourceSynchronously(networkingContext(), newRequest, storedCredentials, error, response, data);
     2588#else
    25842589            ResourceHandle::loadResourceSynchronously(networkingContext(), newRequest, storedCredentials, error, response, data);
     2590#endif
    25852591            documentLoader()->applicationCacheHost()->maybeLoadFallbackSynchronously(newRequest, error, response, data);
    25862592        }
  • tags/Safari-537.26.1/Source/WebCore/loader/LoaderStrategy.cpp

    r132501 r140016  
    2727#include "LoaderStrategy.h"
    2828
     29#include "ResourceHandle.h"
    2930#include "ResourceLoadScheduler.h"
    3031
     
    3839}
    3940
     41void LoaderStrategy::loadResourceSynchronously(NetworkingContext* context, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data)
     42{
     43    ResourceHandle::loadResourceSynchronously(context, request, storedCredentials, error, response, data);
     44}
     45
    4046} // namespace WebCore
    4147
  • tags/Safari-537.26.1/Source/WebCore/loader/LoaderStrategy.h

    r132501 r140016  
    2929#if USE(PLATFORM_STRATEGIES)
    3030
     31#include "ResourceHandleTypes.h"
     32#include <wtf/Vector.h>
     33
    3134namespace WebCore {
    3235
     36class NetworkingContext;
     37class ResourceError;
    3338class ResourceLoadScheduler;
     39class ResourceRequest;
     40class ResourceResponse;
    3441
    3542class LoaderStrategy {
    3643public:
    3744    virtual ResourceLoadScheduler* resourceLoadScheduler();
     45
     46    virtual void loadResourceSynchronously(NetworkingContext*, const ResourceRequest&, StoredCredentials, ResourceError&, ResourceResponse&, Vector<char>& data);
    3847
    3948protected:
  • tags/Safari-537.26.1/Source/WebCore/platform/network/ResourceHandle.h

    r138962 r140016  
    2929#include "AuthenticationClient.h"
    3030#include "HTTPHeaderMap.h"
     31#include "ResourceHandleTypes.h"
    3132#include <wtf/OwnPtr.h>
    3233#include <wtf/RefCounted.h>
     
    8990class SharedBuffer;
    9091
    91 enum StoredCredentials {
    92     AllowStoredCredentials,
    93     DoNotAllowStoredCredentials
    94 };
    95 
    9692template <typename T> class Timer;
    9793
  • tags/Safari-537.26.1/Source/WebKit2/ChangeLog

    r140013 r140016  
     12013-01-17  Lucas Forschler  <lforschler@apple.com>
     2
     3        Merge r139935
     4
     5    2013-01-16  Brady Eidson  <beidson@apple.com>
     6
     7            Synchronous XMLHTTPRequests need to go to the NetworkProcess.
     8            <rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826
     9
     10            Reviewed by Sam Weinig and Alexey Proskuryakov.
     11
     12            * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
     13            (WebKit::WebPlatformStrategies::loadResourceSynchronously): Entry point for WebCore to get
     14              synchronous requests to the NetworkProcess.
     15            * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
     16
     17            * NetworkProcess/NetworkConnectionToWebProcess.cpp:
     18            (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): Create a SyncNetworkResourceLoader
     19              and schedule it.
     20            * NetworkProcess/NetworkConnectionToWebProcess.h:
     21            * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
     22
     23            * NetworkProcess/NetworkResourceLoadScheduler.cpp:
     24            (WebKit::NetworkResourceLoadScheduler::scheduleSyncNetworkResourceLoader):
     25            (WebKit::NetworkResourceLoadScheduler::servePendingRequestsForHost): Serve synchronous loaders
     26              before async loaders.
     27            * NetworkProcess/NetworkResourceLoadScheduler.h:
     28
     29            A class that encapsulates a synchronous load request and the CoreIPC reply to be made once it is complete:
     30            * NetworkProcess/SyncNetworkResourceLoader.cpp: Added.
     31            (WebKit::SyncNetworkResourceLoader::SyncNetworkResourceLoader):
     32            (WebKit::SyncNetworkResourceLoader::start):
     33            * NetworkProcess/SyncNetworkResourceLoader.h: Copied from Source/WebKit2/NetworkProcess/HostRecord.h.
     34            (WebKit::SyncNetworkResourceLoader::create):
     35            (WebKit::SyncNetworkResourceLoader::setIdentifier):
     36            (WebKit::SyncNetworkResourceLoader::identifier):
     37            (WebKit::SyncNetworkResourceLoader::loadParameters):
     38
     39            Add a second queue of sync loaders:
     40            * NetworkProcess/HostRecord.h:
     41            (WebKit::HostRecord::syncLoadersPending):
     42
     43            Add comments to explicitly spell out the current reliance on some messages that are currently synchronous:
     44            * NetworkProcess/NetworkResourceLoader.cpp:
     45            (WebKit::NetworkResourceLoader::willSendRequest):
     46            (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpace):
     47
     48            * WebKit2.xcodeproj/project.pbxproj:
     49
    1502013-01-17  Lucas Forschler  <lforschler@apple.com>
    251
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/HostRecord.cpp

    r134481 r140016  
    3333#include "NetworkResourceLoadScheduler.h"
    3434#include "NetworkResourceLoader.h"
     35#include "SyncNetworkResourceLoader.h"
    3536
    3637#if ENABLE(NETWORK_PROCESS)
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/HostRecord.h

    r134481 r140016  
    3737
    3838class NetworkResourceLoader;
     39class SyncNetworkResourceLoader;
    3940typedef uint64_t ResourceLoadIdentifier;
    4041
     
    5556    LoaderQueue& loadersPending(WebCore::ResourceLoadPriority priority) { return m_loadersPending[priority]; }
    5657
     58    typedef Deque<RefPtr<SyncNetworkResourceLoader> > SyncLoaderQueue;
     59    SyncLoaderQueue& syncLoadersPending() { return m_syncLoadersPending; }
     60
    5761private:                   
    5862    LoaderQueue m_loadersPending[WebCore::ResourceLoadPriorityHighest + 1];
    5963    typedef HashSet<ResourceLoadIdentifier> ResourceLoadIdentifierSet;
    6064    ResourceLoadIdentifierSet m_resourceIdentifiersLoading;
     65   
     66    SyncLoaderQueue m_syncLoadersPending;
     67    HashSet<RefPtr<SyncNetworkResourceLoader> > m_syncLoadersLoading;
    6168
    6269    const String m_name;
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp

    r139516 r140016  
    3131#include "NetworkResourceLoader.h"
    3232#include "RemoteNetworkingContext.h"
     33#include "SyncNetworkResourceLoader.h"
    3334#include <WebCore/PlatformCookieJar.h>
    3435#include <WebCore/ResourceLoaderOptions.h>
     
    121122}
    122123
     124void NetworkConnectionToWebProcess::performSynchronousLoad(const NetworkResourceLoadParameters& loadParameters, PassRefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply> reply)
     125{
     126    NetworkProcess::shared().networkResourceLoadScheduler().scheduleSyncNetworkResourceLoader(SyncNetworkResourceLoader::create(loadParameters, reply));
     127}
     128
    123129void NetworkConnectionToWebProcess::addLoadInProgress(const KURL& url, ResourceLoadIdentifier& identifier)
    124130{
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h

    r139516 r140016  
    7777   
    7878    void scheduleResourceLoad(const NetworkResourceLoadParameters&, ResourceLoadIdentifier&);
     79    void performSynchronousLoad(const NetworkResourceLoadParameters&, PassRefPtr<Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply>);
     80
    7981    void addLoadInProgress(const WebCore::KURL&, ResourceLoadIdentifier&);
    8082    void removeLoadIdentifier(ResourceLoadIdentifier);
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in

    r138301 r140016  
    3030    // We might also have the NetworkProcess divvy up identifiers in blocks to each WebProcess beforehand.
    3131    ScheduleResourceLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (uint64_t resourceLoadIdentifier)
     32    PerformSynchronousLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (WebCore::ResourceError error, WebCore::ResourceResponse response, CoreIPC::DataReference data) Delayed
    3233    AddLoadInProgress(WebCore::KURL url) -> (uint64_t resourceLoadIdentifier)
    3334    RemoveLoadIdentifier(uint64_t resourceLoadIdentifier)
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp

    r139672 r140016  
    88#include "NetworkResourceLoadParameters.h"
    99#include "NetworkResourceLoader.h"
     10#include "SyncNetworkResourceLoader.h"
    1011#include <wtf/MainThread.h>
    1112#include <wtf/text/CString.h>
     
    6667    scheduleServePendingRequests();
    6768    return identifier;
     69}
     70
     71void NetworkResourceLoadScheduler::scheduleSyncNetworkResourceLoader(PassRefPtr<SyncNetworkResourceLoader> loader)
     72{
     73    // FIXME (NetworkProcess): Sync loaders need to get identifiers in a sane way.
     74    ResourceLoadIdentifier identifier = ++s_currentResourceLoadIdentifier;
     75    loader->setIdentifier(identifier);
     76
     77    const ResourceRequest& resourceRequest = loader->loadParameters().request();
     78
     79    LOG(NetworkScheduling, "(NetworkProcess) NetworkResourceLoadScheduler::scheduleSyncNetworkResourceLoader synchronous resource '%s'", resourceRequest.url().string().utf8().data());
     80
     81    HostRecord* host = hostForURL(resourceRequest.url(), CreateIfNotFound);
     82    bool hadRequests = host->hasRequests();
     83    host->syncLoadersPending().append(loader);
     84    m_identifiers.add(identifier, host);
     85   
     86    if (!hadRequests)
     87        servePendingRequestsForHost(host, ResourceLoadPriorityHighest);
     88
     89    scheduleServePendingRequests();
    6890}
    6991
     
    171193    LOG(NetworkScheduling, "NetworkResourceLoadScheduler::servePendingRequests Host name='%s'", host->name().utf8().data());
    172194
     195    // We serve synchronous requests before any other requests to improve responsiveness in any
     196    // WebProcess that is waiting on a synchronous load.
     197    HostRecord::SyncLoaderQueue& syncLoadersPending = host->syncLoadersPending();
     198    while (!syncLoadersPending.isEmpty()) {
     199        RefPtr<SyncNetworkResourceLoader> loader = syncLoadersPending.first();
     200
     201        // FIXME (NetworkProcess): How do we know this synchronous load isn't associated with a WebProcess
     202        // we've lost our connection to?
     203        bool shouldLimitRequests = !host->name().isNull();
     204        if (shouldLimitRequests && host->limitRequests(ResourceLoadPriorityHighest, false))
     205            return;
     206
     207        syncLoadersPending.removeFirst();
     208        host->addLoadInProgress(loader->identifier());
     209
     210        loader->start();
     211    }
     212   
    173213    for (int priority = ResourceLoadPriorityHighest; priority >= minimumPriority; --priority) {
    174214        HostRecord::LoaderQueue& loadersPending = host->loadersPending(ResourceLoadPriority(priority));
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h

    r139672 r140016  
    4040class NetworkResourceLoadParameters;
    4141class NetworkConnectionToWebProcess;
     42class SyncNetworkResourceLoader;
    4243typedef uint64_t ResourceLoadIdentifier;
    4344
     
    5051    // Adds the request to the queue for its host and create a unique identifier for it.
    5152    ResourceLoadIdentifier scheduleResourceLoad(const NetworkResourceLoadParameters&, NetworkConnectionToWebProcess*);
     53   
     54    // Adds a synchronous request to the synchronous request queue for its host.
     55    void scheduleSyncNetworkResourceLoader(PassRefPtr<SyncNetworkResourceLoader>);
    5256   
    5357    // Creates a unique identifier for an already-in-progress load.
  • tags/Safari-537.26.1/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp

    r139516 r140016  
    189189    ASSERT(!isMainThread());
    190190
     191    // IMPORTANT: The fact that this message to the WebProcess is sync is what makes our current approach to synchronous XMLHttpRequests safe.
     192    // If this message changes to be asynchronous we might introduce a situation where the NetworkProcess is deadlocked waiting for 6 connections
     193    // to complete while the WebProcess is waiting for a 7th to complete.
     194    // If we ever change this message to be asynchronous we have to include safeguards to make sure the new design interacts well with sync XHR.
    191195    if (!sendSync(Messages::WebResourceLoader::WillSendRequest(request, redirectResponse), Messages::WebResourceLoader::WillSendRequest::Reply(request)))
    192196        request = ResourceRequest();
     
    288292    ASSERT(!isMainThread());
    289293
     294    // IMPORTANT: The fact that this message to the WebProcess is sync is what makes our current approach to synchronous XMLHttpRequests safe.
     295    // If this message changes to be asynchronous we might introduce a situation where the NetworkProcess is deadlocked waiting for 6 connections
     296    // to complete while the WebProcess is waiting for a 7th to complete.
     297    // If we ever change this message to be asynchronous we have to include safeguards to make sure the new design interacts well with sync XHR.
    290298    bool result;
    291299    if (!sendSync(Messages::WebResourceLoader::CanAuthenticateAgainstProtectionSpace(protectionSpace), Messages::WebResourceLoader::CanAuthenticateAgainstProtectionSpace::Reply(result)))
  • tags/Safari-537.26.1/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r140009 r140016  
    469469                517CF0E3163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */; };
    470470                517CF0E4163A486C00C2950E /* NetworkProcessConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517CF0E2163A486C00C2950E /* NetworkProcessConnectionMessages.h */; };
     471                51815B9F16A622210054501F /* SyncNetworkResourceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51815B9D16A622210054501F /* SyncNetworkResourceLoader.cpp */; };
     472                51815BA016A622210054501F /* SyncNetworkResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 51815B9E16A622210054501F /* SyncNetworkResourceLoader.h */; };
    471473                51829DA51637C70C000953D6 /* NetworkResourceLoadScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51829DA31637C70C000953D6 /* NetworkResourceLoadScheduler.cpp */; };
    472474                51829DA61637C70C000953D6 /* NetworkResourceLoadScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 51829DA41637C70C000953D6 /* NetworkResourceLoadScheduler.h */; };
     
    17351737                517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessConnectionMessageReceiver.cpp; sourceTree = "<group>"; };
    17361738                517CF0E2163A486C00C2950E /* NetworkProcessConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkProcessConnectionMessages.h; sourceTree = "<group>"; };
     1739                51815B9D16A622210054501F /* SyncNetworkResourceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SyncNetworkResourceLoader.cpp; path = NetworkProcess/SyncNetworkResourceLoader.cpp; sourceTree = "<group>"; };
     1740                51815B9E16A622210054501F /* SyncNetworkResourceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SyncNetworkResourceLoader.h; path = NetworkProcess/SyncNetworkResourceLoader.h; sourceTree = "<group>"; };
    17371741                51829DA31637C70C000953D6 /* NetworkResourceLoadScheduler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkResourceLoadScheduler.cpp; path = NetworkProcess/NetworkResourceLoadScheduler.cpp; sourceTree = "<group>"; };
    17381742                51829DA41637C70C000953D6 /* NetworkResourceLoadScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkResourceLoadScheduler.h; path = NetworkProcess/NetworkResourceLoadScheduler.h; sourceTree = "<group>"; };
     
    31983202                                51829DA31637C70C000953D6 /* NetworkResourceLoadScheduler.cpp */,
    31993203                                51829DA41637C70C000953D6 /* NetworkResourceLoadScheduler.h */,
     3204                                51815B9D16A622210054501F /* SyncNetworkResourceLoader.cpp */,
     3205                                51815B9E16A622210054501F /* SyncNetworkResourceLoader.h */,
    32003206                        );
    32013207                        name = NetworkProcess;
     
    50785084                                E179088F169BAA6A006904C7 /* SecItemShim.h in Headers */,
    50795085                                E1790891169BAA82006904C7 /* SecItemShimMessages.h in Headers */,
     5086                                51815BA016A622210054501F /* SyncNetworkResourceLoader.h in Headers */,
    50805087                        );
    50815088                        runOnlyForDeploymentPostprocessing = 0;
     
    60586065                                E179088D169BAA62006904C7 /* SecItemShim.cpp in Sources */,
    60596066                                E1790890169BAA7F006904C7 /* SecItemShimMessageReceiver.cpp in Sources */,
     6067                                51815B9F16A622210054501F /* SyncNetworkResourceLoader.cpp in Sources */,
    60606068                        );
    60616069                        runOnlyForDeploymentPostprocessing = 0;
  • tags/Safari-537.26.1/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp

    r139023 r140016  
    3030
    3131#include "BlockingResponseMap.h"
     32#include "DataReference.h"
     33#include "NetworkResourceLoadParameters.h"
    3234#include "PluginInfoStore.h"
    3335#include "WebContextMessages.h"
    3436#include "WebCookieManager.h"
    3537#include "WebCoreArgumentCoders.h"
     38#include "WebErrors.h"
    3639#include "WebProcess.h"
    3740#include "WebProcessProxyMessages.h"
     
    4043#include <WebCore/LoaderStrategy.h>
    4144#include <WebCore/NetworkStorageSession.h>
     45#include <WebCore/NetworkingContext.h>
    4246#include <WebCore/Page.h>
    4347#include <WebCore/PlatformCookieJar.h>
    4448#include <WebCore/PlatformPasteboard.h>
     49#include <WebCore/ResourceError.h>
    4550#include <wtf/Atomics.h>
    4651
     
    209214    return scheduler;
    210215}
     216
     217void WebPlatformStrategies::loadResourceSynchronously(NetworkingContext* context, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data)
     218{
     219    CoreIPC::DataReference dataReference;
     220
     221    NetworkResourceLoadParameters loadParameters(request, ResourceLoadPriorityHighest, SniffContent, storedCredentials, context->storageSession().isPrivateBrowsingSession());
     222    if (!WebProcess::shared().networkConnection()->connection()->sendSync(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad(loadParameters), Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::Reply(error, response, dataReference), 0)) {
     223        response = ResourceResponse();
     224        error = internalError(request.url());
     225        data.resize(0);
     226
     227        return;
     228    }
     229
     230    data.resize(dataReference.size());
     231    memcpy(data.data(), dataReference.data(), dataReference.size());
     232}
     233
    211234#endif
    212235
  • tags/Safari-537.26.1/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h

    r138427 r140016  
    7272#if ENABLE(NETWORK_PROCESS)
    7373    virtual WebCore::ResourceLoadScheduler* resourceLoadScheduler() OVERRIDE;
     74    virtual void loadResourceSynchronously(WebCore::NetworkingContext*, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) OVERRIDE;
    7475#endif
    7576
Note: See TracChangeset for help on using the changeset viewer.