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

Unified Diff: third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js

Issue 2740223002: Coverage: convert coverage ranges to disjoint segments before further processing (Closed)
Patch Set: review comment addressed Created 3 years, 9 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3e5f6e93931f7ce212dbe6bc7f6290c79d505887..0ebc822efc0b17e2bd8f7a51a0ea1a9f084660a3 100644
--- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js
+++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js
@@ -113,9 +113,15 @@ Coverage.CoverageView = class extends UI.VBox {
if (!contents)
return;
var text = new Common.Text(contents);
- for (var range of coverageInfo.ranges) {
- var startPosition = text.positionFromOffset(range.startOffset);
- var endPosition = text.positionFromOffset(range.endOffset);
+ var lastOffset = 0;
+ var rangesByDepth = [];
+ for (var segment of coverageInfo.segments) {
+ if (typeof segment.count !== 'number') {
+ lastOffset = segment.end;
+ continue;
+ }
+ var startPosition = text.positionFromOffset(lastOffset);
+ var endPosition = text.positionFromOffset(segment.end);
if (!startPosition.lineNumber)
startPosition.columnNumber += coverageInfo.columnOffset;
startPosition.lineNumber += coverageInfo.lineOffset;
@@ -123,9 +129,21 @@ Coverage.CoverageView = class extends UI.VBox {
endPosition.columnNumber += coverageInfo.columnOffset;
endPosition.lineNumber += coverageInfo.lineOffset;
- var textRange = new Common.TextRange(
- startPosition.lineNumber, startPosition.columnNumber, endPosition.lineNumber, endPosition.columnNumber);
- uiSourceCode.addDecoration(textRange, Coverage.CoverageView.LineDecorator.type, range.count);
+ var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count === undefined
+ if (!ranges) {
+ ranges = [];
+ rangesByDepth[segment.depth - 1] = ranges;
+ }
+ ranges.push({
+ count: segment.count,
+ range: new Common.TextRange(
+ startPosition.lineNumber, startPosition.columnNumber, endPosition.lineNumber, endPosition.columnNumber)
+ });
+ lastOffset = segment.end;
+ }
+ for (var ranges of rangesByDepth) {
+ for (var r of ranges)
+ uiSourceCode.addDecoration(r.range, Coverage.CoverageView.LineDecorator.type, r.count);
}
}
};
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698