Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: Source/core/fetch/ResourceFetcher.cpp

Issue 360233005: Replace 'ResourceRequest::TargetType' with 'ResourceRequest::RequestContext'. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 static void reportResourceTiming(ResourceTimingInfo* info, Document* initiatorDo cument, bool isMainResource) 179 static void reportResourceTiming(ResourceTimingInfo* info, Document* initiatorDo cument, bool isMainResource)
180 { 180 {
181 if (initiatorDocument && isMainResource) 181 if (initiatorDocument && isMainResource)
182 initiatorDocument = initiatorDocument->parentDocument(); 182 initiatorDocument = initiatorDocument->parentDocument();
183 if (!initiatorDocument || !initiatorDocument->loader()) 183 if (!initiatorDocument || !initiatorDocument->loader())
184 return; 184 return;
185 if (LocalDOMWindow* initiatorWindow = initiatorDocument->domWindow()) 185 if (LocalDOMWindow* initiatorWindow = initiatorDocument->domWindow())
186 initiatorWindow->performance().addResourceTiming(*info, initiatorDocumen t); 186 initiatorWindow->performance().addResourceTiming(*info, initiatorDocumen t);
187 } 187 }
188 188
189 static ResourceRequest::TargetType requestTargetType(const ResourceFetcher* fetc her, const ResourceRequest& request, Resource::Type type) 189 static ResourceRequest::RequestContext requestContextFromType(const ResourceFetc her* fetcher, Resource::Type type)
190 { 190 {
191 switch (type) { 191 switch (type) {
192 case Resource::MainResource: 192 case Resource::MainResource:
193 if (fetcher->frame()->tree().parent()) 193 if (fetcher->frame()->tree().parent())
194 return ResourceRequest::TargetIsSubframe; 194 return ResourceRequest::SubFrameContext;
195 return ResourceRequest::TargetIsMainFrame; 195 return ResourceRequest::MainFrameContext;
196 case Resource::XSLStyleSheet: 196 case Resource::XSLStyleSheet:
197 ASSERT(RuntimeEnabledFeatures::xsltEnabled()); 197 ASSERT(RuntimeEnabledFeatures::xsltEnabled());
198 case Resource::CSSStyleSheet: 198 case Resource::CSSStyleSheet:
199 return ResourceRequest::TargetIsStyleSheet; 199 return ResourceRequest::StyleContext;
200 case Resource::Script: 200 case Resource::Script:
201 return ResourceRequest::TargetIsScript; 201 return ResourceRequest::ScriptContext;
202 case Resource::Font: 202 case Resource::Font:
203 return ResourceRequest::TargetIsFont; 203 return ResourceRequest::FontContext;
204 case Resource::Image: 204 case Resource::Image:
205 return ResourceRequest::TargetIsImage; 205 return ResourceRequest::ImageContext;
206 case Resource::Raw: 206 case Resource::Raw:
207 return ResourceRequest::SubresourceContext;
207 case Resource::ImportResource: 208 case Resource::ImportResource:
208 return ResourceRequest::TargetIsSubresource; 209 return ResourceRequest::ScriptContext;
209 case Resource::LinkPrefetch: 210 case Resource::LinkPrefetch:
210 return ResourceRequest::TargetIsPrefetch; 211 return ResourceRequest::PrefetchContext;
211 case Resource::LinkSubresource: 212 case Resource::LinkSubresource:
212 return ResourceRequest::TargetIsSubresource; 213 return ResourceRequest::SubresourceContext;
213 case Resource::TextTrack: 214 case Resource::TextTrack:
214 return ResourceRequest::TargetIsTextTrack; 215 return ResourceRequest::TextTrackContext;
215 case Resource::SVGDocument: 216 case Resource::SVGDocument:
216 return ResourceRequest::TargetIsImage; 217 return ResourceRequest::ImageContext;
217 case Resource::Media: 218 case Resource::Media: // TODO: Split this.
218 return ResourceRequest::TargetIsMedia; 219 return ResourceRequest::VideoContext;
219 } 220 }
220 ASSERT_NOT_REACHED(); 221 ASSERT_NOT_REACHED();
221 return ResourceRequest::TargetIsSubresource; 222 return ResourceRequest::SubresourceContext;
222 } 223 }
223 224
224 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader) 225 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader)
225 : m_document(nullptr) 226 : m_document(nullptr)
226 , m_documentLoader(documentLoader) 227 , m_documentLoader(documentLoader)
227 , m_requestCount(0) 228 , m_requestCount(0)
228 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired) 229 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired)
229 , m_resourceTimingReportTimer(this, &ResourceFetcher::resourceTimingReportTi merFired) 230 , m_resourceTimingReportTimer(this, &ResourceFetcher::resourceTimingReportTi merFired)
230 , m_autoLoadImages(true) 231 , m_autoLoadImages(true)
231 , m_imagesEnabled(true) 232 , m_imagesEnabled(true)
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports; 783 HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports;
783 timingReports.swap(m_scheduledResourceTimingReports); 784 timingReports.swap(m_scheduledResourceTimingReports);
784 HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator end = timingReports.end( ); 785 HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator end = timingReports.end( );
785 for (HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator it = timingReports. begin(); it != end; ++it) { 786 for (HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator it = timingReports. begin(); it != end; ++it) {
786 RefPtr<ResourceTimingInfo> info = it->key; 787 RefPtr<ResourceTimingInfo> info = it->key;
787 bool isMainResource = it->value; 788 bool isMainResource = it->value;
788 reportResourceTiming(info.get(), document(), isMainResource); 789 reportResourceTiming(info.get(), document(), isMainResource);
789 } 790 }
790 } 791 }
791 792
792 void ResourceFetcher::determineTargetType(ResourceRequest& request, Resource::Ty pe type) 793 void ResourceFetcher::determineRequestContext(ResourceRequest& request, Resource ::Type type)
793 { 794 {
794 ResourceRequest::TargetType targetType = requestTargetType(this, request, ty pe); 795 ResourceRequest::RequestContext requestContext = requestContextFromType(this , type);
795 request.setTargetType(targetType); 796 request.setRequestContext(requestContext);
796 } 797 }
797 798
798 ResourceRequestCachePolicy ResourceFetcher::resourceRequestCachePolicy(const Res ourceRequest& request, Resource::Type type) 799 ResourceRequestCachePolicy ResourceFetcher::resourceRequestCachePolicy(const Res ourceRequest& request, Resource::Type type)
799 { 800 {
800 if (type == Resource::MainResource) { 801 if (type == Resource::MainResource) {
801 FrameLoadType frameLoadType = frame()->loader().loadType(); 802 FrameLoadType frameLoadType = frame()->loader().loadType();
802 if (request.httpMethod() == "POST" && frameLoadType == FrameLoadTypeBack Forward) 803 if (request.httpMethod() == "POST" && frameLoadType == FrameLoadTypeBack Forward)
803 return ReturnCacheDataDontLoad; 804 return ReturnCacheDataDontLoad;
804 if (!m_documentLoader->overrideEncoding().isEmpty() || frameLoadType == FrameLoadTypeBackForward) 805 if (!m_documentLoader->overrideEncoding().isEmpty() || frameLoadType == FrameLoadTypeBackForward)
805 return ReturnCacheDataElseLoad; 806 return ReturnCacheDataElseLoad;
(...skipping 21 matching lines...) Expand all
827 return UseProtocolCachePolicy; 828 return UseProtocolCachePolicy;
828 } 829 }
829 830
830 void ResourceFetcher::addAdditionalRequestHeaders(ResourceRequest& request, Reso urce::Type type) 831 void ResourceFetcher::addAdditionalRequestHeaders(ResourceRequest& request, Reso urce::Type type)
831 { 832 {
832 if (!frame()) 833 if (!frame())
833 return; 834 return;
834 835
835 if (request.cachePolicy() == UseProtocolCachePolicy) 836 if (request.cachePolicy() == UseProtocolCachePolicy)
836 request.setCachePolicy(resourceRequestCachePolicy(request, type)); 837 request.setCachePolicy(resourceRequestCachePolicy(request, type));
837 if (request.targetType() == ResourceRequest::TargetIsUnspecified) 838 if (request.requestContext() == ResourceRequest::UnspecifiedContext)
838 determineTargetType(request, type); 839 determineRequestContext(request, type);
839 if (type == Resource::LinkPrefetch || type == Resource::LinkSubresource) 840 if (type == Resource::LinkPrefetch || type == Resource::LinkSubresource)
840 request.setHTTPHeaderField("Purpose", "prefetch"); 841 request.setHTTPHeaderField("Purpose", "prefetch");
841 842
842 context().addAdditionalRequestHeaders(document(), request, (type == Resource ::MainResource) ? FetchMainResource : FetchSubresource); 843 context().addAdditionalRequestHeaders(document(), request, (type == Resource ::MainResource) ? FetchMainResource : FetchSubresource);
843 } 844 }
844 845
845 ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const Fetch Request& request, Resource* resource) 846 ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const Fetch Request& request, Resource* resource)
846 { 847 {
847 ASSERT(resource); 848 ASSERT(resource);
848 ASSERT(memoryCache()->contains(resource)); 849 ASSERT(memoryCache()->contains(resource));
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 } 1499 }
1499 } 1500 }
1500 1501
1501 void ResourceFetcher::trace(Visitor* visitor) 1502 void ResourceFetcher::trace(Visitor* visitor)
1502 { 1503 {
1503 visitor->trace(m_document); 1504 visitor->trace(m_document);
1504 ResourceLoaderHost::trace(visitor); 1505 ResourceLoaderHost::trace(visitor);
1505 } 1506 }
1506 1507
1507 } 1508 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698