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