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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js

Issue 2759703003: DevTools: add support for polling for coverage data in CSS agent (Closed)
Patch Set: moved ranges sorting so it also works for CSS ranges 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 unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/core/inspector/browser_protocol.json ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** @typedef {{startOffset: number, endOffset: number, count: number}} */ 5 /** @typedef {{startOffset: number, endOffset: number, count: number}} */
6 Coverage.RangeUseCount; 6 Coverage.RangeUseCount;
7 7
8 /** @typedef {{end: number, count: (number|undefined)}} */ 8 /** @typedef {{end: number, count: (number|undefined)}} */
9 Coverage.CoverageSegment; 9 Coverage.CoverageSegment;
10 10
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 _processJSCoverage(scriptsCoverage) { 65 _processJSCoverage(scriptsCoverage) {
66 for (var entry of scriptsCoverage) { 66 for (var entry of scriptsCoverage) {
67 var script = this._debuggerModel.scriptForId(entry.scriptId); 67 var script = this._debuggerModel.scriptForId(entry.scriptId);
68 if (!script) 68 if (!script)
69 continue; 69 continue;
70 var ranges = []; 70 var ranges = [];
71 for (var func of entry.functions) { 71 for (var func of entry.functions) {
72 for (var range of func.ranges) 72 for (var range of func.ranges)
73 ranges.push(range); 73 ranges.push(range);
74 } 74 }
75 ranges.sort((a, b) => a.startOffset - b.startOffset);
76 this._addCoverage(script, script.contentLength, script.lineOffset, script. columnOffset, ranges); 75 this._addCoverage(script, script.contentLength, script.lineOffset, script. columnOffset, ranges);
77 } 76 }
78 } 77 }
79 78
80 /** 79 /**
81 * @param {!Array<!Coverage.RangeUseCount>} ranges 80 * @param {!Array<!Coverage.RangeUseCount>} ranges
82 * @return {!Array<!Coverage.CoverageSegment>} 81 * @return {!Array<!Coverage.CoverageSegment>}
83 */ 82 */
84 static _convertToDisjointSegments(ranges) { 83 static _convertToDisjointSegments(ranges) {
84 ranges.sort((a, b) => a.startOffset - b.startOffset);
85
85 var result = []; 86 var result = [];
86
87 var stack = []; 87 var stack = [];
88 for (var entry of ranges) { 88 for (var entry of ranges) {
89 var top = stack.peekLast(); 89 var top = stack.peekLast();
90 while (top && top.endOffset <= entry.startOffset) { 90 while (top && top.endOffset <= entry.startOffset) {
91 append(top.endOffset, top.count); 91 append(top.endOffset, top.count);
92 stack.pop(); 92 stack.pop();
93 top = stack.peekLast(); 93 top = stack.peekLast();
94 } 94 }
95 append(entry.startOffset, top ? top.count : undefined); 95 append(entry.startOffset, top ? top.count : undefined);
96 stack.push(entry); 96 stack.push(entry);
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 this._usedSize = 0; 366 this._usedSize = 0;
367 367
368 var last = 0; 368 var last = 0;
369 for (var segment of this._segments) { 369 for (var segment of this._segments) {
370 if (segment.count) 370 if (segment.count)
371 this._usedSize += segment.end - last; 371 this._usedSize += segment.end - last;
372 last = segment.end; 372 last = segment.end;
373 } 373 }
374 } 374 }
375 }; 375 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/inspector/browser_protocol.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698