Changeset 192995 in webkit
- Timestamp:
- Dec 3, 2015, 4:51:17 AM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 43 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r192954 r192995 1952 1952 loader/ProgressTracker.cpp 1953 1953 loader/ResourceLoadNotifier.cpp 1954 loader/ResourceLoadScheduler.cpp1955 1954 loader/ResourceLoader.cpp 1956 1955 loader/SinkDocument.cpp -
trunk/Source/WebCore/ChangeLog
r192992 r192995 1 2015-12-02 Antti Koivisto <antti@apple.com> 2 3 Move ResourceLoadScheduler to WebKit1 4 https://bugs.webkit.org/show_bug.cgi?id=151743 5 6 Reviewed by Alex Christensen. 7 8 It is no longer used by WebKit2. Simplify the WebKit/WebCore interface. 9 10 * WebCore.xcodeproj/project.pbxproj: 11 * dom/ContainerNode.cpp: 12 * dom/Document.cpp: 13 (WebCore::Document::styleForElementIgnoringPendingStylesheets): 14 * dom/Document.h: 15 * loader/DocumentLoader.h: 16 * loader/LoaderStrategy.cpp: 17 (WebCore::LoaderStrategy::~LoaderStrategy): 18 (WebCore::ResourceLoadSuspender::ResourceLoadSuspender): 19 (WebCore::ResourceLoadSuspender::~ResourceLoadSuspender): 20 (WebCore::LoaderStrategy::resourceLoadScheduler): Deleted. 21 (WebCore::LoaderStrategy::loadResourceSynchronously): Deleted. 22 (WebCore::LoaderStrategy::createBlobRegistry): Deleted. 23 (WebCore::LoaderStrategy::createPingHandle): Deleted. 24 * loader/LoaderStrategy.h: 25 26 Loading functions implemented on WebKit side move to pure virtual LoaderStrategy. 27 28 * loader/ResourceLoadScheduler.cpp: Removed. 29 * loader/ResourceLoadScheduler.h: Removed. 30 31 ResourceLoadScheduler moves to WebKit1 as WebResourceLoadScheduler. 32 33 * loader/ResourceLoader.cpp: 34 (WebCore::ResourceLoader::finishNetworkLoad): 35 (WebCore::ResourceLoader::setDefersLoading): 36 (WebCore::ResourceLoader::frameLoader): 37 (WebCore::ResourceLoader::willSwitchToSubstituteResource): 38 (WebCore::ResourceLoader::willSendRequestInternal): 39 * loader/archive/ArchiveResourceCollection.h: 40 * loader/cache/CachedResource.cpp: 41 (WebCore::CachedResource::load): 42 * loader/cache/CachedResourceLoader.cpp: 43 (WebCore::CachedResourceLoader::performPostLoadActions): 44 (WebCore::CachedResourceLoader::incrementRequestCount): 45 * platform/PlatformStrategies.h: 46 (WebCore::PlatformStrategies::pluginStrategy): 47 (WebCore::PlatformStrategies::blobRegistry): 48 49 Move BlobRegistry factory function here from LoaderStrategy as this allows network process to have null loaderStrategy. 50 (it could be renamed BlobStrategy for consistency later). 51 52 (WebCore::PlatformStrategies::PlatformStrategies): 53 * platform/network/BlobRegistry.cpp: 54 (WebCore::blobRegistry): 55 (WebCore::BlobRegistry::~BlobRegistry): 56 * platform/network/ResourceRequestBase.h: 57 * style/StyleResolveTree.cpp: 58 (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): 59 (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): 60 1 61 2015-12-02 Myles C. Maxfield <mmaxfield@apple.com> 2 62 -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r192394 r192995 7419 7419 <ClCompile Include="..\loader\cf\ResourceLoaderCFNet.cpp" /> 7420 7420 <ClCompile Include="..\loader\ResourceLoadNotifier.cpp" /> 7421 <ClCompile Include="..\loader\ResourceLoadScheduler.cpp" />7422 7421 <ClCompile Include="..\loader\SinkDocument.cpp" /> 7423 7422 <ClCompile Include="..\loader\SubframeLoader.cpp" /> … … 20840 20839 <ClInclude Include="..\loader\ResourceLoaderOptions.h" /> 20841 20840 <ClInclude Include="..\loader\ResourceLoadNotifier.h" /> 20842 <ClInclude Include="..\loader\ResourceLoadScheduler.h" />20843 20841 <ClInclude Include="..\loader\SinkDocument.h" /> 20844 20842 <ClInclude Include="..\loader\SubframeLoader.h" /> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r192954 r192995 6172 6172 D0BD4F5C1408850F006839B6 /* DictationCommandIOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0BD4F5A1408850F006839B6 /* DictationCommandIOS.cpp */; }; 6173 6173 D0BD4F5D1408850F006839B6 /* DictationCommandIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BD4F5B1408850F006839B6 /* DictationCommandIOS.h */; }; 6174 D0CE58F8125E4CC200F3F199 /* ResourceLoadScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0CE58F6125E4CC200F3F199 /* ResourceLoadScheduler.cpp */; };6175 D0CE58F9125E4CC200F3F199 /* ResourceLoadScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CE58F7125E4CC200F3F199 /* ResourceLoadScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; };6176 6174 D0EDA774143E303C0028E383 /* CachedRawResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0EDA772143E303C0028E383 /* CachedRawResource.cpp */; }; 6177 6175 D0EDA775143E303C0028E383 /* CachedRawResource.h in Headers */ = {isa = PBXBuildFile; fileRef = D0EDA773143E303C0028E383 /* CachedRawResource.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 14071 14069 D0BD4F5A1408850F006839B6 /* DictationCommandIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DictationCommandIOS.cpp; sourceTree = "<group>"; }; 14072 14070 D0BD4F5B1408850F006839B6 /* DictationCommandIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DictationCommandIOS.h; sourceTree = "<group>"; }; 14073 D0CE58F6125E4CC200F3F199 /* ResourceLoadScheduler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceLoadScheduler.cpp; sourceTree = "<group>"; };14074 D0CE58F7125E4CC200F3F199 /* ResourceLoadScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadScheduler.h; sourceTree = "<group>"; };14075 14071 D0EDA772143E303C0028E383 /* CachedRawResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedRawResource.cpp; sourceTree = "<group>"; }; 14076 14072 D0EDA773143E303C0028E383 /* CachedRawResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedRawResource.h; sourceTree = "<group>"; }; … … 22465 22461 973E325410883B7C005BC493 /* ResourceLoadNotifier.cpp */, 22466 22462 973E325510883B7C005BC493 /* ResourceLoadNotifier.h */, 22467 D0CE58F6125E4CC200F3F199 /* ResourceLoadScheduler.cpp */,22468 D0CE58F7125E4CC200F3F199 /* ResourceLoadScheduler.h */,22469 22463 51327D5F11A33A2B004F9D65 /* SinkDocument.cpp */, 22470 22464 51327D5E11A33A2B004F9D65 /* SinkDocument.h */, … … 27292 27286 973E325710883B7C005BC493 /* ResourceLoadNotifier.h in Headers */, 27293 27287 E4295FA412B0614E00D1ACE0 /* ResourceLoadPriority.h in Headers */, 27294 D0CE58F9125E4CC200F3F199 /* ResourceLoadScheduler.h in Headers */,27295 27288 8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */, 27296 27289 7EE6846D12D26E3800E79415 /* ResourceRequest.h in Headers */, … … 30870 30863 51EE7B3A1AA5123100F92B21 /* ResourceLoadInfo.cpp in Sources */, 30871 30864 973E325610883B7C005BC493 /* ResourceLoadNotifier.cpp in Sources */, 30872 D0CE58F8125E4CC200F3F199 /* ResourceLoadScheduler.cpp in Sources */,30873 30865 514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */, 30874 30866 7EE6846E12D26E3800E79415 /* ResourceRequestCFNet.cpp in Sources */, -
trunk/Source/WebCore/dom/ContainerNode.cpp
r191955 r192995 50 50 #include "RenderTheme.h" 51 51 #include "RenderWidget.h" 52 #include "ResourceLoadScheduler.h"53 52 #include "RootInlineBox.h" 54 53 #include "SVGDocumentExtensions.h" -
trunk/Source/WebCore/dom/Document.cpp
r192848 r192995 127 127 #include "RenderView.h" 128 128 #include "RenderWidget.h" 129 #include "ResourceLoadScheduler.h"130 129 #include "RuntimeEnabledFeatures.h" 131 130 #include "SVGDocumentExtensions.h" … … 1960 1959 1961 1960 // On iOS request delegates called during styleForElement may result in re-entering WebKit and killing the style resolver. 1962 ResourceLoadS cheduler::Suspender suspender(*platformStrategies()->loaderStrategy()->resourceLoadScheduler());1961 ResourceLoadSuspender suspender; 1963 1962 1964 1963 TemporaryChange<bool> change(m_ignorePendingStylesheets, true); -
trunk/Source/WebCore/dom/Document.h
r192711 r192995 512 512 void notifyRemovePendingSheetIfNeeded(); 513 513 514 bool haveStylesheetsLoaded() const;514 WEBCORE_EXPORT bool haveStylesheetsLoaded() const; 515 515 516 516 // This is a DOM function. -
trunk/Source/WebCore/loader/DocumentLoader.h
r192342 r192995 162 162 163 163 // Return the ArchiveResource for the URL only when loading an Archive 164 ArchiveResource* archiveResourceForURL(const URL&) const;164 WEBCORE_EXPORT ArchiveResource* archiveResourceForURL(const URL&) const; 165 165 166 166 WEBCORE_EXPORT PassRefPtr<ArchiveResource> mainResource() const; -
trunk/Source/WebCore/loader/LoaderStrategy.cpp
r186530 r192995 1 1 /* 2 * Copyright (C) 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2012, 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 #include "LoaderStrategy.h" 28 28 29 #include "BlobRegistryImpl.h" 30 #include "PingHandle.h" 31 #include "ResourceHandle.h" 32 #include "ResourceLoadScheduler.h" 29 #include "PlatformStrategies.h" 33 30 34 31 namespace WebCore { 35 32 36 ResourceLoadScheduler* LoaderStrategy::resourceLoadScheduler()33 LoaderStrategy::~LoaderStrategy() 37 34 { 38 return WebCore::resourceLoadScheduler();39 35 } 40 36 41 void LoaderStrategy::loadResourceSynchronously(NetworkingContext* context, unsigned long, const ResourceRequest& request, StoredCredentials storedCredentials, ClientCredentialPolicy, ResourceError& error, ResourceResponse& response, Vector<char>& data)37 ResourceLoadSuspender::ResourceLoadSuspender() 42 38 { 43 ResourceHandle::loadResourceSynchronously(context, request, storedCredentials, error, response, data);39 platformStrategies()->loaderStrategy()->suspendPendingRequests(); 44 40 } 45 41 46 BlobRegistry* LoaderStrategy::createBlobRegistry()42 ResourceLoadSuspender::~ResourceLoadSuspender() 47 43 { 48 return new BlobRegistryImpl; 49 } 50 51 void LoaderStrategy::createPingHandle(NetworkingContext* networkingContext, ResourceRequest& request, bool shouldUseCredentialStorage) 52 { 53 // PingHandle manages its own lifetime, deleting itself when its purpose has been fulfilled. 54 new PingHandle(networkingContext, request, shouldUseCredentialStorage, PingHandle::UsesAsyncCallbacks::No); 44 platformStrategies()->loaderStrategy()->resumePendingRequests(); 55 45 } 56 46 57 47 } // namespace WebCore 48 49 -
trunk/Source/WebCore/loader/LoaderStrategy.h
r186530 r192995 1 1 /* 2 * Copyright (C) 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2012, 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 29 29 #include "ResourceHandleTypes.h" 30 #include "ResourceLoadPriority.h" 31 #include "ResourceLoaderOptions.h" 30 32 #include <wtf/Vector.h> 31 33 … … 33 35 34 36 class BlobRegistry; 37 class CachedResource; 35 38 class Frame; 39 class NetscapePlugInStreamLoader; 40 class NetscapePlugInStreamLoaderClient; 36 41 class NetworkingContext; 37 42 class ResourceError; 38 class ResourceLoad Scheduler;43 class ResourceLoader; 39 44 class ResourceRequest; 40 45 class ResourceResponse; 46 class SubresourceLoader; 47 class URL; 41 48 42 49 class WEBCORE_EXPORT LoaderStrategy { 43 50 public: 44 virtual ResourceLoadScheduler* resourceLoadScheduler(); 51 virtual RefPtr<SubresourceLoader> loadResource(Frame*, CachedResource*, const ResourceRequest&, const ResourceLoaderOptions&) = 0; 52 virtual void loadResourceSynchronously(NetworkingContext*, unsigned long identifier, const ResourceRequest&, StoredCredentials, ClientCredentialPolicy, ResourceError&, ResourceResponse&, Vector<char>& data) = 0; 45 53 46 virtual void loadResourceSynchronously(NetworkingContext*, unsigned long identifier, const ResourceRequest&, StoredCredentials, ClientCredentialPolicy, ResourceError&, ResourceResponse&, Vector<char>& data); 54 virtual void remove(ResourceLoader*) = 0; 55 virtual void setDefersLoading(ResourceLoader*, bool) = 0; 56 virtual void crossOriginRedirectReceived(ResourceLoader*, const URL& redirectURL) = 0; 47 57 48 virtual BlobRegistry* createBlobRegistry(); 58 virtual void servePendingRequests(ResourceLoadPriority minimumPriority = ResourceLoadPriority::VeryLow) = 0; 59 virtual void suspendPendingRequests() = 0; 60 virtual void resumePendingRequests() = 0; 49 61 50 virtual void createPingHandle(NetworkingContext*, ResourceRequest&, bool shouldUseCredentialStorage) ;62 virtual void createPingHandle(NetworkingContext*, ResourceRequest&, bool shouldUseCredentialStorage) = 0; 51 63 52 64 protected: 53 virtual ~LoaderStrategy() 54 { 55 } 65 virtual ~LoaderStrategy(); 66 }; 67 68 class ResourceLoadSuspender { 69 public: 70 ResourceLoadSuspender(); 71 ~ResourceLoadSuspender(); 56 72 }; 57 73 -
trunk/Source/WebCore/loader/ResourceLoader.cpp
r191673 r192995 48 48 #include "ResourceError.h" 49 49 #include "ResourceHandle.h" 50 #include "ResourceLoadScheduler.h"51 50 #include "SecurityOrigin.h" 52 51 #include "Settings.h" … … 84 83 void ResourceLoader::finishNetworkLoad() 85 84 { 86 platformStrategies()->loaderStrategy()->re sourceLoadScheduler()->remove(this);85 platformStrategies()->loaderStrategy()->remove(this); 87 86 88 87 if (m_handle) { … … 234 233 } 235 234 236 platformStrategies()->loaderStrategy()-> resourceLoadScheduler()->setDefersLoading(this, defers);235 platformStrategies()->loaderStrategy()->setDefersLoading(this, defers); 237 236 } 238 237 … … 290 289 { 291 290 ASSERT(!m_documentLoader->isSubstituteLoadPending(this)); 292 platformStrategies()->loaderStrategy()->re sourceLoadScheduler()->remove(this);291 platformStrategies()->loaderStrategy()->remove(this); 293 292 if (m_handle) 294 293 m_handle->cancel(); … … 377 376 bool isRedirect = !redirectResponse.isNull(); 378 377 if (isRedirect) 379 platformStrategies()->loaderStrategy()-> resourceLoadScheduler()->crossOriginRedirectReceived(this, request.url());378 platformStrategies()->loaderStrategy()->crossOriginRedirectReceived(this, request.url()); 380 379 381 380 m_request = request; -
trunk/Source/WebCore/loader/archive/ArchiveResourceCollection.h
r165676 r192995 48 48 void addAllResources(Archive*); 49 49 50 ArchiveResource* archiveResourceForURL(const URL&);50 WEBCORE_EXPORT ArchiveResource* archiveResourceForURL(const URL&); 51 51 PassRefPtr<Archive> popSubframeArchive(const String& frameName, const URL&); 52 52 -
trunk/Source/WebCore/loader/cache/CachedResource.cpp
r191369 r192995 45 45 #include "PlatformStrategies.h" 46 46 #include "ResourceHandle.h" 47 #include "ResourceLoadScheduler.h"48 47 #include "SchemeRegistry.h" 49 48 #include "SecurityOrigin.h" … … 279 278 } 280 279 281 m_loader = platformStrategies()->loaderStrategy()-> resourceLoadScheduler()->scheduleSubresourceLoad(cachedResourceLoader.frame(), this, request, options);280 m_loader = platformStrategies()->loaderStrategy()->loadResource(cachedResourceLoader.frame(), this, request, options); 282 281 if (!m_loader) { 283 282 failBeforeStarting(); -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r192592 r192995 62 62 #include "RenderElement.h" 63 63 #include "ResourceLoadInfo.h" 64 #include "ResourceLoadScheduler.h"65 64 #include "ScriptController.h" 66 65 #include "SecurityOrigin.h" … … 968 967 checkForPendingPreloads(); 969 968 970 platformStrategies()->loaderStrategy()-> resourceLoadScheduler()->servePendingRequests();969 platformStrategies()->loaderStrategy()->servePendingRequests(); 971 970 } 972 971 -
trunk/Source/WebCore/platform/PlatformStrategies.h
r181562 r192995 29 29 namespace WebCore { 30 30 31 class BlobRegistry; 31 32 class CookiesStrategy; 32 33 class LoaderStrategy; … … 64 65 } 65 66 67 BlobRegistry* blobRegistry() 68 { 69 if (!m_blobRegistry) 70 m_blobRegistry = createBlobRegistry(); 71 return m_blobRegistry; 72 } 73 66 74 protected: 67 75 PlatformStrategies() 68 : m_cookiesStrategy(nullptr)69 , m_loaderStrategy(nullptr)70 , m_pasteboardStrategy(nullptr)71 , m_pluginStrategy(nullptr)72 76 { 73 77 } … … 82 86 virtual PasteboardStrategy* createPasteboardStrategy() = 0; 83 87 virtual PluginStrategy* createPluginStrategy() = 0; 88 virtual BlobRegistry* createBlobRegistry() = 0; 84 89 85 CookiesStrategy* m_cookiesStrategy; 86 LoaderStrategy* m_loaderStrategy; 87 PasteboardStrategy* m_pasteboardStrategy; 88 PluginStrategy* m_pluginStrategy; 90 CookiesStrategy* m_cookiesStrategy { }; 91 LoaderStrategy* m_loaderStrategy { }; 92 PasteboardStrategy* m_pasteboardStrategy { }; 93 PluginStrategy* m_pluginStrategy { }; 94 BlobRegistry* m_blobRegistry { }; 89 95 }; 90 96 -
trunk/Source/WebCore/platform/RuntimeApplicationChecksIOS.h
r189921 r192995 40 40 bool applicationIsNASAHD(); 41 41 WEBCORE_EXPORT bool applicationIsTheEconomistOnIPhone(); 42 bool applicationIsWebProcess();42 WEBCORE_EXPORT bool applicationIsWebProcess(); 43 43 bool applicationIsIBooksOnIOS(); 44 44 -
trunk/Source/WebCore/platform/network/BlobRegistry.cpp
r169380 r192995 41 41 { 42 42 ASSERT(isMainThread()); 43 44 static BlobRegistry& instance = *platformStrategies()->loaderStrategy()->createBlobRegistry(); 45 return instance; 43 return *platformStrategies()->blobRegistry(); 46 44 } 47 45 -
trunk/Source/WebCore/platform/network/ResourceRequestBase.h
r184945 r192995 245 245 }; 246 246 247 unsigned initializeMaximumHTTPConnectionCountPerHost();247 WEBCORE_EXPORT unsigned initializeMaximumHTTPConnectionCountPerHost(); 248 248 #if PLATFORM(IOS) 249 249 WEBCORE_EXPORT void initializeHTTPConnectionSettingsOnStartup(); -
trunk/Source/WebCore/style/StyleResolveTree.cpp
r192608 r192995 48 48 #include "RenderTreePosition.h" 49 49 #include "RenderWidget.h" 50 #include "ResourceLoadScheduler.h"51 50 #include "Settings.h" 52 51 #include "ShadowRoot.h" … … 945 944 946 945 if (resolutionNestingDepth == 1) 947 platformStrategies()->loaderStrategy()-> resourceLoadScheduler()->suspendPendingRequests();946 platformStrategies()->loaderStrategy()->suspendPendingRequests(); 948 947 949 948 // FIXME: It's strange to build this into the disabler. … … 960 959 queue.clear(); 961 960 962 platformStrategies()->loaderStrategy()->res ourceLoadScheduler()->resumePendingRequests();961 platformStrategies()->loaderStrategy()->resumePendingRequests(); 963 962 } 964 963 -
trunk/Source/WebKit/CMakeLists.txt
r191749 r192995 3 3 4 4 set(WebKit_SOURCES 5 WebCoreSupport/WebResourceLoadScheduler.cpp 5 6 WebCoreSupport/WebViewGroup.cpp 6 7 ) -
trunk/Source/WebKit/ChangeLog
r191773 r192995 1 2015-12-02 Antti Koivisto <antti@apple.com> 2 3 Move ResourceLoadScheduler to WebKit1 4 https://bugs.webkit.org/show_bug.cgi?id=151743 5 6 Reviewed by Alex Christensen. 7 8 * WebCoreSupport/WebResourceLoadScheduler.cpp: Copied from Source/WebCore/loader/ResourceLoadScheduler.cpp. 9 (webResourceLoadScheduler): 10 (WebResourceLoadScheduler::hostForURL): 11 (WebResourceLoadScheduler::WebResourceLoadScheduler): 12 (WebResourceLoadScheduler::~WebResourceLoadScheduler): 13 (WebResourceLoadScheduler::scheduleSubresourceLoad): 14 (WebResourceLoadScheduler::loadResourceSynchronously): 15 (WebResourceLoadScheduler::schedulePluginStreamLoad): 16 (WebResourceLoadScheduler::scheduleLoad): 17 (WebResourceLoadScheduler::remove): 18 (WebResourceLoadScheduler::setDefersLoading): 19 (WebResourceLoadScheduler::crossOriginRedirectReceived): 20 (WebResourceLoadScheduler::servePendingRequests): 21 (WebResourceLoadScheduler::suspendPendingRequests): 22 (WebResourceLoadScheduler::resumePendingRequests): 23 (WebResourceLoadScheduler::scheduleServePendingRequests): 24 (WebResourceLoadScheduler::requestTimerFired): 25 (WebResourceLoadScheduler::HostInformation::HostInformation): 26 (WebResourceLoadScheduler::HostInformation::~HostInformation): 27 (WebResourceLoadScheduler::HostInformation::priorityToIndex): 28 (WebResourceLoadScheduler::HostInformation::schedule): 29 (WebResourceLoadScheduler::HostInformation::addLoadInProgress): 30 (WebResourceLoadScheduler::HostInformation::remove): 31 (WebResourceLoadScheduler::HostInformation::hasRequests): 32 (WebResourceLoadScheduler::HostInformation::limitRequests): 33 (WebResourceLoadScheduler::createPingHandle): 34 (WebCore::ResourceLoadScheduler::hostForURL): Deleted. 35 (WebCore::resourceLoadScheduler): Deleted. 36 (WebCore::ResourceLoadScheduler::ResourceLoadScheduler): Deleted. 37 (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler): Deleted. 38 (WebCore::ResourceLoadScheduler::scheduleSubresourceLoad): Deleted. 39 (WebCore::ResourceLoadScheduler::schedulePluginStreamLoad): Deleted. 40 (WebCore::ResourceLoadScheduler::scheduleLoad): Deleted. 41 (WebCore::ResourceLoadScheduler::remove): Deleted. 42 (WebCore::ResourceLoadScheduler::setDefersLoading): Deleted. 43 (WebCore::ResourceLoadScheduler::crossOriginRedirectReceived): Deleted. 44 (WebCore::ResourceLoadScheduler::servePendingRequests): Deleted. 45 (WebCore::ResourceLoadScheduler::suspendPendingRequests): Deleted. 46 (WebCore::ResourceLoadScheduler::resumePendingRequests): Deleted. 47 (WebCore::ResourceLoadScheduler::scheduleServePendingRequests): Deleted. 48 (WebCore::ResourceLoadScheduler::requestTimerFired): Deleted. 49 (WebCore::ResourceLoadScheduler::HostInformation::HostInformation): Deleted. 50 (WebCore::ResourceLoadScheduler::HostInformation::~HostInformation): Deleted. 51 (WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex): Deleted. 52 (WebCore::ResourceLoadScheduler::HostInformation::schedule): Deleted. 53 (WebCore::ResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted. 54 (WebCore::ResourceLoadScheduler::HostInformation::remove): Deleted. 55 (WebCore::ResourceLoadScheduler::HostInformation::hasRequests): Deleted. 56 (WebCore::ResourceLoadScheduler::HostInformation::limitRequests): Deleted. 57 * WebCoreSupport/WebResourceLoadScheduler.h: Copied from Source/WebCore/loader/ResourceLoadScheduler.h. 58 (WebResourceLoadScheduler::isSerialLoadingEnabled): 59 (WebResourceLoadScheduler::setSerialLoadingEnabled): 60 (WebResourceLoadScheduler::HostInformation::name): 61 (WebResourceLoadScheduler::HostInformation::requestsPending): 62 (WebCore::ResourceLoadScheduler::isSerialLoadingEnabled): Deleted. 63 (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Deleted. 64 (WebCore::ResourceLoadScheduler::Suspender::Suspender): Deleted. 65 (WebCore::ResourceLoadScheduler::Suspender::~Suspender): Deleted. 66 (WebCore::ResourceLoadScheduler::HostInformation::name): Deleted. 67 (WebCore::ResourceLoadScheduler::HostInformation::requestsPending): Deleted. 68 * WebKit.xcodeproj/project.pbxproj: 69 1 70 2015-10-29 Alex Christensen <achristensen@webkit.org> 2 71 -
trunk/Source/WebKit/WebCoreSupport/WebResourceLoadScheduler.cpp
r192880 r192995 4 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 5 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 6 Copyright (C) 2004 , 2005, 2006, 2007, 2008Apple Inc. All rights reserved.6 Copyright (C) 2004-2008, 2015 Apple Inc. All rights reserved. 7 7 Copyright (C) 2010 Google Inc. All rights reserved. 8 8 … … 23 23 */ 24 24 25 #include "config.h" 26 #include "ResourceLoadScheduler.h" 27 28 #include "Document.h" 29 #include "DocumentLoader.h" 30 #include "Frame.h" 31 #include "FrameLoader.h" 32 #include "LoaderStrategy.h" 33 #include "Logging.h" 34 #include "NetscapePlugInStreamLoader.h" 35 #include "PlatformStrategies.h" 36 #include "ResourceLoader.h" 37 #include "ResourceRequest.h" 38 #include "SubresourceLoader.h" 39 #include "URL.h" 25 #include "WebResourceLoadScheduler.h" 26 27 #include <WebCore/Document.h> 28 #include <WebCore/DocumentLoader.h> 29 #include <WebCore/Frame.h> 30 #include <WebCore/FrameLoader.h> 31 #include <WebCore/Logging.h> 32 #include <WebCore/NetscapePlugInStreamLoader.h> 33 #include <WebCore/PingHandle.h> 34 #include <WebCore/PlatformStrategies.h> 35 #include <WebCore/ResourceHandle.h> 36 #include <WebCore/ResourceRequest.h> 37 #include <WebCore/SubresourceLoader.h> 38 #include <WebCore/URL.h> 40 39 #include <wtf/MainThread.h> 41 40 #include <wtf/TemporaryChange.h> … … 43 42 44 43 #if PLATFORM(IOS) 45 #include < RuntimeApplicationChecksIOS.h>44 #include <WebCore/RuntimeApplicationChecksIOS.h> 46 45 #endif 47 46 48 47 #if USE(QUICK_LOOK) 49 #include "QuickLook.h" 50 #endif 51 52 namespace WebCore { 48 #include <WebCore/QuickLook.h> 49 #endif 53 50 54 51 // Match the parallel connection count used by the networking layer. … … 61 58 #endif 62 59 63 ResourceLoadScheduler::HostInformation* ResourceLoadScheduler::hostForURL(const URL& url, CreateHostPolicy createHostPolicy) 60 using namespace WebCore; 61 62 WebResourceLoadScheduler& webResourceLoadScheduler() 63 { 64 return static_cast<WebResourceLoadScheduler&>(*platformStrategies()->loaderStrategy()); 65 } 66 67 WebResourceLoadScheduler::HostInformation* WebResourceLoadScheduler::hostForURL(const URL& url, CreateHostPolicy createHostPolicy) 64 68 { 65 69 if (!url.protocolIsInHTTPFamily()) … … 76 80 } 77 81 78 ResourceLoadScheduler* resourceLoadScheduler() 79 { 80 ASSERT(isMainThread()); 81 static ResourceLoadScheduler* globalScheduler = nullptr; 82 83 if (!globalScheduler) { 84 static bool isCallingOutToStrategy = false; 85 86 // If we're re-entering resourceLoadScheduler() while calling out to the LoaderStrategy, 87 // then the LoaderStrategy is trying to use the default resourceLoadScheduler. 88 // So we'll create it here and start using it. 89 if (isCallingOutToStrategy) { 90 globalScheduler = new ResourceLoadScheduler; 91 return globalScheduler; 92 } 93 94 TemporaryChange<bool> recursionGuard(isCallingOutToStrategy, true); 95 globalScheduler = platformStrategies()->loaderStrategy()->resourceLoadScheduler(); 96 } 97 98 return globalScheduler; 99 } 100 101 ResourceLoadScheduler::ResourceLoadScheduler() 82 WebResourceLoadScheduler::WebResourceLoadScheduler() 102 83 : m_nonHTTPProtocolHost(new HostInformation(String(), maxRequestsInFlightForNonHTTPProtocols)) 103 , m_requestTimer(*this, & ResourceLoadScheduler::requestTimerFired)84 , m_requestTimer(*this, &WebResourceLoadScheduler::requestTimerFired) 104 85 , m_suspendPendingRequestsCount(0) 105 86 , m_isSerialLoadingEnabled(false) … … 108 89 } 109 90 110 ResourceLoadScheduler::~ResourceLoadScheduler()111 { 112 } 113 114 RefPtr<SubresourceLoader> ResourceLoadScheduler::scheduleSubresourceLoad(Frame* frame, CachedResource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options)91 WebResourceLoadScheduler::~WebResourceLoadScheduler() 92 { 93 } 94 95 RefPtr<SubresourceLoader> WebResourceLoadScheduler::loadResource(Frame* frame, CachedResource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options) 115 96 { 116 97 RefPtr<SubresourceLoader> loader = SubresourceLoader::create(frame, resource, request, options); … … 129 110 } 130 111 131 RefPtr<NetscapePlugInStreamLoader> ResourceLoadScheduler::schedulePluginStreamLoad(Frame* frame, NetscapePlugInStreamLoaderClient* client, const ResourceRequest& request) 112 void WebResourceLoadScheduler::loadResourceSynchronously(NetworkingContext* context, unsigned long, const ResourceRequest& request, StoredCredentials storedCredentials, ClientCredentialPolicy, ResourceError& error, ResourceResponse& response, Vector<char>& data) 113 { 114 ResourceHandle::loadResourceSynchronously(context, request, storedCredentials, error, response, data); 115 } 116 117 RefPtr<NetscapePlugInStreamLoader> WebResourceLoadScheduler::schedulePluginStreamLoad(Frame* frame, NetscapePlugInStreamLoaderClient* client, const ResourceRequest& request) 132 118 { 133 119 RefPtr<NetscapePlugInStreamLoader> loader = NetscapePlugInStreamLoader::create(frame, client, request); … … 137 123 } 138 124 139 void ResourceLoadScheduler::scheduleLoad(ResourceLoader* resourceLoader)125 void WebResourceLoadScheduler::scheduleLoad(ResourceLoader* resourceLoader) 140 126 { 141 127 ASSERT(resourceLoader); 142 128 143 LOG(ResourceLoading, " ResourceLoadScheduler::load resource %p '%s'", resourceLoader, resourceLoader->url().string().latin1().data());129 LOG(ResourceLoading, "WebResourceLoadScheduler::load resource %p '%s'", resourceLoader, resourceLoader->url().string().latin1().data()); 144 130 145 131 #if PLATFORM(IOS) … … 195 181 } 196 182 197 void ResourceLoadScheduler::remove(ResourceLoader* resourceLoader)183 void WebResourceLoadScheduler::remove(ResourceLoader* resourceLoader) 198 184 { 199 185 ASSERT(resourceLoader); … … 214 200 } 215 201 216 void ResourceLoadScheduler::setDefersLoading(ResourceLoader*, bool)217 { 218 } 219 220 void ResourceLoadScheduler::crossOriginRedirectReceived(ResourceLoader* resourceLoader, const URL& redirectURL)202 void WebResourceLoadScheduler::setDefersLoading(ResourceLoader*, bool) 203 { 204 } 205 206 void WebResourceLoadScheduler::crossOriginRedirectReceived(ResourceLoader* resourceLoader, const URL& redirectURL) 221 207 { 222 208 HostInformation* oldHost = hostForURL(resourceLoader->url()); … … 234 220 } 235 221 236 void ResourceLoadScheduler::servePendingRequests(ResourceLoadPriority minimumPriority)237 { 238 LOG(ResourceLoading, " ResourceLoadScheduler::servePendingRequests. m_suspendPendingRequestsCount=%d", m_suspendPendingRequestsCount);222 void WebResourceLoadScheduler::servePendingRequests(ResourceLoadPriority minimumPriority) 223 { 224 LOG(ResourceLoading, "WebResourceLoadScheduler::servePendingRequests. m_suspendPendingRequestsCount=%d", m_suspendPendingRequestsCount); 239 225 if (isSuspendingPendingRequests()) 240 226 return; … … 255 241 } 256 242 257 void ResourceLoadScheduler::servePendingRequests(HostInformation* host, ResourceLoadPriority minimumPriority)258 { 259 LOG(ResourceLoading, " ResourceLoadScheduler::servePendingRequests HostInformation.m_name='%s'", host->name().latin1().data());243 void WebResourceLoadScheduler::servePendingRequests(HostInformation* host, ResourceLoadPriority minimumPriority) 244 { 245 LOG(ResourceLoading, "WebResourceLoadScheduler::servePendingRequests HostInformation.m_name='%s'", host->name().latin1().data()); 260 246 261 247 auto priority = ResourceLoadPriority::Highest; … … 289 275 } 290 276 291 void ResourceLoadScheduler::suspendPendingRequests()277 void WebResourceLoadScheduler::suspendPendingRequests() 292 278 { 293 279 ++m_suspendPendingRequestsCount; 294 280 } 295 281 296 void ResourceLoadScheduler::resumePendingRequests()282 void WebResourceLoadScheduler::resumePendingRequests() 297 283 { 298 284 ASSERT(m_suspendPendingRequestsCount); … … 304 290 } 305 291 306 void ResourceLoadScheduler::scheduleServePendingRequests()307 { 308 LOG(ResourceLoading, " ResourceLoadScheduler::scheduleServePendingRequests, m_requestTimer.isActive()=%u", m_requestTimer.isActive());292 void WebResourceLoadScheduler::scheduleServePendingRequests() 293 { 294 LOG(ResourceLoading, "WebResourceLoadScheduler::scheduleServePendingRequests, m_requestTimer.isActive()=%u", m_requestTimer.isActive()); 309 295 if (!m_requestTimer.isActive()) 310 296 m_requestTimer.startOneShot(0); 311 297 } 312 298 313 void ResourceLoadScheduler::requestTimerFired()314 { 315 LOG(ResourceLoading, " ResourceLoadScheduler::requestTimerFired\n");299 void WebResourceLoadScheduler::requestTimerFired() 300 { 301 LOG(ResourceLoading, "WebResourceLoadScheduler::requestTimerFired\n"); 316 302 servePendingRequests(); 317 303 } 318 304 319 ResourceLoadScheduler::HostInformation::HostInformation(const String& name, unsigned maxRequestsInFlight)305 WebResourceLoadScheduler::HostInformation::HostInformation(const String& name, unsigned maxRequestsInFlight) 320 306 : m_name(name) 321 307 , m_maxRequestsInFlight(maxRequestsInFlight) … … 323 309 } 324 310 325 ResourceLoadScheduler::HostInformation::~HostInformation()311 WebResourceLoadScheduler::HostInformation::~HostInformation() 326 312 { 327 313 ASSERT(!hasRequests()); 328 314 } 329 315 330 unsigned ResourceLoadScheduler::HostInformation::priorityToIndex(ResourceLoadPriority priority)316 unsigned WebResourceLoadScheduler::HostInformation::priorityToIndex(ResourceLoadPriority priority) 331 317 { 332 318 switch (priority) { … … 346 332 } 347 333 348 void ResourceLoadScheduler::HostInformation::schedule(ResourceLoader* resourceLoader, ResourceLoadPriority priority)334 void WebResourceLoadScheduler::HostInformation::schedule(ResourceLoader* resourceLoader, ResourceLoadPriority priority) 349 335 { 350 336 m_requestsPending[priorityToIndex(priority)].append(resourceLoader); 351 337 } 352 338 353 void ResourceLoadScheduler::HostInformation::addLoadInProgress(ResourceLoader* resourceLoader)339 void WebResourceLoadScheduler::HostInformation::addLoadInProgress(ResourceLoader* resourceLoader) 354 340 { 355 341 LOG(ResourceLoading, "HostInformation '%s' loading '%s'. Current count %d", m_name.latin1().data(), resourceLoader->url().string().latin1().data(), m_requestsLoading.size()); … … 357 343 } 358 344 359 void ResourceLoadScheduler::HostInformation::remove(ResourceLoader* resourceLoader)345 void WebResourceLoadScheduler::HostInformation::remove(ResourceLoader* resourceLoader) 360 346 { 361 347 if (m_requestsLoading.remove(resourceLoader)) … … 372 358 } 373 359 374 bool ResourceLoadScheduler::HostInformation::hasRequests() const360 bool WebResourceLoadScheduler::HostInformation::hasRequests() const 375 361 { 376 362 if (!m_requestsLoading.isEmpty()) … … 383 369 } 384 370 385 bool ResourceLoadScheduler::HostInformation::limitRequests(ResourceLoadPriority priority) const371 bool WebResourceLoadScheduler::HostInformation::limitRequests(ResourceLoadPriority priority) const 386 372 { 387 373 if (priority == ResourceLoadPriority::VeryLow && !m_requestsLoading.isEmpty()) 388 374 return true; 389 return m_requestsLoading.size() >= (resourceLoadScheduler()->isSerialLoadingEnabled() ? 1 : m_maxRequestsInFlight); 390 } 391 392 } // namespace WebCore 375 return m_requestsLoading.size() >= (webResourceLoadScheduler().isSerialLoadingEnabled() ? 1 : m_maxRequestsInFlight); 376 } 377 378 void WebResourceLoadScheduler::createPingHandle(NetworkingContext* networkingContext, ResourceRequest& request, bool shouldUseCredentialStorage) 379 { 380 // PingHandle manages its own lifetime, deleting itself when its purpose has been fulfilled. 381 new PingHandle(networkingContext, request, shouldUseCredentialStorage, PingHandle::UsesAsyncCallbacks::No); 382 } 383 -
trunk/Source/WebKit/WebCoreSupport/WebResourceLoadScheduler.h
r192880 r192995 2 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 3 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> 4 Copyright (C) 2004, 2006 , 2007, 2008Apple Inc. All rights reserved.4 Copyright (C) 2004, 2006-2008, 2015 Apple Inc. All rights reserved. 5 5 Copyright (C) 2010 Google Inc. All rights reserved. 6 6 … … 21 21 */ 22 22 23 #ifndef ResourceLoadScheduler_h24 #define ResourceLoadScheduler_h23 #ifndef WebResourceLoadScheduler_h 24 #define WebResourceLoadScheduler_h 25 25 26 #include "FrameLoaderTypes.h" 27 #include "ResourceLoaderOptions.h" 28 #include "ResourceLoadPriority.h" 29 #include "Timer.h" 26 #include <WebCore/FrameLoaderTypes.h> 27 #include <WebCore/LoaderStrategy.h> 28 #include <WebCore/ResourceLoadPriority.h> 29 #include <WebCore/ResourceLoaderOptions.h> 30 #include <WebCore/Timer.h> 30 31 #include <array> 31 32 #include <wtf/Deque.h> … … 36 37 #include <wtf/text/WTFString.h> 37 38 38 namespace WebCore { 39 class WebResourceLoadScheduler; 39 40 40 class CachedResource; 41 class Frame; 42 class URL; 43 class NetscapePlugInStreamLoader; 44 class NetscapePlugInStreamLoaderClient; 45 class ResourceLoader; 46 class ResourceRequest; 47 class SubresourceLoader; 41 WebResourceLoadScheduler& webResourceLoadScheduler(); 48 42 49 class ResourceLoadScheduler{50 WTF_MAKE_NONCOPYABLE( ResourceLoadScheduler); WTF_MAKE_FAST_ALLOCATED;43 class WebResourceLoadScheduler : public WebCore::LoaderStrategy { 44 WTF_MAKE_NONCOPYABLE(WebResourceLoadScheduler); WTF_MAKE_FAST_ALLOCATED; 51 45 public: 52 W EBCORE_EXPORT friend ResourceLoadScheduler* resourceLoadScheduler();46 WebResourceLoadScheduler(); 53 47 54 WEBCORE_EXPORT virtual RefPtr<SubresourceLoader> scheduleSubresourceLoad(Frame*, CachedResource*, const ResourceRequest&, const ResourceLoaderOptions&);55 WEBCORE_EXPORT virtual RefPtr<NetscapePlugInStreamLoader> schedulePluginStreamLoad(Frame*, NetscapePlugInStreamLoaderClient*, const ResourceRequest&);56 WEBCORE_EXPORT virtual void remove(ResourceLoader*);57 v irtual void setDefersLoading(ResourceLoader*, bool);58 v irtual void crossOriginRedirectReceived(ResourceLoader*, const URL& redirectURL);48 RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame*, WebCore::CachedResource*, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override; 49 void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>&) override; 50 void remove(WebCore::ResourceLoader*) override; 51 void setDefersLoading(WebCore::ResourceLoader*, bool) override; 52 void crossOriginRedirectReceived(WebCore::ResourceLoader*, const WebCore::URL& redirectURL) override; 59 53 60 WEBCORE_EXPORT virtual void servePendingRequests(ResourceLoadPriority minimumPriority = ResourceLoadPriority::VeryLow); 61 WEBCORE_EXPORT virtual void suspendPendingRequests(); 62 WEBCORE_EXPORT virtual void resumePendingRequests(); 63 54 void servePendingRequests(WebCore::ResourceLoadPriority minimumPriority = WebCore::ResourceLoadPriority::VeryLow) override; 55 void suspendPendingRequests() override; 56 void resumePendingRequests() override; 57 58 void createPingHandle(WebCore::NetworkingContext*, WebCore::ResourceRequest&, bool shouldUseCredentialStorage) override; 59 64 60 bool isSerialLoadingEnabled() const { return m_isSerialLoadingEnabled; } 65 v irtual void setSerialLoadingEnabled(bool b) { m_isSerialLoadingEnabled = b; }61 void setSerialLoadingEnabled(bool b) { m_isSerialLoadingEnabled = b; } 66 62 67 class Suspender { 68 public: 69 explicit Suspender(ResourceLoadScheduler& scheduler) : m_scheduler(scheduler) { m_scheduler.suspendPendingRequests(); } 70 ~Suspender() { m_scheduler.resumePendingRequests(); } 71 private: 72 ResourceLoadScheduler& m_scheduler; 73 }; 63 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame*, WebCore::NetscapePlugInStreamLoaderClient*, const WebCore::ResourceRequest&); 74 64 75 65 protected: 76 WEBCORE_EXPORT ResourceLoadScheduler(); 77 WEBCORE_EXPORT virtual ~ResourceLoadScheduler(); 66 virtual ~WebResourceLoadScheduler(); 78 67 79 68 private: 80 void scheduleLoad( ResourceLoader*);69 void scheduleLoad(WebCore::ResourceLoader*); 81 70 void scheduleServePendingRequests(); 82 71 void requestTimerFired(); … … 91 80 92 81 const String& name() const { return m_name; } 93 void schedule( ResourceLoader*, ResourceLoadPriority =ResourceLoadPriority::VeryLow);94 void addLoadInProgress( ResourceLoader*);95 void remove( ResourceLoader*);82 void schedule(WebCore::ResourceLoader*, WebCore::ResourceLoadPriority = WebCore::ResourceLoadPriority::VeryLow); 83 void addLoadInProgress(WebCore::ResourceLoader*); 84 void remove(WebCore::ResourceLoader*); 96 85 bool hasRequests() const; 97 bool limitRequests( ResourceLoadPriority) const;86 bool limitRequests(WebCore::ResourceLoadPriority) const; 98 87 99 typedef Deque<RefPtr< ResourceLoader>> RequestQueue;100 RequestQueue& requestsPending( ResourceLoadPriority priority) { return m_requestsPending[priorityToIndex(priority)]; }88 typedef Deque<RefPtr<WebCore::ResourceLoader>> RequestQueue; 89 RequestQueue& requestsPending(WebCore::ResourceLoadPriority priority) { return m_requestsPending[priorityToIndex(priority)]; } 101 90 102 91 private: 103 static unsigned priorityToIndex( ResourceLoadPriority);92 static unsigned priorityToIndex(WebCore::ResourceLoadPriority); 104 93 105 std::array<RequestQueue, resourceLoadPriorityCount> m_requestsPending;106 typedef HashSet<RefPtr< ResourceLoader>> RequestMap;94 std::array<RequestQueue, WebCore::resourceLoadPriorityCount> m_requestsPending; 95 typedef HashSet<RefPtr<WebCore::ResourceLoader>> RequestMap; 107 96 RequestMap m_requestsLoading; 108 97 const String m_name; … … 115 104 }; 116 105 117 HostInformation* hostForURL(const URL&, CreateHostPolicy = FindOnly);118 WEBCORE_EXPORT void servePendingRequests(HostInformation*, ResourceLoadPriority);106 HostInformation* hostForURL(const WebCore::URL&, CreateHostPolicy = FindOnly); 107 WEBCORE_EXPORT void servePendingRequests(HostInformation*, WebCore::ResourceLoadPriority); 119 108 120 109 typedef HashMap<String, HostInformation*, StringHash> HostMap; … … 122 111 HostInformation* m_nonHTTPProtocolHost; 123 112 124 Timer m_requestTimer;113 WebCore::Timer m_requestTimer; 125 114 126 115 unsigned m_suspendPendingRequestsCount; … … 128 117 }; 129 118 130 WEBCORE_EXPORT ResourceLoadScheduler* resourceLoadScheduler();131 132 }133 134 119 #endif -
trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj
r188662 r192995 315 315 <ClCompile Include="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp" /> 316 316 <ClCompile Include="..\..\WebCoreSupport\WebViewGroup.cpp" /> 317 <ClCompile Include="..\..\WebCoreSupport\WebResourceLoadScheduler.cpp" /> 317 318 <ClCompile Include="..\..\win\Plugins\npapi.cpp" /> 318 319 <ClCompile Include="..\..\win\Plugins\PluginDatabase.cpp" /> … … 470 471 <ClInclude Include="..\..\Storage\WebStorageNamespaceProvider.h" /> 471 472 <ClInclude Include="..\..\WebCoreSupport\WebViewGroup.h" /> 473 <ClInclude Include="..\..\WebCoreSupport\WebResourceLoadScheduler.h" /> 472 474 <ClInclude Include="..\..\win\Plugins\PluginDatabase.h" /> 473 475 <ClInclude Include="..\..\win\Plugins\PluginDebug.h" /> -
trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj.filters
r186899 r192995 339 339 <Filter>Sources</Filter> 340 340 </ClCompile> 341 <ClCompile Include="..\..\WebCoreSupport\WebResourceLoadScheduler.cpp"> 342 <Filter>Sources</Filter> 343 </ClCompile> 341 344 <ClCompile Include="..\..\win\WebCoreSupport\WebVisitedLinkStore.cpp"> 342 345 <Filter>WebCoreSupport</Filter> … … 667 670 </ClInclude> 668 671 <ClInclude Include="..\..\WebCoreSupport\WebViewGroup.h"> 672 <Filter>Header Files</Filter> 673 </ClInclude> 674 <ClInclude Include="..\..\WebCoreSupport\WebResourceLoadScheduler.h"> 669 675 <Filter>Header Files</Filter> 670 676 </ClInclude> -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r190201 r192995 456 456 E169836211346D1B00894115 /* ProxyRuntimeObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E169836111346D1B00894115 /* ProxyRuntimeObject.h */; }; 457 457 E169836C11346D5600894115 /* ProxyRuntimeObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = E169836B11346D5600894115 /* ProxyRuntimeObject.mm */; }; 458 E4AEF97B1C0DF4BC00B01727 /* WebResourceLoadScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4AEF9791C0DF4BC00B01727 /* WebResourceLoadScheduler.cpp */; }; 459 E4AEF97C1C0DF4BC00B01727 /* WebResourceLoadScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = E4AEF97A1C0DF4BC00B01727 /* WebResourceLoadScheduler.h */; }; 458 460 ED5B9524111B725A00472298 /* WebLocalizableStrings.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED5B9523111B725A00472298 /* WebLocalizableStrings.mm */; }; 459 461 ED7F6D8B0980683500C235ED /* WebNSDataExtrasPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7F6D8A0980683500C235ED /* WebNSDataExtrasPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 869 871 E169836111346D1B00894115 /* ProxyRuntimeObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyRuntimeObject.h; sourceTree = "<group>"; }; 870 872 E169836B11346D5600894115 /* ProxyRuntimeObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ProxyRuntimeObject.mm; sourceTree = "<group>"; }; 873 E4AEF9791C0DF4BC00B01727 /* WebResourceLoadScheduler.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = WebResourceLoadScheduler.cpp; path = WebCoreSupport/WebResourceLoadScheduler.cpp; sourceTree = SOURCE_ROOT; }; 874 E4AEF97A1C0DF4BC00B01727 /* WebResourceLoadScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebResourceLoadScheduler.h; path = WebCoreSupport/WebResourceLoadScheduler.h; sourceTree = SOURCE_ROOT; }; 871 875 ED21B9810528F7AA003299AC /* WebDocumentInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebDocumentInternal.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 872 876 ED2B2474033A2DA800C1A526 /* WebNSPasteboardExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebNSPasteboardExtras.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; … … 1596 1600 1A6A208C1886154600E50F5F /* WebProgressTrackerClient.h */, 1597 1601 1A6A208B1886154600E50F5F /* WebProgressTrackerClient.mm */, 1602 E4AEF9791C0DF4BC00B01727 /* WebResourceLoadScheduler.cpp */, 1603 E4AEF97A1C0DF4BC00B01727 /* WebResourceLoadScheduler.h */, 1598 1604 A5DEFC0711D5331C00885273 /* WebSecurityOrigin.mm */, 1599 1605 A5DEFC0811D5331C00885273 /* WebSecurityOriginInternal.h */, … … 1889 1895 9398107E0824BF01008DF038 /* WebNSURLExtras.h in Headers */, 1890 1896 65E0F88408500917007E5CB9 /* WebNSURLRequestExtras.h in Headers */, 1897 E4AEF97C1C0DF4BC00B01727 /* WebResourceLoadScheduler.h in Headers */, 1891 1898 65E0F9E608500F23007E5CB9 /* WebNSUserDefaultsExtras.h in Headers */, 1892 1899 939810240824BF01008DF038 /* WebNSViewExtras.h in Headers */, … … 2237 2244 A10C1D3718202FC50036883A /* WebGeolocationProviderIOS.mm in Sources */, 2238 2245 939811130824BF01008DF038 /* WebHistory.mm in Sources */, 2246 E4AEF97B1C0DF4BC00B01727 /* WebResourceLoadScheduler.cpp in Sources */, 2239 2247 939810BD0824BF01008DF038 /* WebHistoryItem.mm in Sources */, 2240 2248 1AAF5FC00EDE3A92008D883D /* WebHostedNetscapePluginView.mm in Sources */, -
trunk/Source/WebKit/mac/ChangeLog
r192937 r192995 1 2015-12-02 Antti Koivisto <antti@apple.com> 2 3 Move ResourceLoadScheduler to WebKit1 4 https://bugs.webkit.org/show_bug.cgi?id=151743 5 6 Reviewed by Alex Christensen. 7 8 * Plugins/Hosted/HostedNetscapePluginStream.mm: 9 (WebKit::HostedNetscapePluginStream::start): 10 (WebKit::HostedNetscapePluginStream::stop): 11 * Plugins/WebNetscapePluginStream.mm: 12 (WebNetscapePluginStream::start): 13 (WebNetscapePluginStream::stop): 14 * WebCoreSupport/WebPlatformStrategies.h: 15 * WebCoreSupport/WebPlatformStrategies.mm: 16 (WebPlatformStrategies::createLoaderStrategy): 17 (WebPlatformStrategies::createPasteboardStrategy): 18 (WebPlatformStrategies::createPluginStrategy): 19 (WebPlatformStrategies::createBlobRegistry): 20 (WebPlatformStrategies::cookiesForDOM): 21 * WebView/WebView.mm: 22 (-[WebView _dispatchPendingLoadRequests]): 23 (+[WebView _setLoadResourcesSerially:]): 24 (+[WebView _HTTPPipeliningEnabled]): 25 1 26 2015-12-01 Yusuke Suzuki <utatane.tea@gmail.com> 2 27 -
trunk/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm
r187886 r192995 37 37 #import "WebNSURLExtras.h" 38 38 #import "WebNSURLRequestExtras.h" 39 #import "WebResourceLoadScheduler.h" 39 40 #import <WebCore/Document.h> 40 41 #import <WebCore/DocumentLoader.h> 41 42 #import <WebCore/Frame.h> 42 43 #import <WebCore/FrameLoader.h> 43 #import <WebCore/ ResourceLoadScheduler.h>44 #import <WebCore/PlatformStrategies.h> 44 45 #import <WebCore/SecurityOrigin.h> 45 46 #import <WebCore/SecurityPolicy.h> … … 221 222 ASSERT(!m_frameLoader); 222 223 ASSERT(!m_loader); 223 224 m_loader = resourceLoadScheduler()->schedulePluginStreamLoad(core([m_instance->pluginView() webFrame]), this, m_request.get());224 225 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(core([m_instance->pluginView() webFrame]), this, m_request.get()); 225 226 } 226 227 -
trunk/Source/WebKit/mac/Plugins/WebNetscapePluginStream.mm
r187886 r192995 38 38 #import "WebNetscapePluginPackage.h" 39 39 #import "WebNetscapePluginView.h" 40 #import "WebResourceLoadScheduler.h" 40 41 #import <Foundation/NSURLResponse.h> 41 42 #import <WebCore/Document.h> … … 44 45 #import <WebCore/FrameLoader.h> 45 46 #import <WebCore/JSDOMWindowBase.h> 46 #import <WebCore/ResourceLoadScheduler.h> 47 #import <WebCore/LoaderStrategy.h> 48 #import <WebCore/PlatformStrategies.h> 47 49 #import <WebCore/SecurityOrigin.h> 48 50 #import <WebCore/SecurityPolicy.h> … … 286 288 ASSERT(!m_frameLoader); 287 289 ASSERT(!m_loader); 288 289 m_loader = resourceLoadScheduler()->schedulePluginStreamLoad(core([m_pluginView.get() webFrame]), this, m_request.get());290 291 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(core([m_pluginView.get() webFrame]), this, m_request.get()); 290 292 } 291 293 -
trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
r181562 r192995 36 36 struct PasteboardWebContent; 37 37 38 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore:: LoaderStrategy, private WebCore::PasteboardStrategy, private WebCore::PluginStrategy {38 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PasteboardStrategy, private WebCore::PluginStrategy { 39 39 public: 40 40 static void initializeIfNecessary(); … … 48 48 virtual WebCore::PasteboardStrategy* createPasteboardStrategy() override; 49 49 virtual WebCore::PluginStrategy* createPluginStrategy() override; 50 virtual WebCore::BlobRegistry* createBlobRegistry() override; 50 51 51 52 // WebCore::CookiesStrategy … … 57 58 virtual void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::URL&, const String&) override; 58 59 59 // WebCore::LoaderStrategy60 // - Using default implementation.61 60 62 61 // WebCore::PluginStrategy … … 68 67 virtual void clearPluginClientPolicies() override; 69 68 #endif 70 71 // WebCore::LoaderStrategy72 // - Using default implementation.73 69 74 70 // WebCore::PasteboardStrategy -
trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm
r187891 r192995 29 29 #import "WebPluginDatabase.h" 30 30 #import "WebPluginPackage.h" 31 #import "WebResourceLoadScheduler.h" 32 #import <WebCore/BlobRegistryImpl.h> 31 33 #import <WebCore/BlockExceptions.h> 32 34 #import <WebCore/Color.h> … … 63 65 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 64 66 { 67 return new WebResourceLoadScheduler; 68 } 69 70 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy() 71 { 65 72 return this; 66 73 } 67 74 68 P asteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()75 PluginStrategy* WebPlatformStrategies::createPluginStrategy() 69 76 { 70 77 return this; 71 78 } 72 79 73 PluginStrategy* WebPlatformStrategies::createPluginStrategy()74 { 75 return this;80 BlobRegistry* WebPlatformStrategies::createBlobRegistry() 81 { 82 return new WebCore::BlobRegistryImpl; 76 83 } 77 84 -
trunk/Source/WebKit/mac/WebView/WebView.mm
r192589 r192995 96 96 #import "WebPreferencesPrivate.h" 97 97 #import "WebProgressTrackerClient.h" 98 #import "WebResourceLoadScheduler.h" 98 99 #import "WebScriptDebugDelegate.h" 99 100 #import "WebScriptWorldInternal.h" … … 168 169 #import <WebCore/RenderWidget.h> 169 170 #import <WebCore/ResourceHandle.h> 170 #import <WebCore/ResourceLoadScheduler.h>171 171 #import <WebCore/ResourceRequest.h> 172 172 #import <WebCore/RuntimeApplicationChecks.h> … … 762 762 - (void)_dispatchPendingLoadRequests 763 763 { 764 resourceLoadScheduler()->servePendingRequests();764 webResourceLoadScheduler().servePendingRequests(); 765 765 } 766 766 … … 1617 1617 { 1618 1618 if (suspend) 1619 resourceLoadScheduler()->suspendPendingRequests();1619 webResourceLoadScheduler().suspendPendingRequests(); 1620 1620 else 1621 resourceLoadScheduler()->resumePendingRequests();1621 webResourceLoadScheduler().resumePendingRequests(); 1622 1622 } 1623 1623 … … 4483 4483 { 4484 4484 WebPlatformStrategies::initializeIfNecessary(); 4485 resourceLoadScheduler()->setSerialLoadingEnabled(serialize); 4485 4486 webResourceLoadScheduler().setSerialLoadingEnabled(serialize); 4486 4487 } 4487 4488 -
trunk/Source/WebKit/win/Plugins/PluginStream.cpp
r187886 r192995 33 33 #include "HTTPHeaderNames.h" 34 34 #include "PluginDebug.h" 35 #include "ResourceLoadScheduler.h"36 35 #include "SharedBuffer.h" 37 36 #include "SubresourceLoader.h" 37 #include "WebResourceLoadScheduler.h" 38 38 #include <wtf/StringExtras.h> 39 39 #include <wtf/text/CString.h> … … 97 97 { 98 98 ASSERT(!m_loadManually); 99 m_loader = resourceLoadScheduler()->schedulePluginStreamLoad(m_frame, this, m_resourceRequest);99 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(m_frame, this, m_resourceRequest); 100 100 } 101 101 -
trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
r181562 r192995 29 29 #include "PluginDatabase.h" 30 30 #include "WebFrameNetworkingContext.h" 31 #include "WebResourceLoadScheduler.h" 32 #include <WebCore/BlobRegistryImpl.h> 31 33 #include <WebCore/Page.h> 32 34 #include <WebCore/PageGroup.h> … … 55 57 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 56 58 { 57 return this;59 return new WebResourceLoadScheduler; 58 60 } 59 61 … … 66 68 { 67 69 return this; 70 } 71 72 BlobRegistry* WebPlatformStrategies::createBlobRegistry() 73 { 74 return new BlobRegistryImpl; 68 75 } 69 76 -
trunk/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
r181562 r192995 32 32 #include <WebCore/PluginStrategy.h> 33 33 34 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore:: LoaderStrategy, private WebCore::PluginStrategy {34 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PluginStrategy { 35 35 public: 36 36 static void initialize(); … … 44 44 virtual WebCore::PasteboardStrategy* createPasteboardStrategy(); 45 45 virtual WebCore::PluginStrategy* createPluginStrategy(); 46 virtual WebCore::BlobRegistry* createBlobRegistry(); 46 47 47 48 // WebCore::CookiesStrategy -
trunk/Source/WebKit/win/WebView.cpp
r192381 r192995 35 35 #include "PluginDatabase.h" 36 36 #include "PluginView.h" 37 #include "ResourceLoadScheduler.h"38 37 #include "SoftLinking.h" 39 38 #include "SubframeLoader.h" … … 68 67 #include "WebPlatformStrategies.h" 69 68 #include "WebPreferences.h" 69 #include "WebResourceLoadScheduler.h" 70 70 #include "WebScriptWorld.h" 71 71 #include "WebStorageNamespaceProvider.h" … … 7488 7488 { 7489 7489 WebPlatformStrategies::initialize(); 7490 resourceLoadScheduler()->setSerialLoadingEnabled(serialize);7490 webResourceLoadScheduler().setSerialLoadingEnabled(serialize); 7491 7491 return S_OK; 7492 7492 } … … 7504 7504 HRESULT WebView::dispatchPendingLoadRequests() 7505 7505 { 7506 resourceLoadScheduler()->servePendingRequests();7506 webResourceLoadScheduler().servePendingRequests(); 7507 7507 return S_OK; 7508 7508 } -
trunk/Source/WebKit2/ChangeLog
r192982 r192995 1 2015-12-02 Antti Koivisto <antti@apple.com> 2 3 Move ResourceLoadScheduler to WebKit1 4 https://bugs.webkit.org/show_bug.cgi?id=151743 5 6 Reviewed by Alex Christensen. 7 8 * NetworkProcess/NetworkProcessPlatformStrategies.cpp: 9 (WebKit::NetworkProcessPlatformStrategies::createCookiesStrategy): 10 (WebKit::NetworkProcessPlatformStrategies::createLoaderStrategy): 11 (WebKit::NetworkProcessPlatformStrategies::createPasteboardStrategy): 12 (WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): 13 (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): 14 (WebKit::NetworkProcessPlatformStrategies::resourceLoadScheduler): Deleted. 15 (WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously): Deleted. 16 * NetworkProcess/NetworkProcessPlatformStrategies.h: 17 * WebProcess/InjectedBundle/InjectedBundle.cpp: 18 * WebProcess/Network/WebResourceLoadScheduler.cpp: 19 (WebKit::WebResourceLoadScheduler::~WebResourceLoadScheduler): 20 (WebKit::WebResourceLoadScheduler::loadResource): 21 (WebKit::WebResourceLoadScheduler::resumePendingRequests): 22 (WebKit::WebResourceLoadScheduler::networkProcessCrashed): 23 (WebKit::WebResourceLoadScheduler::loadResourceSynchronously): 24 (WebKit::WebResourceLoadScheduler::createPingHandle): 25 (WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad): Deleted. 26 (WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled): Deleted. 27 * WebProcess/Network/WebResourceLoadScheduler.h: 28 (WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier): 29 * WebProcess/Plugins/PluginView.cpp: 30 (WebKit::PluginView::Stream::start): 31 (WebKit::PluginView::Stream::cancel): 32 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: 33 (WebKit::WebPlatformStrategies::createLoaderStrategy): 34 (WebKit::WebPlatformStrategies::createPasteboardStrategy): 35 (WebKit::WebPlatformStrategies::createPluginStrategy): 36 (WebKit::WebPlatformStrategies::createBlobRegistry): 37 (WebKit::WebPlatformStrategies::cookiesForDOM): 38 (WebKit::WebPlatformStrategies::deleteCookie): 39 (WebKit::WebPlatformStrategies::refreshPlugins): 40 (WebKit::WebPlatformStrategies::resourceLoadScheduler): Deleted. 41 (WebKit::WebPlatformStrategies::loadResourceSynchronously): Deleted. 42 (WebKit::WebPlatformStrategies::createPingHandle): Deleted. 43 * WebProcess/WebCoreSupport/WebPlatformStrategies.h: 44 1 45 2015-12-02 Alex Christensen <achristensen@webkit.org> 2 46 -
trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp
r178310 r192995 42 42 CookiesStrategy* NetworkProcessPlatformStrategies::createCookiesStrategy() 43 43 { 44 return 0;44 return nullptr; 45 45 } 46 46 47 47 LoaderStrategy* NetworkProcessPlatformStrategies::createLoaderStrategy() 48 48 { 49 return this;49 return nullptr; 50 50 } 51 51 52 52 PasteboardStrategy* NetworkProcessPlatformStrategies::createPasteboardStrategy() 53 53 { 54 return 0;54 return nullptr; 55 55 } 56 56 57 57 PluginStrategy* NetworkProcessPlatformStrategies::createPluginStrategy() 58 58 { 59 return 0; 60 } 61 62 ResourceLoadScheduler* NetworkProcessPlatformStrategies::resourceLoadScheduler() 63 { 64 ASSERT_NOT_REACHED(); 65 return 0; 66 } 67 68 void NetworkProcessPlatformStrategies::loadResourceSynchronously(NetworkingContext*, unsigned long, const ResourceRequest&, StoredCredentials, ClientCredentialPolicy, ResourceError&, ResourceResponse&, Vector<char>&) 69 { 70 ASSERT_NOT_REACHED(); 59 return nullptr; 71 60 } 72 61 -
trunk/Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.h
r178310 r192995 32 32 namespace WebKit { 33 33 34 class NetworkProcessPlatformStrategies : public WebCore::PlatformStrategies , private WebCore::LoaderStrategy{34 class NetworkProcessPlatformStrategies : public WebCore::PlatformStrategies { 35 35 public: 36 36 static void initialize(); … … 38 38 private: 39 39 // WebCore::PlatformStrategies 40 virtual WebCore::CookiesStrategy* createCookiesStrategy() override; 41 virtual WebCore::LoaderStrategy* createLoaderStrategy() override; 42 virtual WebCore::PasteboardStrategy* createPasteboardStrategy() override; 43 virtual WebCore::PluginStrategy* createPluginStrategy() override; 44 45 // WebCore::LoaderStrategy 46 virtual WebCore::ResourceLoadScheduler* resourceLoadScheduler() override; 47 virtual void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long resourceLoadIdentifier, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) override; 48 virtual WebCore::BlobRegistry* createBlobRegistry() override; 40 WebCore::CookiesStrategy* createCookiesStrategy() override; 41 WebCore::LoaderStrategy* createLoaderStrategy() override; 42 WebCore::PasteboardStrategy* createPasteboardStrategy() override; 43 WebCore::PluginStrategy* createPluginStrategy() override; 44 WebCore::BlobRegistry* createBlobRegistry() override; 49 45 }; 50 46 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp
r192093 r192995 67 67 #include <WebCore/PrintContext.h> 68 68 #include <WebCore/ResourceHandle.h> 69 #include <WebCore/ResourceLoadScheduler.h>70 69 #include <WebCore/ScriptController.h> 71 70 #include <WebCore/SecurityOrigin.h> -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp
r192697 r192995 27 27 #include "WebResourceLoadScheduler.h" 28 28 29 #include "HangDetectionDisabler.h" 29 30 #include "Logging.h" 30 31 #include "NetworkConnectionToWebProcessMessages.h" … … 36 37 #include "WebFrame.h" 37 38 #include "WebFrameLoaderClient.h" 39 #include "WebFrameNetworkingContext.h" 38 40 #include "WebPage.h" 39 41 #include "WebProcess.h" … … 46 48 #include <WebCore/FrameLoader.h> 47 49 #include <WebCore/NetscapePlugInStreamLoader.h> 50 #include <WebCore/PlatformStrategies.h> 48 51 #include <WebCore/ReferrerPolicy.h> 49 52 #include <WebCore/ResourceLoader.h> … … 66 69 } 67 70 68 RefPtr<SubresourceLoader> WebResourceLoadScheduler:: scheduleSubresourceLoad(Frame* frame, CachedResource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options)71 RefPtr<SubresourceLoader> WebResourceLoadScheduler::loadResource(Frame* frame, CachedResource* resource, const ResourceRequest& request, const ResourceLoaderOptions& options) 69 72 { 70 73 RefPtr<SubresourceLoader> loader = SubresourceLoader::create(frame, resource, request, options); … … 270 273 } 271 274 272 void WebResourceLoadScheduler::setSerialLoadingEnabled(bool)273 {274 // Network process does not reorder loads.275 }276 277 275 void WebResourceLoadScheduler::networkProcessCrashed() 278 276 { … … 284 282 } 285 283 284 void WebResourceLoadScheduler::loadResourceSynchronously(NetworkingContext* context, unsigned long resourceLoadIdentifier, const ResourceRequest& request, StoredCredentials storedCredentials, ClientCredentialPolicy clientCredentialPolicy, ResourceError& error, ResourceResponse& response, Vector<char>& data) 285 { 286 WebFrameNetworkingContext* webContext = static_cast<WebFrameNetworkingContext*>(context); 287 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient. 288 // EmptyFrameLoaderClient shouldn't exist and everything should be using a WebFrameLoaderClient, 289 // but in the meantime we have to make sure not to mis-cast. 290 WebFrameLoaderClient* webFrameLoaderClient = webContext->webFrameLoaderClient(); 291 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : 0; 292 WebPage* webPage = webFrame ? webFrame->page() : 0; 293 294 NetworkResourceLoadParameters loadParameters; 295 loadParameters.identifier = resourceLoadIdentifier; 296 loadParameters.webPageID = webPage ? webPage->pageID() : 0; 297 loadParameters.webFrameID = webFrame ? webFrame->frameID() : 0; 298 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionID::defaultSessionID(); 299 loadParameters.request = request; 300 loadParameters.contentSniffingPolicy = SniffContent; 301 loadParameters.allowStoredCredentials = storedCredentials; 302 loadParameters.clientCredentialPolicy = clientCredentialPolicy; 303 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = context->shouldClearReferrerOnHTTPSToHTTPRedirect(); 304 305 data.resize(0); 306 307 HangDetectionDisabler hangDetectionDisabler; 308 309 if (!WebProcess::singleton().networkConnection()->connection()->sendSync(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad(loadParameters), Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::Reply(error, response, data), 0)) { 310 response = ResourceResponse(); 311 error = internalError(request.url()); 312 } 313 } 314 315 void WebResourceLoadScheduler::createPingHandle(NetworkingContext* networkingContext, ResourceRequest& request, bool shouldUseCredentialStorage) 316 { 317 // It's possible that call to createPingHandle might be made during initial empty Document creation before a NetworkingContext exists. 318 // It is not clear that we should send ping loads during that process anyways. 319 if (!networkingContext) 320 return; 321 322 WebFrameNetworkingContext* webContext = static_cast<WebFrameNetworkingContext*>(networkingContext); 323 WebFrameLoaderClient* webFrameLoaderClient = webContext->webFrameLoaderClient(); 324 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : nullptr; 325 WebPage* webPage = webFrame ? webFrame->page() : nullptr; 326 327 NetworkResourceLoadParameters loadParameters; 328 loadParameters.request = request; 329 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionID::defaultSessionID(); 330 loadParameters.allowStoredCredentials = shouldUseCredentialStorage ? AllowStoredCredentials : DoNotAllowStoredCredentials; 331 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = networkingContext->shouldClearReferrerOnHTTPSToHTTPRedirect(); 332 333 WebProcess::singleton().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::LoadPing(loadParameters), 0); 334 } 335 336 286 337 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h
r192697 r192995 28 28 29 29 #include "WebResourceLoader.h" 30 #include <WebCore/ResourceLoadPriority.h> 31 #include <WebCore/ResourceLoadScheduler.h> 30 #include <WebCore/LoaderStrategy.h> 32 31 #include <WebCore/ResourceLoader.h> 32 #include <wtf/HashSet.h> 33 33 #include <wtf/RunLoop.h> 34 34 … … 36 36 37 37 class NetworkProcessConnection; 38 class WebResourceLoadScheduler; 38 39 typedef uint64_t ResourceLoadIdentifier; 39 40 40 class WebResourceLoadScheduler : public WebCore:: ResourceLoadScheduler{41 class WebResourceLoadScheduler : public WebCore::LoaderStrategy { 41 42 WTF_MAKE_NONCOPYABLE(WebResourceLoadScheduler); WTF_MAKE_FAST_ALLOCATED; 42 43 public: … … 44 45 virtual ~WebResourceLoadScheduler(); 45 46 46 virtual RefPtr<WebCore::SubresourceLoader> scheduleSubresourceLoad(WebCore::Frame*, WebCore::CachedResource*, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override;47 virtual RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame*, WebCore::NetscapePlugInStreamLoaderClient*, const WebCore::ResourceRequest&) override;48 47 virtual RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame*, WebCore::CachedResource*, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override; 48 virtual void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long resourceLoadIdentifier, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) override; 49 49 50 virtual void remove(WebCore::ResourceLoader*) override; 50 51 virtual void setDefersLoading(WebCore::ResourceLoader*, bool) override; … … 56 57 virtual void resumePendingRequests() override; 57 58 58 virtual void setSerialLoadingEnabled(bool) override;59 virtual void createPingHandle(WebCore::NetworkingContext*, WebCore::ResourceRequest&, bool shouldUseCredentialStorage) override; 59 60 60 61 WebResourceLoader* webResourceLoaderForIdentifier(ResourceLoadIdentifier identifier) const { return m_webResourceLoaders.get(identifier); } 62 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame*, WebCore::NetscapePlugInStreamLoaderClient*, const WebCore::ResourceRequest&); 61 63 62 64 void networkProcessCrashed(); -
trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
r191922 r192995 35 35 #include "WebPageProxyMessages.h" 36 36 #include "WebProcess.h" 37 #include "WebResourceLoadScheduler.h" 37 38 #include <WebCore/BitmapImage.h> 38 39 #include <WebCore/Chrome.h> … … 63 64 #include <WebCore/ProxyServer.h> 64 65 #include <WebCore/RenderEmbeddedObject.h> 65 #include <WebCore/ResourceLoadScheduler.h>66 66 #include <WebCore/ScriptController.h> 67 67 #include <WebCore/ScrollView.h> … … 161 161 ASSERT(frame); 162 162 163 m_loader = resourceLoadScheduler()->schedulePluginStreamLoad(frame, this, m_request);163 m_loader = WebProcess::singleton().webResourceLoadScheduler().schedulePluginStreamLoad(frame, this, m_request); 164 164 } 165 165 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
r192796 r192995 41 41 #include "WebFrame.h" 42 42 #include "WebFrameLoaderClient.h" 43 #include "WebFrameNetworkingContext.h"44 43 #include "WebIDBFactoryBackend.h" 45 44 #include "WebPage.h" … … 93 92 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 94 93 { 94 return &WebProcess::singleton().webResourceLoadScheduler(); 95 } 96 97 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy() 98 { 95 99 return this; 96 100 } 97 101 98 P asteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()102 PluginStrategy* WebPlatformStrategies::createPluginStrategy() 99 103 { 100 104 return this; 101 105 } 102 106 103 PluginStrategy* WebPlatformStrategies::createPluginStrategy()104 { 105 return this;107 BlobRegistry* WebPlatformStrategies::createBlobRegistry() 108 { 109 return new BlobRegistryProxy; 106 110 } 107 111 … … 147 151 { 148 152 WebProcess::singleton().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::DeleteCookie(SessionTracker::sessionID(session), url, cookieName), 0); 149 }150 151 // LoaderStrategy152 153 ResourceLoadScheduler* WebPlatformStrategies::resourceLoadScheduler()154 {155 return &WebProcess::singleton().webResourceLoadScheduler();156 }157 158 void WebPlatformStrategies::loadResourceSynchronously(NetworkingContext* context, unsigned long resourceLoadIdentifier, const ResourceRequest& request, StoredCredentials storedCredentials, ClientCredentialPolicy clientCredentialPolicy, ResourceError& error, ResourceResponse& response, Vector<char>& data)159 {160 WebFrameNetworkingContext* webContext = static_cast<WebFrameNetworkingContext*>(context);161 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient.162 // EmptyFrameLoaderClient shouldn't exist and everything should be using a WebFrameLoaderClient,163 // but in the meantime we have to make sure not to mis-cast.164 WebFrameLoaderClient* webFrameLoaderClient = webContext->webFrameLoaderClient();165 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : 0;166 WebPage* webPage = webFrame ? webFrame->page() : 0;167 168 NetworkResourceLoadParameters loadParameters;169 loadParameters.identifier = resourceLoadIdentifier;170 loadParameters.webPageID = webPage ? webPage->pageID() : 0;171 loadParameters.webFrameID = webFrame ? webFrame->frameID() : 0;172 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionID::defaultSessionID();173 loadParameters.request = request;174 loadParameters.contentSniffingPolicy = SniffContent;175 loadParameters.allowStoredCredentials = storedCredentials;176 loadParameters.clientCredentialPolicy = clientCredentialPolicy;177 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = context->shouldClearReferrerOnHTTPSToHTTPRedirect();178 179 data.resize(0);180 181 HangDetectionDisabler hangDetectionDisabler;182 183 if (!WebProcess::singleton().networkConnection()->connection()->sendSync(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad(loadParameters), Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::Reply(error, response, data), 0)) {184 response = ResourceResponse();185 error = internalError(request.url());186 }187 }188 189 void WebPlatformStrategies::createPingHandle(NetworkingContext* networkingContext, ResourceRequest& request, bool shouldUseCredentialStorage)190 {191 // It's possible that call to createPingHandle might be made during initial empty Document creation before a NetworkingContext exists.192 // It is not clear that we should send ping loads during that process anyways.193 if (!networkingContext)194 return;195 196 WebFrameNetworkingContext* webContext = static_cast<WebFrameNetworkingContext*>(networkingContext);197 WebFrameLoaderClient* webFrameLoaderClient = webContext->webFrameLoaderClient();198 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : nullptr;199 WebPage* webPage = webFrame ? webFrame->page() : nullptr;200 201 NetworkResourceLoadParameters loadParameters;202 loadParameters.request = request;203 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionID::defaultSessionID();204 loadParameters.allowStoredCredentials = shouldUseCredentialStorage ? AllowStoredCredentials : DoNotAllowStoredCredentials;205 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = networkingContext->shouldClearReferrerOnHTTPSToHTTPRedirect();206 207 WebProcess::singleton().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::LoadPing(loadParameters), 0);208 }209 210 BlobRegistry* WebPlatformStrategies::createBlobRegistry()211 {212 return new BlobRegistryProxy;213 153 } 214 154 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h
r192697 r192995 37 37 namespace WebKit { 38 38 39 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore:: LoaderStrategy, private WebCore::PasteboardStrategy, private WebCore::PluginStrategy {39 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PasteboardStrategy, private WebCore::PluginStrategy { 40 40 friend class NeverDestroyed<WebPlatformStrategies>; 41 41 public: … … 50 50 virtual WebCore::PasteboardStrategy* createPasteboardStrategy() override; 51 51 virtual WebCore::PluginStrategy* createPluginStrategy() override; 52 virtual WebCore::BlobRegistry* createBlobRegistry() override; 52 53 53 54 // WebCore::CookiesStrategy … … 58 59 virtual bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&) override; 59 60 virtual void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::URL&, const String&) override; 60 61 // WebCore::LoaderStrategy62 virtual WebCore::ResourceLoadScheduler* resourceLoadScheduler() override;63 virtual void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long resourceLoadIdentifier, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) override;64 virtual WebCore::BlobRegistry* createBlobRegistry() override;65 virtual void createPingHandle(WebCore::NetworkingContext*, WebCore::ResourceRequest&, bool shouldUseCredentialStorage) override;66 61 67 62 // WebCore::PluginStrategy
Note:
See TracChangeset
for help on using the changeset viewer.