OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/public/common/resource_type.h" | 5 #include "content/public/common/resource_type.h" |
6 | 6 |
7 #include "base/logging.h" | |
8 | |
9 using blink::WebURLRequest; | |
10 | |
11 namespace content { | 7 namespace content { |
12 | 8 |
13 // static | 9 bool IsResourceTypeFrame(ResourceType type) { |
14 ResourceType::Type ResourceType::FromWebURLRequest( | 10 return type == RESOURCE_TYPE_MAIN_FRAME || type == RESOURCE_TYPE_SUB_FRAME; |
15 const WebURLRequest& request) { | |
16 WebURLRequest::RequestContext requestContext = request.requestContext(); | |
17 if (request.frameType() != WebURLRequest::FrameTypeNone) { | |
18 DCHECK(requestContext == WebURLRequest::RequestContextForm || | |
19 requestContext == WebURLRequest::RequestContextFrame || | |
20 requestContext == WebURLRequest::RequestContextHyperlink || | |
21 requestContext == WebURLRequest::RequestContextIframe || | |
22 requestContext == WebURLRequest::RequestContextInternal || | |
23 requestContext == WebURLRequest::RequestContextLocation); | |
24 if (request.frameType() == WebURLRequest::FrameTypeTopLevel || | |
25 request.frameType() == WebURLRequest::FrameTypeAuxiliary) { | |
26 return ResourceType::MAIN_FRAME; | |
27 } | |
28 if (request.frameType() == WebURLRequest::FrameTypeNested) | |
29 return ResourceType::SUB_FRAME; | |
30 NOTREACHED(); | |
31 return ResourceType::SUB_RESOURCE; | |
32 } | |
33 | |
34 switch (requestContext) { | |
35 // Favicon | |
36 case WebURLRequest::RequestContextFavicon: | |
37 return ResourceType::FAVICON; | |
38 | |
39 // Font | |
40 case WebURLRequest::RequestContextFont: | |
41 return ResourceType::FONT_RESOURCE; | |
42 | |
43 // Image | |
44 case WebURLRequest::RequestContextImage: | |
45 return ResourceType::IMAGE; | |
46 | |
47 // Media | |
48 case WebURLRequest::RequestContextAudio: | |
49 case WebURLRequest::RequestContextVideo: | |
50 return ResourceType::MEDIA; | |
51 | |
52 // Object | |
53 case WebURLRequest::RequestContextEmbed: | |
54 case WebURLRequest::RequestContextObject: | |
55 return ResourceType::OBJECT; | |
56 | |
57 // Ping | |
58 case WebURLRequest::RequestContextBeacon: | |
59 case WebURLRequest::RequestContextCSPReport: | |
60 case WebURLRequest::RequestContextPing: | |
61 return ResourceType::PING; | |
62 | |
63 // Prefetch | |
64 case WebURLRequest::RequestContextPrefetch: | |
65 return ResourceType::PREFETCH; | |
66 | |
67 // Script | |
68 case WebURLRequest::RequestContextScript: | |
69 return ResourceType::SCRIPT; | |
70 | |
71 // Style | |
72 case WebURLRequest::RequestContextXSLT: | |
73 case WebURLRequest::RequestContextStyle: | |
74 return ResourceType::STYLESHEET; | |
75 | |
76 // Subresource | |
77 case WebURLRequest::RequestContextDownload: | |
78 case WebURLRequest::RequestContextManifest: | |
79 case WebURLRequest::RequestContextSubresource: | |
80 case WebURLRequest::RequestContextPlugin: | |
81 return ResourceType::SUB_RESOURCE; | |
82 | |
83 // TextTrack | |
84 case WebURLRequest::RequestContextTrack: | |
85 return ResourceType::MEDIA; | |
86 | |
87 // Workers | |
88 case WebURLRequest::RequestContextServiceWorker: | |
89 return ResourceType::SERVICE_WORKER; | |
90 case WebURLRequest::RequestContextSharedWorker: | |
91 return ResourceType::SHARED_WORKER; | |
92 case WebURLRequest::RequestContextWorker: | |
93 return ResourceType::WORKER; | |
94 | |
95 // Unspecified | |
96 case WebURLRequest::RequestContextInternal: | |
97 case WebURLRequest::RequestContextUnspecified: | |
98 return ResourceType::SUB_RESOURCE; | |
99 | |
100 // XHR | |
101 case WebURLRequest::RequestContextEventSource: | |
102 case WebURLRequest::RequestContextFetch: | |
103 case WebURLRequest::RequestContextXMLHttpRequest: | |
104 return ResourceType::XHR; | |
105 | |
106 // These should be handled by the FrameType checks at the top of the | |
107 // function. | |
108 // Main Frame | |
109 case WebURLRequest::RequestContextForm: | |
110 case WebURLRequest::RequestContextHyperlink: | |
111 case WebURLRequest::RequestContextLocation: | |
112 case WebURLRequest::RequestContextFrame: | |
113 case WebURLRequest::RequestContextIframe: | |
114 NOTREACHED(); | |
115 return ResourceType::SUB_RESOURCE; | |
116 } | |
117 NOTREACHED(); | |
118 return ResourceType::SUB_RESOURCE; | |
119 } | 11 } |
120 | 12 |
121 } // namespace content | 13 } // namespace content |
OLD | NEW |