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 */ 38WebInspector.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 47WebInspector.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 */ 115WebInspector.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 128WebInspector.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