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" | 7 #include "base/logging.h" |
8 | 8 |
9 using blink::WebURLRequest; | 9 using blink::WebURLRequest; |
10 | 10 |
11 namespace content { | 11 namespace content { |
12 | 12 |
13 // static | 13 // static |
14 ResourceType::Type ResourceType::FromTargetType( | 14 ResourceType::Type ResourceType::FromWebURLRequest( |
15 WebURLRequest::TargetType type) { | 15 const WebURLRequest& request) { |
16 switch (type) { | 16 WebURLRequest::RequestContext requestContext = request.requestContext(); |
17 case WebURLRequest::TargetIsMainFrame: | 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) { |
18 return ResourceType::MAIN_FRAME; | 26 return ResourceType::MAIN_FRAME; |
19 case WebURLRequest::TargetIsSubframe: | 27 } |
| 28 if (request.frameType() == WebURLRequest::FrameTypeNested) |
20 return ResourceType::SUB_FRAME; | 29 return ResourceType::SUB_FRAME; |
21 case WebURLRequest::TargetIsSubresource: | 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: |
22 return ResourceType::SUB_RESOURCE; | 81 return ResourceType::SUB_RESOURCE; |
23 case WebURLRequest::TargetIsStyleSheet: | 82 |
24 return ResourceType::STYLESHEET; | 83 // TextTrack |
25 case WebURLRequest::TargetIsScript: | 84 case WebURLRequest::RequestContextTrack: |
26 return ResourceType::SCRIPT; | |
27 case WebURLRequest::TargetIsFontResource: | |
28 return ResourceType::FONT_RESOURCE; | |
29 case WebURLRequest::TargetIsImage: | |
30 return ResourceType::IMAGE; | |
31 case WebURLRequest::TargetIsObject: | |
32 return ResourceType::OBJECT; | |
33 case WebURLRequest::TargetIsMedia: | |
34 return ResourceType::MEDIA; | 85 return ResourceType::MEDIA; |
35 case WebURLRequest::TargetIsWorker: | 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: |
36 return ResourceType::WORKER; | 93 return ResourceType::WORKER; |
37 case WebURLRequest::TargetIsSharedWorker: | 94 |
38 return ResourceType::SHARED_WORKER; | 95 // Unspecified |
39 case WebURLRequest::TargetIsPrefetch: | 96 case WebURLRequest::RequestContextInternal: |
40 return ResourceType::PREFETCH; | 97 case WebURLRequest::RequestContextUnspecified: |
41 case WebURLRequest::TargetIsFavicon: | 98 return ResourceType::SUB_RESOURCE; |
42 return ResourceType::FAVICON; | 99 |
43 case WebURLRequest::TargetIsXHR: | 100 // XHR |
| 101 case WebURLRequest::RequestContextEventSource: |
| 102 case WebURLRequest::RequestContextFetch: |
| 103 case WebURLRequest::RequestContextXMLHttpRequest: |
44 return ResourceType::XHR; | 104 return ResourceType::XHR; |
45 case WebURLRequest::TargetIsPing: | 105 |
46 return ResourceType::PING; | 106 // These should be handled by the FrameType checks at the top of the |
47 case WebURLRequest::TargetIsServiceWorker: | 107 // function. |
48 return ResourceType::SERVICE_WORKER; | 108 // Main Frame |
49 default: | 109 case WebURLRequest::RequestContextForm: |
| 110 case WebURLRequest::RequestContextHyperlink: |
| 111 case WebURLRequest::RequestContextLocation: |
| 112 case WebURLRequest::RequestContextFrame: |
| 113 case WebURLRequest::RequestContextIframe: |
50 NOTREACHED(); | 114 NOTREACHED(); |
51 return ResourceType::SUB_RESOURCE; | 115 return ResourceType::SUB_RESOURCE; |
52 } | 116 } |
| 117 NOTREACHED(); |
| 118 return ResourceType::SUB_RESOURCE; |
53 } | 119 } |
54 | 120 |
55 } // namespace content | 121 } // namespace content |
OLD | NEW |