1 // Copyright (c) 2012 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 #ifndef WEBKIT_COMMON_RESOURCE_TYPE_H__ 6 #define WEBKIT_COMMON_RESOURCE_TYPE_H__ 7 8 #include "base/basictypes.h" 9 #include "third_party/WebKit/public/platform/WebURLRequest.h" 10 #include "webkit/common/webkit_common_export.h" 11 12 class ResourceType { 13 public: 14 // Used in histograms, so please add new types at the end, and rename unused 15 // entries to RESOURCETYPE_UNUSED_0, etc... 16 enum Type { 17 MAIN_FRAME = 0, // top level page 18 SUB_FRAME, // frame or iframe 19 STYLESHEET, // a CSS stylesheet 20 SCRIPT, // an external script 21 IMAGE, // an image (jpg/gif/png/etc) 22 FONT_RESOURCE, // a font 23 SUB_RESOURCE, // an "other" subresource. 24 OBJECT, // an object (or embed) tag for a plugin, 25 // or a resource that a plugin requested. 26 MEDIA, // a media resource. 27 WORKER, // the main resource of a dedicated worker. 28 SHARED_WORKER, // the main resource of a shared worker. 29 PREFETCH, // an explicitly requested prefetch 30 FAVICON, // a favicon 31 XHR, // a XMLHttpRequest 32 PING, // a ping request for <a ping> 33 SERVICE_WORKER, // the main resource of a service worker. 34 LAST_TYPE // Place holder so we don't need to change ValidType 35 // everytime. 36 }; 37 38 static bool ValidType(int32 type) { 39 return type >= MAIN_FRAME && type < LAST_TYPE; 40 } 41 42 static Type FromInt(int32 type) { 43 return static_cast<Type>(type); 44 } 45 46 WEBKIT_COMMON_EXPORT static Type FromTargetType( 47 blink::WebURLRequest::TargetType type); 48 49 static bool IsFrame(ResourceType::Type type) { 50 return type == MAIN_FRAME || type == SUB_FRAME; 51 } 52 53 static bool IsSharedWorker(ResourceType::Type type) { 54 return type == SHARED_WORKER; 55 } 56 57 static bool IsServiceWorker(ResourceType::Type type) { 58 return type == SERVICE_WORKER; 59 } 60 61 static bool IsSubresource(ResourceType::Type type) { 62 return type == STYLESHEET || 63 type == SCRIPT || 64 type == IMAGE || 65 type == FONT_RESOURCE || 66 type == SUB_RESOURCE || 67 type == WORKER || 68 type == XHR; 69 } 70 71 private: 72 // Don't instantiate this class. 73 ResourceType(); 74 ~ResourceType(); 75 }; 76 #endif // WEBKIT_COMMON_RESOURCE_TYPE_H__ 77