Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(950)

Unified Diff: Source/devtools/front_end/common/ResourceType.js

Issue 1264133002: Devtools: [WIP] Implement enhanced devtools extension language APIs Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Modify override dropdown to apply to console completions & transpile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..7b002727d23b563e8ad89c46746241d7cfc7a6e6 100644
--- a/Source/devtools/front_end/common/ResourceType.js
+++ b/Source/devtools/front_end/common/ResourceType.js
@@ -136,7 +136,39 @@ 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) {
pfeldman 2015/08/13 21:15:46 mimeFromURL would be all caps we place { on the ne
wes 2015/08/14 00:55:04 Acknowledged.
+ var name = WebInspector.TextUtils.fileName(url);
+ if (WebInspector.ResourceType.mimeTypeNameMatches[name]) {
+ return WebInspector.ResourceType.mimeTypeNameMatches[name];
+ }
+ var ext = WebInspector.TextUtils.extension(url).toLowerCase();
+ return WebInspector.ResourceType.mimeTypeExtensionMatches[ext];
+}
+
+/**
+ * @param {string} match
+ * @param {string} mime
+ * @param {boolean=} matchName
+ */
+WebInspector.ResourceType.registerMimeRecognizer = function(match, mime, matchName) {
pfeldman 2015/08/13 21:15:46 This signature and the method logic are very confu
wes 2015/08/14 00:55:04 Does it need better argument names? Ie: +/** + *
pfeldman 2015/08/17 21:15:51 Well, registerRecognizer suggests that it'll be a
+ var matches = WebInspector.ResourceType.mimeTypeExtensionMatches;
+ if (matchName) {
+ matches = WebInspector.ResourceType.mimeTypeNameMatches;
+ }
+
+ matches[match] = mime;
+}
+
+WebInspector.ResourceType.mimeTypeNameMatches = {
+ // CoffeeScript
+ "Cakefile": "text/x-coffeescript"
+}
+
+WebInspector.ResourceType.mimeTypeExtensionMatches = {
// Web extensions
"js": "text/javascript",
"css": "text/css",
@@ -166,6 +198,7 @@ WebInspector.ResourceType.mimeTypesForExtensions = {
// TypeScript
"ts": "text/typescript",
+ "tsx": "text/typescript",
// JSON
"json": "application/json",
@@ -197,3 +230,19 @@ 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().contentURL());
pfeldman 2015/08/13 21:15:46 You should never reach out to the module you don't
wes 2015/08/14 00:55:04 I mean, it does compile (and run) thanks to the *
wes 2015/08/14 01:25:50 But if I did that then the module the extension wa
pfeldman 2015/08/17 21:15:51 We have plenty of DI and context to handle this. Y
wes 2015/08/25 18:13:18 But... the contexts in which we'd like to know thi
+ } catch (e) {
+ return "text/javascript";
+ }
+ } else {
+ return "text/javascript";
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698