Home | History | Annotate | Download | only in common
      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     LAST_TYPE        // Place holder so we don't need to change ValidType
     33                      // everytime.
     34   };
     35 
     36   static bool ValidType(int32 type) {
     37     return type >= MAIN_FRAME && type < LAST_TYPE;
     38   }
     39 
     40   static Type FromInt(int32 type) {
     41     return static_cast<Type>(type);
     42   }
     43 
     44   WEBKIT_COMMON_EXPORT static Type FromTargetType(
     45       WebKit::WebURLRequest::TargetType type);
     46 
     47   static bool IsFrame(ResourceType::Type type) {
     48     return type == MAIN_FRAME || type == SUB_FRAME;
     49   }
     50 
     51   static bool IsSharedWorker(ResourceType::Type type) {
     52     return type == SHARED_WORKER;
     53   }
     54 
     55   static bool IsSubresource(ResourceType::Type type) {
     56     return type == STYLESHEET ||
     57            type == SCRIPT ||
     58            type == IMAGE ||
     59            type == FONT_RESOURCE ||
     60            type == SUB_RESOURCE ||
     61            type == WORKER ||
     62            type == XHR;
     63   }
     64 
     65  private:
     66   // Don't instantiate this class.
     67   ResourceType();
     68   ~ResourceType();
     69 };
     70 #endif  // WEBKIT_COMMON_RESOURCE_TYPE_H__
     71