| Index: tools/telemetry/third_party/coverage/doc/sample_html/coverage_html.js
|
| diff --git a/third_party/pycoverage/coverage/htmlfiles/coverage_html.js b/tools/telemetry/third_party/coverage/doc/sample_html/coverage_html.js
|
| similarity index 68%
|
| copy from third_party/pycoverage/coverage/htmlfiles/coverage_html.js
|
| copy to tools/telemetry/third_party/coverage/doc/sample_html/coverage_html.js
|
| index b24006d25e0005e37baf5500cdc7ee04e271609c..bd6a87531a3be637948b38459ba1da826639dde1 100644
|
| --- a/third_party/pycoverage/coverage/htmlfiles/coverage_html.js
|
| +++ b/tools/telemetry/third_party/coverage/doc/sample_html/coverage_html.js
|
| @@ -1,10 +1,13 @@
|
| +// Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
|
| +// For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
|
| +
|
| // Coverage.py HTML report browser code.
|
| /*jslint browser: true, sloppy: true, vars: true, plusplus: true, maxerr: 50, indent: 4 */
|
| /*global coverage: true, document, window, $ */
|
|
|
| coverage = {};
|
|
|
| -// Find all the elements with shortkey_* class, and use them to assign a shotrtcut key.
|
| +// Find all the elements with shortkey_* class, and use them to assign a shortcut key.
|
| coverage.assign_shortkeys = function () {
|
| $("*[class*='shortkey_']").each(function (i, e) {
|
| $.each($(e).attr("class").split(" "), function (i, c) {
|
| @@ -35,6 +38,137 @@ coverage.wire_up_help_panel = function () {
|
| });
|
| };
|
|
|
| +// Create the events for the filter box.
|
| +coverage.wire_up_filter = function () {
|
| + // Cache elements.
|
| + var table = $("table.index");
|
| + var table_rows = table.find("tbody tr");
|
| + var table_row_names = table_rows.find("td.name a");
|
| + var no_rows = $("#no_rows");
|
| +
|
| + // Create a duplicate table footer that we can modify with dynamic summed values.
|
| + var table_footer = $("table.index tfoot tr");
|
| + var table_dynamic_footer = table_footer.clone();
|
| + table_dynamic_footer.attr('class', 'total_dynamic hidden');
|
| + table_footer.after(table_dynamic_footer);
|
| +
|
| + // Observe filter keyevents.
|
| + $("#filter").on("keyup change", $.debounce(150, function (event) {
|
| + var filter_value = $(this).val();
|
| +
|
| + if (filter_value === "") {
|
| + // Filter box is empty, remove all filtering.
|
| + table_rows.removeClass("hidden");
|
| +
|
| + // Show standard footer, hide dynamic footer.
|
| + table_footer.removeClass("hidden");
|
| + table_dynamic_footer.addClass("hidden");
|
| +
|
| + // Hide placeholder, show table.
|
| + if (no_rows.length > 0) {
|
| + no_rows.hide();
|
| + }
|
| + table.show();
|
| +
|
| + }
|
| + else {
|
| + // Filter table items by value.
|
| + var hide = $([]);
|
| + var show = $([]);
|
| +
|
| + // Compile elements to hide / show.
|
| + $.each(table_row_names, function () {
|
| + var element = $(this).parents("tr");
|
| +
|
| + if ($(this).text().indexOf(filter_value) === -1) {
|
| + // hide
|
| + hide = hide.add(element);
|
| + }
|
| + else {
|
| + // show
|
| + show = show.add(element);
|
| + }
|
| + });
|
| +
|
| + // Perform DOM manipulation.
|
| + hide.addClass("hidden");
|
| + show.removeClass("hidden");
|
| +
|
| + // Show placeholder if no rows will be displayed.
|
| + if (no_rows.length > 0) {
|
| + if (show.length === 0) {
|
| + // Show placeholder, hide table.
|
| + no_rows.show();
|
| + table.hide();
|
| + }
|
| + else {
|
| + // Hide placeholder, show table.
|
| + no_rows.hide();
|
| + table.show();
|
| + }
|
| + }
|
| +
|
| + // Manage dynamic header:
|
| + if (hide.length > 0) {
|
| + // Calculate new dynamic sum values based on visible rows.
|
| + for (var column = 2; column < 20; column++) {
|
| + // Calculate summed value.
|
| + var cells = table_rows.find('td:nth-child(' + column + ')');
|
| + if (!cells.length) {
|
| + // No more columns...!
|
| + break;
|
| + }
|
| +
|
| + var sum = 0, numer = 0, denom = 0;
|
| + $.each(cells.filter(':visible'), function () {
|
| + var ratio = $(this).data("ratio");
|
| + if (ratio) {
|
| + var splitted = ratio.split(" ");
|
| + numer += parseInt(splitted[0], 10);
|
| + denom += parseInt(splitted[1], 10);
|
| + }
|
| + else {
|
| + sum += parseInt(this.innerHTML, 10);
|
| + }
|
| + });
|
| +
|
| + // Get footer cell element.
|
| + var footer_cell = table_dynamic_footer.find('td:nth-child(' + column + ')');
|
| +
|
| + // Set value into dynamic footer cell element.
|
| + if (cells[0].innerHTML.indexOf('%') > -1) {
|
| + // Percentage columns use the numerator and denominator,
|
| + // and adapt to the number of decimal places.
|
| + var match = /\.([0-9]+)/.exec(cells[0].innerHTML);
|
| + var places = 0;
|
| + if (match) {
|
| + places = match[1].length;
|
| + }
|
| + var pct = numer * 100 / denom;
|
| + footer_cell.text(pct.toFixed(places) + '%');
|
| + }
|
| + else {
|
| + footer_cell.text(sum);
|
| + }
|
| + }
|
| +
|
| + // Hide standard footer, show dynamic footer.
|
| + table_footer.addClass("hidden");
|
| + table_dynamic_footer.removeClass("hidden");
|
| + }
|
| + else {
|
| + // Show standard footer, hide dynamic footer.
|
| + table_footer.removeClass("hidden");
|
| + table_dynamic_footer.addClass("hidden");
|
| + }
|
| + }
|
| + }));
|
| +
|
| + // Trigger change event on setup, to force filter on page refresh
|
| + // (filter value may still be present).
|
| + $("#filter").trigger("change");
|
| +};
|
| +
|
| // Loaded on index.html
|
| coverage.index_ready = function ($) {
|
| // Look for a cookie containing previous sort settings:
|
| @@ -95,6 +229,7 @@ coverage.index_ready = function ($) {
|
|
|
| coverage.assign_shortkeys();
|
| coverage.wire_up_help_panel();
|
| + coverage.wire_up_filter();
|
|
|
| // Watch for page unload events so we can save the final sort settings:
|
| $(window).unload(function () {
|
| @@ -187,12 +322,13 @@ coverage.to_next_chunk = function () {
|
|
|
| // Find the start of the next colored chunk.
|
| var probe = c.sel_end;
|
| + var color, probe_line;
|
| while (true) {
|
| - var probe_line = c.line_elt(probe);
|
| + probe_line = c.line_elt(probe);
|
| if (probe_line.length === 0) {
|
| return;
|
| }
|
| - var color = probe_line.css("background-color");
|
| + color = probe_line.css("background-color");
|
| if (!c.is_transparent(color)) {
|
| break;
|
| }
|
|
|