• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
ValidType(int32 type)38   static bool ValidType(int32 type) {
39     return type >= MAIN_FRAME && type < LAST_TYPE;
40   }
41 
FromInt(int32 type)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 
IsFrame(ResourceType::Type type)49   static bool IsFrame(ResourceType::Type type) {
50     return type == MAIN_FRAME || type == SUB_FRAME;
51   }
52 
IsSharedWorker(ResourceType::Type type)53   static bool IsSharedWorker(ResourceType::Type type) {
54     return type == SHARED_WORKER;
55   }
56 
IsServiceWorker(ResourceType::Type type)57   static bool IsServiceWorker(ResourceType::Type type) {
58     return type == SERVICE_WORKER;
59   }
60 
IsSubresource(ResourceType::Type type)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