Commit 147bb425 authored by mkwst@chromium.org's avatar mkwst@chromium.org

Get ResourceType from WebURLRequest rather than TargetType.

'WebURLRequest::TargetType' has been dropped in Blink in favor of
'RequestContext' and 'FrameType', matching the Fetch specification's
changes, and allowing both more granularity in various Blink-side checks
and more clarity around the thing that caused a request, and the frame
that the request affects.

This CL should have zero practical effect, as it's simply hoisting the
translation work that 'WebURLRequest::targetType' is already doing
up into the content layer to bring us one step closer to removing the
concept entirely.

BUG=390497

Review URL: https://codereview.chromium.org/409593002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284924 0039d316-1c4b-4281-b951-d872f2087c98
parent bdcdc04e
...@@ -387,8 +387,7 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request, ...@@ -387,8 +387,7 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request,
// the render process, so we can use requestorProcessID even for requests // the render process, so we can use requestorProcessID even for requests
// from in-process plugins. // from in-process plugins.
request_info.requestor_pid = request.requestorProcessID(); request_info.requestor_pid = request.requestorProcessID();
request_info.request_type = request_info.request_type = ResourceType::FromWebURLRequest(request);
ResourceType::FromTargetType(request.targetType());
request_info.priority = request_info.priority =
ConvertWebKitPriorityToNetPriority(request.priority()); ConvertWebKitPriorityToNetPriority(request.priority());
request_info.appcache_host_id = request.appCacheHostID(); request_info.appcache_host_id = request.appCacheHostID();
......
...@@ -11,45 +11,111 @@ using blink::WebURLRequest; ...@@ -11,45 +11,111 @@ using blink::WebURLRequest;
namespace content { namespace content {
// static // static
ResourceType::Type ResourceType::FromTargetType( ResourceType::Type ResourceType::FromWebURLRequest(
WebURLRequest::TargetType type) { const WebURLRequest& request) {
switch (type) { WebURLRequest::RequestContext requestContext = request.requestContext();
case WebURLRequest::TargetIsMainFrame: 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; return ResourceType::MAIN_FRAME;
case WebURLRequest::TargetIsSubframe: }
if (request.frameType() == WebURLRequest::FrameTypeNested)
return ResourceType::SUB_FRAME; return ResourceType::SUB_FRAME;
case WebURLRequest::TargetIsSubresource: NOTREACHED();
return ResourceType::SUB_RESOURCE; return ResourceType::SUB_RESOURCE;
case WebURLRequest::TargetIsStyleSheet: }
return ResourceType::STYLESHEET;
case WebURLRequest::TargetIsScript: switch (requestContext) {
return ResourceType::SCRIPT; // Favicon
case WebURLRequest::TargetIsFontResource: case WebURLRequest::RequestContextFavicon:
return ResourceType::FAVICON;
// Font
case WebURLRequest::RequestContextFont:
return ResourceType::FONT_RESOURCE; return ResourceType::FONT_RESOURCE;
case WebURLRequest::TargetIsImage:
// Image
case WebURLRequest::RequestContextImage:
return ResourceType::IMAGE; 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; 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; return ResourceType::MEDIA;
case WebURLRequest::TargetIsWorker:
return ResourceType::WORKER; // Workers
case WebURLRequest::TargetIsSharedWorker: case WebURLRequest::RequestContextServiceWorker:
return ResourceType::SERVICE_WORKER;
case WebURLRequest::RequestContextSharedWorker:
return ResourceType::SHARED_WORKER; return ResourceType::SHARED_WORKER;
case WebURLRequest::TargetIsPrefetch: case WebURLRequest::RequestContextWorker:
return ResourceType::PREFETCH; return ResourceType::WORKER;
case WebURLRequest::TargetIsFavicon:
return ResourceType::FAVICON; // Unspecified
case WebURLRequest::TargetIsXHR: case WebURLRequest::RequestContextInternal:
case WebURLRequest::RequestContextUnspecified:
return ResourceType::SUB_RESOURCE;
// XHR
case WebURLRequest::RequestContextEventSource:
case WebURLRequest::RequestContextFetch:
case WebURLRequest::RequestContextXMLHttpRequest:
return ResourceType::XHR; return ResourceType::XHR;
case WebURLRequest::TargetIsPing:
return ResourceType::PING; // These should be handled by the FrameType checks at the top of the
case WebURLRequest::TargetIsServiceWorker: // function.
return ResourceType::SERVICE_WORKER; // Main Frame
default: case WebURLRequest::RequestContextForm:
case WebURLRequest::RequestContextHyperlink:
case WebURLRequest::RequestContextLocation:
case WebURLRequest::RequestContextFrame:
case WebURLRequest::RequestContextIframe:
NOTREACHED(); NOTREACHED();
return ResourceType::SUB_RESOURCE; return ResourceType::SUB_RESOURCE;
} }
NOTREACHED();
return ResourceType::SUB_RESOURCE;
} }
} // namespace content } // namespace content
...@@ -37,7 +37,7 @@ class CONTENT_EXPORT ResourceType { ...@@ -37,7 +37,7 @@ class CONTENT_EXPORT ResourceType {
// everytime. // everytime.
}; };
static Type FromTargetType(blink::WebURLRequest::TargetType type); static Type FromWebURLRequest(const blink::WebURLRequest& request);
static bool ValidType(int32 type) { static bool ValidType(int32 type) {
return type >= MAIN_FRAME && type < LAST_TYPE; return type >= MAIN_FRAME && type < LAST_TYPE;
......
...@@ -2627,7 +2627,7 @@ void RenderFrameImpl::didLoadResourceFromMemoryCache( ...@@ -2627,7 +2627,7 @@ void RenderFrameImpl::didLoadResourceFromMemoryCache(
response.securityInfo(), response.securityInfo(),
request.httpMethod().utf8(), request.httpMethod().utf8(),
response.mimeType().utf8(), response.mimeType().utf8(),
ResourceType::FromTargetType(request.targetType()))); ResourceType::FromWebURLRequest(request)));
} }
void RenderFrameImpl::didDisplayInsecureContent(blink::WebLocalFrame* frame) { void RenderFrameImpl::didDisplayInsecureContent(blink::WebLocalFrame* frame) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment