Home | History | Annotate | Download | only in front_end
      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     Script: new WebInspector.ResourceType("script", "Script", "Scripts", "rgb(255,121,0)", true),
    120     XHR: new WebInspector.ResourceType("xhr", "XHR", "XHR", "rgb(231,231,10)", true),
    121     Font: new WebInspector.ResourceType("font", "Font", "Fonts", "rgb(255,82,62)", false),
    122     WebSocket: new WebInspector.ResourceType("websocket", "WebSocket", "WebSockets", "rgb(186,186,186)", false), // FIXME: Decide the color.
    123     Other: new WebInspector.ResourceType("other", "Other", "Other", "rgb(186,186,186)", false)
    124 }
    125 
    126 WebInspector.ResourceType.mimeTypesForExtensions = {
    127     // Web extensions
    128     "js": "text/javascript",
    129     "css": "text/css",
    130     "html": "text/html",
    131     "htm": "text/html",
    132     "xml": "application/xml",
    133     "xsl": "application/xml",
    134 
    135     // HTML Embedded Scripts: ASP, JSP
    136     "asp": "application/x-aspx",
    137     "aspx": "application/x-aspx",
    138     "jsp": "application/x-jsp",
    139 
    140     // C/C++
    141     "c": "text/x-c++src",
    142     "cc": "text/x-c++src",
    143     "cpp": "text/x-c++src",
    144     "h": "text/x-c++src",
    145     "m": "text/x-c++src",
    146     "mm": "text/x-c++src",
    147 
    148     // CoffeeScript
    149     "coffee": "text/x-coffeescript",
    150 
    151     // Dart
    152     "dart": "text/javascript",
    153 
    154     // TypeScript
    155     "ts": "text/typescript",
    156 
    157     // JSON
    158     "json": "application/json",
    159     "gyp": "application/json",
    160     "gypi": "application/json",
    161 
    162     // C#
    163     "cs": "text/x-csharp",
    164 
    165     // Java
    166     "java": "text/x-java",
    167 
    168     // PHP
    169     "php": "text/x-php",
    170     "phtml": "application/x-httpd-php",
    171 
    172     // Python
    173     "py": "text/x-python",
    174 
    175     // Shell
    176     "sh": "text/x-sh",
    177 
    178     // SCSS
    179     "scss": "text/x-scss"
    180 }
    181