Index: third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
index 5c40b1e10ea9286ef2f21ecf3ce9a0c39fd5c7bd..27fba039c99e2173483ca04bdb9b00b125f71ccb 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js |
@@ -8,10 +8,25 @@ Coverage.RangeUsage; |
/** @typedef {{styleSheetHeader: !SDK.CSSStyleSheetHeader, ranges: !Array<!Coverage.RangeUsage>}} */ |
Coverage.StyleSheetUsage; |
-/** @typedef {{url: string, size: (number|undefined), unusedSize: (number|undefined), usedSize: (number|undefined), |
- * ranges: !Array<!Coverage.RangeUsage>}} */ |
+/** @typedef {{ |
+ * url: string, |
+ * size: (number|undefined), |
+ * unusedSize: (number|undefined), |
+ * usedSize: (number|undefined), |
+ * type: !Coverage.CoverageType, |
+ * ranges: !Array<!Coverage.RangeUsage> |
+ * }} |
+ */ |
Coverage.CoverageInfo; |
+/** |
+ * @enum {number} |
+ */ |
+Coverage.CoverageType = { |
+ CSS: (1 << 0), |
+ JavaScript: (1 << 1), |
+}; |
+ |
Coverage.CoverageView = class extends UI.VBox { |
constructor() { |
super(true); |
@@ -112,6 +127,7 @@ Coverage.CoverageView = class extends UI.VBox { |
lastEntry.size += entry.size; |
lastEntry.usedSize += entry.usedSize; |
lastEntry.unusedSize += entry.unusedSize; |
+ lastEntry.type |= entry.type; |
} else { |
result.push(entry); |
} |
@@ -153,20 +169,9 @@ Coverage.CoverageView = class extends UI.VBox { |
ranges.push({range: textRange, wasUsed: !!range.count}); |
} |
} |
- promises.push(convertToCoverageInfo(script, ranges)); |
+ promises.push(Coverage.CoverageView._coverageInfoForText(script, script.lineOffset, script.columnOffset, ranges)); |
} |
return Promise.all(promises); |
- |
- /** |
- * @param {!SDK.Script} script |
- * @param {!Array<!Coverage.RangeUsage>} ranges |
- * @return {!Promise<!Coverage.CoverageInfo>} |
- */ |
- function convertToCoverageInfo(script, ranges) { |
- return script.requestContent().then( |
- content => Coverage.CoverageView._coverageInfoForText( |
- script.contentURL(), script.lineOffset, script.columnOffset, content, ranges)); |
- } |
} |
/** |
@@ -205,33 +210,30 @@ Coverage.CoverageView = class extends UI.VBox { |
rule.range.endColumn + (rule.range.endLine ? 0 : styleSheetHeader.startColumn)); |
ranges.push({range: textRange, wasUsed: rule.wasUsed}); |
} |
- return Promise.all(Array.from(rulesByStyleSheet.entries(), entry => convertToCoverageInfo(entry[0], entry[1]))); |
- |
- /** |
- * @param {!SDK.CSSStyleSheetHeader} styleSheetHeader |
- * @param {!Array<!Coverage.RangeUsage>} ranges |
- * @return {!Promise<!Coverage.CoverageInfo>} |
- */ |
- function convertToCoverageInfo(styleSheetHeader, ranges) { |
- return styleSheetHeader.requestContent().then( |
- content => Coverage.CoverageView._coverageInfoForText( |
- styleSheetHeader.sourceURL, styleSheetHeader.startLine, styleSheetHeader.startColumn, content, ranges)); |
- } |
+ return Promise.all(Array.from( |
+ rulesByStyleSheet.entries(), entry => Coverage.CoverageView._coverageInfoForText( |
alph
2017/02/28 01:10:38
nit: ([header, ranges]) => Coverage.CoverageView._
|
+ entry[0], entry[0].startLine, entry[0].startColumn, entry[1]))); |
} |
/** |
- * @param {string} url |
+ * @param {!Common.ContentProvider} contentProvider |
* @param {number} startLine |
* @param {number} startColumn |
- * @param {?string} content |
* @param {!Array<!Coverage.RangeUsage>} ranges |
- * @return {!Coverage.CoverageInfo} |
+ * @return {!Promise<!Coverage.CoverageInfo>} |
*/ |
- static _coverageInfoForText(url, startLine, startColumn, content, ranges) { |
- var coverageInfo = { |
- url: url, |
- ranges: ranges, |
- }; |
+ static async _coverageInfoForText(contentProvider, startLine, startColumn, ranges) { |
+ var url = contentProvider.contentURL(); |
+ var coverageType; |
+ if (contentProvider.contentType().isScript()) |
+ coverageType = Coverage.CoverageType.JavaScript; |
+ else if (contentProvider.contentType().isStyleSheet()) |
+ coverageType = Coverage.CoverageType.CSS; |
+ else |
+ console.assert(false, `Unexpected resource type ${contentProvider.contentType().name} for ${url}`); |
+ |
+ var coverageInfo = {url: url, ranges: ranges, type: coverageType}; |
+ var content = await contentProvider.requestContent(); |
if (!content) |
return coverageInfo; |