Index: content/public/common/resource_type.cc |
diff --git a/content/public/common/resource_type.cc b/content/public/common/resource_type.cc |
index 56dfec735d09094ef198e63e0ebd4deca47a1e0a..0921eb5f8321313940567fd63621638afcef1c27 100644 |
--- a/content/public/common/resource_type.cc |
+++ b/content/public/common/resource_type.cc |
@@ -11,45 +11,111 @@ using blink::WebURLRequest; |
namespace content { |
// static |
-ResourceType::Type ResourceType::FromTargetType( |
- WebURLRequest::TargetType type) { |
- switch (type) { |
- case WebURLRequest::TargetIsMainFrame: |
+ResourceType::Type ResourceType::FromWebURLRequest( |
+ const WebURLRequest& request) { |
+ WebURLRequest::RequestContext requestContext = request.requestContext(); |
+ if (request.frameType() != WebURLRequest::FrameTypeNone) { |
+ DCHECK(requestContext == WebURLRequest::RequestContextForm || |
+ requestContext == WebURLRequest::RequestContextFrame || |
+ requestContext == WebURLRequest::RequestContextHyperlink || |
+ requestContext == WebURLRequest::RequestContextIframe || |
+ requestContext == WebURLRequest::RequestContextInternal || |
+ requestContext == WebURLRequest::RequestContextLocation); |
+ if (request.frameType() == WebURLRequest::FrameTypeTopLevel || |
+ request.frameType() == WebURLRequest::FrameTypeAuxiliary) { |
return ResourceType::MAIN_FRAME; |
- case WebURLRequest::TargetIsSubframe: |
+ } |
+ if (request.frameType() == WebURLRequest::FrameTypeNested) |
return ResourceType::SUB_FRAME; |
- case WebURLRequest::TargetIsSubresource: |
- return ResourceType::SUB_RESOURCE; |
- case WebURLRequest::TargetIsStyleSheet: |
- return ResourceType::STYLESHEET; |
- case WebURLRequest::TargetIsScript: |
- return ResourceType::SCRIPT; |
- case WebURLRequest::TargetIsFontResource: |
+ NOTREACHED(); |
+ return ResourceType::SUB_RESOURCE; |
+ } |
+ |
+ switch (requestContext) { |
+ // Favicon |
+ case WebURLRequest::RequestContextFavicon: |
+ return ResourceType::FAVICON; |
+ |
+ // Font |
+ case WebURLRequest::RequestContextFont: |
return ResourceType::FONT_RESOURCE; |
- case WebURLRequest::TargetIsImage: |
+ |
+ // Image |
+ case WebURLRequest::RequestContextImage: |
return ResourceType::IMAGE; |
- case WebURLRequest::TargetIsObject: |
+ |
+ // Media |
+ case WebURLRequest::RequestContextAudio: |
+ case WebURLRequest::RequestContextVideo: |
+ return ResourceType::MEDIA; |
+ |
+ // Object |
+ case WebURLRequest::RequestContextEmbed: |
+ case WebURLRequest::RequestContextObject: |
return ResourceType::OBJECT; |
- case WebURLRequest::TargetIsMedia: |
+ |
+ // Ping |
+ case WebURLRequest::RequestContextBeacon: |
+ case WebURLRequest::RequestContextCSPReport: |
+ case WebURLRequest::RequestContextPing: |
+ return ResourceType::PING; |
+ |
+ // Prefetch |
+ case WebURLRequest::RequestContextPrefetch: |
+ return ResourceType::PREFETCH; |
+ |
+ // Script |
+ case WebURLRequest::RequestContextScript: |
+ return ResourceType::SCRIPT; |
+ |
+ // Style |
+ case WebURLRequest::RequestContextXSLT: |
+ case WebURLRequest::RequestContextStyle: |
+ return ResourceType::STYLESHEET; |
+ |
+ // Subresource |
+ case WebURLRequest::RequestContextDownload: |
+ case WebURLRequest::RequestContextManifest: |
+ case WebURLRequest::RequestContextSubresource: |
+ case WebURLRequest::RequestContextPlugin: |
+ return ResourceType::SUB_RESOURCE; |
+ |
+ // TextTrack |
+ case WebURLRequest::RequestContextTrack: |
return ResourceType::MEDIA; |
- case WebURLRequest::TargetIsWorker: |
- return ResourceType::WORKER; |
- case WebURLRequest::TargetIsSharedWorker: |
+ |
+ // Workers |
+ case WebURLRequest::RequestContextServiceWorker: |
+ return ResourceType::SERVICE_WORKER; |
+ case WebURLRequest::RequestContextSharedWorker: |
return ResourceType::SHARED_WORKER; |
- case WebURLRequest::TargetIsPrefetch: |
- return ResourceType::PREFETCH; |
- case WebURLRequest::TargetIsFavicon: |
- return ResourceType::FAVICON; |
- case WebURLRequest::TargetIsXHR: |
+ case WebURLRequest::RequestContextWorker: |
+ return ResourceType::WORKER; |
+ |
+ // Unspecified |
+ case WebURLRequest::RequestContextInternal: |
+ case WebURLRequest::RequestContextUnspecified: |
+ return ResourceType::SUB_RESOURCE; |
+ |
+ // XHR |
+ case WebURLRequest::RequestContextEventSource: |
+ case WebURLRequest::RequestContextFetch: |
+ case WebURLRequest::RequestContextXMLHttpRequest: |
return ResourceType::XHR; |
- case WebURLRequest::TargetIsPing: |
- return ResourceType::PING; |
- case WebURLRequest::TargetIsServiceWorker: |
- return ResourceType::SERVICE_WORKER; |
- default: |
+ |
+ // These should be handled by the FrameType checks at the top of the |
+ // function. |
+ // Main Frame |
+ case WebURLRequest::RequestContextForm: |
+ case WebURLRequest::RequestContextHyperlink: |
+ case WebURLRequest::RequestContextLocation: |
+ case WebURLRequest::RequestContextFrame: |
+ case WebURLRequest::RequestContextIframe: |
NOTREACHED(); |
return ResourceType::SUB_RESOURCE; |
} |
+ NOTREACHED(); |
+ return ResourceType::SUB_RESOURCE; |
} |
} // namespace content |