Home | History | Annotate | Download | only in sdk
      1 /*
      2  * Copyright (C) 2012 Google Inc.  All rights reserved.
      3  * Copyright (C) 2007, 2008 Apple Inc.  All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  *
      9  * 1.  Redistributions of source code must retain the above copyright
     10  *     notice, this list of conditions and the following disclaimer.
     11  * 2.  Redistributions in binary form must reproduce the above copyright
     12  *     notice, this list of conditions and the following disclaimer in the
     13  *     documentation and/or other materials provided with the distribution.
     14  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     15  *     its contributors may be used to endorse or promote products derived
     16  *     from this software without specific prior written permission.
     17  *
     18  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     20  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     21  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     22  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     24  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     25  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     28  */
     29 
     30 /**
     31  * @constructor
     32  * @param {string} name
     33  * @param {string} title
     34  * @param {string} categoryTitle
     35  * @param {string} color
     36  * @param {boolean} isTextType
     37  */
     38 WebInspector.ResourceType = function(name, title, categoryTitle, color, isTextType)
     39 {
     40     this._name = name;
     41     this._title = title;
     42     this._categoryTitle = categoryTitle;
     43     this._color = color;
     44     this._isTextType = isTextType;
     45 }
     46 
     47 WebInspector.ResourceType.prototype = {
     48     /**
     49      * @return {string}
     50      */
     51     name: function()
     52     {
     53         return this._name;
     54     },
     55 
     56     /**
     57      * @return {string}
     58      */
     59     title: function()
     60     {
     61         return this._title;
     62     },
     63 
     64     /**
     65      * @return {string}
     66      */
     67     categoryTitle: function()
     68     {
     69         return this._categoryTitle;
     70     },
     71 
     72     /**
     73      * @return {string}
     74      */
     75     color: function()
     76     {
     77         return this._color;
     78     },
     79 
     80     /**
     81      * @return {boolean}
     82      */
     83     isTextType: function()
     84     {
     85         return this._isTextType;
     86     },
     87 
     88     /**
     89      * @return {string}
     90      */
     91     toString: function()
     92     {
     93         return this._name;
     94     },
     95 
     96     /**
     97      * @return {string}
     98      */
     99     canonicalMimeType: function()
    100     {
    101         if (this === WebInspector.resourceTypes.Document)
    102             return "text/html";
    103         if (this === WebInspector.resourceTypes.Script)
    104             return "text/javascript";
    105         if (this === WebInspector.resourceTypes.Stylesheet)
    106             return "text/css";
    107         return "";
    108     }
    109 }
    110 
    111 /**
    112  * Keep these in sync with WebCore::InspectorPageAgent::resourceTypeJson
    113  * @enum {!WebInspector.ResourceType}
    114  */
    115 WebInspector.resourceTypes = {
    116     Document: new WebInspector.ResourceType("document", "Document", "Documents", "rgb(47,102,236)", true),
    117     Stylesheet: new WebInspector.ResourceType("stylesheet", "Stylesheet", "Stylesheets", "rgb(157,231,119)", true),
    118     Image: new WebInspector.ResourceType("image", "Image", "Images", "rgb(164,60,255)", false),
    119     Media: new WebInspector.ResourceType("media", "Media", "Media", "rgb(164,60,255)", false), // FIXME: Decide the color.
    120     Script: new WebInspector.ResourceType("script", "Script", "Scripts", "rgb(255,121,0)", true),
    121     XHR: new WebInspector.ResourceType("xhr", "XHR", "XHR", "rgb(231,231,10)", true),
    122     Font: new WebInspector.ResourceType("font", "Font", "Fonts", "rgb(255,82,62)", false),
    123     TextTrack: new WebInspector.ResourceType("texttrack", "TextTrack", "TextTracks", "rgb(164,60,255)", true), // FIXME: Decide the color.
    124     WebSocket: new WebInspector.ResourceType("websocket", "WebSocket", "WebSockets", "rgb(186,186,186)", false), // FIXME: Decide the color.
    125     Other: new WebInspector.ResourceType("other", "Other", "Other", "rgb(186,186,186)", false)
    126 }
    127 
    128 WebInspector.ResourceType.mimeTypesForExtensions = {
    129     // Web extensions
    130     "js": "text/javascript",
    131     "css": "text/css",
    132     "html": "text/html",
    133     "htm": "text/html",
    134     "xml": "application/xml",
    135     "xsl": "application/xml",
    136 
    137     // HTML Embedded Scripts: ASP, JSP
    138     "asp": "application/x-aspx",
    139     "aspx": "application/x-aspx",
    140     "jsp": "application/x-jsp",
    141 
    142     // C/C++
    143     "c": "text/x-c++src",
    144     "cc": "text/x-c++src",
    145     "cpp": "text/x-c++src",
    146     "h": "text/x-c++src",
    147     "m": "text/x-c++src",
    148     "mm": "text/x-c++src",
    149 
    150     // CoffeeScript
    151     "coffee": "text/x-coffeescript",
    152 
    153     // Dart
    154     "dart": "text/javascript",
    155 
    156     // TypeScript
    157     "ts": "text/typescript",
    158 
    159     // JSON
    160     "json": "application/json",
    161     "gyp": "application/json",
    162     "gypi": "application/json",
    163 
    164     // C#
    165     "cs": "text/x-csharp",
    166 
    167     // Java
    168     "java": "text/x-java",
    169 
    170     // PHP
    171     "php": "text/x-php",
    172     "phtml": "application/x-httpd-php",
    173 
    174     // Python
    175     "py": "text/x-python",
    176 
    177     // Shell
    178     "sh": "text/x-sh",
    179 
    180     // SCSS
    181     "scss": "text/x-scss",
    182 
    183     // Video Text Tracks.
    184     "vtt": "text/vtt"
    185 }
    186