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

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

Issue 2769843003: DevTools: split text_utils out of common module (Closed)
Patch Set: 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
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), depth: number}} */ 8 /** @typedef {{end: number, count: (number|undefined), depth: number}} */
9 Coverage.CoverageSegment; 9 Coverage.CoverageSegment;
10 10
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 } 246 }
247 247
248 /** 248 /**
249 * @return {number} 249 * @return {number}
250 */ 250 */
251 usedSize() { 251 usedSize() {
252 return this._usedSize; 252 return this._usedSize;
253 } 253 }
254 254
255 /** 255 /**
256 * @return {!Promise<!Array<!{range: !Common.TextRange, count: number}>>} 256 * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>}
257 */ 257 */
258 async buildTextRanges() { 258 async buildTextRanges() {
259 var textRangePromises = []; 259 var textRangePromises = [];
260 for (var coverageInfo of this._coverageInfoByLocation.values()) 260 for (var coverageInfo of this._coverageInfoByLocation.values())
261 textRangePromises.push(coverageInfo.buildTextRanges()); 261 textRangePromises.push(coverageInfo.buildTextRanges());
262 var allTextRanges = await Promise.all(textRangePromises); 262 var allTextRanges = await Promise.all(textRangePromises);
263 return [].concat(...allTextRanges); 263 return [].concat(...allTextRanges);
264 } 264 }
265 }; 265 };
266 266
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } 332 }
333 333
334 for (; indexA < segmentsA.length; indexA++) 334 for (; indexA < segmentsA.length; indexA++)
335 result.push(segmentsA[indexA]); 335 result.push(segmentsA[indexA]);
336 for (; indexB < segmentsB.length; indexB++) 336 for (; indexB < segmentsB.length; indexB++)
337 result.push(segmentsB[indexB]); 337 result.push(segmentsB[indexB]);
338 return result; 338 return result;
339 } 339 }
340 340
341 /** 341 /**
342 * @return {!Promise<!Array<!{range: !Common.TextRange, count: number}>>} 342 * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>}
343 */ 343 */
344 async buildTextRanges() { 344 async buildTextRanges() {
345 var contents = await this._contentProvider.requestContent(); 345 var contents = await this._contentProvider.requestContent();
346 if (!contents) 346 if (!contents)
347 return []; 347 return [];
348 var text = new Common.Text(contents); 348 var text = new TextUtils.Text(contents);
349 var lastOffset = 0; 349 var lastOffset = 0;
350 var rangesByDepth = []; 350 var rangesByDepth = [];
351 for (var segment of this._segments) { 351 for (var segment of this._segments) {
352 if (typeof segment.count !== 'number') { 352 if (typeof segment.count !== 'number') {
353 lastOffset = segment.end; 353 lastOffset = segment.end;
354 continue; 354 continue;
355 } 355 }
356 var startPosition = text.positionFromOffset(lastOffset); 356 var startPosition = text.positionFromOffset(lastOffset);
357 var endPosition = text.positionFromOffset(segment.end); 357 var endPosition = text.positionFromOffset(segment.end);
358 if (!startPosition.lineNumber) 358 if (!startPosition.lineNumber)
359 startPosition.columnNumber += this._columnOffset; 359 startPosition.columnNumber += this._columnOffset;
360 startPosition.lineNumber += this._lineOffset; 360 startPosition.lineNumber += this._lineOffset;
361 if (!endPosition.lineNumber) 361 if (!endPosition.lineNumber)
362 endPosition.columnNumber += this._columnOffset; 362 endPosition.columnNumber += this._columnOffset;
363 endPosition.lineNumber += this._lineOffset; 363 endPosition.lineNumber += this._lineOffset;
364 364
365 var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count == = undefined 365 var ranges = rangesByDepth[segment.depth - 1]; // depth === 0 => count == = undefined
366 if (!ranges) { 366 if (!ranges) {
367 ranges = []; 367 ranges = [];
368 rangesByDepth[segment.depth - 1] = ranges; 368 rangesByDepth[segment.depth - 1] = ranges;
369 } 369 }
370 ranges.push({ 370 ranges.push({
371 count: segment.count, 371 count: segment.count,
372 range: new Common.TextRange( 372 range: new TextUtils.TextRange(
373 startPosition.lineNumber, startPosition.columnNumber, endPosition.li neNumber, endPosition.columnNumber) 373 startPosition.lineNumber, startPosition.columnNumber, endPosition.li neNumber, endPosition.columnNumber)
374 }); 374 });
375 lastOffset = segment.end; 375 lastOffset = segment.end;
376 } 376 }
377 var result = []; 377 var result = [];
378 for (var ranges of rangesByDepth) { 378 for (var ranges of rangesByDepth) {
379 for (var r of ranges) 379 for (var r of ranges)
380 result.push({count: r.count, range: r.range}); 380 result.push({count: r.count, range: r.range});
381 } 381 }
382 return result; 382 return result;
383 } 383 }
384 384
385 _updateStats() { 385 _updateStats() {
386 this._usedSize = 0; 386 this._usedSize = 0;
387 this._unusedSize = 0; 387 this._unusedSize = 0;
388 388
389 var last = 0; 389 var last = 0;
390 for (var segment of this._segments) { 390 for (var segment of this._segments) {
391 if (typeof segment.count === 'number') { 391 if (typeof segment.count === 'number') {
392 if (segment.count) 392 if (segment.count)
393 this._usedSize += segment.end - last; 393 this._usedSize += segment.end - last;
394 else 394 else
395 this._unusedSize += segment.end - last; 395 this._unusedSize += segment.end - last;
396 } 396 }
397 last = segment.end; 397 last = segment.end;
398 } 398 }
399 } 399 }
400 }; 400 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698