64ea18d65c2d013336e392efa8bd13f1615a2b7a
[platform/framework/web/crosswalk.git] / src / content / child / web_url_request_util.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/child/web_url_request_util.h"
6
7 #include "base/logging.h"
8 #include "third_party/WebKit/public/platform/WebURLRequest.h"
9
10 using blink::WebURLRequest;
11
12 namespace content {
13
14 ResourceType WebURLRequestToResourceType(const WebURLRequest& request) {
15   WebURLRequest::RequestContext requestContext = request.requestContext();
16   if (request.frameType() != WebURLRequest::FrameTypeNone) {
17     DCHECK(requestContext == WebURLRequest::RequestContextForm ||
18            requestContext == WebURLRequest::RequestContextFrame ||
19            requestContext == WebURLRequest::RequestContextHyperlink ||
20            requestContext == WebURLRequest::RequestContextIframe ||
21            requestContext == WebURLRequest::RequestContextInternal ||
22            requestContext == WebURLRequest::RequestContextLocation);
23     if (request.frameType() == WebURLRequest::FrameTypeTopLevel ||
24         request.frameType() == WebURLRequest::FrameTypeAuxiliary) {
25       return RESOURCE_TYPE_MAIN_FRAME;
26     }
27     if (request.frameType() == WebURLRequest::FrameTypeNested)
28       return RESOURCE_TYPE_SUB_FRAME;
29     NOTREACHED();
30     return RESOURCE_TYPE_SUB_RESOURCE;
31   }
32
33   switch (requestContext) {
34     // Favicon
35     case WebURLRequest::RequestContextFavicon:
36       return RESOURCE_TYPE_FAVICON;
37
38     // Font
39     case WebURLRequest::RequestContextFont:
40       return RESOURCE_TYPE_FONT_RESOURCE;
41
42     // Image
43     case WebURLRequest::RequestContextImage:
44     case WebURLRequest::RequestContextImageSet:
45       return RESOURCE_TYPE_IMAGE;
46
47     // Media
48     case WebURLRequest::RequestContextAudio:
49     case WebURLRequest::RequestContextVideo:
50       return RESOURCE_TYPE_MEDIA;
51
52     // Object
53     case WebURLRequest::RequestContextEmbed:
54     case WebURLRequest::RequestContextObject:
55       return RESOURCE_TYPE_OBJECT;
56
57     // Ping
58     case WebURLRequest::RequestContextBeacon:
59     case WebURLRequest::RequestContextCSPReport:
60     case WebURLRequest::RequestContextPing:
61       return RESOURCE_TYPE_PING;
62
63     // Prefetch
64     case WebURLRequest::RequestContextPrefetch:
65       return RESOURCE_TYPE_PREFETCH;
66
67     // Script
68     case WebURLRequest::RequestContextImport:
69     case WebURLRequest::RequestContextScript:
70       return RESOURCE_TYPE_SCRIPT;
71
72     // Style
73     case WebURLRequest::RequestContextXSLT:
74     case WebURLRequest::RequestContextStyle:
75       return RESOURCE_TYPE_STYLESHEET;
76
77     // Subresource
78     case WebURLRequest::RequestContextDownload:
79     case WebURLRequest::RequestContextManifest:
80     case WebURLRequest::RequestContextSubresource:
81     case WebURLRequest::RequestContextPlugin:
82       return RESOURCE_TYPE_SUB_RESOURCE;
83
84     // TextTrack
85     case WebURLRequest::RequestContextTrack:
86       return RESOURCE_TYPE_MEDIA;
87
88     // Workers
89     case WebURLRequest::RequestContextServiceWorker:
90       return RESOURCE_TYPE_SERVICE_WORKER;
91     case WebURLRequest::RequestContextSharedWorker:
92       return RESOURCE_TYPE_SHARED_WORKER;
93     case WebURLRequest::RequestContextWorker:
94       return RESOURCE_TYPE_WORKER;
95
96     // Unspecified
97     case WebURLRequest::RequestContextInternal:
98     case WebURLRequest::RequestContextUnspecified:
99       return RESOURCE_TYPE_SUB_RESOURCE;
100
101     // XHR
102     case WebURLRequest::RequestContextEventSource:
103     case WebURLRequest::RequestContextFetch:
104     case WebURLRequest::RequestContextXMLHttpRequest:
105       return RESOURCE_TYPE_XHR;
106
107     // These should be handled by the FrameType checks at the top of the
108     // function.
109     case WebURLRequest::RequestContextForm:
110     case WebURLRequest::RequestContextHyperlink:
111     case WebURLRequest::RequestContextLocation:
112     case WebURLRequest::RequestContextFrame:
113     case WebURLRequest::RequestContextIframe:
114       NOTREACHED();
115       return RESOURCE_TYPE_SUB_RESOURCE;
116
117     default:
118       NOTREACHED();
119       return RESOURCE_TYPE_SUB_RESOURCE;
120   }
121 }
122
123 }  // namespace content