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

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: Uninitialized === crash. :( 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
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/loader/BeaconLoader.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 #include "core/timing/ResourceTimingInfo.h" 59 #include "core/timing/ResourceTimingInfo.h"
60 #include "core/frame/Settings.h" 60 #include "core/frame/Settings.h"
61 #include "core/svg/graphics/SVGImageChromeClient.h" 61 #include "core/svg/graphics/SVGImageChromeClient.h"
62 #include "platform/Logging.h" 62 #include "platform/Logging.h"
63 #include "platform/RuntimeEnabledFeatures.h" 63 #include "platform/RuntimeEnabledFeatures.h"
64 #include "platform/TraceEvent.h" 64 #include "platform/TraceEvent.h"
65 #include "platform/weborigin/SecurityOrigin.h" 65 #include "platform/weborigin/SecurityOrigin.h"
66 #include "platform/weborigin/SecurityPolicy.h" 66 #include "platform/weborigin/SecurityPolicy.h"
67 #include "public/platform/Platform.h" 67 #include "public/platform/Platform.h"
68 #include "public/platform/WebURL.h" 68 #include "public/platform/WebURL.h"
69 #include "public/platform/WebURLRequest.h"
69 #include "wtf/text/CString.h" 70 #include "wtf/text/CString.h"
70 #include "wtf/text/WTFString.h" 71 #include "wtf/text/WTFString.h"
71 72
72 #define PRELOAD_DEBUG 0 73 #define PRELOAD_DEBUG 0
73 74
75 using blink::WebURLRequest;
76
74 namespace WebCore { 77 namespace WebCore {
75 78
76 static Resource* createResource(Resource::Type type, const ResourceRequest& requ est, const String& charset) 79 static Resource* createResource(Resource::Type type, const ResourceRequest& requ est, const String& charset)
77 { 80 {
78 switch (type) { 81 switch (type) {
79 case Resource::Image: 82 case Resource::Image:
80 return new ImageResource(request); 83 return new ImageResource(request);
81 case Resource::CSSStyleSheet: 84 case Resource::CSSStyleSheet:
82 return new CSSStyleSheetResource(request, charset); 85 return new CSSStyleSheetResource(request, charset);
83 case Resource::Script: 86 case Resource::Script:
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 static void reportResourceTiming(ResourceTimingInfo* info, Document* initiatorDo cument, bool isMainResource) 182 static void reportResourceTiming(ResourceTimingInfo* info, Document* initiatorDo cument, bool isMainResource)
180 { 183 {
181 if (initiatorDocument && isMainResource) 184 if (initiatorDocument && isMainResource)
182 initiatorDocument = initiatorDocument->parentDocument(); 185 initiatorDocument = initiatorDocument->parentDocument();
183 if (!initiatorDocument || !initiatorDocument->loader()) 186 if (!initiatorDocument || !initiatorDocument->loader())
184 return; 187 return;
185 if (LocalDOMWindow* initiatorWindow = initiatorDocument->domWindow()) 188 if (LocalDOMWindow* initiatorWindow = initiatorDocument->domWindow())
186 initiatorWindow->performance().addResourceTiming(*info, initiatorDocumen t); 189 initiatorWindow->performance().addResourceTiming(*info, initiatorDocumen t);
187 } 190 }
188 191
189 static ResourceRequest::TargetType requestTargetType(const ResourceFetcher* fetc her, const ResourceRequest& request, Resource::Type type) 192 static WebURLRequest::RequestContext requestContextFromType(const ResourceFetche r* fetcher, Resource::Type type)
190 { 193 {
191 switch (type) { 194 switch (type) {
192 case Resource::MainResource: 195 case Resource::MainResource:
193 if (fetcher->frame()->tree().parent()) 196 if (fetcher->frame()->tree().parent())
194 return ResourceRequest::TargetIsSubframe; 197 return WebURLRequest::RequestContextChildDocument;
195 return ResourceRequest::TargetIsMainFrame; 198 return WebURLRequest::RequestContextDocument;
196 case Resource::XSLStyleSheet: 199 case Resource::XSLStyleSheet:
197 ASSERT(RuntimeEnabledFeatures::xsltEnabled()); 200 ASSERT(RuntimeEnabledFeatures::xsltEnabled());
198 case Resource::CSSStyleSheet: 201 case Resource::CSSStyleSheet:
199 return ResourceRequest::TargetIsStyleSheet; 202 return WebURLRequest::RequestContextStyle;
200 case Resource::Script: 203 case Resource::Script:
201 return ResourceRequest::TargetIsScript; 204 return WebURLRequest::RequestContextScript;
202 case Resource::Font: 205 case Resource::Font:
203 return ResourceRequest::TargetIsFont; 206 return WebURLRequest::RequestContextFont;
204 case Resource::Image: 207 case Resource::Image:
205 return ResourceRequest::TargetIsImage; 208 return WebURLRequest::RequestContextImage;
206 case Resource::Raw: 209 case Resource::Raw:
210 return WebURLRequest::RequestContextSubresource;
207 case Resource::ImportResource: 211 case Resource::ImportResource:
208 return ResourceRequest::TargetIsSubresource; 212 return WebURLRequest::RequestContextScript;
209 case Resource::LinkPrefetch: 213 case Resource::LinkPrefetch:
210 return ResourceRequest::TargetIsPrefetch; 214 return WebURLRequest::RequestContextPrefetch;
211 case Resource::LinkSubresource: 215 case Resource::LinkSubresource:
212 return ResourceRequest::TargetIsSubresource; 216 return WebURLRequest::RequestContextSubresource;
213 case Resource::TextTrack: 217 case Resource::TextTrack:
214 return ResourceRequest::TargetIsTextTrack; 218 return WebURLRequest::RequestContextTextTrack;
215 case Resource::SVGDocument: 219 case Resource::SVGDocument:
216 return ResourceRequest::TargetIsImage; 220 return WebURLRequest::RequestContextImage;
217 case Resource::Media: 221 case Resource::Media: // TODO: Split this.
218 return ResourceRequest::TargetIsMedia; 222 return WebURLRequest::RequestContextVideo;
219 } 223 }
220 ASSERT_NOT_REACHED(); 224 ASSERT_NOT_REACHED();
221 return ResourceRequest::TargetIsSubresource; 225 return WebURLRequest::RequestContextSubresource;
222 } 226 }
223 227
224 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader) 228 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader)
225 : m_document(nullptr) 229 : m_document(nullptr)
226 , m_documentLoader(documentLoader) 230 , m_documentLoader(documentLoader)
227 , m_requestCount(0) 231 , m_requestCount(0)
228 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired) 232 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired)
229 , m_resourceTimingReportTimer(this, &ResourceFetcher::resourceTimingReportTi merFired) 233 , m_resourceTimingReportTimer(this, &ResourceFetcher::resourceTimingReportTi merFired)
230 , m_autoLoadImages(true) 234 , m_autoLoadImages(true)
231 , m_imagesEnabled(true) 235 , m_imagesEnabled(true)
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports; 775 HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports;
772 timingReports.swap(m_scheduledResourceTimingReports); 776 timingReports.swap(m_scheduledResourceTimingReports);
773 HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator end = timingReports.end( ); 777 HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator end = timingReports.end( );
774 for (HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator it = timingReports. begin(); it != end; ++it) { 778 for (HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator it = timingReports. begin(); it != end; ++it) {
775 RefPtr<ResourceTimingInfo> info = it->key; 779 RefPtr<ResourceTimingInfo> info = it->key;
776 bool isMainResource = it->value; 780 bool isMainResource = it->value;
777 reportResourceTiming(info.get(), document(), isMainResource); 781 reportResourceTiming(info.get(), document(), isMainResource);
778 } 782 }
779 } 783 }
780 784
781 void ResourceFetcher::determineTargetType(ResourceRequest& request, Resource::Ty pe type) 785 void ResourceFetcher::determineRequestContext(ResourceRequest& request, Resource ::Type type)
782 { 786 {
783 ResourceRequest::TargetType targetType = requestTargetType(this, request, ty pe); 787 WebURLRequest::RequestContext requestContext = requestContextFromType(this, type);
784 request.setTargetType(targetType); 788 request.setRequestContext(requestContext);
785 } 789 }
786 790
787 ResourceRequestCachePolicy ResourceFetcher::resourceRequestCachePolicy(const Res ourceRequest& request, Resource::Type type) 791 ResourceRequestCachePolicy ResourceFetcher::resourceRequestCachePolicy(const Res ourceRequest& request, Resource::Type type)
788 { 792 {
789 if (type == Resource::MainResource) { 793 if (type == Resource::MainResource) {
790 FrameLoadType frameLoadType = frame()->loader().loadType(); 794 FrameLoadType frameLoadType = frame()->loader().loadType();
791 if (request.httpMethod() == "POST" && frameLoadType == FrameLoadTypeBack Forward) 795 if (request.httpMethod() == "POST" && frameLoadType == FrameLoadTypeBack Forward)
792 return ReturnCacheDataDontLoad; 796 return ReturnCacheDataDontLoad;
793 if (!m_documentLoader->overrideEncoding().isEmpty() || frameLoadType == FrameLoadTypeBackForward) 797 if (!m_documentLoader->overrideEncoding().isEmpty() || frameLoadType == FrameLoadTypeBackForward)
794 return ReturnCacheDataElseLoad; 798 return ReturnCacheDataElseLoad;
(...skipping 21 matching lines...) Expand all
816 return UseProtocolCachePolicy; 820 return UseProtocolCachePolicy;
817 } 821 }
818 822
819 void ResourceFetcher::addAdditionalRequestHeaders(ResourceRequest& request, Reso urce::Type type) 823 void ResourceFetcher::addAdditionalRequestHeaders(ResourceRequest& request, Reso urce::Type type)
820 { 824 {
821 if (!frame()) 825 if (!frame())
822 return; 826 return;
823 827
824 if (request.cachePolicy() == UseProtocolCachePolicy) 828 if (request.cachePolicy() == UseProtocolCachePolicy)
825 request.setCachePolicy(resourceRequestCachePolicy(request, type)); 829 request.setCachePolicy(resourceRequestCachePolicy(request, type));
826 if (request.targetType() == ResourceRequest::TargetIsUnspecified) 830 if (request.requestContext() == WebURLRequest::RequestContextUnspecified)
827 determineTargetType(request, type); 831 determineRequestContext(request, type);
828 if (type == Resource::LinkPrefetch || type == Resource::LinkSubresource) 832 if (type == Resource::LinkPrefetch || type == Resource::LinkSubresource)
829 request.setHTTPHeaderField("Purpose", "prefetch"); 833 request.setHTTPHeaderField("Purpose", "prefetch");
830 834
831 context().addAdditionalRequestHeaders(document(), request, (type == Resource ::MainResource) ? FetchMainResource : FetchSubresource); 835 context().addAdditionalRequestHeaders(document(), request, (type == Resource ::MainResource) ? FetchMainResource : FetchSubresource);
832 } 836 }
833 837
834 ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const Fetch Request& request, Resource* resource) 838 ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const Fetch Request& request, Resource* resource)
835 { 839 {
836 ASSERT(resource); 840 ASSERT(resource);
837 ASSERT(memoryCache()->contains(resource)); 841 ASSERT(memoryCache()->contains(resource));
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
1489 } 1493 }
1490 } 1494 }
1491 1495
1492 void ResourceFetcher::trace(Visitor* visitor) 1496 void ResourceFetcher::trace(Visitor* visitor)
1493 { 1497 {
1494 visitor->trace(m_document); 1498 visitor->trace(m_document);
1495 ResourceLoaderHost::trace(visitor); 1499 ResourceLoaderHost::trace(visitor);
1496 } 1500 }
1497 1501
1498 } 1502 }
OLDNEW
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/loader/BeaconLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698