| 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
|
|
|