Chromium Code Reviews| 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; |