Index: Source/devtools/front_end/common/ResourceType.js |
diff --git a/Source/devtools/front_end/common/ResourceType.js b/Source/devtools/front_end/common/ResourceType.js |
index 88ec23b8698646a6bf537be5dd7353925e637e67..9a9480f9ce12a788fcde7986ef5ea5c824886920 100644 |
--- a/Source/devtools/front_end/common/ResourceType.js |
+++ b/Source/devtools/front_end/common/ResourceType.js |
@@ -136,7 +136,41 @@ WebInspector.resourceTypes = { |
Other: new WebInspector.ResourceType("other", "Other", "Other", "Other", "rgb(186,186,186)", false) |
} |
-WebInspector.ResourceType.mimeTypesForExtensions = { |
+/** |
+ * @param {string} url |
+ * @return {string} |
+ */ |
+WebInspector.ResourceType.mimeFromURL = function(url) |
+{ |
+ var name = WebInspector.TextUtils.fileName(url); |
+ if (WebInspector.ResourceType.mimeTypeByName[name]) { |
+ return WebInspector.ResourceType.mimeTypeByName[name]; |
+ } |
+ var ext = WebInspector.TextUtils.extension(url).toLowerCase(); |
+ return WebInspector.ResourceType.mimeTypeByExtension[ext]; |
+} |
+ |
+/** |
+ * @param {string} extensionOrName |
+ * @param {string} mime |
+ * @param {boolean=} byName |
+ */ |
+WebInspector.ResourceType.newMimeType = function(extensionOrName, mime, byName) |
+{ |
+ var matches = WebInspector.ResourceType.mimeTypeByExtension; |
+ if (byName) { |
+ matches = WebInspector.ResourceType.mimeTypeByName; |
+ } |
+ |
+ matches[extensionOrName] = mime; |
+} |
+ |
+WebInspector.ResourceType.mimeTypeByName = { |
+ // CoffeeScript |
+ "Cakefile": "text/x-coffeescript" |
+} |
+ |
+WebInspector.ResourceType.mimeTypeByExtension = { |
// Web extensions |
"js": "text/javascript", |
"css": "text/css", |
@@ -166,6 +200,7 @@ WebInspector.ResourceType.mimeTypesForExtensions = { |
// TypeScript |
"ts": "text/typescript", |
+ "tsx": "text/typescript", |
// JSON |
"json": "application/json", |
@@ -197,3 +232,20 @@ WebInspector.ResourceType.mimeTypesForExtensions = { |
// Video Text Tracks. |
"vtt": "text/vtt" |
} |
+ |
+/** |
+ * @return {string} |
+ * @suppress {missingProperties} |
+ */ |
+WebInspector.ResourceType.fromActivePanel = function() |
+{ |
+ if (self.runtime.moduleIsLoaded("sources")) { |
+ try { |
+ return WebInspector.ResourceType.mimeFromURL(WebInspector.SourcesPanel.instance().sourcesView().currentUISourceCode().uri()); |
+ } catch (e) { |
+ return "text/javascript"; |
+ } |
+ } else { |
+ return "text/javascript"; |
+ } |
+} |