Changeset 223933 in webkit
- Timestamp:
- Oct 24, 2017 3:20:59 PM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r223930 r223933 1 2017-10-24 Alex Christensen <achristensen@webkit.org> 2 3 Optionally store entire ResourceRequest for ping loads 4 https://bugs.webkit.org/show_bug.cgi?id=178756 5 6 Reviewed by Tim Horton. 7 8 No change in behavior. 9 This uses less memory in the common loading case. 10 This will be needed for moving appcache loading to the Networking Process. 11 See https://bugs.webkit.org/show_bug.cgi?id=178540 12 13 * loader/cache/CachedResource.cpp: 14 (WebCore::CachedResource::load): 15 * loader/cache/CachedResource.h: 16 (WebCore::CachedResource::setOriginalRequest): 17 (WebCore::CachedResource::originalRequest const): 18 (WebCore::CachedResource::setOriginalRequestHeaders): Deleted. 19 * loader/cache/CachedResourceLoader.cpp: 20 (WebCore::CachedResourceLoader::requestResource): 21 1 22 2017-10-24 Andy Estes <aestes@apple.com> 2 23 -
trunk/Source/WebCore/loader/cache/CachedResource.cpp
r223476 r223933 270 270 // FIXME: We should not special-case Beacon here. 271 271 if (shouldUsePingLoad(type())) { 272 ASSERT(m_originalRequest Headers);272 ASSERT(m_originalRequest); 273 273 CachedResourceHandle<CachedResource> protectedThis(this); 274 274 … … 277 277 InspectorInstrumentation::willSendRequestOfType(&frame, identifier, frameLoader.activeDocumentLoader(), request, InspectorInstrumentation::LoadType::Beacon); 278 278 279 platformStrategies()->loaderStrategy()->startPingLoad(frame, request, *m_originalRequestHeaders, m_options, [this, protectedThis = WTFMove(protectedThis), protectedFrame = makeRef(frame), identifier] (const ResourceError& error, const ResourceResponse& response) {279 platformStrategies()->loaderStrategy()->startPingLoad(frame, request, m_originalRequest->httpHeaderFields(), m_options, [this, protectedThis = WTFMove(protectedThis), protectedFrame = makeRef(frame), identifier] (const ResourceError& error, const ResourceResponse& response) { 280 280 if (!response.isNull()) 281 281 InspectorInstrumentation::didReceiveResourceResponse(protectedFrame, identifier, protectedFrame->loader().activeDocumentLoader(), response, nullptr); -
trunk/Source/WebCore/loader/cache/CachedResource.h
r223091 r223933 284 284 static ResourceLoadPriority defaultPriorityForResourceType(Type); 285 285 286 void setOriginalRequestHeaders(std::optional<HTTPHeaderMap>&& originalRequestHeaders) { m_originalRequestHeaders = WTFMove(originalRequestHeaders); } 286 void setOriginalRequest(std::unique_ptr<ResourceRequest>&& originalRequest) { m_originalRequest = WTFMove(originalRequest); } 287 const std::unique_ptr<ResourceRequest>& originalRequest() const { return m_originalRequest; } 287 288 288 289 protected: … … 301 302 HashCountedSet<CachedResourceClient*> m_clients; 302 303 ResourceRequest m_resourceRequest; 303 std:: optional<HTTPHeaderMap> m_originalRequestHeaders; // Needed by Ping loads.304 std::unique_ptr<ResourceRequest> m_originalRequest; // Needed by Ping loads. 304 305 RefPtr<SubresourceLoader> m_loader; 305 306 ResourceLoaderOptions m_options; -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r223909 r223933 714 714 ResourceErrorOr<CachedResourceHandle<CachedResource>> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest&& request, ForPreload forPreload, DeferOption defer) 715 715 { 716 std:: optional<HTTPHeaderMap> originalRequestHeaders;716 std::unique_ptr<ResourceRequest> originalRequest; 717 717 if (CachedResource::shouldUsePingLoad(type)) 718 originalRequest Headers = request.resourceRequest().httpHeaderFields();718 originalRequest = std::make_unique<ResourceRequest>(request.resourceRequest()); 719 719 720 720 if (Document* document = this->document()) … … 861 861 } 862 862 ASSERT(resource); 863 resource->setOriginalRequest Headers(WTFMove(originalRequestHeaders));863 resource->setOriginalRequest(WTFMove(originalRequest)); 864 864 865 865 if (forPreload == ForPreload::No && resource->loader() && resource->ignoreForRequestCount()) {
Note: See TracChangeset
for help on using the changeset viewer.